1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 3237 3238 3239 3240 3241 3242 3243 3244 3245 3246 3247 3248 3249 3250 3251 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 3265 3266 3267 3268 3269 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 3280 3281 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 3292 3293 3294 3295 3296 3297 3298 3299 3300 3301 3302 3303 3304 3305 3306 3307 3308 3309 3310 3311 3312 3313 3314 3315 3316 3317 3318 3319 3320 3321 3322 3323 3324 3325 3326 3327 3328 3329 3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 3352 3353 3354 3355 3356 3357 3358 3359 3360 3361 3362 3363 3364 3365 3366 3367 3368 3369 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435 3436 3437 3438 3439 3440 3441 3442 3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483 3484 3485 3486 3487 3488 3489 3490 3491 3492 3493 3494 3495 3496 3497 3498 3499 3500 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 3511 3512 3513 3514 3515 3516 3517 3518 3519 3520 3521 3522 3523 3524 3525 3526 3527 3528 3529 3530 3531 3532 3533 3534 3535 3536 3537 3538 3539 3540 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 3557 3558 3559 3560 3561 3562 3563 3564 3565 3566 3567 3568 3569 3570 3571 3572 3573 3574 3575 3576 3577 3578 3579 3580 3581 3582 3583 3584 3585 3586 3587 3588 3589 3590 3591 3592 3593 3594 3595 3596 3597 3598 3599 3600 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610 3611 3612 3613 3614 3615 3616 3617 3618 3619 3620 3621 3622 3623 3624 3625 3626 3627 3628 3629 3630 3631 3632 3633 3634 3635 3636 3637 3638 3639 3640 3641 3642 3643 3644 3645 3646 3647 3648 3649 3650 3651 3652 3653 3654 3655 3656 3657 3658 3659 3660 3661 3662 3663 3664 3665 3666 3667 3668 3669 3670 3671 3672 3673 3674 3675 3676 3677 3678 3679 3680 3681 3682 3683 3684 3685 3686 3687 3688 3689 3690 3691 3692 3693 3694 3695 3696 3697 3698 3699 3700 3701 3702 3703 3704 3705 3706 3707 3708 3709 3710 3711 3712 3713 3714 3715 3716 3717 3718 3719 3720 3721 3722 3723 3724 3725 3726 3727 3728 3729 3730 3731 3732 3733 3734 3735 3736 3737 3738 3739 3740 3741 3742 3743 3744 3745 3746 3747 3748 3749 3750 3751 3752 3753 3754 3755 3756 3757 3758 3759 3760 3761 3762 3763 3764 3765 3766 3767 3768 3769 3770 3771 3772 3773 3774 3775 3776 3777 3778 3779 3780 3781 3782 3783 3784 3785 3786 3787 3788 3789 3790 3791 3792 3793 3794 3795 3796 3797 3798 3799 3800 3801 3802 3803 3804 3805 3806 3807 3808 3809 3810 3811 3812 3813 3814 3815 3816 3817 3818 3819 3820 3821 3822 3823 3824 3825 3826 3827 3828 3829 3830 3831 3832 3833 3834 3835 3836 3837 3838 3839 3840 3841 3842 3843 3844 3845 3846 3847 3848 3849 3850 3851 3852 3853 3854 3855 3856 3857 3858 3859 3860 3861 3862 3863 3864 3865 3866 3867 3868 3869 3870 3871 3872 3873 3874 3875 3876 3877 3878 3879 3880 3881 3882 3883 3884 3885 3886 3887 3888 3889 3890 3891 3892 3893 3894 3895 3896 3897 3898 3899 3900 3901 3902 3903 3904 3905 3906 3907 3908 3909 3910 3911 3912 3913 3914 3915 3916 3917 3918 3919 3920 3921 3922 3923 3924 3925 3926 3927 3928 3929 3930 3931 3932 3933 3934 3935 3936 3937 3938 3939 3940 3941 3942 3943 3944 3945 3946 3947 3948 3949 3950 3951 3952 3953 3954 3955 3956 3957 3958 3959 3960 3961 3962 3963 3964 3965 3966 3967 3968 3969 3970 3971 3972 3973 3974 3975 3976 3977 3978 3979 3980 3981 3982 3983 3984 3985 3986 3987 3988 3989 3990 3991 3992 3993 3994 3995 3996 3997 3998 3999 4000 4001 4002 4003 4004 4005 4006 4007 4008 4009 4010 4011 4012 4013 4014 4015 4016 4017 4018 4019 4020 4021 4022 4023 4024 4025 4026 4027 4028 4029 4030 4031 4032 4033 4034 4035 4036 4037 4038 4039 4040 4041 4042 4043 4044 4045 4046 4047 4048 4049 4050 4051 4052 4053 4054 4055 4056 4057 4058 4059 4060 4061 4062 4063 4064 4065 4066 4067 4068 4069 4070 4071 4072 4073 4074 4075 4076 4077 4078 4079 4080 4081 4082 4083 4084 4085 4086 4087 4088 4089 4090 4091 4092 4093 4094 4095 4096 4097 4098 4099 4100 4101 4102 4103 4104 4105 4106 4107 4108 4109 4110 4111 4112 4113 4114 4115 4116 4117 4118 4119 4120 4121 4122 4123 4124 4125 4126 4127 4128 4129 4130 4131 4132 4133 4134 4135 4136 4137 4138 4139 4140 4141 4142 4143 4144 4145 4146 4147 4148 4149 4150 4151 4152 4153 4154 4155 4156 4157 4158 4159 4160 4161 4162 4163 4164 4165 4166 4167 4168 4169 4170 4171 4172 4173 4174 4175 4176 4177 4178 4179 4180 4181 4182 4183 4184 4185 4186 4187 4188 4189 4190 4191 4192 4193 4194 4195 4196 4197 4198 4199 4200 4201 4202 4203 4204 4205 4206 4207 4208 4209 4210 4211 4212 4213 4214 4215 4216 4217 4218 4219 4220 4221 4222 4223 4224 4225 4226 4227 4228 4229 4230 4231 4232 4233 4234 4235 4236 4237 4238 4239 4240 4241 4242 4243 4244 4245 4246 4247 4248 4249 4250 4251 4252 4253 4254 4255 4256 4257 4258 4259 4260 4261 4262 4263 4264 4265 4266 4267 4268 4269 4270 4271 4272 4273 4274 4275 4276 4277 4278 4279 4280 4281 4282 4283 4284 4285 4286 4287 4288 4289 4290 4291 4292 4293 4294 4295 4296 4297 4298 4299 4300 4301 4302 4303 4304 4305 4306 4307 4308 4309 4310 4311 4312 4313 4314 4315 4316 4317 4318 4319 4320 4321 4322 4323 4324 4325 4326 4327 4328 4329 4330 4331 4332 4333 4334 4335 4336 4337 4338 4339 4340 4341 4342 4343 4344 4345 4346 4347 4348 4349 4350 4351 4352 4353 4354 4355 4356 4357 4358 4359 4360 4361 4362 4363 4364 4365 4366 4367 4368 4369 4370 4371 4372 4373 4374 4375 4376 4377 4378 4379 4380 4381 4382 4383 4384 4385 4386 4387 4388 4389 4390 4391 4392 4393 4394 4395 4396 4397 4398 4399 4400 4401 4402 4403 4404 4405 4406 4407 4408 4409 4410 4411 4412 4413 4414 4415 4416 4417 4418 4419 4420 4421 4422 4423 4424 4425 4426 4427 4428 4429 4430 4431 4432 4433 4434 4435 4436 4437 4438 4439 4440 4441 4442 4443 4444 4445 4446 4447 4448 4449 4450 4451 4452 4453 4454 4455 4456 4457 4458 4459 4460 4461 4462 4463 4464 4465 4466 4467 4468 4469 4470 4471 4472 4473 4474 4475 4476 4477 4478 4479 4480 4481 4482 4483 4484 4485 4486 4487 4488 4489 4490 4491 4492 4493 4494 4495 4496 4497 4498 4499 4500 4501 4502 4503 4504 4505 4506 4507 4508 4509 4510 4511 4512 4513 4514 4515 4516 4517 4518 4519 4520 4521 4522 4523 4524 4525 4526 4527 4528 4529 4530 4531 4532 4533 4534 4535 4536 4537 4538 4539 4540 4541 4542 4543 4544 4545 4546 4547 4548 4549 4550 4551 4552 4553 4554 4555 4556 4557 4558 4559 4560 4561 4562 4563 4564 4565 4566 4567 4568 4569 4570 4571 4572 4573 4574 4575 4576 4577 4578 4579 4580 4581 4582 4583 4584 4585 4586 4587 4588 4589 4590 4591 4592 4593 4594 4595 4596 4597 4598 4599 4600 4601 4602 4603 4604 4605 4606 4607 4608 4609 4610 4611 4612 4613 4614 4615 4616 4617 4618 4619 4620 4621 4622 4623 4624 4625 4626 4627 4628 4629 4630 4631 4632 4633 4634 4635 4636 4637 4638 4639 4640 4641 4642 4643 4644 4645 4646 4647 4648 4649 4650 4651 4652 4653 4654 4655 4656 4657 4658 4659 4660 4661 4662 4663 4664 4665 4666 4667 4668 4669 4670 4671 4672 4673 4674 4675 4676 4677 4678 4679 4680 4681 4682 4683 4684 4685 4686 4687 4688 4689 4690 4691 4692 4693 4694 4695 4696 4697 4698 4699 4700 4701 4702 4703 4704 4705 4706 4707 4708 4709 4710 4711 4712 4713 4714 4715 4716 4717 4718 4719 4720 4721 4722 4723 4724 4725 4726 4727 4728 4729 4730 4731 4732 4733 4734 4735 4736 4737 4738 4739 4740 4741 4742 4743 4744 4745 4746 4747 4748 4749 4750 4751 4752 4753 4754 4755 4756 4757 4758 4759 4760 4761 4762 4763 4764 4765 4766 4767 4768 4769 4770 4771 4772 4773 4774 4775 4776 4777 4778 4779 4780 4781 4782 4783 4784 4785 4786 4787 4788 4789 4790 4791 4792 4793 4794 4795 4796 4797 4798 4799 4800 4801 4802 4803 4804 4805 4806 4807 4808 4809 4810 4811 4812 4813 4814 4815 4816 4817 4818 4819 4820 4821 4822 4823 4824 4825 4826 4827 4828 4829 4830 4831 4832 4833 4834 4835 4836 4837 4838 4839 4840 4841 4842 4843 4844 4845 4846 4847 4848 4849 4850 4851 4852 4853 4854 4855 4856 4857 4858 4859 4860 4861 4862 4863 4864 4865 4866 4867 4868 4869 4870 4871 4872 4873 4874 4875 4876 4877 4878 4879 4880 4881 4882 4883 4884 4885 4886 4887 4888 4889 4890 4891 4892 4893 4894 4895 4896 4897 4898 4899 4900 4901 4902 4903 4904 4905 4906 4907 4908 4909 4910 4911 4912 4913 4914 4915 4916 4917 4918 4919 4920 4921 4922 4923 4924 4925 4926 4927 4928 4929 4930 4931 4932 4933 4934 4935 4936 4937 4938 4939 4940 4941 4942 4943 4944 4945 4946 4947 4948 4949 4950 4951 4952 4953 4954 4955 4956 4957 4958 4959 4960 4961 4962 4963 4964 4965 4966 4967 4968 4969 4970 4971 4972 4973 4974 4975 4976 4977 4978 4979 4980 4981 4982 4983 4984 4985 4986 4987 4988 4989 4990 4991 4992 4993 4994 4995 4996 4997 4998 4999 5000 5001 5002 5003 5004 5005 5006 5007 5008 5009 5010 5011 5012 5013 5014 5015 5016 5017 5018 5019 5020 5021 5022 5023 5024 5025 5026 5027 5028 5029 5030 5031 5032 5033 5034 5035 5036 5037 5038 5039 5040 5041 5042 5043 5044 5045 5046 5047 5048 5049 5050 5051 5052 5053 5054 5055 5056 5057 5058 5059 5060 5061 5062 5063 5064 5065 5066 5067 5068 5069 5070 5071 5072 5073 5074 5075 5076 5077 5078 5079 5080 5081 5082 5083 5084 5085 5086 5087 5088 5089 5090 5091 5092 5093 5094 5095 5096 5097 5098 5099 5100 5101 5102 5103 5104 5105 5106 5107 5108 5109 5110 5111 5112 5113 5114 5115 5116 5117 5118 5119 5120 5121 5122 5123 5124 5125 5126 5127 5128 5129 5130 5131 5132 5133 5134 5135 5136 5137 5138 5139 5140 5141 5142 5143 5144 5145 5146 5147 5148 5149 5150 5151 5152 5153 5154 5155 5156 5157 5158 5159 5160 5161 5162 5163 5164 5165 5166 5167 5168 5169 5170 5171 5172 5173 5174 5175 5176 5177 5178 5179 5180 5181 5182 5183 5184 5185 5186 5187 5188 5189 5190 5191 5192 5193 5194 5195 5196 5197 5198 5199 5200 5201 5202 5203 5204 5205 5206 5207 5208 5209 5210 5211 5212 5213 5214 5215 5216 5217 5218 5219 5220 5221 5222 5223 5224 5225 5226 5227 5228 5229 5230 5231 5232 5233 5234 5235 5236 5237 5238 5239 5240 5241 5242 5243 5244 5245 5246 5247 5248 5249 5250 5251 5252 5253 5254 5255 5256 5257 5258 5259 5260 5261 5262 5263 5264 5265 5266 5267 5268 5269 5270 5271 5272 5273 5274 5275 5276 5277 5278 5279 5280 5281 5282 5283 5284 5285 5286 5287 5288 5289 5290 5291 5292 5293 5294 5295 5296 5297 5298 5299 5300 5301 5302 5303 5304 5305 5306 5307 5308 5309 5310 5311 5312 5313 5314 5315 5316 5317 5318 5319 5320 5321 5322 5323 5324 5325 5326 5327 5328 5329 5330 5331 5332 5333 5334 5335 5336 5337 5338 5339 5340 5341 5342 5343 5344 5345 5346 5347 5348 5349 5350 5351 5352 5353 5354 5355 5356 5357 5358 5359 5360 5361 5362 5363 5364 5365 5366 5367 5368 5369 5370 5371 5372 5373 5374 5375 5376 5377 5378 5379 5380 5381 5382 5383 5384 5385 5386 5387 5388 5389 5390 5391 5392 5393 5394 5395 5396 5397 5398 5399 5400 5401 5402 5403 5404 5405 5406 5407 5408 5409 5410 5411 5412 5413 5414 5415 5416 5417 5418 5419 5420 5421 5422 5423 5424 5425 5426 5427 5428 5429 5430 5431 5432 5433 5434 5435 5436 5437 5438 5439 5440 5441 5442 5443 5444 5445 5446 5447 5448 5449 5450 5451 5452 5453 5454 5455 5456 5457 5458 5459 5460 5461 5462 5463 5464 5465 5466 5467 5468 5469 5470 5471 5472 5473 5474 5475 5476 5477 5478 5479 5480 5481 5482 5483 5484 5485 5486 5487 5488 5489 5490 5491 5492 5493 5494 5495 5496 5497 5498 5499 5500 5501 5502 5503 5504 5505 5506 5507 5508 5509 5510 5511 5512 5513 5514 5515 5516 5517 5518 5519 5520 5521 5522 5523 5524 5525 5526 5527 5528 5529 5530 5531 5532 5533 5534 5535 5536 5537 5538 5539 5540 5541 5542 5543 5544 5545 5546 5547 5548 5549 5550 5551 5552 5553 5554 5555 5556 5557 5558 5559 5560 5561 5562 5563 5564 5565 5566 5567 5568 5569 5570 5571 5572 5573 5574 5575 5576 5577 5578 5579 5580 5581 5582 5583 5584 5585 5586 5587 5588 5589 5590 5591 5592 5593 5594 5595 5596 5597 5598 5599 5600 5601 5602 5603 5604 5605 5606 5607 5608 5609 5610 5611 5612 5613 5614 5615 5616 5617 5618 5619 5620 5621 5622 5623 5624 5625 5626 5627 5628 5629 5630 5631 5632 5633 5634 5635 5636 5637 5638 5639 5640 5641 5642 5643 5644 5645 5646 5647 5648 5649 5650 5651 5652 5653 5654 5655 5656 5657 5658 5659 5660 5661 5662 5663 5664 5665 5666 5667 5668 5669 5670 5671 5672 5673 5674 5675 5676 5677 5678 5679 5680 5681 5682 5683 5684 5685 5686 5687 5688 5689 5690 5691 5692 5693 5694 5695 5696 5697 5698 5699 5700 5701 5702 5703 5704 5705 5706 5707 5708 5709 5710 5711 5712 5713 5714 5715 5716 5717 5718 5719 5720 5721 5722 5723 5724 5725 5726 5727 5728 5729 5730 5731 5732 5733 5734 5735 5736 5737 5738 5739 5740 5741 5742 5743 5744 5745 5746 5747 5748 5749 5750 5751 5752 5753 5754 5755 5756 5757 5758 5759 5760 5761 5762 5763 5764 5765 5766 5767 5768 5769 5770 5771 5772 5773 5774 5775 5776 5777 5778 5779 5780 5781 5782 5783 5784 5785 5786 5787 5788 5789 5790 5791 5792 5793 5794 5795 5796 5797 5798 5799 5800 5801 5802 5803 5804 5805 5806 5807 5808 5809 5810 5811 5812 5813 5814 5815 5816 5817 5818 5819 5820 5821 5822 5823 5824 5825 5826 5827 5828 5829 5830 5831 5832 5833 5834 5835 5836 5837 5838 5839 5840 5841 5842 5843 5844 5845 5846 5847 5848 5849 5850 5851 5852 5853 5854 5855 5856 5857 5858 5859 5860 5861 5862 5863 5864 5865 5866 5867 5868 5869 5870 5871 5872 5873 5874 5875 5876 5877 5878 5879 5880 5881 5882 5883 5884 5885 5886 5887 5888 5889 5890 5891 5892 5893 5894 5895 5896 5897 5898 5899 5900 5901 5902 5903 5904 5905 5906 5907 5908 5909 5910 5911 5912 5913 5914 5915 5916 5917 5918 5919 5920 5921 5922 5923 5924 5925 5926 5927 5928 5929 5930 5931 5932 5933 5934 5935 5936 5937 5938 5939 5940 5941 5942 5943 5944 5945 5946 5947 5948 5949 5950 5951 5952 5953 5954 5955 5956 5957 5958 5959 5960 5961 5962 5963 5964 5965 5966 5967 5968 5969 5970 5971 5972 5973 5974 5975 5976 5977 5978 5979 5980 5981 5982 5983 5984 5985 5986 5987 5988 5989 5990 5991 5992 5993 5994 5995 5996 5997 5998 5999 6000 6001 6002 6003 6004 6005 6006 6007 6008 6009 6010 6011 6012 6013 6014 6015 6016 6017 6018 6019 6020 6021 6022 6023 6024 6025 6026 6027 6028 6029 6030 6031 6032 6033 6034 6035 6036 6037 6038 6039 6040 6041 6042 6043 6044 6045 6046 6047 6048 6049 6050 6051 6052 6053 6054 6055 6056 6057 6058 6059 6060 6061 6062 6063 6064 6065 6066 6067 6068 6069 6070 6071 6072 6073 6074 6075 6076 6077 6078 6079 6080 6081 6082 6083 6084 6085 6086 6087 6088 6089 6090 6091 6092 6093 6094 6095 6096 6097 6098 6099 6100 6101 6102 6103 6104 6105 6106 6107 6108 6109 6110 6111 6112 6113 6114 6115 6116 6117 6118 6119 6120 6121 6122 6123 6124 6125 6126 6127 6128 6129 6130 6131 6132 6133 6134 6135 6136 6137 6138 6139 6140 6141 6142 6143 6144 6145 6146 6147 6148 6149 6150 6151 6152 6153 6154 6155 6156 6157 6158 6159 6160 6161 6162 6163 6164 6165 6166 6167 6168 6169 6170 6171 6172 6173 6174 6175 6176 6177 6178 6179 6180 6181 6182 6183 6184 6185 6186 6187 6188 6189 6190 6191 6192 6193 6194 6195 6196 6197 6198 6199 6200 6201 6202 6203 6204 6205 6206 6207 6208 6209 6210 6211 6212 6213 6214 6215 6216 6217 6218 6219 6220 6221 6222 6223 6224 6225 6226 6227 6228 6229 6230 6231 6232 6233 6234 6235 6236 6237 6238 6239 6240 6241 6242 6243 6244 6245 6246 6247 6248 6249 6250 6251 6252 6253 6254 6255 6256 6257 6258 6259 6260 6261 6262 6263 6264 6265 6266 6267 6268 6269 6270 6271 6272 6273 6274 6275 6276 6277 6278 6279 6280 6281 6282 6283 6284 6285 6286 6287 6288 6289 6290 6291 6292 6293 6294 6295 6296 6297 6298 6299 6300 6301 6302 6303 6304 6305 6306 6307 6308 6309 6310 6311 6312 6313 6314 6315 6316 6317 6318 6319 6320 6321 6322 6323 6324 6325 6326 6327 6328 6329 6330 6331 6332 6333 6334 6335 6336 6337 6338 6339 6340 6341 6342 6343 6344 6345 6346 6347 6348 6349 6350 6351 6352 6353 6354 6355 6356 6357 6358 6359 6360 6361 6362 6363 6364 6365 6366 6367 6368 6369 6370 6371 6372 6373 6374 6375 6376 6377 6378 6379 6380 6381 6382 6383 6384 6385 6386 6387 6388 6389 6390 6391 6392 6393 6394 6395 6396 6397 6398 6399 6400 6401 6402 6403 6404 6405 6406 6407 6408 6409 6410 6411 6412 6413 6414 6415 6416 6417 6418 6419 6420 6421 6422 6423 6424 6425 6426 6427 6428 6429 6430 6431 6432 6433 6434 6435 6436 6437 6438 6439 6440 6441 6442 6443 6444 6445 6446 6447 6448 6449 6450 6451 6452 6453 6454 6455 6456 6457 6458 6459 6460 6461 6462 6463 6464 6465 6466 6467 6468 6469 6470 6471 6472 6473 6474 6475 6476 6477 6478 6479 6480 6481 6482 6483 6484 6485 6486 6487 6488 6489 6490 6491 6492 6493 6494 6495 6496 6497 6498 6499 6500 6501 6502 6503 6504 6505 6506 6507 6508 6509 6510 6511 6512 6513 6514 6515 6516 6517 6518 6519 6520 6521 6522 6523 6524 6525 6526 6527 6528 6529 6530 6531 6532 6533 6534 6535 6536 6537 6538 6539 6540 6541 6542 6543 6544 6545 6546 6547 6548 6549 6550 6551 6552 6553 6554 6555 6556 6557 6558 6559 6560 6561 6562 6563 6564 6565 6566 6567 6568 6569 6570 6571 6572 6573 6574 6575 6576 6577 6578 6579 6580 6581 6582 6583 6584 6585 6586 6587 6588 6589 6590 6591 6592 6593 6594 6595 6596 6597 6598 6599 6600 6601 6602 6603 6604 6605 6606 6607 6608 6609 6610 6611 6612 6613 6614 6615 6616 6617 6618 6619 6620 6621 6622 6623 6624 6625 6626 6627 6628 6629 6630 6631 6632 6633 6634 6635 6636 6637 6638 6639 6640 6641 6642 6643 6644 6645 6646 6647 6648 6649 6650 6651 6652 6653 6654 6655 6656 6657 6658 6659 6660 6661 6662 6663 6664 6665 6666 6667 6668 6669 6670 6671 6672 6673 6674 6675 6676 6677 6678 6679 6680 6681 6682 6683 6684 6685 6686 6687 6688 6689 6690 6691 6692 6693 6694 6695 6696 6697 6698 6699 6700 6701 6702 6703 6704 6705 6706 6707 6708 6709 6710 6711 6712 6713 6714 6715 6716 6717 6718 6719 6720 6721 6722 6723 6724 6725 6726 6727 6728 6729 6730 6731 6732 6733 6734 6735 6736 6737 6738 6739 6740 6741 6742 6743 6744 6745 6746 6747 6748 6749 6750 6751 6752 6753 6754 6755 6756 6757 6758 6759 6760 6761 6762 6763 6764 6765 6766 6767 6768 6769 6770 6771 6772 6773 6774 6775 6776 6777 6778 6779 6780 6781 6782 6783 6784 6785 6786 6787 6788 6789 6790 6791 6792 6793 6794 6795 6796 6797 6798 6799 6800 6801 6802 6803 6804 6805 6806 6807 6808 6809 6810 6811 6812 6813 6814 6815 6816 6817 6818 6819 6820 6821 6822 6823 6824 6825 6826 6827 6828 6829 6830 6831 6832 6833 6834 6835 6836 6837 6838 6839 6840 6841 6842 6843 6844 6845 6846 6847 6848 6849 6850 6851 6852 6853 6854 6855 6856 6857 6858 6859 6860 6861 6862 6863 6864 6865 6866 6867 6868 6869 6870 6871 6872 6873 6874 6875 6876 6877 6878 6879 6880 6881 6882 6883 6884 6885 6886 6887 6888 6889 6890 6891 6892 6893 6894 6895 6896 6897 6898 6899 6900 6901 6902 6903 6904 6905 6906 6907 6908 6909 6910 6911 6912 6913 6914 6915 6916 6917 6918 6919 6920 6921 6922 6923 6924 6925 6926 6927 6928 6929 6930 6931 6932 6933 6934 6935 6936 6937 6938 6939 6940 6941 6942 6943 6944 6945 6946 6947 6948 6949 6950 6951 6952 6953 6954 6955 6956 6957 6958 6959 6960 6961 6962 6963 6964 6965 6966 6967 6968 6969 6970 6971 6972 6973 6974 6975 6976 6977 6978 6979 6980 6981 6982 6983 6984 6985 6986 6987 6988 6989 6990 6991 6992 6993 6994 6995 6996 6997 6998 6999 7000 7001 7002 7003 7004 7005 7006 7007 7008 7009 7010 7011 7012 7013 7014 7015 7016 7017 7018 7019 7020 7021 7022 7023 7024 7025 7026 7027 7028 7029 7030 7031 7032 7033 7034 7035 7036 7037 7038 7039 7040 7041 7042 7043 7044 7045 7046 7047 7048 7049 7050 7051 7052 7053 7054 7055 7056 7057 7058 7059 7060 7061 7062 7063 7064 7065 7066 7067 7068 7069 7070 7071 7072 7073 7074 7075 7076 7077 7078 7079 7080 7081 7082 7083 7084 7085 7086 7087 7088 7089 7090 7091 7092 7093 7094 7095 7096 7097 7098 7099 7100 7101 7102 7103 7104 7105 7106 7107 7108 7109 7110 7111 7112 7113 7114 7115 7116 7117 7118 7119 7120 7121 7122 7123 7124 7125 7126 7127 7128 7129 7130 7131 7132 7133 7134 7135 7136 7137 7138 7139 7140 7141 7142 7143 7144 7145 7146 7147 7148 7149 7150 7151 7152 7153 7154 7155 7156 7157 7158 7159 7160 7161 7162 7163 7164 7165 7166 7167 7168 7169 7170 7171 7172 7173 7174 7175 7176 7177 7178 7179 7180 7181 7182 7183 7184 7185 7186 7187 7188 7189 7190 7191 7192 7193 7194 7195 7196 7197 7198 7199 7200 7201 7202 7203 7204 7205 7206 7207 7208 7209 7210 7211 7212 7213 7214 7215 7216 7217 7218 7219 7220 7221 7222 7223 7224 7225 7226 7227 7228 7229 7230 7231 7232 7233 7234 7235 7236 7237 7238 7239 7240 7241 7242 7243 7244 7245 7246 7247 7248 7249 7250 7251 7252 7253 7254 7255 7256 7257 7258 7259 7260 7261 7262 7263 7264 7265 7266 7267 7268 7269 7270 7271 7272 7273 7274 7275 7276 7277 7278 7279 7280 7281 7282 7283 7284 7285 7286 7287 7288 7289 7290 7291 7292 7293 7294 7295 7296 7297 7298 7299 7300 7301 7302 7303 7304 7305 7306 7307 7308 7309 7310 7311 7312 7313 7314 7315 7316 7317 7318 7319 7320 7321 7322 7323 7324 7325 7326 7327 7328 7329 7330 7331 7332 7333 7334 7335 7336 7337 7338 7339 7340 7341 7342 7343 7344 7345 7346 7347 7348 7349 7350 7351 7352 7353 7354 7355 7356 7357 7358 7359 7360 7361 7362 7363 7364 7365 7366 7367 7368 7369 7370 7371 7372 7373 7374 7375 7376 7377 7378 7379 7380 7381 7382 7383 7384 7385 7386 7387 7388 7389 7390 7391 7392 7393 7394 7395 7396 7397 7398 7399 7400 7401 7402 7403 7404 7405 7406 7407 7408 7409 7410 7411 7412 7413 7414 7415 7416 7417 7418 7419 7420 7421 7422 7423 7424 7425 7426 7427 7428 7429 7430 7431 7432 7433 7434 7435 7436 7437 7438 7439 7440 7441 7442 7443 7444 7445 7446 7447 7448 7449 7450 7451 7452 7453 7454 7455 7456 7457 7458 7459 7460 7461 7462 7463 7464 7465 7466 7467 7468 7469 7470 7471 7472 7473 7474 7475 7476 7477 7478 7479 7480 7481 7482 7483 7484 7485 7486 7487 7488 7489 7490 7491 7492 7493 7494 7495 7496 7497 7498 7499 7500 7501 7502 7503 7504 7505 7506 7507 7508 7509 7510 7511 7512 7513 7514 7515 7516 7517 7518 7519 7520 7521 7522 7523 7524 7525 7526 7527 7528 7529 7530 7531 7532 7533 7534 7535 7536 7537 7538 7539 7540 7541 7542 7543 7544 7545 7546 7547 7548 7549 7550 7551 7552 7553 7554 7555 7556 7557 7558 7559 7560 7561 7562 7563 7564 7565 7566 7567 7568 7569 7570 7571 7572 7573 7574 7575 7576 7577 7578 7579 7580 7581 7582 7583 7584 7585 7586 7587 7588 7589 7590 7591 7592 7593 7594 7595 7596 7597 7598 7599 7600 7601 7602 7603 7604 7605 7606 7607 7608 7609 7610 7611 7612 7613 7614 7615 7616 7617 7618 7619 7620 7621 7622 7623 7624 7625 7626 7627 7628 7629 7630 7631 7632 7633 7634 7635 7636 7637 7638 7639 7640 7641 7642 7643 7644 7645 7646 7647 7648 7649 7650 7651 7652 7653 7654 7655 7656 7657 7658 7659 7660 7661 7662 7663 7664 7665 7666 7667 7668 7669 7670 7671 7672 7673 7674 7675 7676 7677 7678 7679 7680 7681 7682 7683 7684 7685 7686 7687 7688 7689 7690 7691 7692 7693 7694 7695 7696 7697 7698 7699 7700 7701 7702 7703 7704 7705 7706 7707 7708 7709 7710 7711 7712 7713 7714 7715 7716 7717 7718 7719 7720 7721 7722 7723 7724 7725 7726 7727 7728 7729 7730 7731 7732 7733 7734 7735 7736 7737 7738 7739 7740 7741 7742 7743 7744 7745 7746 7747 7748 7749 7750 7751 7752 7753 7754 7755 7756 7757 7758 7759 7760 7761 7762 7763 7764 7765 7766 7767 7768 7769 7770 7771 7772 7773 7774 7775 7776 7777 7778 7779 7780 7781 7782 7783 7784 7785 7786 7787 7788 7789 7790 7791 7792 7793 7794 7795 7796 7797 7798 7799 7800 7801 7802 7803 7804 7805 7806 7807 7808 7809 7810 7811 7812 7813 7814 7815 7816 7817 7818 7819 7820 7821 7822 7823 7824 7825 7826 7827 7828 7829 7830 7831 7832 7833 7834 7835 7836 7837 7838 7839 7840 7841 7842 7843 7844 7845 7846 7847 7848 7849 7850 7851 7852 7853 7854 7855 7856 7857 7858 7859 7860 7861 7862 7863 7864 7865 7866 7867 7868 7869 7870 7871 7872 7873 7874 7875 7876 7877 7878 7879 7880 7881 7882 7883 7884 7885 7886 7887 7888 7889 7890 7891 7892 7893 7894 7895 7896 7897 7898 7899 7900 7901 7902 7903 7904 7905 7906 7907 7908 7909 7910 7911 7912 7913 7914 7915 7916 7917 7918 7919 7920 7921 7922 7923 7924 7925 7926 7927 7928 7929 7930 7931 7932 7933 7934 7935 7936 7937 7938 7939 7940 7941 7942 7943 7944 7945 7946 7947 7948 7949 7950 7951 7952 7953 7954 7955 7956 7957 7958 7959 7960 7961 7962 7963 7964 7965 7966 7967 7968 7969 7970 7971 7972 7973 7974 7975 7976 7977 7978 7979 7980 7981 7982 7983 7984 7985 7986 7987 7988 7989 7990 7991 7992 7993 7994 7995 7996 7997 7998 7999 8000 8001 8002 8003 8004 8005 8006 8007 8008 8009 8010 8011 8012 8013 8014 8015 8016 8017 8018 8019 8020 8021 8022 8023 8024 8025 8026 8027 8028 8029 8030 8031 8032 8033 8034 8035 8036 8037 8038 8039 8040 8041 8042 8043 8044 8045 8046 8047 8048 8049 8050 8051 8052 8053 8054 8055 8056 8057 8058 8059 8060 8061 8062 8063 8064 8065 8066 8067 8068 8069 8070 8071 8072 8073 8074 8075 8076 8077 8078 8079 8080 8081 8082 8083 8084 8085 8086 8087 8088 8089 8090 8091 8092 8093 8094 8095 8096 8097 8098 8099 8100 8101 8102 8103 8104 8105 8106 8107 8108 8109 8110 8111 8112 8113 8114 8115 8116 8117 8118 8119 8120 8121 8122 8123 8124 8125 8126 8127 8128 8129 8130 8131 8132 8133 8134 8135 8136 8137 8138 8139 8140 8141 8142 8143 8144 8145 8146 8147 8148 8149 8150 8151 8152 8153 8154 8155 8156 8157 8158 8159 8160 8161 8162 8163 8164 8165 8166 8167 8168 8169 8170 8171 8172 8173 8174 8175 8176 8177 8178 8179 8180 8181 8182 8183 8184 8185 8186 8187 8188 8189 8190 8191 8192 8193 8194 8195 8196 8197 8198 8199 8200 8201 8202 8203 8204 8205 8206 8207 8208 8209 8210 8211 8212 8213 8214 8215 8216 8217 8218 8219 8220 8221 8222 8223 8224 8225 8226 8227 8228 8229 8230 8231 8232 8233 8234 8235 8236 8237 8238 8239 8240 8241 8242 8243 8244 8245 8246 8247 8248 8249 8250 8251 8252 8253 8254 8255 8256 8257 8258 8259 8260 8261 8262 8263 8264 8265 8266 8267 8268 8269 8270 8271 8272 8273 8274 8275 8276 8277 8278 8279 8280 8281 8282 8283 8284 8285 8286 8287 8288 8289 8290 8291 8292 8293 8294 8295 8296 8297 8298 8299 8300 8301 8302 8303 8304 8305 8306 8307 8308 8309 8310 8311 8312 8313 8314 8315 8316 8317 8318 8319 8320 8321 8322 8323 8324 8325 8326 8327 8328 8329 8330 8331 8332 8333 8334 8335 8336 8337 8338 8339 8340 8341 8342 8343 8344 8345 8346 8347 8348 8349 8350 8351 8352 8353 8354 8355 8356 8357 8358 8359 8360 8361 8362 8363 8364 8365 8366 8367 8368 8369 8370 8371 8372 8373 8374 8375 8376 8377 8378 8379 8380 8381 8382 8383 8384 8385 8386 8387 8388 8389 8390 8391 8392 8393 8394 8395 8396 8397 8398 8399 8400 8401 8402 8403 8404 8405 8406 8407 8408 8409 8410 8411 8412 8413 8414 8415 8416 8417 8418 8419 8420 8421 8422 8423 8424 8425 8426 8427 8428 8429 8430 8431 8432 8433 8434 8435 8436 8437 8438 8439 8440 8441 8442 8443 8444 8445 8446 8447 8448 8449 8450 8451 8452 8453 8454 8455 8456 8457 8458 8459 8460 8461 8462 8463 8464 8465 8466 8467 8468 8469 8470 8471 8472 8473 8474 8475 8476 8477 8478 8479 8480 8481 8482 8483 8484 8485 8486 8487 8488 8489 8490 8491 8492 8493 8494 8495 8496 8497 8498 8499 8500 8501 8502 8503 8504 8505 8506 8507 8508 8509 8510 8511 8512 8513 8514 8515 8516 8517 8518 8519 8520 8521 8522 8523 8524 8525 8526 8527 8528 8529 8530 8531 8532 8533 8534 8535 8536 8537 8538 8539 8540 8541 8542 8543 8544 8545 8546 8547 8548 8549 8550 8551 8552 8553 8554 8555 8556 8557 8558 8559 8560 8561 8562 8563 8564 8565 8566 8567 8568 8569 8570 8571 8572 8573 8574 8575 8576 8577 8578 8579 8580 8581 8582 8583 8584 8585 8586 8587 8588 8589 8590 8591 8592 8593 8594 8595 8596 8597 8598 8599 8600 8601 8602 8603 8604 8605 8606 8607 8608 8609 8610 8611 8612 8613 8614 8615 8616 8617 8618 8619 8620 8621 8622 8623 8624 8625 8626 8627 8628 8629 8630 8631 8632 8633 8634 8635 8636 8637 8638 8639 8640 8641 8642 8643 8644 8645 8646 8647 8648 8649 8650 8651 8652 8653 8654 8655 8656 8657 8658 8659 8660 8661 8662 8663 8664 8665 8666 8667 8668 8669 8670 8671 8672 8673 8674 8675 8676 8677 8678 8679 8680 8681 8682 8683 8684 8685 8686 8687 8688 8689 8690 8691 8692 8693 8694 8695 8696 8697 8698 8699 8700 8701 8702 8703 8704 8705 8706 8707 8708 8709 8710 8711 8712 8713 8714 8715 8716 8717 8718 8719 8720 8721 8722 8723 8724 8725 8726 8727 8728 8729 8730 8731 8732 8733 8734 8735 8736 8737 8738 8739 8740 8741 8742 8743 8744 8745 8746 8747 8748 8749 8750 8751 8752 8753 8754 8755 8756 8757 8758 8759 8760 8761 8762 8763 8764 8765 8766 8767 8768 8769 8770 8771 8772 8773 8774 8775 8776 8777 8778 8779 8780 8781 8782 8783 8784 8785 8786 8787 8788 8789 8790 8791 8792 8793 8794 8795 8796 8797 8798 8799 8800 8801 8802 8803 8804 8805 8806 8807 8808 8809 8810 8811 8812 8813 8814 8815 8816 8817 8818 8819 8820 8821 8822 8823 8824 8825 8826 8827 8828 8829 8830 8831 8832 8833 8834 8835 8836 8837 8838 8839 8840 8841 8842 8843 8844 8845 8846 8847 8848 8849 8850 8851 8852 8853 8854 8855 8856 8857 8858 8859 8860 8861 8862 8863 8864 8865 8866 8867 8868 8869 8870 8871 8872 8873 8874 8875 8876 8877 8878 8879 8880 8881 8882 8883 8884 8885 8886 8887 8888 8889 8890 8891 8892 8893 8894 8895 8896 8897 8898 8899 8900 8901 8902 8903 8904 8905 8906 8907 8908 8909 8910 8911 8912 8913 8914 8915 8916 8917 8918 8919 8920 8921 8922 8923 8924 8925 8926 8927 8928 8929 8930 8931 8932 8933 8934 8935 8936 8937 8938 8939 8940 8941 8942 8943 8944 8945 8946 8947 8948 8949 8950 8951 8952 8953 8954 8955 8956 8957 8958 8959 8960 8961 8962 8963 8964 8965 8966 8967 8968 8969 8970 8971 8972 8973 8974 8975 8976 8977 8978 8979 8980 8981 8982 8983 8984 8985 8986 8987 8988 8989 8990 8991 8992 8993 8994 8995 8996 8997 8998 8999 9000 9001 9002 9003 9004 9005 9006 9007 9008 9009 9010 9011 9012 9013 9014 9015 9016 9017 9018 9019 9020 9021 9022 9023 9024 9025 9026 9027 9028 9029 9030 9031 9032 9033 9034 9035 9036 9037 9038 9039 9040 9041 9042 9043 9044 9045 9046 9047 9048 9049 9050 9051 9052 9053 9054 9055 9056 9057 9058 9059 9060 9061 9062 9063 9064 9065 9066 9067 9068 9069 9070 9071 9072 9073 9074 9075 9076 9077 9078 9079 9080 9081 9082 9083 9084 9085 9086 9087 9088 9089 9090 9091 9092 9093 9094 9095 9096 9097 9098 9099 9100 9101 9102 9103 9104 9105 9106 9107 9108 9109 9110 9111 9112 9113 9114 9115 9116 9117 9118 9119 9120 9121 9122 9123 9124 9125 9126 9127 9128 9129 9130 9131 9132 9133 9134 9135 9136 9137 9138 9139 9140 9141 9142 9143 9144 9145 9146 9147 9148 9149 9150 9151 9152 9153 9154 9155 9156 9157 9158 9159 9160 9161 9162 9163 9164 9165 9166 9167 9168 9169 9170 9171 9172 9173 9174 9175 9176 9177 9178 9179 9180 9181 9182 9183 9184 9185 9186 9187 9188 9189 9190 9191 9192 9193 9194 9195 9196 9197 9198 9199 9200 9201 9202 9203 9204 9205 9206 9207 9208 9209 9210 9211 9212 9213 9214 9215 9216 9217 9218 9219 9220 9221 9222 9223 9224 9225 9226 9227 9228 9229 9230 9231 9232 9233 9234 9235 9236 9237 9238 9239 9240 9241 9242 9243 9244 9245 9246 9247 9248 9249 9250 9251 9252 9253 9254 9255 9256 9257 9258 9259 9260 9261 9262 9263 9264 9265 9266 9267 9268 9269 9270 9271 9272 9273 9274 9275 9276 9277 9278 9279 9280 9281 9282 9283 9284 9285 9286 9287 9288 9289 9290 9291 9292 9293 9294 9295 9296 9297 9298 9299 9300 9301 9302 9303 9304 9305 9306 9307 9308 9309 9310 9311 9312 9313 9314 9315 9316 9317 9318 9319 9320 9321 9322 9323 9324 9325 9326 9327 9328 9329 9330 9331 9332 9333 9334 9335 9336 9337 9338 9339 9340 9341 9342 9343 9344 9345 9346 9347 9348 9349 9350 9351 9352 9353 9354 9355 9356 9357 9358 9359 9360 9361 9362 9363 9364 9365 9366 9367 9368 9369 9370 9371 9372 9373 9374 9375 9376 9377 9378 9379 9380 9381 9382 9383 9384 9385 9386 9387 9388 9389 9390 9391 9392 9393 9394 9395 9396 9397 9398 9399 9400 9401 9402 9403 9404 9405 9406 9407 9408 9409 9410 9411 9412 9413 9414 9415 9416 9417 9418 9419 9420 9421 9422 9423 9424 9425 9426 9427 9428 9429 9430 9431 9432 9433 9434 9435 9436 9437 9438 9439 9440 9441 9442 9443 9444 9445 9446 9447 9448 9449 9450 9451 9452 9453 9454 9455 9456 9457 9458 9459 9460 9461 9462 9463 9464 9465 9466 9467 9468 9469 9470 9471 9472 9473 9474 9475 9476 9477 9478 9479 9480 9481 9482 9483 9484 9485 9486 9487 9488 9489 9490 9491 9492 9493 9494 9495 9496 9497 9498 9499 9500 9501 9502 9503 9504 9505 9506 9507 9508 9509 9510 9511 9512 9513 9514 9515 9516 9517 9518 9519 9520 9521 9522 9523 9524 9525 9526 9527 9528 9529 9530 9531 9532 9533 9534 9535 9536 9537 9538 9539 9540 9541 9542 9543 9544 9545 9546 9547 9548 9549 9550 9551 9552 9553 9554 9555 9556 9557 9558 9559 9560 9561 9562 9563 9564 9565 9566 9567 9568 9569 9570 9571 9572 9573 9574 9575 9576 9577 9578 9579 9580 9581 9582 9583 9584 9585 9586 9587 9588 9589 9590 9591 9592 9593 9594 9595 9596 9597 9598 9599 9600 9601 9602 9603 9604 9605 9606 9607 9608 9609 9610 9611 9612 9613 9614 9615 9616 9617 9618 9619 9620 9621 9622 9623 9624 9625 9626 9627 9628 9629 9630 9631 9632 9633 9634 9635 9636 9637 9638 9639 9640 9641 9642 9643 9644 9645 9646 9647 9648 9649 9650 9651 9652 9653 9654 9655 9656 9657 9658 9659 9660 9661 9662 9663 9664 9665 9666 9667 9668 9669 9670 9671 9672 9673 9674 9675 9676 9677 9678 9679 9680 9681 9682 9683 9684 9685 9686 9687 9688 9689 9690 9691 9692 9693 9694 9695 9696 9697 9698 9699 9700 9701 9702 9703 9704 9705 9706 9707 9708 9709 9710 9711 9712 9713 9714 9715 9716 9717 9718 9719 9720 9721 9722 9723 9724 9725 9726 9727 9728 9729 9730 9731 9732 9733 9734 9735 9736 9737 9738 9739 9740 9741 9742 9743 9744 9745 9746 9747 9748 9749 9750 9751 9752 9753 9754 9755 9756 9757 9758 9759 9760 9761 9762 9763 9764 9765 9766 9767 9768 9769 9770 9771 9772 9773 9774 9775 9776 9777 9778 9779 9780 9781 9782 9783 9784 9785 9786 9787 9788 9789 9790 9791 9792 9793 9794 9795 9796 9797 9798 9799 9800 9801 9802 9803 9804 9805 9806 9807 9808 9809 9810 9811 9812 9813 9814 9815 9816 9817 9818 9819 9820 9821 9822 9823 9824 9825 9826 9827 9828 9829 9830 9831 9832 9833 9834 9835 9836 9837 9838 9839 9840 9841 9842 9843 9844 9845 9846 9847 9848 9849 9850 9851 9852 9853 9854 9855 9856 9857 9858 9859 9860 9861 9862 9863 9864 9865 9866 9867 9868 9869 9870 9871 9872 9873 9874 9875 9876 9877 9878 9879 9880 9881 9882 9883 9884 9885 9886 9887 9888 9889 9890 9891 9892 9893 9894 9895 9896 9897 9898 9899 9900 9901 9902 9903 9904 9905 9906 9907 9908 9909 9910 9911 9912 9913 9914 9915 9916 9917 9918 9919 9920 9921 9922 9923 9924 9925 9926 9927 9928 9929 9930 9931 9932 9933 9934 9935 9936 9937 9938 9939 9940 9941 9942 9943 9944 9945 9946 9947 9948 9949 9950 9951 9952 9953 9954 9955 9956 9957 9958 9959 9960 9961 9962 9963 9964 9965 9966 9967 9968 9969 9970 9971 9972 9973 9974 9975 9976 9977 9978 9979 9980 9981 9982 9983 9984 9985 9986 9987 9988 9989 9990 9991 9992 9993 9994 9995 9996 9997 9998 9999 10000 10001 10002 10003 10004 10005 10006 10007 10008 10009 10010 10011 10012 10013 10014 10015 10016 10017 10018 10019 10020 10021 10022 10023 10024 10025 10026 10027 10028 10029 10030 10031 10032 10033 10034 10035 10036 10037 10038 10039 10040 10041 10042 10043 10044 10045 10046 10047 10048 10049 10050 10051 10052 10053 10054 10055 10056 10057 10058 10059 10060 10061 10062 10063 10064 10065 10066 10067 10068 10069 10070 10071 10072 10073 10074 10075 10076 10077 10078 10079 10080 10081 10082 10083 10084 10085 10086 10087 10088 10089 10090 10091 10092 10093 10094 10095 10096 10097 10098 10099 10100 10101 10102 10103 10104 10105 10106 10107 10108 10109 10110 10111 10112 10113 10114 10115 10116 10117 10118 10119 10120 10121 10122 10123 10124 10125 10126 10127 10128 10129 10130 10131 10132 10133 10134 10135 10136 10137 10138 10139 10140 10141 10142 10143 10144 10145 10146 10147 10148 10149 10150 10151 10152 10153 10154 10155 10156 10157 10158 10159 10160 10161 10162 10163 10164 10165 10166 10167 10168 10169 10170 10171 10172 10173 10174 10175 10176 10177 10178 10179 10180 10181 10182 10183 10184 10185 10186 10187 10188 10189 10190 10191 10192 10193 10194 10195 10196 10197 10198 10199 10200 10201 10202 10203 10204 10205 10206 10207 10208 10209 10210 10211 10212 10213 10214 10215 10216 10217 10218 10219 10220 10221 10222 10223 10224 10225 10226 10227 10228 10229 10230 10231 10232 10233 10234 10235 10236 10237 10238 10239 10240 10241 10242 10243 10244 10245 10246 10247 10248 10249 10250 10251 10252 10253 10254 10255 10256 10257 10258 10259 10260 10261 10262 10263 10264 10265 10266 10267 10268 10269 10270 10271 10272 10273 10274 10275 10276 10277 10278 10279 10280 10281 10282 10283 10284 10285 10286 10287 10288 10289 10290 10291 10292 10293 10294 10295 10296 10297 10298 10299 10300 10301 10302 10303 10304 10305 10306 10307 10308 10309 10310 10311 10312 10313 10314 10315 10316 10317 10318 10319 10320 10321 10322 10323 10324 10325 10326 10327 10328 10329 10330 10331 10332 10333 10334 10335 10336 10337 10338 10339 10340 10341 10342 10343 10344 10345 10346 10347 10348 10349 10350 10351 10352 10353 10354 10355 10356 10357 10358 10359 10360 10361 10362 10363 10364 10365 10366 10367 10368 10369 10370 10371 10372 10373 10374 10375 10376 10377 10378 10379 10380 10381 10382 10383 10384 10385 10386 10387 10388 10389 10390 10391 10392 10393 10394 10395 10396 10397 10398 10399 10400 10401 10402 10403 10404 10405 10406 10407 10408 10409 10410 10411 10412 10413 10414 10415 10416 10417 10418 10419 10420 10421 10422 10423 10424 10425 10426 10427 10428 10429 10430 10431 10432 10433 10434 10435 10436 10437 10438 10439 10440 10441 10442 10443 10444 10445 10446 10447 10448 10449 10450 10451 10452 10453 10454 10455 10456 10457 10458 10459 10460 10461 10462 10463 10464 10465 10466 10467 10468 10469 10470 10471 10472 10473 10474 10475 10476 10477 10478 10479 10480 10481 10482 10483 10484 10485 10486 10487 10488 10489 10490 10491 10492 10493 10494 10495 10496 10497 10498 10499 10500 10501 10502 10503 10504 10505 10506 10507 10508 10509 10510 10511 10512 10513 10514 10515 10516 10517 10518 10519 10520 10521 10522 10523 10524 10525 10526 10527 10528 10529 10530 10531 10532 10533 10534 10535 10536 10537 10538 10539 10540 10541 10542 10543 10544 10545 10546 10547 10548 10549 10550 10551 10552 10553 10554 10555 10556 10557 10558 10559 10560 10561 10562 10563 10564 10565 10566 10567 10568 10569 10570 10571 10572 10573 10574 10575 10576 10577 10578 10579 10580 10581 10582 10583 10584 10585 10586 10587 10588 10589 10590 10591 10592 10593 10594 10595 10596 10597 10598 10599 10600 10601 10602 10603 10604 10605 10606 10607 10608 10609 10610 10611 10612 10613 10614 10615 10616 10617 10618 10619 10620 10621 10622 10623 10624 10625 10626 10627 10628 10629 10630 10631 10632 10633 10634 10635 10636 10637 10638 10639 10640 10641 10642 10643 10644 10645 10646 10647 10648 10649 10650 10651 10652 10653 10654 10655 10656 10657 10658 10659 10660 10661 10662 10663 10664 10665 10666 10667 10668 10669 10670 10671 10672 10673 10674 10675 10676 10677 10678 10679 10680 10681 10682 10683 10684 10685 10686 10687 10688 10689 10690 10691 10692 10693 10694 10695 10696 10697 10698 10699 10700 10701 10702 10703 10704 10705 10706 10707 10708 10709 10710 10711 10712 10713 10714 10715 10716 10717 10718 10719 10720 10721 10722 10723 10724 10725 10726 10727 10728 10729 10730 10731 10732 10733 10734 10735 10736 10737 10738 10739 10740 10741 10742 10743 10744 10745 10746 10747 10748 10749 10750 10751 10752 10753 10754 10755 10756 10757 10758 10759 10760 10761 10762 10763 10764 10765 10766 10767 10768 10769 10770 10771 10772 10773 10774 10775 10776 10777 10778 10779 10780 10781 10782 10783 10784 10785 10786 10787 10788 10789 10790 10791 10792 10793 10794 10795 10796 10797 10798 10799 10800 10801 10802 10803 10804 10805 10806 10807 10808 10809 10810 10811 10812 10813 10814 10815 10816 10817 10818 10819 10820 10821 10822 10823 10824 10825 10826 10827 10828 10829 10830 10831 10832 10833 10834 10835 10836 10837 10838 10839 10840 10841 10842 10843 10844 10845 10846 10847 10848 10849 10850 10851 10852 10853 10854 10855 10856 10857 10858 10859 10860 10861 10862 10863 10864 10865 10866 10867 10868 10869 10870 10871 10872 10873 10874 10875 10876 10877 10878 10879 10880 10881 10882 10883 10884 10885 10886 10887 10888 10889 10890 10891 10892 10893 10894 10895 10896 10897 10898 10899 10900 10901 10902 10903 10904 10905 10906 10907 10908 10909 10910 10911 10912 10913 10914 10915 10916 10917 10918 10919 10920 10921 10922 10923 10924 10925 10926 10927 10928 10929 10930 10931 10932 10933 10934 10935 10936 10937 10938 10939 10940 10941 10942 10943 10944 10945 10946 10947 10948 10949 10950 10951 10952 10953 10954 10955 10956 10957 10958 10959 10960 10961 10962 10963 10964 10965 10966 10967 10968 10969 10970 10971 10972 10973 10974 10975 10976 10977 10978 10979 10980 10981 10982 10983 10984 10985 10986 10987 10988 10989 10990 10991 10992 10993 10994 10995 10996 10997 10998 10999 11000 11001 11002 11003 11004 11005 11006 11007 11008 11009 11010 11011 11012 11013 11014 11015 11016 11017 11018 11019 11020 11021 11022 11023 11024 11025 11026 11027 11028 11029 11030 11031 11032 11033 11034 11035 11036 11037 11038 11039 11040 11041 11042 11043 11044 11045 11046 11047 11048 11049 11050 11051 11052 11053 11054 11055 11056 11057 11058 11059 11060 11061 11062 11063 11064 11065 11066 11067 11068 11069 11070 11071 11072 11073 11074 11075 11076 11077 11078 11079 11080 11081 11082 11083 11084 11085 11086 11087 11088 11089 11090 11091 11092 11093 11094 11095 11096 11097 11098 11099 11100 11101 11102 11103 11104 11105 11106 11107 11108 11109 11110 11111 11112 11113 11114 11115 11116 11117 11118 11119 11120 11121 11122 11123 11124 11125 11126 11127 11128 11129 11130 11131 11132 11133 11134 11135 11136 11137 11138 11139 11140 11141 11142 11143 11144 11145 11146 11147 11148 11149 11150 11151 11152 11153 11154 11155 11156 11157 11158 11159 11160 11161 11162 11163 11164 11165 11166 11167 11168 11169 11170 11171 11172 11173 11174 11175 11176 11177 11178 11179 11180 11181 11182 11183 11184 11185 11186 11187 11188 11189 11190 11191 11192 11193 11194 11195 11196 11197 11198 11199 11200 11201 11202 11203 11204 11205 11206 11207 11208 11209 11210 11211 11212 11213 11214 11215 11216 11217 11218 11219 11220 11221 11222 11223 11224 11225 11226 11227 11228 11229 11230 11231 11232 11233 11234 11235 11236 11237 11238 11239 11240 11241 11242 11243 11244 11245 11246 11247 11248 11249 11250 11251 11252 11253 11254 11255 11256 11257 11258 11259 11260 11261 11262 11263 11264 11265 11266 11267 11268 11269 11270 11271 11272 11273 11274 11275 11276 11277 11278 11279 11280 11281 11282 11283 11284 11285 11286 11287 11288 11289 11290 11291 11292 11293 11294 11295 11296 11297 11298 11299 11300 11301 11302 11303 11304 11305 11306 11307 11308 11309 11310 11311 11312 11313 11314 11315 11316 11317 11318 11319 11320 11321 11322 11323 11324 11325 11326 11327 11328 11329 11330 11331 11332 11333 11334 11335 11336 11337 11338 11339 11340 11341 11342 11343 11344 11345 11346 11347 11348 11349 11350 11351 11352 11353 11354 11355 11356 11357 11358 11359 11360 11361 11362 11363 11364 11365 11366 11367 11368 11369 11370 11371 11372 11373 11374 11375 11376 11377 11378 11379 11380 11381 11382 11383 11384 11385 11386 11387 11388 11389 11390 11391 11392 11393 11394 11395 11396 11397 11398 11399 11400 11401 11402 11403 11404 11405 11406 11407 11408 11409 11410 11411 11412 11413 11414 11415 11416 11417 11418 11419 11420 11421 11422 11423 11424 11425 11426 11427 11428 11429 11430 11431 11432 11433 11434 11435 11436 11437 11438 11439 11440 11441 11442 11443 11444 11445 11446 11447 11448 11449 11450 11451 11452 11453 11454 11455 11456 11457 11458 11459 11460 11461 11462 11463 11464 11465 11466 11467 11468 11469 11470 11471 11472 11473 11474 11475 11476 11477 11478 11479 11480 11481 11482 11483 11484 11485 11486 11487 11488 11489 11490 11491 11492 11493 11494 11495 11496 11497 11498 11499 11500 11501 11502 11503 11504 11505 11506 11507 11508 11509 11510 11511 11512 11513 11514 11515 11516 11517 11518 11519 11520 11521 11522 11523 11524 11525 11526 11527 11528 11529 11530 11531 11532 11533 11534 11535 11536 11537 11538 11539 11540 11541 11542 11543 11544 11545 11546 11547 11548 11549 11550 11551 11552 11553 11554 11555 11556 11557 11558 11559 11560 11561 11562 11563 11564 11565 11566 11567 11568 11569 11570 11571 11572 11573 11574 11575 11576 11577 11578 11579 11580 11581 11582 11583 11584 11585 11586 11587 11588 11589 11590 11591 11592 11593 11594 11595 11596 11597 11598 11599 11600 11601 11602 11603 11604 11605 11606 11607 11608 11609 11610 11611 11612 11613 11614 11615 11616 11617 11618 11619 11620 11621 11622 11623 11624 11625 11626 11627 11628 11629 11630 11631 11632 11633 11634 11635 11636 11637 11638 11639 11640 11641 11642 11643 11644 11645 11646 11647 11648 11649 11650 11651 11652 11653 11654 11655 11656 11657 11658 11659 11660 11661 11662 11663 11664 11665 11666 11667 11668 11669 11670 11671 11672 11673 11674 11675 11676 11677 11678 11679 11680 11681 11682 11683 11684 11685 11686 11687 11688 11689 11690 11691 11692 11693 11694 11695 11696 11697 11698 11699 11700 11701 11702 11703 11704 11705 11706 11707 11708 11709 11710 11711 11712 11713 11714 11715 11716 11717 11718 11719 11720 11721 11722 11723 11724 11725 11726 11727 11728 11729 11730 11731 11732 11733 11734 11735 11736 11737 11738 11739 11740 11741 11742 11743 11744 11745 11746 11747 11748 11749 11750 11751 11752 11753 11754 11755 11756 11757 11758 11759 11760 11761 11762 11763 11764 11765 11766 11767 11768 11769 11770 11771 11772 11773 11774 11775 11776 11777 11778 11779 11780 11781 11782 11783 11784 11785 11786 11787 11788 11789 11790 11791 11792 11793 11794 11795 11796 11797 11798 11799 11800 11801 11802 11803 11804 11805 11806 11807 11808 11809 11810 11811 11812 11813 11814 11815 11816 11817 11818 11819 11820 11821 11822 11823 11824 11825 11826 11827 11828 11829 11830 11831 11832 11833 11834 11835 11836 11837 11838 11839 11840 11841 11842 11843 11844 11845 11846 11847 11848 11849 11850 11851 11852 11853 11854 11855 11856 11857 11858 11859 11860 11861 11862 11863 11864 11865 11866 11867 11868 11869 11870 11871 11872 11873 11874 11875 11876 11877 11878 11879 11880 11881 11882 11883 11884 11885 11886 11887 11888 11889 11890 11891 11892 11893 11894 11895 11896 11897 11898 11899 11900 11901 11902 11903 11904 11905 11906 11907 11908 11909 11910 11911 11912 11913 11914 11915 11916 11917 11918 11919 11920 11921 11922 11923 11924 11925 11926 11927 11928 11929 11930 11931 11932 11933 11934 11935 11936 11937 11938 11939 11940 11941 11942 11943 11944 11945 11946 11947 11948 11949 11950 11951 11952 11953 11954 11955 11956 11957 11958 11959 11960 11961 11962 11963 11964 11965 11966 11967 11968 11969 11970 11971 11972 11973 11974 11975 11976 11977 11978 11979 11980 11981 11982 11983 11984 11985 11986 11987 11988 11989 11990 11991 11992 11993 11994 11995 11996 11997 11998 11999 12000 12001 12002 12003 12004 12005 12006 12007 12008 12009 12010 12011 12012 12013 12014 12015 12016 12017 12018 12019 12020 12021 12022 12023 12024 12025 12026 12027 12028 12029 12030 12031 12032 12033 12034 12035 12036 12037 12038 12039 12040 12041 12042 12043 12044 12045 12046 12047 12048 12049 12050 12051 12052 12053 12054 12055 12056 12057 12058 12059 12060 12061 12062 12063 12064 12065 12066 12067 12068 12069 12070 12071 12072 12073 12074 12075 12076 12077 12078 12079 12080 12081 12082 12083 12084 12085 12086 12087 12088 12089 12090 12091 12092 12093 12094 12095 12096 12097 12098 12099 12100 12101 12102 12103 12104 12105 12106 12107 12108 12109 12110 12111 12112 12113 12114 12115 12116 12117 12118 12119 12120 12121 12122 12123 12124 12125 12126 12127 12128 12129 12130 12131 12132 12133 12134 12135 12136 12137 12138 12139 12140 12141 12142 12143 12144 12145 12146 12147 12148 12149 12150 12151 12152 12153 12154 12155 12156 12157 12158 12159 12160 12161 12162 12163 12164 12165 12166 12167 12168 12169 12170 12171 12172 12173 12174 12175 12176 12177 12178 12179 12180 12181 12182 12183 12184 12185 12186 12187 12188 12189 12190 12191 12192 12193 12194 12195 12196 12197 12198 12199 12200 12201 12202 12203 12204 12205 12206 12207 12208 12209 12210 12211 12212 12213 12214 12215 12216 12217 12218 12219 12220 12221 12222 12223 12224 12225 12226 12227 12228 12229 12230 12231 12232 12233 12234 12235 12236 12237 12238 12239 12240 12241 12242 12243 12244 12245 12246 12247 12248 12249 12250 12251 12252 12253 12254 12255 12256 12257 12258 12259 12260 12261 12262 12263 12264 12265 12266 12267 12268 12269 12270 12271 12272 12273 12274 12275 12276 12277 12278 12279 12280 12281 12282 12283 12284 12285 12286 12287 12288 12289 12290 12291 12292 12293 12294 12295 12296 12297 12298 12299 12300 12301 12302 12303 12304 12305 12306 12307 12308 12309 12310 12311 12312 12313 12314 12315 12316 12317 12318 12319 12320 12321 12322 12323 12324 12325 12326 12327 12328 12329 12330 12331 12332 12333 12334 12335 12336 12337 12338 12339 12340 12341 12342 12343 12344 12345 12346 12347 12348 12349 12350 12351 12352 12353 12354 12355 12356 12357 12358 12359 12360 12361 12362 12363 12364 12365 12366 12367 12368 12369 12370 12371 12372 12373 12374 12375 12376 12377 12378 12379 12380 12381 12382 12383 12384 12385 12386 12387 12388 12389 12390 12391 12392 12393 12394 12395 12396 12397 12398 12399 12400 12401 12402 12403 12404 12405 12406 12407 12408 12409 12410 12411 12412 12413 12414 12415 12416 12417 12418 12419 12420 12421 12422 12423 12424 12425 12426 12427 12428 12429 12430 12431 12432 12433 12434 12435 12436 12437 12438 12439 12440 12441 12442 12443 12444 12445 12446 12447 12448 12449 12450 12451 12452 12453 12454 12455 12456 12457 12458 12459 12460 12461 12462 12463 12464 12465 12466 12467 12468 12469 12470 12471 12472 12473 12474 12475 12476 12477 12478 12479 12480 12481 12482 12483 12484 12485 12486 12487 12488 12489 12490 12491 12492 12493 12494 12495 12496 12497 12498 12499 12500 12501 12502 12503 12504 12505 12506 12507 12508 12509 12510 12511 12512 12513 12514 12515 12516 12517 12518 12519 12520 12521 12522 12523 12524 12525 12526 12527 12528 12529 12530 12531 12532 12533 12534 12535 12536 12537 12538 12539 12540 12541 12542 12543 12544 12545 12546 12547 12548 12549 12550 12551 12552 12553 12554 12555 12556 12557 12558 12559 12560 12561 12562 12563 12564 12565 12566 12567 12568 12569 12570 12571 12572 12573 12574 12575 12576 12577 12578 12579 12580 12581 12582 12583 12584 12585 12586 12587 12588 12589 12590 12591 12592 12593 12594 12595 12596 12597 12598 12599 12600 12601 12602 12603 12604 12605 12606 12607 12608 12609 12610 12611 12612 12613 12614 12615 12616 12617 12618 12619 12620 12621 12622 12623 12624 12625 12626 12627 12628 12629 12630 12631 12632 12633 12634 12635 12636 12637 12638 12639 12640 12641 12642 12643 12644 12645 12646 12647 12648 12649 12650 12651 12652 12653 12654 12655 12656 12657 12658 12659 12660 12661 12662 12663 12664 12665 12666 12667 12668 12669 12670 12671 12672 12673 12674 12675 12676 12677 12678 12679 12680 12681 12682 12683 12684 12685 12686 12687 12688 12689 12690 12691 12692 12693 12694 12695 12696 12697 12698 12699 12700 12701 12702 12703 12704 12705 12706 12707 12708 12709 12710 12711 12712 12713 12714 12715 12716 12717 12718 12719 12720 12721 12722 12723 12724 12725 12726 12727 12728 12729 12730 12731 12732 12733 12734 12735 12736 12737 12738 12739 12740 12741 12742 12743 12744 12745 12746 12747 12748 12749 12750 12751 12752 12753 12754 12755 12756 12757 12758 12759 12760 12761 12762 12763 12764 12765 12766 12767 12768 12769 12770 12771 12772 12773 12774 12775 12776 12777 12778 12779 12780 12781 12782 12783 12784 12785 12786 12787 12788 12789 12790 12791 12792 12793 12794 12795 12796 12797 12798 12799 12800 12801 12802 12803 12804 12805 12806 12807 12808 12809 12810 12811 12812 12813 12814 12815 12816 12817 12818 12819 12820 12821 12822 12823 12824 12825 12826 12827 12828 12829 12830 12831 12832 12833 12834 12835 12836 12837 12838 12839 12840 12841 12842 12843 12844 12845 12846 12847 12848 12849 12850 12851 12852 12853 12854 12855 12856 12857 12858 12859 12860 12861 12862 12863 12864 12865 12866 12867 12868 12869 12870 12871 12872 12873 12874 12875 12876 12877 12878 12879 12880 12881 12882 12883 12884 12885 12886 12887 12888 12889 12890 12891 12892 12893 12894 12895 12896 12897 12898 12899 12900 12901 12902 12903 12904 12905 12906 12907 12908 12909 12910 12911 12912 12913 12914 12915 12916 12917 12918 12919 12920 12921 12922 12923 12924 12925 12926 12927 12928 12929 12930 12931 12932 12933 12934 12935 12936 12937 12938 12939 12940 12941 12942 12943 12944 12945 12946 12947 12948 12949 12950 12951 12952 12953 12954 12955 12956 12957 12958 12959 12960 12961 12962 12963 12964 12965 12966 12967 12968 12969 12970 12971 12972 12973 12974 12975 12976 12977 12978 12979 12980 12981 12982 12983 12984 12985 12986 12987 12988 12989 12990 12991 12992 12993 12994 12995 12996 12997 12998 12999 13000 13001 13002 13003 13004 13005 13006 13007 13008 13009 13010 13011 13012 13013 13014 13015 13016 13017 13018 13019 13020 13021 13022 13023 13024 13025 13026 13027 13028 13029 13030 13031 13032 13033 13034 13035 13036 13037 13038 13039 13040 13041 13042 13043 13044 13045 13046 13047 13048 13049 13050 13051 13052 13053 13054 13055 13056 13057 13058 13059 13060 13061 13062 13063 13064 13065 13066 13067 13068 13069 13070 13071 13072 13073 13074 13075 13076 13077 13078 13079 13080 13081 13082 13083 13084 13085 13086 13087 13088 13089 13090 13091 13092 13093 13094 13095 13096 13097 13098 13099 13100 13101 13102 13103 13104 13105 13106 13107 13108 13109 13110 13111 13112 13113 13114 13115 13116 13117 13118 13119 13120 13121 13122 13123 13124 13125 13126 13127 13128 13129 13130 13131 13132 13133 13134 13135 13136 13137 13138 13139 13140 13141 13142 13143 13144 13145 13146 13147 13148 13149 13150 13151 13152 13153 13154 13155 13156 13157 13158 13159 13160 13161 13162 13163 13164 13165 13166 13167 13168 13169 13170 13171 13172 13173 13174 13175 13176 13177 13178 13179 13180 13181 13182 13183 13184 13185 13186 13187 13188 13189 13190 13191 13192 13193 13194 13195 13196 13197 13198 13199 13200 13201 13202 13203 13204 13205 13206 13207 13208 13209 13210 13211 13212 13213 13214 13215 13216 13217 13218 13219 13220 13221 13222 13223 13224 13225 13226 13227 13228 13229 13230 13231 13232 13233 13234 13235 13236 13237 13238 13239 13240 13241 13242 13243 13244 13245 13246 13247 13248 13249 13250 13251 13252 13253 13254 13255 13256 13257 13258 13259 13260 13261 13262 13263 13264 13265 13266 13267 13268 13269 13270 13271 13272 13273 13274 13275 13276 13277 13278 13279 13280 13281 13282 13283 13284 13285 13286 13287 13288 13289 13290 13291 13292 13293 13294 13295 13296 13297 13298 13299 13300 13301 13302 13303 13304 13305 13306 13307 13308 13309 13310 13311 13312 13313 13314 13315 13316 13317 13318 13319 13320 13321 13322 13323 13324 13325 13326 13327 13328 13329 13330 13331 13332 13333 13334 13335 13336 13337 13338 13339 13340 13341 13342 13343 13344 13345 13346 13347 13348 13349 13350 13351 13352 13353 13354 13355 13356 13357 13358 13359 13360 13361 13362 13363 13364 13365 13366 13367 13368 13369 13370 13371 13372 13373 13374 13375 13376 13377 13378 13379 13380 13381 13382 13383 13384 13385 13386 13387 13388 13389 13390 13391 13392 13393 13394 13395 13396 13397 13398 13399 13400 13401 13402 13403 13404 13405 13406 13407 13408 13409 13410 13411 13412 13413 13414 13415 13416 13417 13418 13419 13420 13421 13422 13423 13424 13425 13426 13427 13428 13429 13430 13431 13432 13433 13434 13435 13436 13437 13438 13439 13440 13441 13442 13443 13444 13445 13446 13447 13448 13449 13450 13451 13452 13453 13454 13455 13456 13457 13458 13459 13460 13461 13462 13463 13464 13465 13466 13467 13468 13469 13470 13471 13472 13473 13474 13475 13476 13477 13478 13479 13480 13481 13482 13483 13484 13485 13486 13487 13488 13489 13490 13491 13492 13493 13494 13495 13496 13497 13498 13499 13500 13501 13502 13503 13504 13505 13506 13507 13508 13509 13510 13511 13512 13513 13514 13515 13516 13517 13518 13519 13520 13521 13522 13523 13524 13525 13526 13527 13528 13529 13530 13531 13532 13533 13534 13535 13536 13537 13538 13539 13540 13541 13542 13543 13544 13545 13546 13547 13548 13549 13550 13551 13552 13553 13554 13555 13556 13557 13558 13559 13560 13561 13562 13563 13564 13565 13566 13567 13568 13569 13570 13571 13572 13573 13574 13575 13576 13577 13578 13579 13580 13581 13582 13583 13584 13585 13586 13587 13588 13589 13590 13591 13592 13593 13594 13595 13596 13597 13598 13599 13600 13601 13602 13603 13604 13605 13606 13607 13608 13609 13610 13611 13612 13613 13614 13615 13616 13617 13618 13619 13620 13621 13622 13623 13624 13625 13626 13627 13628 13629 13630 13631 13632 13633 13634 13635 13636 13637 13638 13639 13640 13641 13642 13643 13644 13645 13646 13647 13648 13649 13650 13651 13652 13653 13654 13655 13656 13657 13658 13659 13660 13661 13662 13663 13664 13665 13666 13667 13668 13669 13670 13671 13672 13673 13674 13675 13676 13677 13678 13679 13680 13681 13682 13683 13684 13685 13686 13687 13688 13689 13690 13691 13692 13693 13694 13695 13696 13697 13698 13699 13700 13701 13702 13703 13704 13705 13706 13707 13708 13709 13710 13711 13712 13713 13714 13715 13716 13717 13718 13719 13720 13721 13722 13723 13724 13725 13726 13727 13728 13729 13730 13731 13732 13733 13734 13735 13736 13737 13738 13739 13740 13741 13742 13743 13744 13745 13746 13747 13748 13749 13750 13751 13752 13753 13754 13755 13756 13757 13758 13759 13760 13761 13762 13763 13764 13765 13766 13767 13768 13769 13770 13771 13772 13773 13774 13775 13776 13777 13778 13779 13780 13781 13782 13783 13784 13785 13786 13787 13788 13789 13790 13791 13792 13793 13794 13795 13796 13797 13798 13799 13800 13801 13802 13803 13804 13805 13806 13807 13808 13809 13810 13811 13812 13813 13814 13815 13816 13817 13818 13819 13820 13821 13822 13823 13824 13825 13826 13827 13828 13829 13830 13831 13832 13833 13834 13835 13836 13837 13838 13839 13840 13841 13842 13843 13844 13845 13846 13847 13848 13849 13850 13851 13852 13853 13854 13855 13856 13857 13858 13859 13860 13861 13862 13863 13864 13865 13866 13867 13868 13869 13870 13871 13872 13873 13874 13875 13876 13877 13878 13879 13880 13881 13882 13883 13884 13885 13886 13887 13888 13889 13890 13891 13892 13893 13894 13895 13896 13897 13898 13899 13900 13901 13902 13903 13904 13905 13906 13907 13908 13909 13910 13911 13912 13913 13914 13915 13916 13917 13918 13919 13920 13921 13922 13923 13924 13925 13926 13927 13928 13929 13930 13931 13932 13933 13934 13935 13936 13937 13938 13939 13940 13941 13942 13943 13944 13945 13946 13947 13948 13949 13950 13951 13952 13953 13954 13955 13956 13957 13958 13959 13960 13961 13962 13963 13964 13965 13966 13967 13968 13969 13970 13971 13972 13973 13974 13975 13976 13977 13978 13979 13980 13981 13982 13983 13984 13985 13986 13987 13988 13989 13990 13991 13992 13993 13994 13995 13996 13997 13998 13999 14000 14001 14002 14003 14004 14005 14006 14007 14008 14009 14010 14011 14012 14013 14014 14015 14016 14017 14018 14019 14020 14021 14022 14023 14024 14025 14026 14027 14028 14029 14030 14031 14032 14033 14034 14035 14036 14037 14038 14039 14040 14041 14042 14043 14044 14045 14046 14047 14048 14049 14050 14051 14052 14053 14054 14055 14056 14057 14058 14059 14060 14061 14062 14063 14064 14065 14066 14067 14068 14069 14070 14071 14072 14073 14074 14075 14076 14077 14078 14079 14080 14081 14082 14083 14084 14085 14086 14087 14088 14089 14090 14091 14092 14093 14094 14095 14096 14097 14098 14099 14100 14101 14102 14103 14104 14105 14106 14107 14108 14109 14110 14111 14112 14113 14114 14115 14116 14117 14118 14119 14120 14121 14122 14123 14124 14125 14126 14127 14128 14129 14130 14131 14132 14133 14134 14135 14136 14137 14138 14139 14140 14141 14142 14143 14144 14145 14146 14147 14148 14149 14150 14151 14152 14153 14154 14155 14156 14157 14158 14159 14160 14161 14162 14163 14164 14165 14166 14167 14168 14169 14170 14171 14172 14173 14174 14175 14176 14177 14178 14179 14180 14181 14182 14183 14184 14185 14186 14187 14188 14189 14190 14191 14192 14193 14194 14195 14196 14197 14198 14199 14200 14201 14202 14203 14204 14205 14206 14207 14208 14209 14210 14211 14212 14213 14214 14215 14216 14217 14218 14219 14220 14221 14222 14223 14224 14225 14226 14227 14228 14229 14230 14231 14232 14233 14234 14235 14236 14237 14238 14239 14240 14241 14242 14243 14244 14245 14246 14247 14248 14249 14250 14251 14252 14253 14254 14255 14256 14257 14258 14259 14260 14261 14262 14263 14264 14265 14266 14267 14268 14269 14270 14271 14272 14273 14274 14275 14276 14277 14278 14279 14280 14281 14282 14283 14284 14285 14286 14287 14288 14289 14290 14291 14292 14293 14294 14295 14296 14297 14298 14299 14300 14301 14302 14303 14304 14305 14306 14307 14308 14309 14310 14311 14312 14313 14314 14315 14316 14317 14318 14319 14320 14321 14322 14323 14324 14325 14326 14327 14328 14329 14330 14331 14332 14333 14334 14335 14336 14337 14338 14339 14340 14341 14342 14343 14344 14345 14346 14347 14348 14349 14350 14351 14352 14353 14354 14355 14356 14357 14358 14359 14360 14361 14362 14363 14364 14365 14366 14367 14368 14369 14370 14371 14372 14373 14374 14375 14376 14377 14378 14379 14380 14381 14382 14383 14384 14385 14386 14387 14388 14389 14390 14391 14392 14393 14394 14395 14396 14397 14398 14399 14400 14401 14402 14403 14404 14405 14406 14407 14408 14409 14410 14411 14412 14413 14414 14415 14416 14417 14418 14419 14420 14421 14422 14423 14424 14425 14426 14427 14428 14429 14430 14431 14432 14433 14434 14435 14436 14437 14438 14439 14440 14441 14442 14443 14444 14445 14446 14447 14448 14449 14450 14451 14452 14453 14454 14455 14456 14457 14458 14459 14460 14461 14462 14463 14464 14465 14466 14467 14468 14469 14470 14471 14472 14473 14474 14475 14476 14477 14478 14479 14480 14481 14482 14483 14484 14485 14486 14487 14488 14489 14490 14491 14492 14493 14494 14495 14496 14497 14498 14499 14500 14501 14502 14503 14504 14505 14506 14507 14508 14509 14510 14511 14512 14513 14514 14515 14516 14517 14518 14519 14520 14521 14522 14523 14524 14525 14526 14527 14528 14529 14530 14531 14532 14533 14534 14535 14536 14537 14538 14539 14540 14541 14542 14543 14544 14545 14546 14547 14548 14549 14550 14551 14552 14553 14554 14555 14556 14557 14558 14559 14560 14561 14562 14563 14564 14565 14566 14567 14568 14569 14570 14571 14572 14573 14574 14575 14576 14577 14578 14579 14580 14581 14582 14583 14584 14585 14586 14587 14588 14589 14590 14591 14592 14593 14594 14595 14596 14597 14598 14599 14600 14601 14602 14603 14604 14605 14606 14607 14608 14609 14610 14611 14612 14613 14614 14615 14616 14617 14618 14619 14620 14621 14622 14623 14624 14625 14626 14627 14628 14629 14630 14631 14632 14633 14634 14635 14636 14637 14638 14639 14640 14641 14642 14643 14644 14645 14646 14647 14648 14649 14650 14651 14652 14653 14654 14655 14656 14657 14658 14659 14660 14661 14662 14663 14664 14665 14666 14667 14668 14669 14670 14671 14672 14673 14674 14675 14676 14677 14678 14679 14680 14681 14682 14683 14684 14685 14686 14687 14688 14689 14690 14691 14692 14693 14694 14695 14696 14697 14698 14699 14700 14701 14702 14703 14704 14705 14706 14707 14708 14709 14710 14711 14712 14713 14714 14715 14716 14717 14718 14719 14720 14721 14722 14723 14724 14725 14726 14727 14728 14729 14730 14731 14732 14733 14734 14735 14736 14737 14738 14739 14740 14741 14742 14743 14744 14745 14746 14747 14748 14749 14750 14751 14752 14753 14754 14755 14756 14757 14758 14759 14760 14761 14762 14763 14764 14765 14766 14767 14768 14769 14770 14771 14772 14773 14774 14775 14776 14777 14778 14779 14780 14781 14782 14783 14784 14785 14786 14787 14788 14789 14790 14791 14792 14793 14794 14795 14796 14797 14798 14799 14800 14801 14802 14803 14804 14805 14806 14807 14808 14809 14810 14811 14812 14813 14814 14815 14816 14817 14818 14819 14820 14821 14822 14823 14824 14825 14826 14827 14828 14829 14830 14831 14832 14833 14834 14835 14836 14837 14838 14839 14840 14841 14842 14843 14844 14845 14846 14847 14848 14849 14850 14851 14852 14853 14854 14855 14856 14857 14858 14859 14860 14861 14862 14863 14864 14865 14866 14867 14868 14869 14870 14871 14872 14873 14874 14875 14876 14877 14878 14879 14880 14881 14882 14883 14884 14885 14886 14887 14888 14889 14890 14891 14892 14893 14894 14895 14896 14897 14898 14899 14900 14901 14902 14903 14904 14905 14906 14907 14908 14909 14910 14911 14912 14913 14914 14915 14916 14917 14918 14919 14920 14921 14922 14923 14924 14925 14926 14927 14928 14929 14930 14931 14932 14933 14934 14935 14936 14937 14938 14939 14940 14941 14942 14943 14944 14945 14946 14947 14948 14949 14950 14951 14952 14953 14954 14955 14956 14957 14958 14959 14960 14961 14962 14963 14964 14965 14966 14967 14968 14969 14970 14971 14972 14973 14974 14975 14976 14977 14978 14979 14980 14981 14982 14983 14984 14985 14986 14987 14988 14989 14990 14991 14992 14993 14994 14995 14996 14997 14998 14999 15000 15001 15002 15003 15004 15005 15006 15007 15008 15009 15010 15011 15012 15013 15014 15015 15016 15017 15018 15019 15020 15021 15022 15023 15024 15025 15026 15027 15028 15029 15030 15031 15032 15033 15034 15035 15036 15037 15038 15039 15040 15041 15042 15043 15044 15045 15046 15047 15048 15049 15050 15051 15052 15053 15054 15055 15056 15057 15058 15059 15060 15061 15062 15063 15064 15065 15066 15067 15068 15069 15070 15071 15072 15073 15074 15075 15076 15077 15078 15079 15080 15081 15082 15083 15084 15085 15086 15087 15088 15089 15090 15091 15092 15093 15094 15095 15096 15097 15098 15099 15100 15101 15102 15103 15104 15105 15106 15107 15108 15109 15110 15111 15112 15113 15114 15115 15116 15117 15118 15119 15120 15121 15122 15123 15124 15125 15126 15127 15128 15129 15130 15131 15132 15133 15134 15135 15136 15137 15138 15139 15140 15141 15142 15143 15144 15145 15146 15147 15148 15149 15150 15151 15152 15153 15154 15155 15156 15157 15158 15159 15160 15161 15162 15163 15164 15165 15166 15167 15168 15169 15170 15171 15172 15173 15174 15175 15176 15177 15178 15179 15180 15181 15182 15183 15184 15185 15186 15187 15188 15189 15190 15191 15192 15193 15194 15195 15196 15197 15198 15199 15200 15201 15202 15203 15204 15205 15206 15207 15208 15209 15210 15211 15212 15213 15214 15215 15216 15217 15218 15219 15220 15221 15222 15223 15224 15225 15226 15227 15228 15229 15230 15231 15232 15233 15234 15235 15236 15237 15238 15239 15240 15241 15242 15243 15244 15245 15246 15247 15248 15249 15250 15251 15252 15253 15254 15255 15256 15257 15258 15259 15260 15261 15262 15263 15264 15265 15266 15267 15268 15269 15270 15271 15272 15273 15274 15275 15276 15277 15278 15279 15280 15281 15282 15283 15284 15285 15286 15287 15288 15289 15290 15291 15292 15293 15294 15295 15296 15297 15298 15299 15300 15301 15302 15303 15304 15305 15306 15307 15308 15309 15310 15311 15312 15313 15314 15315 15316 15317 15318 15319 15320 15321 15322 15323 15324 15325 15326 15327 15328 15329 15330 15331 15332 15333
|
commit ab6184298083541d37356f1f5656380d0cda047c
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Mar 2 18:03:23 2010 +0000
Release 1.2.0 (stable)
configure.ac | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
commit 3c9a24f4a78cd676e635ad32df639b57e65e3be7
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Mar 2 18:03:13 2010 +0000
Update the NEWS file
NEWS | 42 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 42 insertions(+)
commit 9e4c008117da6b36237608bd896fb164577ef314
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Mar 2 19:17:28 2010 +0000
build: Include test-script-model.json
The Model conformance test for ClutterScript parsing requires the file
to be inside the dist.
tests/data/Makefile.am | 1 +
1 file changed, 1 insertion(+)
commit 2d51432e52745d9484cf2d54567c2f95670ea5ae
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Mar 2 19:29:22 2010 +0000
build: Add test-animator-3.json to EXTRA_DIST
tests/data/Makefile.am | 1 +
1 file changed, 1 insertion(+)
commit 2f68949962d964e38a640581e232c4b673ce3023
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Mar 2 19:09:20 2010 +0000
conformance: Use g_assert_no_error() if available
GLib 2.20 has a nice g_assert() wrapper which will print out the GError
if it's not NULL.
tests/conform/test-animator.c | 15 +++++++++++++++
tests/conform/test-model.c | 5 +++++
tests/conform/test-script-parser.c | 30 ++++++++++++++++++++++++++++++
3 files changed, 50 insertions(+)
commit 048fcea988446af1ce18356eb1718f85088e73c8
Author: Neil Roberts <neil@linux.intel.com>
Date: Tue Mar 2 18:30:31 2010 +0000
clutter-actor: Initialize with the identity matrix in get_transform
The documentation and name of the get_transformation_matrix function
implies that 'matrix' is purely an out parameter. However it wasn't
initializing the matrix before calling the 'apply_transform' virtual
so it was basically just a wrapper for the virtual. The virtual
assumes the matrix parameter is in/out and applies the actor's
transformation on top of any existing transformations. This causes
unexpected semantics that are inconsistent with the documentation.
clutter/clutter-actor.c | 2 ++
1 file changed, 2 insertions(+)
commit e550755f3dc13f11a9d956bb9b52294ea33c8da6
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Mar 2 17:47:13 2010 +0000
text-field: Cast GString->len to integer before printing
The compiler will warn on 64bit architectures when using %d for
printing a gsize field.
http://bugzilla.openedhand.com/show_bug.cgi?id=2019
tests/interactive/test-text-field.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
commit 38a24144980bd0c6d717f39eb5d215d3abc30ef5
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Mar 2 14:04:54 2010 +0000
glx tfp: make clutter_glx_texture_pixmap_update_area cheap
This changes clutter_glx_texture_pixmap_update_area so it defers the
call to glXBindTexImageEXT until our pre "paint" signal handler which
makes clutter_glx_texture_pixmap_update_area cheap to call.
The hope is that mutter can switch to reporting raw damage updates to
ClutterGLXTexturePixmap and we can use these to queue clipped redraws.
clutter/glx/clutter-glx-texture-pixmap.c | 186 +++++++++++++++----------------
1 file changed, 89 insertions(+), 97 deletions(-)
commit c0d5af5de5bcc504abeb81a7f7a1ec0f696b574d
Author: Robert Bragg <robert@linux.intel.com>
Date: Mon Nov 30 17:47:55 2009 +0000
Adds initial clipped redraw support to Clutter
A new (internal only currently) API, _clutter_actor_queue_clipped_redraw
can be used to queue a redraw along with a clip rectangle in actor
coordinates. This clip rectangle propagates up to the stage and clutter
backend which may optionally use the information to optimize stage
redraws. The GLX backend in particular may scissor the next redraw to
the clip rectangle and use GLX_MESA_copy_sub_buffer to present the stage
subregion.
The intention is that any actors that can naturally determine the bounds
of updates should queue clipped redraws to reduce the cost of updating
small regions of the screen.
Notes:
» If GLX_MESA_copy_sub_buffer isn't available then the GLX backend
ignores any clip rectangles.
» queuing multiple clipped redraws will result in the bounding box of
each clip rectangle being used.
» If a clipped redraw has a height > 300 pixels then it's promoted into
a full stage redraw, so that the GPU doesn't end up blocking too long
waiting for the vsync to reach the optimal position to avoid tearing.
» Note: no empirical data was used to come up with this threshold so
we may need to tune this.
» Currently only ClutterX11TexturePixmap makes use of this new API. This
is done via a new "queue-damage-redraw" signal that is emitted when
the pixmap is updated. The default handler queues a clipped redraw
with the assumption that the pixmap is being painted as a rectangle
covering the actors transformed allocation. If you subclass
ClutterX11TexturePixmap and change how it's painted you now also
need to override the signal handler and queue your own redraw.
Technically this is a semantic break, but it's assumed that no one
is currently doing this.
This still leaves a few unsolved issues with regards to optimizing sub
stage redraws that need to be addressed in further work so this can only
be considered a stepping stone a this point:
» Because we have no reliable way to determine if the painting of any
given actor is being modified any optimizations implemented using
_clutter_actor_queue_redraw_with_clip must be overridable by a
subclass, and technically must be opt-in for existing classes to avoid
a change in semantics. E.g. consider that a user connects to the paint
signal for ClutterTexture and paints a circle instead of a rectangle.
In this case any original logic to queue clipped redraws would be
incorrect.
» Currently only the implementation of an actor has enough information
with which to queue clipped redraws. E.g. It is not possible for
generic code in clutter-actor.c to queue a clipped redraw when hiding
an actor because actors have no way to report a "paint box". (remember
actors can draw outside their allocation and actors with depth may
also be projected outside of their allocation)
» The current plan is to add a actor_class->get_paint_cuboid()
virtual so actors can report a bounding cube for everything they
would draw in their current state and use that to queue clipped
redraws against the stage by projecting the paint cube into stage
coordinates.
» Our heuristics for promoting clipped redraws into full redraws to
avoid blocking the GPU while we wait for the vsync need improving:
» vsync issues aren't relevant for redirected/composited applications
so they should use different heuristics. In this case we instead
need to trade off the cost of blitting when using glXCopySubBuffer
vs promoting to a full redraw and flipping instead.
clutter/clutter-actor.c | 402 ++++++++++++++++++++++-------
clutter/clutter-actor.h | 20 ++
clutter/clutter-debug.h | 6 +-
clutter/clutter-main.c | 4 +-
clutter/clutter-private.h | 39 ++-
clutter/clutter-stage-window.c | 29 +++
clutter/clutter-stage-window.h | 82 +++---
clutter/clutter-stage.c | 64 +++++
clutter/glx/clutter-backend-glx.c | 185 ++------------
clutter/glx/clutter-backend-glx.h | 5 +
clutter/glx/clutter-glx-texture-pixmap.c | 14 +-
clutter/glx/clutter-stage-glx.c | 426 +++++++++++++++++++++++++++++++
clutter/glx/clutter-stage-glx.h | 8 +-
clutter/x11/clutter-x11-texture-pixmap.c | 172 ++++++++++---
14 files changed, 1116 insertions(+), 340 deletions(-)
commit 09d8460a5c3f905573378172ed553fd57d49913e
Author: Øyvind Kolås <pippin@linux.intel.com>
Date: Tue Mar 2 17:03:03 2010 +0000
animator: s/clutter_animator_run/clutter_animator_start/
This is consistent with choice of words in clutter_timeline_start and
makes the API less surprising.
clutter/clutter-animator.c | 4 ++--
clutter/clutter-animator.h | 2 +-
doc/reference/clutter/clutter-sections.txt | 2 +-
tests/interactive/test-animator.c | 2 +-
4 files changed, 5 insertions(+), 5 deletions(-)
commit 9d1ea81dc51464e86d7a4eee27874136e9e34cad
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Mar 2 02:07:40 2010 +0000
cogl debug: Adds missing guards around debug cogl_args[]
commit 511e5ceb516dc accidentally removed the #ifdef COGL_ENABLE_DEBUG
guards around the "cogl-debug" and "cogl-no-debug" cogl_args[] which
this patch restores.
clutter/cogl/cogl/cogl-debug.c | 2 ++
1 file changed, 2 insertions(+)
commit aba6c5acc7f1cb15f92666d1681a95b5a805efaf
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Mar 2 15:08:01 2010 +0000
flow-layout: Provide a preferred size
The FlowLayout fails to provide a preferred size in case no sizing is
specified on one axis. It should, instead, have the preferred size of
the sum of its children, depending on the orientation property.
http://bugzilla.openedhand.com/show_bug.cgi?id=2013
clutter/clutter-flow-layout.c | 92 +++++++++++++++++++++++++++---------
tests/interactive/test-flow-layout.c | 20 ++++----
2 files changed, 82 insertions(+), 30 deletions(-)
commit e3fba5f2e80a4c72cc4ef0c193a0b6569e1d8cbf
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Mar 2 13:32:46 2010 +0000
build: Require libtool >= 2.2.6
Update the configure.ac to use the LT_INIT() instead of the deprecated
AC_PROG_LIBTOOL. This also allows us to depend on a specific libtool
version, namely one that doesn't thoroughly suck.
configure.ac | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
commit 9a55ddc7c36185b31120b5c5275dac60f5926d8d
Author: Øyvind Kolås <pippin@linux.intel.com>
Date: Tue Mar 2 12:38:51 2010 +0000
animator: restore accidentally removed break
In 505e5966 a break statement was removed by accident, causing the
animator to enter infinite loops if no initial key is present.
clutter/clutter-animator.c | 2 ++
1 file changed, 2 insertions(+)
commit 3a84af0106522e46d930fc81013c86465357dc89
Merge: 0baeabc2a a2573ad2a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Mar 2 12:25:45 2010 +0000
Merge branch 'eglnative-update'
* eglnative-update:
eglnative: Add CLUTTER_FB_DEVICE
eglnative: Update implementation
commit a2573ad2ad39931d2a817d4585d87b70c3f86526
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Mar 1 11:38:41 2010 +0000
eglnative: Add CLUTTER_FB_DEVICE
Some EGL drivers for embedded devices require a specific framebuffer
device to be opened and passed to eglCreateWindowSurface(). Since it's
optional, we can provide an environment variabled called
CLUTTER_FB_DEVICE that can be used to specify the path of the device
to be opened.
http://bugzilla.openedhand.com/show_bug.cgi?id=1997
clutter/eglnative/clutter-backend-egl.c | 59 ++++++++++++++++++++++++++++++---
clutter/eglnative/clutter-backend-egl.h | 3 ++
2 files changed, 57 insertions(+), 5 deletions(-)
commit b4e9f40394fb2e4d63bccc9f9d932a5da87cc2a2
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sat Feb 27 09:42:42 2010 +0000
eglnative: Update implementation
Update the EGL native framebuffer backend to be 1.2-ready:
» create the EGL context and the surface inside the create_context()
implementation so that a context is always available
» simplify the StageWindow implementation
» clean up old code
http://bugzilla.openedhand.com/show_bug.cgi?id=1997
clutter/eglnative/clutter-backend-egl.c | 186 +++++++++++++++++++++--
clutter/eglnative/clutter-backend-egl.h | 20 ++-
clutter/eglnative/clutter-event-egl.c | 60 +++++---
clutter/eglnative/clutter-stage-egl.c | 259 +++++++-------------------------
clutter/eglnative/clutter-stage-egl.h | 8 +-
5 files changed, 275 insertions(+), 258 deletions(-)
commit 0baeabc2aa1a4b2a1908b7acd15f947cb8b1eb4d
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date: Mon Mar 1 13:54:03 2010 -0500
Fall back in _cogl_texture_2d_new_from_bitmap()
Just like _cogl_texture_2d_new_with_size(),
_cogl_texture_2d_new_from_bitmap() needs to check if an unsliced
texture can be created at the given size, or if hardware
limitations prevent this.
http://bugzilla.openedhand.com/show_bug.cgi?id=2014
Signed-off-by: Neil Roberts <neil@linux.intel.com>
clutter/cogl/cogl/cogl-texture-2d.c | 3 +++
1 file changed, 3 insertions(+)
commit 74a27bbb1c0ae12ba937d215323d5a716781cb1b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Mar 2 09:53:55 2010 +0000
docs: Documentation fixes
Let's see if we can get a 100% coverage for Clutter too.
clutter/clutter-animatable.h | 9 +++++
clutter/clutter-animator.c | 5 +--
clutter/clutter-box.c | 3 ++
clutter/clutter-box.h | 49 +++++++++++++++++++++++++++
clutter/clutter-container.h | 9 +++++
clutter/clutter-device-manager.h | 13 ++++++--
clutter/clutter-media.h | 9 +++++
clutter/clutter-scriptable.h | 9 +++++
clutter/clutter-version.h.in | 38 +++++++++++++++++++++
clutter/eglnative/clutter-backend-egl.c | 7 ++++
clutter/glx/clutter-glx-texture-pixmap.c | 53 +++++++++++++++---------------
clutter/glx/clutter-glx-texture-pixmap.h | 16 +++++++++
clutter/x11/clutter-backend-x11.c | 8 +++++
clutter/x11/clutter-x11-texture-pixmap.c | 36 +++++++++++++++-----
clutter/x11/clutter-x11-texture-pixmap.h | 20 ++++++++++-
clutter/x11/clutter-x11.h | 8 ++++-
doc/reference/clutter/Makefile.am | 4 ---
doc/reference/clutter/clutter-sections.txt | 4 +--
18 files changed, 252 insertions(+), 48 deletions(-)
commit c0a553163b5e82cb70e956e802d7f9b61bb13948
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Mar 1 18:08:41 2010 +0000
cogl: Support any format in cogl_read_pixels
cogl_read_pixels() no longer asserts that the format passed in is
RGBA_8888 but instead accepts any format. The appropriate GL enums for
the format are passed to glReadPixels so OpenGL should be perform a
conversion if neccessary.
It currently assumes glReadPixels will always give us premultiplied
data. This will usually be correct because the result of the default
blending operations for Cogl ends up with premultiplied data in the
framebuffer. However it is possible for the framebuffer to be in
whatever format depending on what CoglMaterial is used to render to
it. Eventually we may want to add a way for an application to inform
Cogl that the framebuffer is not premultiplied in case it is being
used for some special purpose.
If the requested format is not premultiplied then Cogl will convert
it. The tests have been changed to read the data as premultiplied so
that they won't be affected by the conversion. Picking in Clutter has
been changed to use COGL_PIXEL_FORMAT_RGB_888 because it doesn't need
the alpha component. clutter_stage_read_pixels is left unchanged
because the application can't specify a format for that so it seems to
make most sense to store unpremultiplied values.
http://bugzilla.openedhand.com/show_bug.cgi?id=1959
clutter/clutter-main.c | 10 +--
clutter/cogl/cogl/cogl.c | 84 +++++++++++++++-------
clutter/cogl/cogl/cogl.h | 8 ++-
tests/conform/test-cogl-backface-culling.c | 2 +-
tests/conform/test-cogl-blend-strings.c | 4 +-
tests/conform/test-cogl-materials.c | 2 +-
tests/conform/test-cogl-multitexture.c | 2 +-
tests/conform/test-cogl-offscreen.c | 8 +--
tests/conform/test-cogl-premult.c | 2 +-
tests/conform/test-cogl-readpixels.c | 26 ++++++-
tests/conform/test-cogl-texture-mipmaps.c | 2 +-
tests/conform/test-cogl-vertex-buffer-contiguous.c | 10 +--
tests/conform/test-cogl-vertex-buffer-interleved.c | 2 +-
tests/conform/test-cogl-vertex-buffer-mutability.c | 4 +-
tests/conform/test-cogl-viewport.c | 2 +-
15 files changed, 113 insertions(+), 55 deletions(-)
commit 505e5966e4ee649b7528cdf0410a4e52d59a25ec
Author: Øyvind Kolås <pippin@linux.intel.com>
Date: Mon Mar 1 18:35:01 2010 +0000
Do not overwrite the initial key, making ease-in work as expected.
Fixes bug #2008, where a property with ease-in would jump instead of
start at the properties initial value.
clutter/clutter-animator.c | 9 ---------
1 file changed, 9 deletions(-)
commit 7d0ad7ac1b8f6b8a92d0c97180d2885a3a18bcdd
Author: Bastian Winkler <buz@netbuz.org>
Date: Mon Mar 1 17:00:41 2010 +0100
animator: Remove redundant declaration in header file
clutter_animator_property_set_interpolation was declared twice in
clutter-animator.h
http://bugzilla.openedhand.com/show_bug.cgi?id=2012
clutter/clutter-animator.h | 5 -----
1 file changed, 5 deletions(-)
commit 53eecb8469855d17e863c2113a58f0b6e9c26729
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Mar 1 17:47:52 2010 +0000
docs: Add Animator.compute_value()
The clutter_animator_compute_value() has been added to the API, but it
is missing from the API reference.
doc/reference/clutter/clutter-sections.txt | 1 +
1 file changed, 1 insertion(+)
commit 1d9ddad9a3ee79d32091b12197bd18e0b283da22
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Mar 1 17:45:00 2010 +0000
docs: Fix syntax error in Model's documentation
A missing opening quote sign is breaking gtk-doc for ClutterModel.
clutter/clutter-model.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 1777a69f2f036e2ead5986a5c91f18480a14e4fd
Merge: 8146d8d08 7ffb62eab
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Mar 1 15:37:12 2010 +0000
Merge branch 'stage-min-size-rework'
* stage-min-size-rework:
docs: Update minimum size accessors
actor: Use the TOPLEVEL flag instead of a type check
[stage] Use min-width/height props for min size
commit 8146d8d08deafd6cf86238a4a8c2fa6149e5c691
Author: Robert Bragg <robert@linux.intel.com>
Date: Fri Feb 26 09:44:29 2010 +0000
profile: avoid segfault generating reports with no stats
The clutter-profile.c print_report() code would crash if no stats had
been gathered because uprof would return NULL for the "Redrawing" timer
which we then dereferenced.
This changes the code to start by checking for the "Mainloop",
"Redrawing" and "Do Pick" timers and if none are present it returns
immediately without generating any report.
clutter/clutter-profile.c | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
commit b9a91594f4b37388222b587eaea7618ea8c78381
Author: Robert Bragg <robert@linux.intel.com>
Date: Fri Feb 26 09:48:43 2010 +0000
build: Fixes out of tree builds
When building the gobject introspection data the build wasn't able to
find clutter/clutter-json.h so this adds $(top_builddir) to INCLUDES.
clutter/Makefile.am | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
commit 79acb088e7f6916fb77a6341c22f9022c0f50208
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Mar 1 12:56:10 2010 +0000
Remove mentions of the FSF address
Since using addresses that might change is something that finally
the FSF acknowledge as a plausible scenario (after changing address
twice), the license blurb in the source files should use the URI
for getting the license in case the library did not come with it.
Not that URIs cannot possibly change, but at least it's easier to
set up a redirection at the same place.
As a side note: this commit closes the oldes bug in Clutter's bug
report tool.
http://bugzilla.openedhand.com/show_bug.cgi?id=521
clutter/clutter-actor.c | 7 +++----
clutter/clutter-actor.h | 3 ++-
clutter/clutter-alpha.c | 6 ++----
clutter/clutter-backend.c | 11 ++++++-----
clutter/clutter-behaviour-depth.c | 4 +---
clutter/clutter-behaviour-ellipse.c | 10 +---------
clutter/clutter-behaviour-opacity.c | 4 +---
clutter/clutter-behaviour-path.c | 11 ++++++-----
clutter/clutter-behaviour-rotate.c | 4 +---
clutter/clutter-behaviour-scale.c | 4 +---
clutter/clutter-behaviour.c | 4 +---
clutter/clutter-bezier.c | 4 +---
clutter/clutter-cairo-texture.c | 6 ++----
clutter/clutter-cairo-texture.h | 7 +++----
clutter/clutter-child-meta.c | 4 +---
clutter/clutter-color.c | 4 +---
clutter/clutter-container.c | 6 +++---
clutter/clutter-event.c | 6 +++---
clutter/clutter-feature.c | 6 +++---
clutter/clutter-fixed.c | 6 +++---
clutter/clutter-frame-source.c | 6 +++---
clutter/clutter-group.c | 6 +++---
clutter/clutter-id-pool.c | 6 +++---
clutter/clutter-keysyms.h | 6 +++---
clutter/clutter-list-model.c | 6 +++---
clutter/clutter-main.c | 6 +++---
clutter/clutter-model.c | 6 +++---
clutter/clutter-private.h | 6 +++---
clutter/clutter-rectangle.c | 6 +++---
clutter/clutter-score.c | 6 +++---
clutter/clutter-script-parser.c | 6 +++---
clutter/clutter-script-private.h | 6 +++---
clutter/clutter-script.c | 6 +++---
clutter/clutter-scriptable.c | 6 +++---
clutter/clutter-shader-types.c | 6 +++---
clutter/clutter-shader.c | 6 +++---
clutter/clutter-stage.c | 6 +++---
clutter/clutter-texture.c | 6 +++---
clutter/clutter-timeline.c | 6 +++---
clutter/clutter-timeout-pool.c | 6 +++---
clutter/clutter-units.c | 6 +++---
clutter/clutter-util.c | 6 +++---
clutter/clutter-version.h.in | 6 +++---
clutter/clutter.h | 6 +++---
clutter/cogl/cogl/cogl-atlas-texture-private.h | 6 +++---
clutter/cogl/cogl/cogl-atlas-texture.c | 6 +++---
clutter/cogl/cogl/cogl-atlas.c | 6 +++---
clutter/cogl/cogl/cogl-atlas.h | 6 +++---
clutter/cogl/cogl/cogl-bitmap-fallback.c | 6 +++---
clutter/cogl/cogl/cogl-bitmap-pixbuf.c | 6 +++---
clutter/cogl/cogl/cogl-bitmap-private.h | 6 +++---
clutter/cogl/cogl/cogl-bitmap.c | 6 +++---
clutter/cogl/cogl/cogl-bitmap.h | 6 +++---
clutter/cogl/cogl/cogl-blend-string.c | 6 +++---
clutter/cogl/cogl/cogl-blend-string.h | 6 +++---
clutter/cogl/cogl/cogl-buffer-private.h | 6 +++---
clutter/cogl/cogl/cogl-buffer.c | 6 +++---
clutter/cogl/cogl/cogl-buffer.h | 6 +++---
clutter/cogl/cogl/cogl-clip-stack.c | 6 +++---
clutter/cogl/cogl/cogl-clip-stack.h | 6 +++---
clutter/cogl/cogl/cogl-color.c | 6 +++---
clutter/cogl/cogl/cogl-color.h | 6 +++---
clutter/cogl/cogl/cogl-context.c | 6 +++---
clutter/cogl/cogl/cogl-context.h | 6 +++---
clutter/cogl/cogl/cogl-debug.c | 6 +++---
clutter/cogl/cogl/cogl-debug.h | 6 +++---
clutter/cogl/cogl/cogl-deprecated.h | 6 +++---
clutter/cogl/cogl/cogl-feature-private.c | 6 +++---
clutter/cogl/cogl/cogl-feature-private.h | 6 +++---
clutter/cogl/cogl/cogl-fixed.c | 6 +++---
clutter/cogl/cogl/cogl-fixed.h | 6 +++---
clutter/cogl/cogl/cogl-framebuffer-private.h | 6 +++---
clutter/cogl/cogl/cogl-framebuffer.c | 6 +++---
clutter/cogl/cogl/cogl-handle.h | 6 +++---
clutter/cogl/cogl/cogl-internal.h | 6 +++---
clutter/cogl/cogl/cogl-journal-private.h | 6 +++---
clutter/cogl/cogl/cogl-journal.c | 6 +++---
clutter/cogl/cogl/cogl-material-private.h | 6 +++---
clutter/cogl/cogl/cogl-material.c | 6 +++---
clutter/cogl/cogl/cogl-material.h | 6 +++---
clutter/cogl/cogl/cogl-matrix-mesa.c | 6 +++---
clutter/cogl/cogl/cogl-matrix-mesa.h | 6 +++---
clutter/cogl/cogl/cogl-matrix-private.h | 6 +++---
clutter/cogl/cogl/cogl-matrix-stack.c | 6 +++---
clutter/cogl/cogl/cogl-matrix-stack.h | 6 +++---
clutter/cogl/cogl/cogl-matrix.c | 6 +++---
clutter/cogl/cogl/cogl-matrix.h | 6 +++---
clutter/cogl/cogl/cogl-offscreen.h | 6 +++---
clutter/cogl/cogl/cogl-path.c | 6 +++---
clutter/cogl/cogl/cogl-path.h | 6 +++---
clutter/cogl/cogl/cogl-pixel-buffer-private.h | 6 +++---
clutter/cogl/cogl/cogl-pixel-buffer.c | 6 +++---
clutter/cogl/cogl/cogl-pixel-buffer.h | 6 +++---
clutter/cogl/cogl/cogl-primitives.c | 6 +++---
clutter/cogl/cogl/cogl-primitives.h | 6 +++---
clutter/cogl/cogl/cogl-profile.h | 6 +++---
clutter/cogl/cogl/cogl-shader.h | 6 +++---
clutter/cogl/cogl/cogl-spans.c | 6 +++---
clutter/cogl/cogl/cogl-spans.h | 6 +++---
clutter/cogl/cogl/cogl-sub-texture-private.h | 6 +++---
clutter/cogl/cogl/cogl-sub-texture.c | 6 +++---
clutter/cogl/cogl/cogl-texture-2d-private.h | 6 +++---
clutter/cogl/cogl/cogl-texture-2d-sliced-private.h | 6 +++---
clutter/cogl/cogl/cogl-texture-2d-sliced.c | 6 +++---
clutter/cogl/cogl/cogl-texture-2d.c | 6 +++---
clutter/cogl/cogl/cogl-texture-driver.h | 6 +++---
clutter/cogl/cogl/cogl-texture-private.h | 6 +++---
clutter/cogl/cogl/cogl-texture.c | 6 +++---
clutter/cogl/cogl/cogl-texture.h | 6 +++---
clutter/cogl/cogl/cogl-types.h | 6 +++---
clutter/cogl/cogl/cogl-util.c | 6 +++---
clutter/cogl/cogl/cogl-util.h | 6 +++---
clutter/cogl/cogl/cogl-vertex-buffer-private.h | 6 +++---
clutter/cogl/cogl/cogl-vertex-buffer.c | 6 +++---
clutter/cogl/cogl/cogl-vertex-buffer.h | 6 +++---
clutter/cogl/cogl/cogl.c | 6 +++---
clutter/cogl/cogl/cogl.h | 6 +++---
clutter/cogl/cogl/driver/gl/cogl-context-driver.c | 6 +++---
clutter/cogl/cogl/driver/gl/cogl-context-driver.h | 6 +++---
clutter/cogl/cogl/driver/gl/cogl-defines.h.in | 6 +++---
clutter/cogl/cogl/driver/gl/cogl-feature-functions.h | 6 +++---
clutter/cogl/cogl/driver/gl/cogl-program.c | 6 +++---
clutter/cogl/cogl/driver/gl/cogl-program.h | 6 +++---
clutter/cogl/cogl/driver/gl/cogl-shader-private.h | 6 +++---
clutter/cogl/cogl/driver/gl/cogl-shader.c | 6 +++---
clutter/cogl/cogl/driver/gl/cogl-texture-driver.c | 6 +++---
clutter/cogl/cogl/driver/gl/cogl.c | 6 +++---
clutter/cogl/cogl/driver/gles/cogl-context-driver.c | 6 +++---
clutter/cogl/cogl/driver/gles/cogl-context-driver.h | 6 +++---
clutter/cogl/cogl/driver/gles/cogl-defines.h.in | 6 +++---
clutter/cogl/cogl/driver/gles/cogl-feature-functions.h | 6 +++---
clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.c | 6 +++---
clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.h | 6 +++---
clutter/cogl/cogl/driver/gles/cogl-program.c | 6 +++---
clutter/cogl/cogl/driver/gles/cogl-program.h | 6 +++---
clutter/cogl/cogl/driver/gles/cogl-shader-private.h | 6 +++---
clutter/cogl/cogl/driver/gles/cogl-shader.c | 6 +++---
clutter/cogl/cogl/driver/gles/cogl-texture-driver.c | 6 +++---
clutter/cogl/cogl/driver/gles/cogl.c | 6 +++---
clutter/cogl/cogl/winsys/cogl-eglnative.c | 6 +++---
clutter/cogl/cogl/winsys/cogl-eglx.c | 6 +++---
clutter/cogl/cogl/winsys/cogl-fruity.c | 6 +++---
clutter/cogl/cogl/winsys/cogl-glx.c | 6 +++---
clutter/cogl/cogl/winsys/cogl-osx.c | 6 +++---
clutter/cogl/cogl/winsys/cogl-sdl.c | 6 +++---
clutter/cogl/cogl/winsys/cogl-win32.c | 6 +++---
clutter/cogl/cogl/winsys/cogl-winsys.h | 6 +++---
clutter/eglnative/clutter-backend-egl.h | 6 +++---
clutter/eglnative/clutter-egl-headers.h | 6 +++---
clutter/eglnative/clutter-egl.h | 6 +++---
clutter/eglnative/clutter-event-egl.c | 6 +++---
clutter/eglx/clutter-backend-egl.h | 6 +++---
clutter/eglx/clutter-egl-headers.h | 6 +++---
clutter/eglx/clutter-eglx.h | 6 +++---
clutter/fruity/clutter-backend-fruity.h | 6 +++---
clutter/fruity/clutter-fruity.h | 6 +++---
clutter/glx/clutter-backend-glx.c | 6 +++---
clutter/glx/clutter-backend-glx.h | 6 +++---
clutter/glx/clutter-event-glx.c | 6 +++---
clutter/glx/clutter-event-glx.h | 6 +++---
clutter/glx/clutter-glx-texture-pixmap.c | 6 +++---
clutter/glx/clutter-glx-texture-pixmap.h | 6 +++---
clutter/glx/clutter-glx.h | 6 +++---
clutter/glx/clutter-stage-glx.c | 6 +++---
clutter/glx/clutter-stage-glx.h | 6 +++---
clutter/osx/clutter-backend-osx.c | 6 +++---
clutter/osx/clutter-backend-osx.h | 6 +++---
clutter/osx/clutter-event-osx.c | 6 +++---
clutter/osx/clutter-osx.h | 6 +++---
clutter/osx/clutter-stage-osx.c | 6 +++---
clutter/osx/clutter-stage-osx.h | 6 +++---
clutter/win32/clutter-backend-win32.c | 6 +++---
clutter/win32/clutter-backend-win32.h | 6 +++---
clutter/win32/clutter-event-win32.c | 6 +++---
clutter/win32/clutter-stage-win32.c | 6 +++---
clutter/win32/clutter-stage-win32.h | 6 +++---
clutter/win32/clutter-win32.h | 6 +++---
clutter/x11/clutter-backend-x11-private.h | 6 +++---
clutter/x11/clutter-backend-x11.c | 6 +++---
clutter/x11/clutter-backend-x11.h | 6 +++---
clutter/x11/clutter-event-x11.c | 6 +++---
clutter/x11/clutter-stage-x11.c | 6 +++---
clutter/x11/clutter-stage-x11.h | 6 +++---
clutter/x11/clutter-x11-texture-pixmap.c | 6 +++---
clutter/x11/clutter-x11-texture-pixmap.h | 6 +++---
clutter/x11/clutter-x11.h | 6 +++---
186 files changed, 543 insertions(+), 570 deletions(-)
commit 23867875a14ab6d7288d6a67c67b20a1f136be94
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Mar 1 11:12:16 2010 +0000
build: Remove unused checks on platform functions
There is no need for us to check for low-level functions and header
files, especially since we haven't been checking the results until
now. This makes cross-compiling slightly more bearable.
clutter/clutter-private.h | 8 ++------
clutter/x11/clutter-backend-x11.c | 9 +++++----
clutter/x11/clutter-stage-x11.c | 4 ++++
configure.ac | 12 +++---------
4 files changed, 14 insertions(+), 19 deletions(-)
commit ce6a24eb2b5eaba4b60f82855af7a24d0f5afdad
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sun Feb 28 10:59:29 2010 +0000
actor: Call unparent() in destroy
If the actor is an internal child of another actor then we should call
unparent() when destroying it, like clutter_actor_reparent() does;
otherwise we'll leak the actor, since the parent holds a reference to
it.
http://bugzilla.openedhand.com/show_bug.cgi?id=2009
clutter/clutter-actor.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
commit 7ffb62eab939de46b8234243cab6f6c4b40d60ec
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sat Feb 27 18:56:34 2010 +0000
docs: Update minimum size accessors
Expand the documentation for set_minimum_size() and get_minimum_size(),
and add introspection annotations for get_minimum_size().
clutter/clutter-stage.c | 41 +++++++++++++++++++++++++++++------------
1 file changed, 29 insertions(+), 12 deletions(-)
commit 52ba9a1800302f887ebe6d2e7aa7ab4503ea6e5e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sat Feb 27 18:24:17 2010 +0000
actor: Use the TOPLEVEL flag instead of a type check
We can use the internal private CLUTTER_ACTOR_IS_TOPLEVEL flag, which is
set only on Stages.
clutter/clutter-actor.c | 19 +++++++++++++++----
1 file changed, 15 insertions(+), 4 deletions(-)
commit cd62dfbd1419870fb6792bcab87ea8e7d0e760f5
Author: Chris Lord <chris@linux.intel.com>
Date: Fri Feb 26 18:36:38 2010 +0000
[stage] Use min-width/height props for min size
Instead of shadowing these properties with different properties with the
same names on stage, actually use them. Behaviour should be identical,
except the minimum stage size can now be enforced by setting the
min-width/height properties as well as using the set_minimum_size
function.
clutter/clutter-actor.c | 13 ++++--
clutter/clutter-stage.c | 102 ++++++++++++++++++++++++++++++++----------------
2 files changed, 77 insertions(+), 38 deletions(-)
commit 9f67e4826c9880732e4f2a74ac42f729e7e80042
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Feb 26 16:43:02 2010 +0000
docs: Update --enable-cogl-debug description
The 'no' value is not the default any more. The 'minimum' value is
always the default, regardless of the release status.
README | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
commit 62f2961f8a9b2974e0a7a11ea534f0b14f8fef1a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Feb 26 15:12:27 2010 +0000
docs: Unicode-ify NEWS
NEWS | 1302 +++++++++++++++++++++++++++++++++---------------------------------
1 file changed, 651 insertions(+), 651 deletions(-)
commit c8c62af0cf5d33f3fe3e4aab44ed49363263252c
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Feb 26 15:00:47 2010 +0000
build: More options for Automake
Require automake >= 1.10, and add the following options:
» dist-bzip2: create a bz2 tarball in the dist process
» check-news: check that we changed the NEWS file prior to dist,
to avoid another release without NEWS updates, like 1.1.10
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit e0f04efa411c0987db32c056958ad2c7cf5b6736
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Feb 26 10:36:17 2010 +0000
device: When changing the stage, unset the pointer actor
If we do not unset the Stage we will have stale data, and the Crossing
event when re-entering a Stage will not be emitted, as the actor under
the pointer might be the same as before.
clutter/clutter-input-device.c | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
commit 5d8346829585bb4b6d4617a232f87e3dab4eee5f
Author: Neil Roberts <neil@linux.intel.com>
Date: Tue Feb 23 14:45:44 2010 +0000
cogl-vertex-buffer: Add support for unsigned int indices
This adds a COGL_INDICES_TYPE_UNSIGNED_INT enum value so that unsigned
ints can be used with cogl_vertex_buffer_indices_new. Unsigned ints
are not supported in core on GLES so a feature flag has also been
added to advertise this. GLES only sets the feature if the
GL_OES_element_index_uint extension is available. It is an error to
call indices_new() with unsigned ints unless the feature is
advertised.
http://bugzilla.openedhand.com/show_bug.cgi?id=1998
clutter/cogl/cogl/cogl-types.h | 6 +++++-
clutter/cogl/cogl/cogl-vertex-buffer.c | 17 ++++++++++++++++-
clutter/cogl/cogl/cogl-vertex-buffer.h | 8 ++++++++
clutter/cogl/cogl/driver/gl/cogl.c | 3 ++-
clutter/cogl/cogl/driver/gles/cogl-feature-functions.h | 6 ++++++
5 files changed, 37 insertions(+), 3 deletions(-)
commit 67d9d928147aa59905960480a5d0b4c19c9d1920
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Feb 25 23:23:53 2010 +0000
docs: Document the "columns" syntax for ClutterModel
Like we do for other classes implementing custom properties, we should
document the syntax of the "columns" scriptable property of ClutterModel.
clutter/clutter-model.c | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
commit 70d7bad98ba50a657204ee356fd5ac5ccf4e8bea
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Feb 25 23:15:59 2010 +0000
conformance: Use g_test_verbose() for logging
Protect g_print() calls behind the g_test_verbose() check, to avoid
unwanted output during the conformance test run.
tests/conform/test-model.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
commit 96c31bbf0ea14c7cb6eaa824a6d5cf66d58b8d5b
Author: Bastian Winkler <buz@netbuz.org>
Date: Thu Feb 25 23:47:49 2010 +0100
model: Implement ClutterScriptable interface
Allow a ClutterModel to be constructed through the ClutterScript API.
Currently this allows a model to be generated like like this:
{
"id" : "test-model",
"type" : "ClutterListModel",
"columns" : [
[ "text-column", "gchararray" ],
[ "int-column", "gint" ],
[ "actor-column", "ClutterRectangle" ]
]
}
where 'columns' is an array containing arrays of column-name,
column-type pairs.
http://bugzilla.openedhand.com/show_bug.cgi?id=2007
.gitignore | 1 +
clutter/clutter-model.c | 105 +++++++++++++++++++++++++++++++++++++-
tests/conform/test-conform-main.c | 1 +
tests/conform/test-model.c | 34 ++++++++++++
tests/data/test-script-model.json | 9 ++++
5 files changed, 149 insertions(+), 1 deletion(-)
commit 63279f827e9d4e517c3dc88633a8b5ed47fbd74e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Feb 25 22:50:38 2010 +0000
docs: gtk-doc fixes for Animator
Fix the syntax for:
→ enumeration values
→ return values
→ @since tags
Also, fix the introspection annotations.
clutter/clutter-animator.c | 40 +++++++++++++++++++++++++++-------------
1 file changed, 27 insertions(+), 13 deletions(-)
commit 9db135c4eff97a3d3520cc05c9c3e85c153e8cc4
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Feb 25 18:28:37 2010 +0000
glx: Clean up sync-to-vblank mechanism discovery
The code has gotten really complicated to follow.
As soon as we have a sync-to-vblank mechanism we should just bail out.
Also, __GL_SYNC_TO_VBLANK (which is used by nVidia) should be assumed
equivalent to a CLUTTER_VBLANK_GLX_SWAP.
clutter/glx/clutter-backend-glx.c | 169 +++++++++++++++++++++-----------------
1 file changed, 92 insertions(+), 77 deletions(-)
commit 655cb966c08b0ec3a0b73ed1b18fc9ebbe9a93b8
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Feb 25 17:09:55 2010 +0000
docs: Add visual cue for Animator's key frames
We should explain what a "key frame" is for ClutterAnimator, possibly
with some sort of visual cue.
This allows me to demonstrate my poor skills at using Inkscape, as well
as my overall bad taste for graphics design.
clutter/clutter-animator.c | 21 ++
doc/reference/clutter/Makefile.am | 3 +
doc/reference/clutter/animator-key-frames.png | Bin 0 -> 11936 bytes
doc/reference/clutter/animator-key-frames.svg | 271 ++++++++++++++++++++++++++
4 files changed, 295 insertions(+)
commit d3d05261e6a394736757cebb5aad9b9267e7cf53
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Feb 25 14:22:08 2010 +0000
script-parser: Remove top-level types list
The top-level types list was comically out of date, and it was only
determining whether the type we were constructing was initially unowned
or a full object. We can safely replace it with a simple type check.
clutter/clutter-script-parser.c | 36 ++++--------------------------------
1 file changed, 4 insertions(+), 32 deletions(-)
commit c0be19eff65c4c72aa5c934cee3b582903db40f6
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Feb 25 14:20:05 2010 +0000
script-parser: Be more strict with "children" members
The "children" member for Container definitions should only reference
actors, and warn about any other type.
clutter/clutter-script-parser.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
commit c291d5a660f4ebac3dc57acad79b8153686a47f0
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Feb 25 14:08:57 2010 +0000
animator: Add a :timeline property
It would be useful to be able to share the Timeline across different
animator instances, or with different animation constructs. Also this
allows sharing definitions of Timelines in ClutterScript.
clutter/clutter-animator.c | 26 +++++++++++++++++++++++++-
1 file changed, 25 insertions(+), 1 deletion(-)
commit 641582533952c91576fb53724b70cbe6afb119db
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Feb 25 14:02:29 2010 +0000
animator: Remove NULL check in remove_key()
The arguments for remove_key() can be NULL, but there is an extraneous
assertion that fails if they are. The pre-conditions should match the
documentation, in this case.
clutter/clutter-animator.c | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
commit 4bc4c604e926b07af9ef4c02fd5f000fc939259b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Feb 25 12:45:02 2010 +0000
box: Let pack_at() create the ChildMeta, if any
A sub-class of ClutterBox might add ChildMeta support, and since
pack_at() does not go through clutter_container_add_actor(), we
need to manually call the create_child_meta() ourselves.
clutter/clutter-box.c | 5 +++++
1 file changed, 5 insertions(+)
commit 543e2d3f0609864cebb1f1eaf258108abab50770
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Feb 25 12:39:24 2010 +0000
container: Expose create and destroy ChildMeta methods
It is conceivable that Container implementations might add children
outside of the Container::add() implementation - e.g. for packing at
a specific index. Since the addition (and removal) might happen outside
the common path we need to expose all the API that is implicitly called
by ClutterContainer when adding and removing a child - namely the
ChildMeta creation and destruction.
clutter/clutter-container.c | 44 ++++++++++++++++++++++--------
clutter/clutter-container.h | 4 +++
doc/reference/clutter/clutter-sections.txt | 2 ++
3 files changed, 38 insertions(+), 12 deletions(-)
commit 31b5856d69e8d53de17270da7ab59dd290e2868a
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Feb 24 23:04:39 2010 +0000
test-cogl-blend-strings: Add some more tests
The adds tests for the remaining layer combine functions, the 1 minus
value operator and the TEXTURE_N source. Note however that Cogl
currently fails when parsing a TEXTURE_N source so the test is
commented out.
tests/conform/test-cogl-blend-strings.c | 46 +++++++++++++++++++++++++++++++++
1 file changed, 46 insertions(+)
commit 14999bec5e6b3d0aab057ef544f233d968e5cf67
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Feb 24 11:13:55 2010 +0000
gles2: Remove the special wrapper for glBindTexture
Previously the GLES2 backend needed a special wrapper for
glBindTexture because it needed to know the internal GL format of the
texture in order to correctly implement the GL_MODULATE texture env
mode. When GL_MODULATE is used then the RGB values are taken from the
previous texture layer rather than being fetched from the
texture. However since the material API was added Cogl no longer uses
the GL_MODULATE texture env mode but instead always uses GL_COMBINE.
Compiling the GLES2 backend broke since the more-texture-backends
branch merge because the cogl_get_internal_gl_format function was
removed and there was one place in GLES2 specific code that was using
this to bind the texture.
clutter/cogl/cogl/cogl-material.c | 10 ----------
clutter/cogl/cogl/cogl-texture-2d-sliced.c | 5 ++---
clutter/cogl/cogl/cogl-texture-driver.h | 7 -------
clutter/cogl/cogl/driver/gl/cogl-texture-driver.c | 12 ------------
clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.c | 22 ----------------------
clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.h | 12 ------------
.../cogl/cogl/driver/gles/cogl-texture-driver.c | 13 -------------
7 files changed, 2 insertions(+), 79 deletions(-)
commit eba07020c549ff0ede9982c6d911d67e353ca5a3
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Feb 24 16:50:32 2010 +0000
cogl-gles2-wrapper: Add support for the layer combine operations
The texture layer combine functions are now hard coded to GL_COMBINE
instead of GL_MODULATE. The combine function can be customized with
all the parameters of GL_COMBINE. A shader is generated to implement
the given parameters.
Currently it will try to generate code for the constant color but it
will use a uniform which does not exist.
clutter/cogl/cogl/cogl-blend-string.c | 9 -
clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.c | 382 +++++++++++++++++++--
clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.h | 16 +
3 files changed, 371 insertions(+), 36 deletions(-)
commit 02b952394ae9efe9e80b803e671bca1b1f711a9a
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Feb 24 10:42:59 2010 +0000
gles2: Implement a wrapper for glGetIntegerv(GL_MAX_TEXTURE_UNITS)
The GLES2 backend for Cogl is failing to compile because
GL_MAX_TEXTURE_UNITS is not defined. Let's define it and provide a
wrapper which uses GL_MAX_TEXTURE_IMAGE_UNITS or
COGL_GLES2_MAX_TEXTURE_UNITS, whichever is the smallest.
clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.c | 6 ++++++
clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.h | 2 ++
2 files changed, 8 insertions(+)
commit 3bc0672feff7c58326c4d50612bedf15aa9c02cb
Author: Øyvind Kolås <pippin@linux.intel.com>
Date: Thu Feb 25 12:30:07 2010 +0000
animator: handle no initial key
Fixing the crasher reported in bug #1995.
clutter/clutter-animator.c | 108 +++++++++++++++++++++++++++------------------
1 file changed, 65 insertions(+), 43 deletions(-)
commit d2db512788aac496a3741cb424caea41cf4357a1
Author: Øyvind Kolås <pippin@linux.intel.com>
Date: Thu Feb 25 11:48:44 2010 +0000
animator: added clutter_animator_compute_value
Allow querying the computed values of properties managed by a
ClutterAnimator.
clutter/clutter-animator.c | 212 ++++++++++++++++++++++++++++++++++++++++++---
clutter/clutter-animator.h | 12 +++
2 files changed, 211 insertions(+), 13 deletions(-)
commit e8d32fd153268c653c1adc5c66f30f0ee624b432
Author: Øyvind Kolås <pippin@linux.intel.com>
Date: Thu Feb 25 11:28:32 2010 +0000
animator: removed bogus arg in keys interpolation accessor
A bogus ClutterInterpolation argument had been carried from
clutter_animator_set_interpolation to clutter_animator_get_interpolation
in copy and paste.
clutter/clutter-animator.c | 16 +++++++---------
clutter/clutter-animator.h | 3 +--
2 files changed, 8 insertions(+), 11 deletions(-)
commit be8f53f229397e72fcf5a1bed245d555ea4747e9
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Feb 25 12:01:03 2010 +0000
animation: Fix a typo
This will teach me to check before compiling a version-dependent branch
that I'm actually using my jhbuild environment and not the system
libraries.
clutter/clutter-animation.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 26e22b2ede0eb0fdfbe3d96189cb2aa196da83f8
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Feb 25 10:22:36 2010 +0000
Conditionally use G_VALUE_COLLECT_INIT() macro
GLib 2.24 (but starting from the 2.23.2 unstable release) added a new
macro for collecting GValues from a va_list.
The newly added G_VALUE_COLLECT_INIT() macro should be used in place
of initializing the GValue and calling G_VALUE_COLLECT(), and improves
the collection performances by avoiding multiple checks, free and
initialization calls.
clutter/clutter-animation.c | 8 ++++++++
clutter/clutter-animator.c | 7 ++++++-
clutter/clutter-box.c | 7 +++++++
clutter/clutter-container.c | 7 +++++++
clutter/clutter-interval.c | 10 ++++++++++
clutter/clutter-layout-manager.c | 7 +++++++
6 files changed, 45 insertions(+), 1 deletion(-)
commit bd303d6efb7dfddbdf671f7c66ff5b73bb216f3f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Feb 24 16:43:17 2010 +0000
conform: Verify parsing of multiple properties
The ClutterAnimator support for parsing multiple properties should be
verified in the conformance test suite.
http://bugzilla.openedhand.com/show_bug.cgi?id=2003
.gitignore | 1 +
tests/conform/test-animator.c | 98 +++++++++++++++++++++++++++++++++++++++
tests/conform/test-conform-main.c | 1 +
tests/data/test-animator-3.json | 40 ++++++++++++++++
4 files changed, 140 insertions(+)
commit 59fd7e4a810f51bad31c2eafb609d545557ef264
Author: Bastian Winkler <buz@netbuz.org>
Date: Wed Feb 24 16:32:19 2010 +0100
animator: Append parsed animator keys to previously parsed ones
Reuse the GSList of the previously parsed property when building a
ClutterAnimator from script, otherwise only the last used property will
be used
http://bugzilla.openedhand.com/show_bug.cgi?id=2003
clutter/clutter-animator.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
commit fd6f6707433a8ab57c8232afee65038213d4120c
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Feb 24 14:40:22 2010 +0000
Post-release version bump to 1.1.15
configure.ac | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
commit 18659b008c800b2dde6e5a2453fba04f5990f2b7
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Feb 24 14:26:46 2010 +0000
Release 1.1.14
configure.ac | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
commit ec0c7fcd9bb734c3fd488b4b3ec3d469ba5e967f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Feb 24 14:23:58 2010 +0000
build: Use the right headers when enumerating them
The installed _HEADERS should be the public ones and the enumeration
types; repeating clutter-x11-texture-pixmap.h breaks with automake 1.11
and doesn't strictly make any sense.
http://bugzilla.openedhand.com/show_bug.cgi?id=2002
clutter/x11/Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 1370d72a7a1490c1ed60f02634f146995482116d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Feb 24 14:20:14 2010 +0000
Update NEWS file
NEWS | 44 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 44 insertions(+)
commit d1ca0e1b8f3dc6f5b5fec0ce3fba4702b9e75386
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Feb 24 12:23:46 2010 +0000
fixed layout: Store a back pointer to the Container
When set_container() is called with a NULL container we cannot use the
passed pointer to unset the CLUTTER_ACTOR_NO_LAYOUT flag. We should
store a back pointer to the container as object data (there's no need
to add a Private data structure in this case) and unset the flag on the
back pointer instead.
clutter/clutter-fixed-layout.c | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
commit 3a9d842164708baa8fe877d829f9e9cdcbde3831
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Feb 24 12:09:13 2010 +0000
conformance: Show the Stage to test invariants
We need to make the Stage set the MAPPED flag on itself if we want to
verify the MAPPED state. That was always the case - it just worked
before because the Stage was shown at least once.
tests/conform/test-actor-invariants.c | 9 +++++++++
1 file changed, 9 insertions(+)
commit aa8c8127059326c2d13d9f8dd6a294e787e3760e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Feb 24 12:08:07 2010 +0000
box: Do not short-circuit size negotiation for empty Boxes
The LayoutManager used might decide to have a default allocation or a
default preferred size when empty.
clutter/clutter-box.c | 31 -------------------------------
1 file changed, 31 deletions(-)
commit 523bab0868255e3f2b2910a60a868bffeb5bf64a
Author: Robert Bragg <robert@linux.intel.com>
Date: Thu Feb 11 11:45:36 2010 +0000
layout: allow wider use of the CLUTTER_ACTOR_NO_LAYOUT flag
Previously only ClutterGroup was able to set the CLUTTER_ACTOR_NO_LAYOUT
flag which allows clutter-actor.c to avoid a relayout when showing or
hiding fixed layout containers. Instead of it being the responsibility
of the container to set this flag this patch makes the layout manager
itself decide in the ::set_container method. This way both ClutterBox
and ClutterGroup can take advantage of the optimization.
clutter/clutter-fixed-layout.c | 17 +++++++++++++++++
clutter/clutter-group.c | 8 +++-----
2 files changed, 20 insertions(+), 5 deletions(-)
commit f21e649c80a3e0db5db7dc1128f7828535dbebc2
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Feb 24 11:28:44 2010 +0000
docs: Detail replacement for cogl_check_extension()
The cogl_check_extension() function has been deprecated, but it's easily
replaceable with a simple strstr() call.
clutter/cogl/cogl/cogl.h | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
commit 829d3f4bc5d083320f7f1b70d25e0115e1b6512f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Feb 24 11:27:51 2010 +0000
docs: Update NEWS and README
The NEWS file was not updated for the 1.1.12 release, so we need to
update it now.
The Release Notes section for Clutter and Cogl also needs some more
entries that escaped previous releases.
NEWS | 33 +++++++++++++++++++++++++++++++++
README | 21 +++++++++++++++++++++
2 files changed, 54 insertions(+)
commit d54af2363d390bf598aaa931821a46604d4f192a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Feb 24 10:20:10 2010 +0000
build: Use template for ClutterX11 enumerationt types
Clutter and Cogl use the template Makefile.am.enums for building the
enumeration GTypes from public headers, but ClutterX11 is not.
.gitignore | 13 ++++-----
clutter/x11/Makefile.am | 77 ++++++++++++++++++++-----------------------------
2 files changed, 37 insertions(+), 53 deletions(-)
commit eb35c446b119274658ba45937e02b5cfd1ec27fe
Author: Neil Roberts <neil@linux.intel.com>
Date: Tue Feb 23 22:06:59 2010 +0000
clutter-box: Layer new actors on top of all others at the same depth
g_list_insert_sorted inserts the new actor before all others that
compare equal so for the normal case when all actors have depth==0
this has the surprising behaviour of layering the actors in reverse
order. To fix this it now manually inserts the actor in the right
place by searching until it finds an actor at a higher depth and
inserting before that.
http://bugzilla.openedhand.com/show_bug.cgi?id=1988
clutter/clutter-box.c | 25 ++++++++++++++++++++++---
1 file changed, 22 insertions(+), 3 deletions(-)
commit da0315e4d666cc7cbfcfe7dab63d731df2a02338
Author: Neil Roberts <neil@linux.intel.com>
Date: Tue Feb 23 22:10:30 2010 +0000
box: Revert "Tweak the depth sorting function"
This reverts commit 939e56e2b12e5c96fa1173be33c2786ddfe57c25.
Changing the depth sort function to have inconsistent behaviour for
nodes that compare equal breaks the stability of g_list_sort. It ends
up so that every time clutter_container_sort_depth_order is called the
order of all actors with the same depth is reversed.
http://bugzilla.openedhand.com/show_bug.cgi?id=1988
clutter/clutter-box.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 1c65f2ee1e4595d3044d05cadb4f33fc2d03a6f3
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Feb 17 18:45:08 2010 +0000
cogl debug: Adds glViewport call tracing
To aid in the debugging of Clutter stage resize issues this adds a
COGL_DEBUG=opengl option that will trace "some select OpenGL calls"
(currently just glViewport calls)
clutter/cogl/cogl/cogl-debug.c | 2 ++
clutter/cogl/cogl/cogl-debug.h | 3 ++-
clutter/cogl/cogl/cogl-framebuffer.c | 6 ++++++
3 files changed, 10 insertions(+), 1 deletion(-)
commit fa3830ff20962dc72b676a5411a7fa1829a870cd
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Feb 17 17:53:28 2010 +0000
cogl debug: hint that all debugging paths are G_UNLIKELY
Most Cogl debugging code conditions are marked as G_UNLIKELY with the
intention of having the CPU branch prediction always assume the
path is disabled so having debugging support in release binaries has
negligible overhead.
This patch simply fixes a few cases where we weren't using G_UNLIKELY.
clutter/cogl/cogl/cogl-journal.c | 9 +++++----
clutter/cogl/cogl/cogl.c | 2 +-
2 files changed, 6 insertions(+), 5 deletions(-)
commit a58d6e8ee5e26185ff090845df68b61076275c21
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Feb 17 17:40:57 2010 +0000
cogl debug: Support "minimum" level debugging by default
We basically want all Clutter applications out in the wild to at least
have the basic set of COGL_DEBUG/--cogl-debug options available for
investigating issues.
configure.ac | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
commit 511e5ceb516dcbf2c406a7c2e8e0e56d2135fb0d
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Feb 17 14:38:11 2010 +0000
cogl debug: Makes COGL_DEBUG=all|verbose|help more useful
COGL_DEBUG=all wasn't previously useful as there are several options
that change the behaviour of Cogl and all together wouldn't help anyone
debug anything.
This patch makes it so COGL_DEBUG=all|verbose now only enables options
that don't change the behaviour of Cogl, i.e. they only affect the
amount of noise we'll print to a terminal.
In addition to that this patch also improves the output from
COGL_DEBUG=help so we now print a table of options including one liner
descriptions of what each option enables.
clutter/cogl/cogl/cogl-debug.c | 121 ++++++++++++++++++++++-------
clutter/cogl/cogl/cogl-debug.h | 37 ++++-----
clutter/cogl/cogl/cogl-texture-2d-sliced.c | 2 +-
3 files changed, 111 insertions(+), 49 deletions(-)
commit 939e56e2b12e5c96fa1173be33c2786ddfe57c25
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Feb 23 17:59:09 2010 +0000
box: Tweak the depth sorting function
By changing the depth sorting function we can achieve the same effect as
ClutterGroup but without the costly append+sort.
http://bugzilla.openedhand.com/show_bug.cgi?id=1988
clutter/clutter-box.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 95960ab902852e9c4830815b89d0a315fb9e4c50
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Feb 23 16:51:26 2010 +0000
cogl: Add deprecation annotation to CoglMaterial ref/unref
The G_GNUC_DEPRECATED annotation was missing from the material ref and
unref functions.
clutter/cogl/cogl/cogl-material.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
commit a9941e94995d2701783f055e69fba52a64f609e0
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Feb 16 20:08:35 2010 +0000
debug: Split debugging notes from behavioural modifiers
Some of the ClutterDebugFlags are not meant as a logging facility: they
actually change Clutter's behaviour at run-time.
It would be useful to have this distinction ratified, and thus split
ClutterDebugFlags into two: one DebugFlags for logging facilities and
another set of flags for behavioural changes.
This split is warranted because:
• it should be possible to do "CLUTTER_DEBUG=all" and only have
log messages on the output
• it should be possible to use behavioural modifiers even on a
Clutter that has been compiled without debugging messages
support
The commit adds two new debugging flags:
ClutterPickDebugFlags - controlled by the CLUTTER_PICK environment
variable
ClutterPaintDebugFlags - controlled by the CLUTTER_PAINT environment
variable
The PickDebugFlags are:
nop-picking
dump-pick-buffers
While the PaintDebugFlags is:
disable-swap-events
The mechanism is equivalent to the CLUTTER_DEBUG environment variable,
but it does not depend on the debug level selected when configuring and
compiling Clutter. The picking and painting debugging flags are
initialized at clutter_init() time.
http://bugzilla.openedhand.com/show_bug.cgi?id=1991
clutter/clutter-debug.h | 14 ++++++++---
clutter/clutter-main.c | 49 +++++++++++++++++++++++++++++++--------
clutter/glx/clutter-backend-glx.c | 6 +++--
3 files changed, 54 insertions(+), 15 deletions(-)
commit a9c307ff5d94489b30d7398ac80072fe7222a434
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Feb 17 22:16:17 2010 +0000
cogl-vertex-buffer: Fix the malloc fallback for indices
The size of the malloc'd buffer for indices when VBOs are not
available was too small so memory corruption would result if it was
used.
http://bugzilla.o-hand.com/show_bug.cgi?id=1996
clutter/cogl/cogl/cogl-vertex-buffer.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 14669657737cc1547fb0db261232e63bdd2755d9
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Feb 22 11:34:04 2010 +0000
device: Motion events compression should honour the device
The motion event compression should be affected by the device field of
the event; that is: we should compress motion events coming from the
same device.
clutter/clutter-stage.c | 29 ++++++++++++++++++++++-------
1 file changed, 22 insertions(+), 7 deletions(-)
commit 5ed4732737202c3051044455a91dc70c213fb800
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Feb 22 11:30:14 2010 +0000
device: Force ENTER on Stage with overlapping Actors
If an actor is on the boundary of a Stage and the pointer for a device
enters the Stage over that actor, the sequence of events currently is:
➔ ENTER (source: actor, related: NULL)
➔ MOTION
Thus the Stage never gets an ENTER event. This is a regression from
Clutter 1.0.
The correct sequence is:
➔ ENTER (source: stage, related: NULL)
➔ ENTER (source: actor, related: stage)
➔ MOTION
This also maps to the sequence of events sythesized by Clutter when
leaving the Stage through an actor overlapping the Stage boundary.
http://bugzilla.moblin.org/show_bug.cgi?id=9781
clutter/clutter-input-device.c | 27 +++++++++++++++++++++++----
1 file changed, 23 insertions(+), 4 deletions(-)
commit ee33357fd5d08be824a5ecb3161a79568afa4e5c
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Feb 18 16:58:29 2010 +0000
stage: Only clutter_stage_get_default() creates the default stage
The introduction of the StageManager in 0.8 implied that the first Stage
instance to be created was automatically assigned the status of "default
stage". This was all well and good, since the default stage was created
behind the curtains by the initialization sequence.
Now that the initialization sequence does not create a default stage any
longer, it means that the first stage created using clutter_stage_new()
gets to be the default, and all special and warm and fuzzy - which also
means that the first stage created by clutter_stage_new() cannot be
destroyed or handled as any other stage. Whoopsie.
Let's go back to the old semantics: the stage created by the first
invocation of clutter_stage_get_default() is the default stage, and
nothing else can be set as default. One day we'll be able to break the
API and the whole default stage business will be a thing of the past.
clutter/clutter-private.h | 10 ++++++----
clutter/clutter-stage-manager.c | 32 +++++++++++++++++++++++++-------
clutter/clutter-stage.c | 1 +
3 files changed, 32 insertions(+), 11 deletions(-)
commit 9a6de8757f27ff8a8cf9f89209f9366e03b7aadf
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Feb 18 11:34:06 2010 +0000
docs: Document the InputDevice update method
Embedding toolkits should benefit from a proper documentation of
clutter_input_device_update_from_event(): its meaning, its use and
the caveats for the "update_stage" argument.
clutter/clutter-input-device.c | 49 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 49 insertions(+)
commit a2afc9d7ba0a80733044b97498a7df26de5a4ab2
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Feb 17 18:18:38 2010 +0000
win32: Fixup compilation errors from b398292089b0f7
That commit added some Win32 code which breaks compilation.
Thanks to Samuel Degrande for help with this.
clutter/win32/clutter-backend-win32.c | 5 ++---
clutter/win32/clutter-device-manager-win32.c | 18 ++++++------------
clutter/win32/clutter-event-win32.c | 2 +-
3 files changed, 9 insertions(+), 16 deletions(-)
commit 5de743de705ba9bb9a2061a66045b32091165ad5
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Feb 16 14:53:10 2010 +0000
cogl_texture_new_from_foreign: improve docs
Improve the explanation of what the x_pot_waste and y_pot_waste
arguments can be used for.
clutter/cogl/cogl/cogl-texture.h | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)
commit 9c06c94374c61c019ca49fa6fd80679e6ad2f29a
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Feb 16 14:23:11 2010 +0000
cogl-texture: for foreign textures; always trust user geom
We now never query the width and height of the given texture object
from OpenGL. The problem is that the user may be creating a Cogl
texture from a texture_from_pixmap object where glTexImage2D was
never called and the texture_from_pixmap spec doesn't clarify that
it's reliable to query the width from OpenGL.
This should address:
http://bugzilla.openedhand.com/show_bug.cgi?id=1502
Thanks to Johan Bilien for reporting
clutter/cogl/cogl/cogl-texture-2d-sliced.c | 24 +++++++++---------------
1 file changed, 9 insertions(+), 15 deletions(-)
commit 8b040cac4dfaaa9d91635d31d93a79d00f637772
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Feb 17 19:02:43 2010 +0000
docs: Fixes for DeviceManager
clutter/clutter-device-manager.h | 12 ++++++------
doc/reference/clutter/clutter-sections.txt | 6 ++++++
2 files changed, 12 insertions(+), 6 deletions(-)
commit 51a3e49c8228a22c1fbcd42971ad27d26d83991b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Feb 17 18:21:50 2010 +0000
device: Allow updating devices from embedding toolkits
Embedding toolkits most likely will disable the event handling, so all
the input device code will not be executed. Unfortunately, the newly
added synthetic event generation of ENTER and LEAVE event pairs depends
on having input devices.
In order to unbreak things without reintroducing the madness of the
previous code we should allow embedding toolkits to just update the
state of an InputDevice by using the data contained inside the
ClutterEvent. This strategy has two obvious reasons:
• the embedding toolkit is creating a ClutterEvent by translating
a toolkit-native event anyway
• this is exactly what ClutterStage does when processing events
We are, essentially, deferring input device handling to the embedding
toolkits, just like we're deferring event handling to them.
clutter/clutter-event.h | 2 -
clutter/clutter-input-device.c | 59 ++++++++++++++++++++++++++++++
clutter/clutter-input-device.h | 5 +++
clutter/clutter-types.h | 2 +
doc/reference/clutter/clutter-sections.txt | 2 +
5 files changed, 68 insertions(+), 2 deletions(-)
commit b398292089b0f70b9457985426d6b962d9179fa7
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Feb 17 17:06:25 2010 +0000
device: Impose per-backend DeviceManager
The DeviceManager class should be abstract in Clutter, and implemented
by each backend, as different backends will have different ways to
detect, initialize and list devices; the X11 backend alone has *two*
ways of dealing with devices.
This commit makes DeviceManager an abstract class and delegates the
device initialization and enumeration to per-backend sub-classes.
The responsible for creating the device manager is, obviously, the
backend singleton.
The X11 and Win32 backends have been updated to the new layout; the
Win32 backend has been updated blindly, so it might require additional
testing.
clutter/clutter-backend.h | 38 +--
clutter/clutter-device-manager.c | 166 +++++++++----
clutter/clutter-device-manager.h | 51 +++-
clutter/clutter-private.h | 7 -
clutter/win32/Makefile.am | 2 +
clutter/win32/clutter-backend-win32.c | 38 +--
clutter/win32/clutter-backend-win32.h | 3 +-
clutter/win32/clutter-device-manager-win32.c | 173 +++++++++++++
clutter/win32/clutter-device-manager-win32.h | 60 +++++
clutter/win32/clutter-event-win32.c | 34 ++-
clutter/x11/Makefile.am | 2 +
clutter/x11/clutter-backend-x11.c | 168 +++----------
clutter/x11/clutter-backend-x11.h | 3 +-
clutter/x11/clutter-device-manager-x11.c | 349 +++++++++++++++++++++++++++
clutter/x11/clutter-device-manager-x11.h | 68 ++++++
clutter/x11/clutter-event-x11.c | 14 +-
16 files changed, 930 insertions(+), 246 deletions(-)
commit 0bf6d57ab128f301588695d011a9ab5d1b1dce1a
Author: Chris Lord <chris@linux.intel.com>
Date: Wed Feb 17 16:56:30 2010 +0000
[event-x11] Don't relayout on window move
ConfigureNotify is delivered on window movements too, but there is no
need to queue a relayout on these as the viewport hasn't changed size.
Check for the window actually changing size on ConfigureNotify before
queueing a relayout.
This fixes laggy window movement when moving a window in response to
Clutter mouse motion events.
clutter/x11/clutter-event-x11.c | 26 ++++++++++++++++----------
1 file changed, 16 insertions(+), 10 deletions(-)
commit 05054bed87866d10c927642fe6273c5bd8f89a95
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Feb 17 15:58:32 2010 +0000
cogl-clip-stack: Round the coords when clipping to a window rect
The size and position of the window rectangle for clipping in
try_pushing_rect_as_window_rect is calculated by projecting the
rectangle coordinates. Due to rounding errors, this can end up with
slightly off numbers like 34.999999. These were then being cast
directly to an integer so it could end up off by one.
This uses a new macro called COGL_UTIL_NEARBYINT which is a
replacement for the C99 nearbyint function.
clutter/cogl/cogl/cogl-clip-stack.c | 6 +++++-
clutter/cogl/cogl/cogl-util.h | 8 ++++++++
2 files changed, 13 insertions(+), 1 deletion(-)
commit a726ef32aa4721070b57df2e08c304096cb24736
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Feb 17 14:38:45 2010 +0000
test-cogl-vertex-buffer: Fix the maximum index number
It was passing the number of vertices to
cogl_vertex_buffer_draw_elements but instead it should take the
maximum index which would be the number of vertices minus one. This
was causing errors to be reported with the checks filterset of Bugle.
tests/interactive/test-cogl-vertex-buffer.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit fbcaf1e0b34f68934e0c84b01adfa5ea920c6c6a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Feb 17 10:46:16 2010 +0000
Improve LEAVE events for border actors
If an actor is lying on the border of the Stage it might miss the LEAVE
event when the pointer of a device leaves the Stage window. Since the
backend is unsetting the Stage back pointer on the InputDevice we can
queue the emission of a LEAVE event on the pointer actor as well.
http://bugzilla.moblin.org/show_bug.cgi?id=9677
clutter/clutter-input-device.c | 23 ++++++++++++++++++++++-
tests/interactive/test-events.c | 22 +++++++++++++++++-----
2 files changed, 39 insertions(+), 6 deletions(-)
commit 719e314b8e364955b046c990ddc1c9f07b0cc55f
Author: Chris Lord <chris@linux.intel.com>
Date: Tue Feb 16 18:25:46 2010 +0000
[stage-x11] Fix a warning due to a missing cast
I stupidly forgot to cast a ClutterStage to a ClutterActor and somehow
missed or didn't get the compiler warning. Fix.
clutter/x11/clutter-stage-x11.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit f9f03894a691cfb8f791f34c684d82f8a6d5b5b8
Author: Chris Lord <chris@linux.intel.com>
Date: Tue Feb 16 18:17:55 2010 +0000
[stage-x11] Fix resizing for foreign windows
As well as manually setting the geometry size, we needed to queue a
relayout. This is what the ConfigureNotify handler would normally do,
but we don't get this event when using a foreign window (obviously).
This should fix resizing in things like gtk-clutter.
clutter/x11/clutter-stage-x11.c | 5 +++++
1 file changed, 5 insertions(+)
commit df6e7aee73a3c3818acab8218732659eb77a3cdc
Author: Chris Lord <chris@linux.intel.com>
Date: Tue Feb 16 17:46:52 2010 +0000
[stage-x11] Set the geometry size for foreign wins
If we get into the resize function and it's a foreign window, set the
geometry size so that the allocate will set the backend size and call
glViewport.
clutter/x11/clutter-stage-x11.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
commit c2d016471258c529d7829ed807e76a4e029b614b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Feb 16 16:31:20 2010 +0000
Add test-stage-sizing to the ignore file
.gitignore | 1 +
1 file changed, 1 insertion(+)
commit d42f928c43994331017bca7145b7b06fd5848909
Author: Chris Lord <chris@linux.intel.com>
Date: Tue Feb 16 15:39:08 2010 +0000
[test-interactive] Add a stage sizing test
Add an interactive stage sizing test to test the interaction of
fullscreening/resizing/expanding/shrinking a visible stage.
tests/interactive/Makefile.am | 3 +-
tests/interactive/test-stage-sizing.c | 113 ++++++++++++++++++++++++++++++++++
2 files changed, 115 insertions(+), 1 deletion(-)
commit 1117b6a9ac974dd5855c5e76965c15329c608ff4
Author: Chris Lord <chris@linux.intel.com>
Date: Tue Feb 16 14:50:14 2010 +0000
[stage-x11] Fix switching fullscreen mode
Setting/unsetting fullscreen on a mapped or unmapped window now works
correctly.
If you unfullscreen a window that was initially full-screened, it will
unset the fullscreen hint and the WM will likely push the size down to
the largest valid size.
If the window was previously un-fullscreened, Clutter will restore the
previous size.
Fullscreening also now works if the WM switches the hint without the
application's knowledge (as happens when you resize a window to the size
of the screen, for example, with stock metacity).
clutter/clutter-stage.c | 3 +-
clutter/x11/clutter-event-x11.c | 13 ++++++--
clutter/x11/clutter-stage-x11.c | 71 +++++++++++++++++++++++------------------
clutter/x11/clutter-stage-x11.h | 2 +-
4 files changed, 54 insertions(+), 35 deletions(-)
commit dd36c3ad5c4f3d25d0286cf1c2a9a25abf7d2ea4
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Feb 16 12:32:37 2010 +0000
Post-release version bump to 1.1.13
configure.ac | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
commit 21354b2b7518c9518fa8405f07ed1f929736d4a2
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Feb 16 12:21:15 2010 +0000
Release 1.1.12 (developers snapshot)
configure.ac | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
commit 7a3eb452b802e5b38542d224da179c4267706e7b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Feb 16 12:16:02 2010 +0000
conform: Do not resize the stage
Since all conformance tests share the same state we should not touch
stuff like the stage size; sharing is already fairly complex and adds a
lot of caveats on the implementation of a conformance test unit, and if
we make tests influence later ones then we might slip in bugs or false
negatives - thus defeating the whole point of a conformance test suite.
tests/conform/test-cogl-offscreen.c | 1 -
tests/conform/test-cogl-readpixels.c | 1 -
tests/conform/test-cogl-viewport.c | 1 -
tests/conform/test-pick.c | 1 -
4 files changed, 4 deletions(-)
commit 4cadc7300504828fa0db8cb21e1b9d8e23be6319
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Feb 16 12:15:23 2010 +0000
conform: Use a 640x480 stage in test-pick
Do not resize the stage to a smaller size: the default size is perfectly
fine.
tests/conform/test-pick.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
commit 958545aa70e526a12720bf2dd0d9b9a24d273b8d
Author: Neil Roberts <neil@linux.intel.com>
Date: Tue Feb 16 12:01:18 2010 +0000
cogl-atlas-texture: Don't use the atlas if FBOs aren't supported
If FBOs aren't supported then it will end up very slow to reorganize
the atlas. Also currently the CoglTexture2D backend will refuse to
create any textures anyway so the full atlas texture won't be created.
clutter/cogl/cogl/cogl-atlas-texture.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
commit a5021ba30f553d641399545d9777eb5b4b385ac1
Author: Neil Roberts <neil@linux.intel.com>
Date: Tue Feb 16 11:58:47 2010 +0000
cogl-atlas-texture: Check for errors when creating the atlas texture
cogl_texture_2d_new may fail in certain circumstances so
cogl_atlas_texture_reserve_space should detect this and also
fail. This will cause cogl_texture_new to fallback to a sliced
texture.
Thanks to Vladimir Ivakin for reporting this problem.
clutter/cogl/cogl/cogl-atlas-texture.c | 19 ++++++++++++-------
1 file changed, 12 insertions(+), 7 deletions(-)
commit e65bb38720c8990684ce24bda08b78d8da49cc1b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Feb 16 11:38:51 2010 +0000
conform: Use g_assert_cmpint() in cogl-readpixels test
The g_assert_cmpint() macro prints out not just the assertion condition
but also the assertion contents; this is useful to catch wrong values
without incrementing the verbosity of the test itself.
tests/conform/test-cogl-readpixels.c | 18 ++++++++----------
1 file changed, 8 insertions(+), 10 deletions(-)
commit 56f164f8a1c634e2d0ba6ffb5879672d456e1488
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Feb 15 19:03:37 2010 +0000
docs: Document SWAP_EVENTS feature flag
clutter/clutter-feature.h | 1 +
1 file changed, 1 insertion(+)
commit 2fcb644e4fb02375bdf8b1f54677bcde7abdceba
Author: Chris Lord <chris@linux.intel.com>
Date: Mon Feb 15 18:53:58 2010 +0000
[stage] Fix some races to do with window resizing
When we resize, we relied on the stage's allocate to re-initialise the
GL viewport. Unfortunately, if we resized within Clutter, the new size
was cached before the window is actually resized, so glViewport wasn't
being called after resizing (some of the time, it's a race condition).
Change the way resizing works slightly so that we only resize when the
geometry size doesn't match our preferred size, and queue a relayout on
ConfigureNotify so the glViewport gets called.
Also change window creation slightly so that setting the size of a
window before it's realized works correctly.
clutter/clutter-stage.c | 36 +++++++++++++++---------------------
clutter/glx/clutter-stage-glx.c | 19 +++++++++++++++++--
clutter/x11/clutter-event-x11.c | 13 +++++++++++++
clutter/x11/clutter-stage-x11.c | 24 ++++++++++--------------
4 files changed, 55 insertions(+), 37 deletions(-)
commit 0d428655e23c18064176aa823db0d7165581ba02
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Feb 15 16:09:26 2010 +0000
actor: Turn push/pop_internal into Actor methods
Since the "internal" state is global, it will leak onto actors that you
didn't intend for it to, because it applies not just to the actors you
create, but also to any actors *they* create. Eg, if you have a dialog
box class, you might push/pop_internal around creating its buttons, so
that those buttons get marked as internal to the dialog box. But
ctx->internal_child will still be set during the *button*'s constructor
as well, and so, eg, the label and icon inside the button actor will
*also* be marked as internal children, even if that isn't what the
button class wanted.
The least intrusive change at this point is to make push_internal() and
pop_internal() two methods of the Actor class, and take a ClutterActor
pointer as the argument - thus moving the locality of the internal_child
counter to the Actor itself.
http://bugzilla.openedhand.com/show_bug.cgi?id=1990
clutter/clutter-actor.c | 31 ++++++++++++++++++-------------
clutter/clutter-actor.h | 4 ++--
clutter/clutter-private.h | 2 --
tests/conform/test-actor-destroy.c | 4 ++--
4 files changed, 22 insertions(+), 19 deletions(-)
commit 2229cafc3833a017b3a107b4f6b207f0a95908f5
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Feb 15 12:04:50 2010 +0000
stage: Add sanity checks for get_pending_swaps()
The master clock might have a Stage during its destruction phase,
without a StageWindow attached to it. If this happens and we try
to dereference the StageWindow to get its class and call a virtual
function we might experience some slight turbulence and... then...
explode.
http://bugzilla.openedhand.com/show_bug.cgi?id=1987
clutter/clutter-master-clock.c | 21 +++++++++++++--------
clutter/clutter-stage.c | 10 +++++++++-
2 files changed, 22 insertions(+), 9 deletions(-)
commit fef82fae5c716f15cd345fcfbc37f01578a82580
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Feb 15 11:58:55 2010 +0000
build: Enable experimental COGL API in tests/conform
Enable the experimental API when building the conformance test suite.
tests/conform/Makefile.am | 1 +
tests/conform/test-cogl-pixel-buffer.c | 3 ---
2 files changed, 1 insertion(+), 3 deletions(-)
commit 032121ce17fb825592ba435cf260107b52f8196c
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Feb 15 11:57:48 2010 +0000
build: Disable deprecated API in tests/conform
We should not be using deprecated API in the conformance test suite.
tests/conform/Makefile.am | 1 +
1 file changed, 1 insertion(+)
commit c3354cb2c0acc7d80b2cea3f970a1d83a47d585c
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Feb 15 11:56:34 2010 +0000
conform: Do not use deprecated API
There is no more type-specific ref/unref pairs: it is all under
CoglHandle now.
tests/conform/test-cogl-blend-strings.c | 6 +++---
tests/conform/test-cogl-multitexture.c | 2 +-
tests/conform/test-cogl-texture-mipmaps.c | 2 +-
3 files changed, 5 insertions(+), 5 deletions(-)
commit d607400f01be1c1e26f54b3d83794e0d246e8db0
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Feb 15 11:45:35 2010 +0000
x11: Do not set pid or title on foreign windows
If a StageX11 is using a foreign window we should not need to set the
_NET_WM_PID or the WM_TITLE properies.
http://bugzilla.openedhand.com/show_bug.cgi?id=1989
clutter/x11/clutter-stage-x11.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
commit 89191e8bbc591f33dd0f45e2317f31eeaa7d4023
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Feb 15 11:44:02 2010 +0000
docs: Mention signal-swapped-after modifier
The signal-swapped-after:: modifier for signal connection inside the
clutter_actor_animate* variadic arguments functions is not mentioned in
the documentation.
clutter/clutter-animation.c | 34 ++++++++++++++++++++++++----------
1 file changed, 24 insertions(+), 10 deletions(-)
commit 262782feae4e8130321be414f7aac9141ae22eab
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Mon Feb 8 19:18:36 2010 +0000
docs: Add 2010 in COGL's Copyright notice
While at it, fix the usage of <year> in <copyright> to let the
stylesheet do the collation when having several years.
doc/reference/clutter/clutter-docs.xml.in | 7 +++++--
doc/reference/cogl/cogl-docs.xml.in | 1 +
2 files changed, 6 insertions(+), 2 deletions(-)
commit 01bf50905689b363877f85942403cdc947f8c82c
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Fri Feb 12 17:24:15 2010 +0000
cogl-buffer: fix compilation for GL ES
In the frenzy of the last 10mins before API freeze, I obviously forgot
to update the OpenGL path for _cogl_buffer_hints_to_gl_enum(). This
commit fixes this.
clutter/cogl/cogl/cogl-buffer.c | 15 +++++----------
1 file changed, 5 insertions(+), 10 deletions(-)
commit e668a2f228acb1f38853eea4245f87e10e82fe23
Author: Neil Roberts <neil@linux.intel.com>
Date: Fri Feb 12 15:33:56 2010 +0000
cogl-atlas-texture: Flush the journal before adding a new texture
When the atlas is reorganised we could potentially be moving around
textures that are already referenced in the journal. We therefore need
to flush the journal otherwise they will be rendered with incorrect
texture coordinates. We also need to flush the journal even if we are
not reorganizing so that we can rely on the old texture contents
remaining in the atlas after migrating a texture out.
clutter/cogl/cogl/cogl-atlas-texture.c | 26 +++++++++++++++++++++++++-
1 file changed, 25 insertions(+), 1 deletion(-)
commit 4be4f56bdf463ccac89c7068b47ba1450bee95ee
Author: Neil Roberts <neil@linux.intel.com>
Date: Fri Feb 12 10:08:51 2010 +0000
cogl-sub-texture: Optimise taking a sub texture of a sub texture
When creating a Cogl sub-texture, if the full texture is also a sub
texture it will now just offset the x and y and reference the full
texture instead. This avoids one level of indirection when rendering
the texture which reduces the chances of getting rounding errors in
the calculations.
clutter/cogl/cogl/cogl-sub-texture-private.h | 17 +++++-
clutter/cogl/cogl/cogl-sub-texture.c | 29 +++++++--
clutter/cogl/cogl/cogl-texture.h | 4 ++
tests/conform/test-cogl-sub-texture.c | 89 ++++++++++++++++++----------
4 files changed, 99 insertions(+), 40 deletions(-)
commit 2018b5b16750b090c5592ebd5262fc66d809183e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Feb 12 16:24:27 2010 +0000
actor: Split get_paint_opacity() from the type check
Since get_paint_opacity() recurses through the hierarchy it might lead
to a lot of type checks while we walk the parent-child chain. We can
split the recursive function from the public entry point and perform the
type check just once.
clutter/clutter-actor.c | 55 +++++++++++++++++++++++++++++++------------------
1 file changed, 35 insertions(+), 20 deletions(-)
commit 37d51cb78e41ea36f01c049eda6163bddc84ce33
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Feb 12 16:18:12 2010 +0000
actor: Do not call get_opacity() from get_paint_opacity()
We already have access to the opacity private field, there's no need to
go through the public API.
clutter/clutter-actor.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
commit 124f30cccef75feabb0933c074753b392f373e82
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Feb 12 15:52:07 2010 +0000
docs: Fixes for Cogl
clutter/cogl/cogl/cogl-material.h | 1 +
clutter/cogl/cogl/cogl-pixel-buffer.h | 2 +-
doc/reference/cogl/Makefile.am | 3 ++-
doc/reference/cogl/cogl-sections.txt | 8 ++++----
4 files changed, 8 insertions(+), 6 deletions(-)
commit 27e6c3b1e0db6fcb36a8f7e44e457b672ee34565
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Feb 12 14:46:43 2010 +0000
build: Use -Wuninitialized instead of -Wno-uninitialized
We want to be warned about uninitialized variables.
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 00c4bfc3c69ba1c1c37852392b46c0fe601a98a1
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Feb 12 14:45:49 2010 +0000
analysis: Interactive tests
Abort if test-behave was passed the wrong type of behaviour to test.
tests/interactive/test-behave.c | 4 ++++
1 file changed, 4 insertions(+)
commit 46182233c031c480b5d4d1f6109ab28a6199d369
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Feb 12 14:45:04 2010 +0000
analysis: Conformance tests
Initialize ClutterPathNote members to 0 using "{ 0, }".
tests/conform/test-path.c | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
commit 78f1f508af88ccd9652d38811a4ebc6662c566dd
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Feb 11 15:24:41 2010 +0000
analysis: x11: ClutterEvent
Remove an unused variable.
clutter/x11/clutter-event-x11.c | 3 ---
1 file changed, 3 deletions(-)
commit 081696fdb5d83c41ed201277db272572eb534db2
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Feb 11 15:24:17 2010 +0000
analysis: CoglPangoRenderer
Remove unused variables.
clutter/cogl/pango/cogl-pango-render.c | 17 +++++++----------
1 file changed, 7 insertions(+), 10 deletions(-)
commit 2d8bdf9e5ebd101b40854e0066b06037dd261ea5
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Feb 11 15:20:25 2010 +0000
analysis: ClutterTimeoutPool
Do not pre-initialize the list iterator, the for loop will do it for us.
clutter/clutter-timeout-pool.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 9c8f8818784ba7c709c70ead6d8e103ee28d0c8c
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Feb 11 15:20:07 2010 +0000
analysis: ClutterTimeline
Remove an unused variable.
clutter/clutter-timeline.c | 4 ----
1 file changed, 4 deletions(-)
commit 65af411cb4675eab722fe16acc93fa6e7183e3c8
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Feb 11 15:19:46 2010 +0000
analysis: ClutterTexture
Remove unused variables.
clutter/clutter-texture.c | 25 +++++++++----------------
1 file changed, 9 insertions(+), 16 deletions(-)
commit 09644e4bb6cff70d2c9a59bbe9b461b7e53676e2
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Feb 11 15:19:32 2010 +0000
analysis: ClutterText
Remove unused variables.
clutter/clutter-text.c | 2 --
1 file changed, 2 deletions(-)
commit c2d434e3af3d3b862866273a7dd15541ecbebcd5
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Feb 11 15:19:18 2010 +0000
analysis: ClutterStage
Remove unused variables.
clutter/clutter-stage.c | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)
commit 136e8c1acb15c078c0898a834f55666c6f0ef384
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Feb 11 15:17:53 2010 +0000
analysis: ClutterScriptParser
We parse a JSON value depending on the initial state of an uninitialized
variable. Ouch.
clutter/clutter-script-parser.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 4d9010dd5e9c5a69ba5f7a0c3969ce5ac337c08d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Feb 11 15:17:32 2010 +0000
analysis: ClutterRectangle
Remove unused variables.
clutter/clutter-rectangle.c | 10 +++-------
1 file changed, 3 insertions(+), 7 deletions(-)
commit 8ba65cfd4aba677530b25d9ab1323d2b1b281282
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Feb 11 15:17:07 2010 +0000
analysis: ClutterModel
Remove unused variables.
clutter/clutter-model.c | 10 ----------
1 file changed, 10 deletions(-)
commit bea1a0a6a22ecd0ed96720bcecb3919d3fbb2757
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Feb 11 15:13:40 2010 +0000
analysis: ClutterMain
• Remove unused variables.
• Do not pre-initialize ClutterActor's GType; pre-emptive optimizations
like these are more black magic than real optimization.
clutter/clutter-main.c | 21 ++++++---------------
1 file changed, 6 insertions(+), 15 deletions(-)
commit 66920ea540834c0264434f64a0dcfae4150e625f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Feb 11 15:13:20 2010 +0000
analysis: ClutterInterval
Remove unused variables.
clutter/clutter-interval.c | 8 --------
1 file changed, 8 deletions(-)
commit 853f9941da5f40b936307ce45f67265f978d9c2b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Feb 11 15:11:51 2010 +0000
analysis: ClutterBoxLayout
Remove an useless assignment. The n_expand_children is not used outside
the extra_space check, and if n_expand_children is 0 then the extra
space we allocate is 0.
clutter/clutter-box-layout.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
commit cd058562538633962089cd30787b7a98d9733144
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Feb 11 15:11:25 2010 +0000
analysis: ClutterBehaviour
Remove an unused variable.
clutter/clutter-behaviour.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
commit 6dc0e9632cc2597240d9e42c98cd567dbcc1dbec
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Feb 11 15:09:51 2010 +0000
analysis: ClutterAnimation
• Remove one unused variable.
• We ignore the result of get_timeline_internal() so we need to tell
the compiler that - though a better solution would be to split the
timeline implicit creation into its own function.
clutter/clutter-animation.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
commit a287ca7a2824efef2608877555711c408122a400
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Feb 11 15:09:12 2010 +0000
analysis: ClutterAnimator/2
Clean up an unused variable.
clutter/clutter-animator.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
commit 667222c301ca0f19c570938055208e564e4d02ef
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Feb 11 15:08:19 2010 +0000
analysis: ClutterAnimator/1
Do not de-reference a void*; use a temporary variable -- after
checking the contents of the pointer. This actually simplifies
the readability and avoids pulling a Lisp with the parentheses.
clutter/clutter-animator.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
commit fcd3cfc0bfc656d63088a443355b30e7b50d2850
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Feb 11 15:07:38 2010 +0000
analysis: ClutterAlpha
Clean up unused variables.
clutter/clutter-alpha.c | 12 ++----------
1 file changed, 2 insertions(+), 10 deletions(-)
commit aa6d7a30291c199fc1d26a93574d88c027367bf0
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Feb 11 15:05:18 2010 +0000
analysis: ClutterActor
Clean up ClutterActor for unused variables.
clutter/clutter-actor.c | 12 +-----------
1 file changed, 1 insertion(+), 11 deletions(-)
commit 7a372bc0011b6301cc8b46767493a23218a67cff
Author: Neil Roberts <neil@linux.intel.com>
Date: Fri Feb 12 14:26:33 2010 +0000
cogl: Cache the value for GL_MAX_TEXTURE_UNITS
The function _cogl_get_max_texture_units is called quite often while
rendering and it returns a constant value so we might as well cache
the result. Calling glGetInteger on Mesa can be expensive because it
flushes a lot of state.
clutter/cogl/cogl/cogl-context.c | 2 ++
clutter/cogl/cogl/cogl-context.h | 4 ++++
clutter/cogl/cogl/cogl.c | 12 +++++++++---
3 files changed, 15 insertions(+), 3 deletions(-)
commit 22c33b2fea1fd60239280aa1f4fd112f533688aa
Author: Robert Bragg <robert@linux.intel.com>
Date: Thu Feb 11 16:12:26 2010 +0000
cogl: resolves some low hanging issues flagged by clang
An initial pass over the Cogl source code using the Clang static
analysis tool flagged a few low hanging issues such as un-used variables
or redundant initializing of variables which this patch fixes.
clutter/cogl/cogl/cogl-texture-2d-sliced.c | 9 ++-------
clutter/cogl/cogl/cogl-texture.c | 8 ++++----
2 files changed, 6 insertions(+), 11 deletions(-)
commit 18305cbd98e02ab139beef769cbc90a2121bd1f5
Author: Robert Bragg <robert@linux.intel.com>
Date: Thu Feb 11 15:33:01 2010 +0000
cogl_rectangle: avoid redundant copy of geometry
All the cogl_rectangle* APIs normalize their input into into an array of
_CoglMutiTexturedRect rectangles and pass these on to our work horse;
_cogl_rectangles_with_multitexture_coords. The definition of
_CoglMutiTexturedRect had 4 separate float members, x_1, y_1, x_2 and
y_2 which meant for some common cases we were having to copy out from an
array into these members. We are now able to simply point into the users
array avoiding a copy which seems desirable when submiting lots of
rectangles.
clutter/cogl/cogl/cogl-journal-private.h | 5 +-
clutter/cogl/cogl/cogl-journal.c | 31 ++++---
clutter/cogl/cogl/cogl-primitives.c | 135 ++++++++++++++++---------------
3 files changed, 91 insertions(+), 80 deletions(-)
commit 5f18fc928d85499d6ee2ac433dde247286e2de4e
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Feb 10 22:47:49 2010 +0000
cogl: explicitly mark cogl_<object>_ref/unref APIs as deprecated
This uses the G_GNUC_DEPRECATED macros to mark the
cogl_{texture,vertex_buffer,shader}_ref and unref APIs as deprecated.
Since this flagged that cogl-pango-display-list.c and
clutter-glx-texture-pixmap.c were still using deprecated _ref/_unref
APIs they have now been changed to use the cogl_handle_ref/unref API
instead.
clutter/cogl/cogl/cogl-shader.h | 8 ++++++--
clutter/cogl/cogl/cogl-texture.h | 4 ++--
clutter/cogl/cogl/cogl-vertex-buffer.h | 4 ++--
clutter/cogl/pango/cogl-pango-display-list.c | 8 ++++----
clutter/glx/clutter-glx-texture-pixmap.c | 2 +-
5 files changed, 15 insertions(+), 11 deletions(-)
commit 48660349dbcabdde05fc9e1334734bcc62bb790e
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Feb 10 22:30:37 2010 +0000
cogl: cleanly separate primitives + paths code
The function prototypes for the primitives API were spread between
cogl-path.h and cogl-texture.h and should have been in a
cogl-primitives.h.
As well as shuffling the prototypes around into more sensible places
this commit splits the cogl-path API out from cogl-primitives.c into
a cogl-path.c
clutter/cogl/cogl/Makefile.am | 3 +
clutter/cogl/cogl/cogl-internal.h | 28 +
clutter/cogl/cogl/cogl-path.c | 1121 +++++++++++++++++++++++++++++++++++
clutter/cogl/cogl/cogl-path.h | 33 +-
clutter/cogl/cogl/cogl-primitives.c | 1078 ---------------------------------
clutter/cogl/cogl/cogl-primitives.h | 188 +++++-
clutter/cogl/cogl/cogl-texture.h | 133 -----
clutter/cogl/cogl/cogl.h | 1 +
8 files changed, 1316 insertions(+), 1269 deletions(-)
commit 9f5a3e14451ed77f47260bbd6a1b2271e8003361
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Feb 10 18:18:30 2010 +0000
cogl: remove redundant _cogl_journal_flush prototype
There was a redundant _cogl_journal_flush function prototype in
cogl-primitives.h
clutter/cogl/cogl/cogl-clip-stack.c | 1 +
clutter/cogl/cogl/cogl-framebuffer.c | 1 +
clutter/cogl/cogl/cogl-journal-private.h | 5 +++--
clutter/cogl/cogl/cogl-material.c | 1 +
clutter/cogl/cogl/cogl-primitives.h | 3 ---
clutter/cogl/cogl/cogl-texture-2d-sliced.c | 1 +
clutter/cogl/cogl/cogl-texture-2d.c | 1 +
clutter/cogl/cogl/cogl-vertex-buffer.c | 1 +
clutter/cogl/cogl/driver/gl/cogl-program.c | 1 +
9 files changed, 10 insertions(+), 5 deletions(-)
commit 7edcbaa1f9444848fcaac052557f7c444e3905e0
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Feb 10 01:57:32 2010 +0000
cogl: improves header and coding style consistency
We've had complaints that our Cogl code/headers are a bit "special" so
this is a first pass at tidying things up by giving them some
consistency. These changes are all consistent with how new code in Cogl
is being written, but the style isn't consistently applied across all
code yet.
There are two parts to this patch; but since each one required a large
amount of effort to maintain tidy indenting it made sense to combine the
changes to reduce the time spent re indenting the same lines.
The first change is to use a consistent style for declaring function
prototypes in headers. Cogl headers now consistently use this style for
prototypes:
return_type
cogl_function_name (CoglType arg0,
CoglType arg1);
Not everyone likes this style, but it seems that most of the currently
active Cogl developers agree on it.
The second change is to constrain the use of redundant glib data types
in Cogl. Uses of gint, guint, gfloat, glong, gulong and gchar have all
been replaced with int, unsigned int, float, long, unsigned long and char
respectively. When talking about pixel data; use of guchar has been
replaced with guint8, otherwise unsigned char can be used.
The glib types that we continue to use for portability are gboolean,
gint{8,16,32,64}, guint{8,16,32,64} and gsize.
The general intention is that Cogl should look palatable to the widest
range of C programmers including those outside the Gnome community so
- especially for the public API - we want to minimize the number of
foreign looking typedefs.
clutter/cogl/cogl/cogl-atlas-texture.c | 52 ++--
clutter/cogl/cogl/cogl-atlas.c | 22 +-
clutter/cogl/cogl/cogl-atlas.h | 18 +-
clutter/cogl/cogl/cogl-bitmap-fallback.c | 82 +++---
clutter/cogl/cogl/cogl-bitmap-pixbuf.c | 60 ++--
clutter/cogl/cogl/cogl-bitmap-private.h | 30 +-
clutter/cogl/cogl/cogl-bitmap.c | 34 +--
clutter/cogl/cogl/cogl-bitmap.h | 15 +-
clutter/cogl/cogl/cogl-blend-string.c | 12 +-
clutter/cogl/cogl/cogl-blend-string.h | 4 +-
clutter/cogl/cogl/cogl-buffer-private.h | 14 +-
clutter/cogl/cogl/cogl-buffer.c | 8 +-
clutter/cogl/cogl/cogl-buffer.h | 26 +-
clutter/cogl/cogl/cogl-clip-stack.c | 16 +-
clutter/cogl/cogl/cogl-clip-stack.h | 14 +-
clutter/cogl/cogl/cogl-color.h | 75 +++--
clutter/cogl/cogl/cogl-context.c | 2 +-
clutter/cogl/cogl/cogl-context.h | 10 +-
clutter/cogl/cogl/cogl-debug.c | 8 +-
clutter/cogl/cogl/cogl-debug.h | 4 +-
clutter/cogl/cogl/cogl-feature-private.c | 19 +-
clutter/cogl/cogl/cogl-feature-private.h | 14 +-
clutter/cogl/cogl/cogl-fixed.c | 24 +-
clutter/cogl/cogl/cogl-fixed.h | 72 +++--
clutter/cogl/cogl/cogl-handle.h | 2 +-
clutter/cogl/cogl/cogl-internal.h | 32 ++-
clutter/cogl/cogl/cogl-journal.c | 26 +-
clutter/cogl/cogl/cogl-material-private.h | 67 +++--
clutter/cogl/cogl/cogl-material.c | 22 +-
clutter/cogl/cogl/cogl-material.h | 175 +++++++-----
clutter/cogl/cogl/cogl-matrix.h | 110 ++++----
clutter/cogl/cogl/cogl-path.h | 138 +++++----
clutter/cogl/cogl/cogl-pixel-buffer-private.h | 9 +-
clutter/cogl/cogl/cogl-pixel-buffer.c | 53 ++--
clutter/cogl/cogl/cogl-pixel-buffer.h | 46 +--
clutter/cogl/cogl/cogl-primitives.c | 48 ++--
clutter/cogl/cogl/cogl-primitives.h | 13 +-
clutter/cogl/cogl/cogl-shader.h | 96 ++++---
clutter/cogl/cogl/cogl-sub-texture-private.h | 14 +-
clutter/cogl/cogl/cogl-sub-texture.c | 70 ++---
clutter/cogl/cogl/cogl-texture-2d-private.h | 4 +-
clutter/cogl/cogl/cogl-texture-2d-sliced-private.h | 6 +-
clutter/cogl/cogl/cogl-texture-2d-sliced.c | 163 +++++------
clutter/cogl/cogl/cogl-texture-2d.c | 34 +--
clutter/cogl/cogl/cogl-texture-private.h | 6 +-
clutter/cogl/cogl/cogl-texture.c | 106 +++----
clutter/cogl/cogl/cogl-texture.h | 220 ++++++++-------
clutter/cogl/cogl/cogl-types.h | 15 +-
clutter/cogl/cogl/cogl-util.c | 30 +-
clutter/cogl/cogl/cogl-vertex-buffer-private.h | 2 +-
clutter/cogl/cogl/cogl-vertex-buffer.c | 18 +-
clutter/cogl/cogl/cogl-vertex-buffer.h | 6 +-
clutter/cogl/cogl/cogl.c | 52 ++--
clutter/cogl/cogl/cogl.h | 310 +++++++++++++--------
clutter/cogl/cogl/driver/gl/cogl-program.c | 18 +-
clutter/cogl/cogl/driver/gl/cogl-shader.c | 2 +-
clutter/cogl/cogl/driver/gl/cogl-texture-driver.c | 2 +-
clutter/cogl/cogl/driver/gl/cogl.c | 8 +-
clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.c | 6 +-
clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.h | 12 +-
clutter/cogl/cogl/driver/gles/cogl-program.c | 42 +--
clutter/cogl/cogl/driver/gles/cogl-shader.c | 4 +-
.../cogl/cogl/driver/gles/cogl-texture-driver.c | 4 +-
clutter/cogl/doc/CODING_STYLE | 49 ++++
64 files changed, 1491 insertions(+), 1184 deletions(-)
commit 8c9472bc4c0350bc28f6ca152e82a0a507063d19
Author: Robert Bragg <robert@linux.intel.com>
Date: Fri Feb 5 16:32:19 2010 +0000
cogl: deprecates cogl_check_extension
OpenGL is an implementation detail for Cogl so it's not appropriate to
expose OpenGL extensions through the Cogl API.
Note: Clutter is currently still using this API, because it is still
doing raw GL calls in ClutterGLXTexturePixmap, so this introduces a
couple of (legitimate) build warnings while compiling Clutter.
clutter/cogl/cogl/cogl-feature-private.c | 4 ++--
clutter/cogl/cogl/cogl-internal.h | 1 +
clutter/cogl/cogl/cogl.c | 32 ++++++++++++++++++++++++++++++++
clutter/cogl/cogl/cogl.h | 11 ++++++++++-
clutter/cogl/cogl/driver/gl/cogl.c | 31 +++----------------------------
clutter/cogl/cogl/driver/gles/cogl.c | 25 -------------------------
clutter/glx/clutter-backend-glx.c | 6 +++---
clutter/glx/clutter-glx-texture-pixmap.c | 5 +++--
8 files changed, 54 insertions(+), 61 deletions(-)
commit b898f0e227aeabeb0513d1228a8f432c467d95b9
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Feb 9 19:34:32 2010 +0000
never presume queuing redraws on invisible actors is redundant
This replaces code like this:
if (CLUTTER_ACTOR_IS_VISIBLE (self))
clutter_actor_queue_redraw (self);
with:
clutter_actor_queue_redraw (self);
clutter_actor_queue_redraw internally knows what can be optimized when
the actor is not visible, but it also knows that the queue_redraw signal
must always be sent in case a ClutterClone is cloning a hidden actor.
clutter/clutter-actor.c | 11 ++++-------
clutter/clutter-group.c | 12 ++++--------
clutter/clutter-rectangle.c | 9 +++------
clutter/clutter-stage.c | 8 +++-----
clutter/clutter-text.c | 30 ++++++++++--------------------
clutter/clutter-texture.c | 9 +++------
6 files changed, 27 insertions(+), 52 deletions(-)
commit bfb271b40332240f40c79dabf8f78f7a68293286
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Feb 9 19:19:44 2010 +0000
box: port a ClutterGroup::foreach fix to ClutterBox
ClutterGroup::foreach was recently changed (ref: ce030a3fce) to use
g_list_foreach() to iterate the children instead of manually iterating
the list so it would safely handle calls like:
clutter_container_foreach (container, clutter_actor_destroy);
(In this example clutter_actor_destroy will result in the current
list item being iterated being freed.)
clutter/clutter-box.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
commit 60a4664d6e4f67b5e527cc2ecd190a538ed994ec
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Feb 9 19:06:59 2010 +0000
box: Adds missing copyright header
Adds a Copyright (C) 2009,2010 Intel Corporation header
clutter/clutter-box.c | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
commit 4355621aebb075bc34b50a89f8ba99e8b8e12ff7
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Feb 9 18:54:28 2010 +0000
group: make it comparable to ClutterBox
There is a lot of duplication between ClutterGroup and ClutterBox so
this makes the two files diff-able so that new fixes can easily be
ported to both and bug fixes missing in one or the other can be spotted
more easily. This doesn't change the behaviour of either actor; it's
really just a shuffle around of code and normalizes the coding style to
make the files comparable.
This has already uncovered one bug in ClutterBox, and also highlights
a bug in ClutterGroup + many other actors:
1) ClutterGroup::real_foreach was recently changed to use
g_list_foreach instead of manually iterating the child list so it can
safely handle calls like:
clutter_container_foreach (container, clutter_actor_destroy);
ClutterBox is still manually iterating the list.
2) In ClutterGroup we guard _queue_redraw() calls like this:
if (CLUTTER_ACTOR_IS_VISIBLE (container))
clutter_actor_queue_redraw (CLUTTER_ACTOR (container));
In ClutterBox we don't:
I think ClutterBox is correct here because
clutter_actor_queue_redraw already optimizes the case where the
actor's not visible, but it also considers that the actor may be
cloned and so the guard in ClutterGroup could break clones. This
actually highlights a wider clutter bug since the same kinds of
guards can be found in all other clutter actors.
clutter/clutter-box.c | 1 -
clutter/clutter-group.c | 366 ++++++++++++++++++++++--------------------------
2 files changed, 167 insertions(+), 200 deletions(-)
commit 34c7611407154fcbb61c82c959c2a38972c2534f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Feb 12 11:38:47 2010 +0000
docs: Update the backend HACKING file
Clarify the Backend::create_context() vfunc role, and the
Stage::realize() vfunc with regards to creating the GL/GLES
context.
doc/HACKING.backends | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
commit 44818a48273baa7dabfbb9370ac218ae8b0cf38e
Author: Neil Roberts <neil@linux.intel.com>
Date: Thu Feb 11 14:20:48 2010 +0000
cogl: Add a fallback for when the signbit macro is missing
The signbit macro is defined in C99 so it should be available but some
versions of GCC don't appear to define it by default. If it's not
available we can use a hack to test the bit directly.
clutter/cogl/cogl/cogl-sub-texture.c | 2 +-
clutter/cogl/cogl/cogl-texture-2d.c | 2 +-
clutter/cogl/cogl/cogl-util.h | 27 ++++++++++++++++++++++++++-
3 files changed, 28 insertions(+), 3 deletions(-)
commit 59463c2213b79a553d3d7999bb56106fb7c5a4ad
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Feb 10 17:20:31 2010 +0000
Do a sanity check on _clutter_do_pick() arguments
We should check that the passed ClutterStage pointer is indeed: a) still
valid and b) a Stage.
clutter/clutter-main.c | 1 +
1 file changed, 1 insertion(+)
commit d0734bc4741d77e7c239cf860b73b49e9564aa91
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Feb 10 17:12:27 2010 +0000
input-device: Do not pick() on NULL stages
If the stage associated to the InputDevice is not set we should
short-circuit out and return NULL. This will result in a pick()
done on the event's stage - if applicable.
http://bugzilla.moblin.org/show_bug.cgi?id=9602
clutter/clutter-input-device.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
commit 4208169ab48795ca8f10287bd67031e161bf1f82
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Feb 10 15:38:41 2010 +0000
text: Bump up the preferred height
Instead of returning a sub-pixel height round up the preferred height to
the nearest integral value that is not less than the size reported by
Pango, once converted in pixels.
clutter/clutter-text.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit f54b29a0c0c182f1396abd9df7d46d99b81a133d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Feb 10 15:38:07 2010 +0000
test-text-field: Tone down the border
Use a low opacity for the text field border.
tests/interactive/test-text-field.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 2670fc58710b1d9d1ad5afae7b6ac397e1dc54dd
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Feb 10 15:37:26 2010 +0000
test-text-field: Use ActorBox methods for the border
Clamp to pixel and use get_size() when painting the border of the text
field.
tests/interactive/test-text-field.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
commit 3fdb0a59509aeaeb07c276ebd09df355626cfb92
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Feb 10 11:57:58 2010 +0000
uprof: make the Redrawing timer a child of the Master Clock
Previously it was a child of the Mainloop, but it's more closely
a child of the Master Clock.
clutter/clutter-backend.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 1899dbdc270e0bd494d174dd6bfbb9c5d18e174f
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Feb 10 12:18:41 2010 +0000
backend-glx: Fix glXQueryVersion test
This fixes some backwards logic for asserting that we have a GLX major
version == 1 and a minor version >= 2. (NB: Although we technically
depend on GLX 1.3 features, we still have to support drivers that report
GLX 1.2 because there are a lot of mesa drivers out there incorrectly
report GLX 1.2 even though they export extensions that depend on GLX
1.3)
clutter/glx/clutter-backend-glx.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit ce1bb3d858fd02d6bcfb94b2b8999cfd7d0a4535
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Feb 10 12:41:09 2010 +0000
cogl-material: Layers are not equal if the filters aren't equal
A material layer can not be considered equal if it is using different
texture filtering modes. This was causing problems where rectangles
with different filters would end up batched together and then rendered
with the wrong filter mode.
clutter/cogl/cogl/cogl-material.c | 5 +++++
1 file changed, 5 insertions(+)
commit b61c2b510b5f5a72ae6181cdce646d7018fbd996
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Feb 10 10:58:14 2010 +0000
build: Tweak internal defines for building Clutter
When building Clutter we should:
• disable Cogl deprecated API;
• enable experimental API.
clutter/Makefile.am | 2 ++
1 file changed, 2 insertions(+)
commit 4a9f08639f7127719f5b59ee9287641ba4912063
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Jan 20 18:53:36 2010 +0000
debug: Adds CLUTTER_DEBUG=disable-swap-events option
This allows us to forcibly disable the use of the GLX_INTEL_swap_events
extension for testing or debugging purposes.
clutter/clutter-debug.h | 37 +++++++++++++++++++------------------
clutter/clutter-main.c | 3 ++-
clutter/glx/clutter-backend-glx.c | 3 ++-
3 files changed, 23 insertions(+), 20 deletions(-)
commit 5d702853b814445590aafe448bfc8f7993b06638
Author: Robert Bragg <robert@linux.intel.com>
Date: Thu Nov 12 20:37:01 2009 +0000
glx backend: Adds support for GLX_INTEL_swap_event
If your OpenGL driver supports GLX_INTEL_swap_event that means when
glXSwapBuffers is called it returns immediatly and an XEvent is sent when
the actual swap has finished.
Clutter can use the events that notify swap completion as a means to
throttle rendering in the master clock without blocking the CPU and so it
should help improve the performance of CPU bound applications.
clutter/clutter-feature.h | 3 +-
clutter/clutter-master-clock.c | 72 +++++++++++++++++++++++++----
clutter/clutter-private.h | 2 +
clutter/clutter-stage-window.c | 13 ++++++
clutter/clutter-stage-window.h | 3 ++
clutter/clutter-stage.c | 8 ++++
clutter/glx/Makefile.am | 2 +
clutter/glx/clutter-backend-glx.c | 56 ++++++++++++++++++-----
clutter/glx/clutter-backend-glx.h | 3 ++
clutter/glx/clutter-event-glx.c | 96 +++++++++++++++++++++++++++++++++++++++
clutter/glx/clutter-event-glx.h | 38 ++++++++++++++++
clutter/glx/clutter-stage-glx.c | 21 +++++++++
clutter/glx/clutter-stage-glx.h | 2 +
clutter/x11/clutter-backend-x11.c | 10 ++++
clutter/x11/clutter-backend-x11.h | 7 +++
clutter/x11/clutter-event-x11.c | 5 ++
doc/HACKING.backends | 8 ++++
17 files changed, 327 insertions(+), 22 deletions(-)
commit 848db1ee4cc910542435bbcd3a57933bdf70269e
Author: Robert Bragg <robert@linux.intel.com>
Date: Thu Jan 14 14:03:23 2010 +0000
glx backend: when running with GLX 1.3 then create GLXWindows for stages
Some extensions only support GLX versions > 1.3 and may not support
old style X Windows as GLXDrawables, so we now create GLXWindows for
stages when possible.
clutter/glx/clutter-backend-glx.c | 72 ++++++++++++++++++++++++++++++---------
clutter/glx/clutter-backend-glx.h | 1 +
clutter/glx/clutter-stage-glx.c | 28 +++++++++++++++
clutter/glx/clutter-stage-glx.h | 1 +
4 files changed, 86 insertions(+), 16 deletions(-)
commit ca3ab41a1b12f661fe6eecddfaf5e03b0d94d682
Author: Neil Roberts <neil@linux.intel.com>
Date: Tue Feb 9 18:33:09 2010 +0000
clutter-backend: Fix the error check in _clutter_backend_create_stage
Commit d2bdd3cb62 fixed some compiler warnings but also broke the
ability to create a stage. Although not having warnings from the
compiler is nice, it is also nice to be able to create a stage so lets
not invert the meaning of the error check.
clutter/clutter-backend.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 7b1925df82fa92fd68623c9a999ece6bf4ddfde3
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Feb 9 17:07:08 2010 +0000
cogl: Move material_copy() out of the deprecated section
We strongly suggest people should be using cogl_material_copy(), but it
was hidden behind the deprecation guards.
clutter/cogl/cogl/cogl-material.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
commit d2bdd3cb62c1cba24619ae843cf087709a02643d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Feb 9 16:57:14 2010 +0000
Fix some compiler warnings
GCC complains that some variable might be used uninitialized.
clutter/clutter-backend.c | 6 ++++--
clutter/clutter-bin-layout.c | 1 +
clutter/clutter-flow-layout.c | 6 ++++++
clutter/clutter-text.c | 6 ++----
clutter/cogl/cogl/cogl-matrix-stack.c | 6 +++++-
5 files changed, 18 insertions(+), 7 deletions(-)
commit 193c477495488446d2f3d8ab0184f882f3255f48
Author: Neil Roberts <neil@linux.intel.com>
Date: Tue Feb 9 16:30:28 2010 +0000
cogl-bitmap: Remove const from premult_alpha_last_four_pixels_sse2
The function modifies the pixels pointed by p in-place so the pointer
can not be constant. The compiler was accepting this because the
modification is done from inline assembler.
clutter/cogl/cogl/cogl-bitmap-fallback.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit f5d2f58b03bf03b69f6cb92b3bdddb92b8a8ecc2
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Feb 9 15:29:29 2010 +0000
docs: Clean up the unused symbols for Cogl
Gtk-doc is reporting a lot of false positives in the unused text file,
mostly because of new private files that have been added to Cogl but not
to the gtk-doc ignore list for the Cogl API reference.
Once the false positives have been removed we have a couple of really
missing symbols that should be added to the cogl-sections.txt file.
doc/reference/cogl/Makefile.am | 54 ++++++++++++++++++++----------------
doc/reference/cogl/cogl-sections.txt | 7 +++++
2 files changed, 37 insertions(+), 24 deletions(-)
commit ecc5ffe91ace38c9d288251807e721a4cd71b052
Author: Bastian Winkler <buz@netbuz.org>
Date: Tue Feb 9 15:19:03 2010 +0100
cogl-buffer: Use correct argument types in cogl_buffer_set_data_EXP
offset and size arguments are gsize in cogl-buffer.h
http://bugzilla.openedhand.com/show_bug.cgi?id=1980
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
clutter/cogl/cogl/cogl-buffer.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
commit 9aac36b47e43e95d12c8d28bd3671e6f5e000d32
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Feb 9 14:48:11 2010 +0000
docs: Move some Cogl defines in the private section
The PixelFormat bit and mask #defines should not be used and are there
mostly for convenience, so we can push them to the "private" sub-section
of the API reference.
This pushed Cogl's API reference coverage to 100%.
doc/reference/cogl/cogl-sections.txt | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
commit 7ebb1e7157ab5d3efbeb37d7879d851adc7da40e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Feb 9 14:41:37 2010 +0000
docs: Fixes for Cogl API reference
98% symbol docs coverage.
335 symbols documented.
0 symbols incomplete.
8 not documented.
Not bad, if I may say so.
clutter/cogl/cogl/cogl-buffer.h | 12 ++++++---
clutter/cogl/cogl/cogl-color.h | 41 +++++++++++++++++++++++++++++++
clutter/cogl/cogl/cogl-fixed.h | 2 +-
clutter/cogl/cogl/cogl-material-private.h | 2 +-
clutter/cogl/cogl/cogl-matrix.h | 3 ++-
clutter/cogl/cogl/cogl-types.h | 23 ++++++++++++++++-
doc/reference/cogl/cogl-sections.txt | 16 +++---------
7 files changed, 80 insertions(+), 19 deletions(-)
commit 1d28ed035f360b14cfbf5b01db4ffe2979172cf0
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Feb 9 13:39:08 2010 +0000
Post-release bump to 1.1.11
configure.ac | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
commit a24d4d21a0eeca771476705ef407d55fdb32e68f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Feb 9 12:31:42 2010 +0000
Release 1.1.10
Brown paper bag release.
configure.ac | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
commit 738e73873dd0c05a44f7cb0ad40c8a854e0c75a6
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Feb 9 12:59:18 2010 +0000
Update NEWS file
NEWS | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
commit cccf23caa481a239b747d1fdd5e0ca5ae7f6682c
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Feb 9 11:29:39 2010 +0000
build: Always build conformance tests with debug symbols
Having the conformance test suite build without debug symbols doesn't
make any sense.
tests/conform/Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit e46db37c03b6adae1594729c2c5c86e65701d95b
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Feb 9 13:00:39 2010 +0000
conform: fix stack corruption in test-behaviours.c
The test was calling g_object_get to fetch the "opacity-start" property
(unsigned int) into a guint8 local variable. It's a bit of a mean trap
given that the getter function returns guint8 values so this also adds a
comment explaining what's going on.
tests/conform/test-behaviours.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
commit a02253f19a722dcfbf0a32543dd563127dd7b80e
Author: Neil Roberts <neil@linux.intel.com>
Date: Tue Feb 9 12:21:10 2010 +0000
cogl-texture-2d: Use _cogl_texture_driver_gen to generate the GL tex
_cogl_texture_driver_gen is needed to set the texture minification
mode to Cogl's default of GL_LINEAR. There was also a line to set this
in _cogl_texture_2d_new_with_size but it wasn't working because it was
called *before* the texture was bound. If the texture was later
rendered with the default material it then it would end up with GL's
default mipmap filtering mode but without mipmaps so it would render
white squares instead.
clutter/cogl/cogl/cogl-texture-2d.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
commit 1b2ff7eff7e97d8542e35514bfa010be706973ee
Author: Neil Roberts <neil@linux.intel.com>
Date: Fri Dec 18 21:17:21 2009 +0000
cogl: Use SSE2 when possible for premultiplying
This adds a fast path for premultiplying an RGBA image using SSE2
instructions. SSE registers are 128-bit and we need at least 16-bits
per component for the intermediate result of the multiplication so we
can do two pixels in parallel with one register. The function
interleaves 2 SSE registers to multiply 4 pixels in one function call
with the hope that this will pipeline better.
http://bugzilla.openedhand.com/show_bug.cgi?id=1939
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
clutter/cogl/cogl/cogl-bitmap-fallback.c | 104 ++++++++++++++++++++++++++++++-
1 file changed, 103 insertions(+), 1 deletion(-)
commit bbb058df40a5e1acf7b8e42049c3cd5d966f762d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Feb 9 10:34:41 2010 +0000
actor: Improve readability of raise/lower warnings
• Add the function name in the warning, since the text is the same in
both clutter_actor_raise() and clutter_actor_lower().
• If an actor has a name then prefer it to the type name.
clutter/clutter-actor.c | 46 +++++++++++++++++++++++++++++-----------------
1 file changed, 29 insertions(+), 17 deletions(-)
commit 7664568fff63501339d2cb1682ae1a9f1c27e068
Author: Halton Huo <halton.huo@gmail.com>
Date: Tue Feb 9 10:21:37 2010 +0000
Remove return from void functions
This patch fixes compilation on suncc.
http://bugzilla.openedhand.com/show_bug.cgi?id=1978
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
clutter/cogl/cogl/cogl-buffer.c | 2 +-
clutter/cogl/cogl/cogl-sub-texture.c | 2 +-
clutter/cogl/cogl/cogl-texture.c | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
commit a23ce8606860075e35fca28eb82e57e340f2b9b9
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Feb 8 18:09:14 2010 +0000
Post-release bump to 1.1.9
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit a2889ed0772503dce504ab260fbbf662a0ad25d8
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Feb 8 17:57:48 2010 +0000
Release Clutter 1.1.8
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit a139bf9c40f88b46055e4cd9754ba51acca97c87
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Feb 8 17:56:35 2010 +0000
test-animator: Do not use mid-function blocks
The test_animator_properties unit is so small that declaring a
mid-function block for two variables is not that clever.
tests/conform/test-animator.c | 57 +++++++++++++++++++++----------------------
1 file changed, 28 insertions(+), 29 deletions(-)
commit 4d9327bbe14c2771896999844df3eac28da75347
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Feb 8 17:55:29 2010 +0000
animator: Zero the AnimatorKey:value member
The test suite is showing random segfaults because the GValue member of
AnimatorKey is not zero-ed on creation.
clutter/clutter-animator.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
commit d62ddc374f88448fbde6db11ed4b10a594ecc5c4
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Feb 8 17:37:00 2010 +0000
docs: Fixes for ClutterAnimator
clutter/clutter-animator.c | 2 +-
clutter/clutter-animator.h | 16 ++++++++--------
doc/reference/clutter/clutter-sections.txt | 1 +
3 files changed, 10 insertions(+), 9 deletions(-)
commit 9806f78905eea6e7c3b5b1f35b35650a823cb295
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Feb 8 17:34:11 2010 +0000
Merge me
NEWS | 4 ++++
1 file changed, 4 insertions(+)
commit 814d3acd0730f2e418ccc44d550e1fa369c142fe
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Feb 8 17:27:20 2010 +0000
docs: Update NEWS
NEWS | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 53 insertions(+)
commit 419afc01e8f2c96f7cf5c0962e5c421f8f3a476f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Feb 8 17:27:13 2010 +0000
docs: Update the release notes
README | 6 ++++++
1 file changed, 6 insertions(+)
commit c02dded0f6793ad377b566360371c23dbe61b4bc
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Mon Feb 8 17:11:43 2010 +0000
cogl-buffer: Use TEXTURE as the only value for CoglBufferUsageHint
We should try to use more explicit defines than GL for our hints. For
now we only support using a CoglBuffer to generate textures.
clutter/cogl/cogl/cogl-buffer.c | 38 ++++++++--------------------------
clutter/cogl/cogl/cogl-buffer.h | 12 +++--------
clutter/cogl/cogl/cogl-pixel-buffer.c | 2 +-
tests/conform/test-cogl-pixel-buffer.c | 12 +++++------
4 files changed, 19 insertions(+), 45 deletions(-)
commit 54a6df22b038b047931dc108df35bc9e097d4e5e
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Tue Feb 2 16:44:16 2010 +0000
cogl-buffer: make sure the code compiles on GL ES
OpenGL ES has no PBO extension, so we fallback to using a malloc'ed
buffer. Make sure the OpenGL-only defines don't leak into the OpenGL ES
compilation.
clutter/cogl/cogl/cogl-buffer.c | 28 ++++++++++++++++++++++++++++
clutter/cogl/cogl/cogl-pixel-buffer.c | 7 +++++++
clutter/cogl/cogl/cogl-texture.c | 5 ++++-
3 files changed, 39 insertions(+), 1 deletion(-)
commit d0fe4795368ddc55411fb081832bfcdfdfeb4314
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Tue Feb 2 12:59:51 2010 +0000
cogl-pixel-buffer: Add a fallback path
First, let's add a new public feature called, surprisingly,
COGL_FEATURE_PBOS to check the availability of PBOs and provide a
fallback path when running on older GL implementations or on OpenGL ES
In case the underlying OpenGL implementation does not provide PBOs, we
need a fallback path (a malloc'ed buffer). The CoglPixelBufer
constructors will instanciate a subclass of CoglBuffer that handles
map/unmap and set_data() with a malloc'ed buffer.
The public feature is useful to check before using set_data() on a
buffer as it will mean doing a memcpy() when not supporting PBOs (in
that case, it's better to create the texture directly instead of using a
CoglBuffer).
clutter/cogl/cogl/cogl-pixel-buffer.c | 56 ++++++++++++++++++++--
clutter/cogl/cogl/cogl-texture.c | 38 ++++++++++-----
clutter/cogl/cogl/cogl-types.h | 4 +-
.../cogl/cogl/driver/gl/cogl-feature-functions.h | 5 ++
4 files changed, 88 insertions(+), 15 deletions(-)
commit b5d5821304e8ca15ee4411bf7ff8f26a6a23c855
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Fri Jan 22 15:38:31 2010 +0000
tests: Add a test for CoglPixelBuffers
Exercise the whole public CoglBuffer / CoglPixelBuffer and
cogl_texture_new_from_buffer API.
.gitignore | 1 +
tests/conform/Makefile.am | 1 +
tests/conform/test-cogl-pixel-buffer.c | 337 +++++++++++++++++++++++++++++++++
tests/conform/test-conform-main.c | 3 +
4 files changed, 342 insertions(+)
commit b7f049495b527547d093ca337588ceb289c9cb2b
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Fri Jan 22 15:07:27 2010 +0000
cogl-texture: Add a new constructor to turn CoglBuffers into textures
The only goal of using COGL buffers is to use them to create
textures. cogl_texture_new_from_buffer() is the new symbol to create
textures out of buffers.
clutter/cogl/cogl/cogl-texture.c | 55 +++++++++++++++++++++++++++++++++
clutter/cogl/cogl/cogl-texture.h | 60 ++++++++++++++++++++++++++++++++++++
doc/reference/cogl/cogl-sections.txt | 3 ++
3 files changed, 118 insertions(+)
commit abbb668163537598790cb3eca564ea19b1e010ad
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Sun Jan 10 18:04:29 2010 +0000
cogl-pixel-buffer: add a pixel buffer object class
This subclass of CoglBuffer aims at wrapping PBOs or other system
surfaces like DRM buffer objects. Two constructors are available:
cogl_pixel_buffer_new() with a size when you only care about the size of
the buffer (such a buffer can be used to store several texture data such
as the three planes of a I420 frame).
cogl_pixel_buffer_new_full() is more a 1:1 mapping between the data and
an underlying surface, with the possibility of having access to a low
level memory buffer that may have a stride.
clutter/cogl/cogl/Makefile.am | 3 +
clutter/cogl/cogl/cogl-pixel-buffer-private.h | 72 ++++++
clutter/cogl/cogl/cogl-pixel-buffer.c | 317 ++++++++++++++++++++++++++
clutter/cogl/cogl/cogl-pixel-buffer.h | 165 ++++++++++++++
clutter/cogl/cogl/cogl.h | 1 +
doc/reference/cogl/cogl-sections.txt | 6 +
6 files changed, 564 insertions(+)
commit b5e9710cdf5795f532fe46b9dfcc704a07d99ac9
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Sun Jan 10 17:28:24 2010 +0000
cogl-buffer: add an abstract class around openGL's buffer objects
Buffer objects are cool! This abstracts the buffer API first introduced
by GL_ARB_vertex_buffer_object and then extended to other objects.
The coglBuffer abstract class is intended to be the base class of all
the buffer objects, letting the user map() buffers. If the underlying
implementation does not support buffer objects (or only support VBO but
not FBO for instance), fallback paths should be provided.
clutter/cogl/cogl/Makefile.am | 3 +
clutter/cogl/cogl/cogl-buffer-private.h | 102 ++++++++++++
clutter/cogl/cogl/cogl-buffer.c | 282 +++++++++++++++++++++++++++++++
clutter/cogl/cogl/cogl-buffer.h | 287 ++++++++++++++++++++++++++++++++
clutter/cogl/cogl/cogl-context.c | 2 +
clutter/cogl/cogl/cogl-context.h | 5 +
clutter/cogl/cogl/cogl.h | 4 +
doc/reference/cogl/cogl-docs.xml.in | 21 +++
doc/reference/cogl/cogl-sections.txt | 17 ++
9 files changed, 723 insertions(+)
commit de8a6314f12854e748de515afb487af56eaac845
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Mon Jan 25 11:21:05 2010 +0000
cogl: new textures sould have GL_TEXTURE_MIN_FILTER set to GL_LINEAR
The only way the user has to set the mipmap filters is through the
material/layer API. This API defaults to GL_LINEAR/GL_LINEAR for the max
and min filters. With the main use case of cogl being 2D interfaces, it
makes sense do default to GL_LINEAR for the min filter.
When creating new textures, we did not set any filter on them, using
OpenGL defaults': GL_NEAREST_MIPMAP_LINEAR for the min filter and
GL_LINEAR for the max filter. This will make the driver allocate memory
for the mipmap tree, memory that will not be used in the nominal case
(as the material API defaults to GL_LINEAR).
This patch tries to ensure that the min filter is set to GL_LINEAR
before any glTexImage*() call is done on the texture by setting the
filter when generating new OpenGL handles.
clutter/cogl/cogl/cogl-texture-2d-sliced.c | 9 ++++----
clutter/cogl/cogl/cogl-texture-2d.c | 9 ++++----
clutter/cogl/cogl/cogl-texture-driver.h | 9 ++++++++
clutter/cogl/cogl/driver/gl/cogl-texture-driver.c | 27 ++++++++++++++++++++++
.../cogl/cogl/driver/gles/cogl-texture-driver.c | 27 ++++++++++++++++++++++
5 files changed, 72 insertions(+), 9 deletions(-)
commit c0f65212baee25dd4e66f4366a54bd847c782eb3
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Mon Jan 11 00:15:25 2010 +0000
cogl: Introduce the GE_RET() debug macro
Some GL functions have a return value that the GE() macro is not able to
handle. Let's define a new Ge_RET() macro which will be able to handle
functions such as glMapBuffer().
While at it, removed the unused variadic dots to the GE() macro.
clutter/cogl/cogl/cogl-internal.h | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
commit 069ba6daf9d39b471eb5c1de6e621f1343d5f00c
Merge: cc6aefad3 6ab90899b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Feb 8 16:53:11 2010 +0000
Merge branch 'animator-parser'
* animator-parser:
docs: Describe the Animation definition syntax
animator: Provide a ClutterScript parser
animator: Allow retrieving type property type from a key
script: Use a node when resolving an animation mode
commit 6ab90899badf7820ffc4f40f23bf18c979762577
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Feb 8 16:50:29 2010 +0000
docs: Describe the Animation definition syntax
The ClutterAnimator documentation needs a section on the syntax of its
ClutterScript definition, possibly with an example.
clutter/clutter-animator.c | 59 ++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 59 insertions(+)
commit 4dd11d6915f75ba62b8292c3138d4cc11a28fb21
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Feb 8 15:52:18 2010 +0000
animator: Provide a ClutterScript parser
The whole point of having the Animator class is that the developer can
describe a complex animation using ClutterScript. Hence, ClutterAnimator
should hook into the Script machinery and parse a specific description
format for its keys.
.gitignore | 2 +
clutter/clutter-animator.c | 303 +++++++++++++++++++++++++++++++++++---
tests/conform/Makefile.am | 1 +
tests/conform/test-animator.c | 88 +++++++++++
tests/conform/test-conform-main.c | 2 +
tests/data/Makefile.am | 2 +
tests/data/test-animator-1.json | 5 +
tests/data/test-animator-2.json | 29 ++++
8 files changed, 409 insertions(+), 23 deletions(-)
commit 790a13c0d9d2249747cfb81dcb13f83c6cc2cec1
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Feb 8 15:47:46 2010 +0000
animator: Allow retrieving type property type from a key
When asking a key for its target value we also ask the developer to pass
in an initialized GValue - but we don't make it easy to know the type of
the GValue. A developer has to ask the GObject class for the GParamSpec
and then initialize the GValue, instead.
Since we know the type of the GValue we should provide a getter for it.
We should also allow developers to throw at us GValue with compatible and
transformable types.
Finally, all the accessors should be constified.
clutter/clutter-animator.c | 93 +++++++++++++++++++++++++++++++++-------------
clutter/clutter-animator.h | 13 ++++---
2 files changed, 75 insertions(+), 31 deletions(-)
commit 09f91ff6eab3d617be88e11bd17c226fa4d23aed
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Feb 8 15:45:43 2010 +0000
script: Use a node when resolving an animation mode
Instead of taking a string and duplicating the "is it a string or an
integer" check in both Alpha and Animation, the function in
ClutterScript that resolves the animation mode values should take a
JsonNode and do all the checks it needs.
clutter/clutter-alpha.c | 21 +++++-------------
clutter/clutter-animation.c | 25 +++++----------------
clutter/clutter-script-parser.c | 47 +++++++++++++++++++++++++---------------
clutter/clutter-script-private.h | 2 +-
4 files changed, 41 insertions(+), 54 deletions(-)
commit cc6aefad345f4490f59f33eaef6f7589de1f3f9b
Author: Robert Bragg <robert@linux.intel.com>
Date: Thu Jan 14 18:11:57 2010 +0000
cogl path: make sure marking the clip state dirty takes affect
When we trashed the contents of the stencil buffer during
_cogl_path_fill_nodes we marked the clip stack state as dirty and expected
the clip stack code would clean up our glStencilFunc state.
The problem is that we only try and update the clip state during
_cogl_journal_init (when we flush the framebuffer state) which is only
called when the journal first gets something logged in it.
To make sure the stencil state is cleaned up we now also flush the journal
so _cogl_journal_init will be called for the next logged rectangle.
clutter/cogl/cogl/cogl-primitives.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
commit 24338a7511cd09298695f0a0b51ea6a97fa6786a
Author: Neil Roberts <neil@linux.intel.com>
Date: Fri Feb 5 21:56:31 2010 +0000
clutter-master-clock: Don't wait for a frame if time goes backwards
If we aren't syncing to vblank or if the last dispatch didn't cause a
redraw then the master clock will try to wait at least a small amount
of time before dispatching again. However if time goes backwards then
it would not do a dispatch until time catches up again. To fix this it
know just runs a dispatch immediately if time goes backwards.
This is related to Moblin bug #3839. There was a similar fix for this
in 9dc012c07, however that only fixed the case where timelines
wouldn't update. If there are no animations running then the master
clock won't even try updating timelines until time catches up.
http://bugzilla.o-hand.com/show_bug.cgi?id=1974
clutter/clutter-master-clock.c | 11 +++++++++++
1 file changed, 11 insertions(+)
commit 8ac27e60707b2dfd13ba978b81421423e37ebf98
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Feb 8 10:40:39 2010 +0000
test-flow-layout: Remove unneeded Stage sizing
The bug with resizable stages getting a 1, 1 window on X11 has been
fixed by Chris.
tests/interactive/test-flow-layout.c | 1 -
1 file changed, 1 deletion(-)
commit 6106010b6f20980fc51d1431b623567eed10853d
Merge: 4cc269a46 c82c94e62
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Feb 8 10:34:22 2010 +0000
Merge remote branch 'origin/cwiiis-stage-resize'
* origin/cwiiis-stage-resize:
[stage-x11] Set the default size differently
[stage] Set default size correctly
Revert "[x11] Don't set actor size on ConfigureNotify"
[x11] Don't set actor size on ConfigureNotify
[stage] Now that get_geometry works, use it
[stage-x11] make get_geometry always get geometry
[stage] Get the current size correctly
[stage] Set minimum width/height to 1x1
[stage] Add set/get_minumum_size
commit 4cc269a4687f6ca4fcd88ada134cfa00e2b13a1a
Author: Øyvind Kolås <pippin@linux.intel.com>
Date: Fri Feb 5 12:32:00 2010 +0000
Add ClutterAnimator
ClutterAnimator is a class for managing the animation of multiple
properties of multiple actors over time with keyframing of values.
The Animator class is meant to be used to effectively describe
animations using the ClutterScript definition format, and to construct
complex implicit animations from the ground up.
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
.gitignore | 1 +
clutter/Makefile.am | 2 +
clutter/clutter-animator.c | 1435 ++++++++++++++++++++++++++++
clutter/clutter-animator.h | 166 ++++
clutter/clutter-types.h | 1 +
clutter/clutter.h | 1 +
doc/reference/clutter/clutter-docs.xml.in | 4 +-
doc/reference/clutter/clutter-sections.txt | 48 +
doc/reference/clutter/clutter.types | 1 +
tests/interactive/Makefile.am | 1 +
tests/interactive/test-animator.c | 134 +++
11 files changed, 1793 insertions(+), 1 deletion(-)
commit c82c94e6205eda962faf5a51e663680c313be062
Author: Chris Lord <chris@linux.intel.com>
Date: Sun Feb 7 19:17:43 2010 +0100
[stage-x11] Set the default size differently
We want to set the default size without triggering the layout machinary,
so change the window creation process slightly so we start with a
640x480 window.
clutter/clutter-stage.c | 3 ---
clutter/glx/clutter-stage-glx.c | 4 +++-
clutter/x11/clutter-stage-x11.c | 4 ++--
3 files changed, 5 insertions(+), 6 deletions(-)
commit b968defae92f3fbd5a4a762b4c817ab58989ee82
Author: Chris Lord <chris@linux.intel.com>
Date: Sun Feb 7 14:18:14 2010 +0100
[stage] Set default size correctly
Due to the way the new sizing works, clutter stage must set its size in
init (to maintain old behaviour) and the properties on the X11 stage
must be initialised to 1x1 so that it actually goes ahead with the
resize.
Fixes stages that aren't user resizable and have no size set from
appearing at 1x1.
clutter/clutter-stage.c | 3 +++
clutter/x11/clutter-stage-x11.c | 4 ++--
2 files changed, 5 insertions(+), 2 deletions(-)
commit 8083dc418b3c2b069a9b0db9323650050a3f63b1
Author: Chris Lord <chris@linux.intel.com>
Date: Sat Feb 6 16:57:37 2010 +0100
Revert "[x11] Don't set actor size on ConfigureNotify"
This reverts commit 29cc027f069c9ad900b9044cd40075c2d17be736.
I misunderstood the problem, this commit breaks resizes coming from
outside of Clutter.
clutter/x11/clutter-event-x11.c | 4 ++++
clutter/x11/clutter-stage-x11.c | 5 +----
clutter/x11/clutter-stage-x11.h | 1 -
3 files changed, 5 insertions(+), 5 deletions(-)
commit 29cc027f069c9ad900b9044cd40075c2d17be736
Author: Chris Lord <chris@linux.intel.com>
Date: Sat Feb 6 16:47:22 2010 +0100
[x11] Don't set actor size on ConfigureNotify
Calling clutter_actor_set_size in response to ConfigureNotify makes
setting the size of the stage racy - the most common result of which
seems to be that you can't set the stage dimensions to anything less
than 640x480.
Instead, add a first_allocation bit to the private structure of the X11
stage and force the first resize (necessary or the default stage will be
a 1x1 window).
clutter/x11/clutter-event-x11.c | 4 ----
clutter/x11/clutter-stage-x11.c | 5 ++++-
clutter/x11/clutter-stage-x11.h | 1 +
3 files changed, 5 insertions(+), 5 deletions(-)
commit cea9de7f047cb8c2b1d54f41ca1d77c3aff882e0
Author: Chris Lord <chris@linux.intel.com>
Date: Sat Feb 6 15:41:01 2010 +0100
[stage] Now that get_geometry works, use it
We want the actual window geometry in clutter_stage_set_minimum_size,
not the set size. Now that the geometry function has been changed to do
what it says, use it.
clutter/clutter-stage.c | 14 ++++++--------
1 file changed, 6 insertions(+), 8 deletions(-)
commit 4887707bb34faca0d7ad92f6628d18345163f5e0
Author: Chris Lord <chris@linux.intel.com>
Date: Sat Feb 6 15:34:55 2010 +0100
[stage-x11] make get_geometry always get geometry
Now that we have a minimum size getter on the stage object, change
get_geometry to actually always return the geometry. This fixes stages
that are set as user-resizable appearing at 1x1 size.
This will need changing in other back-ends too.
clutter/x11/clutter-stage-x11.c | 57 +++++++++++++++++------------------------
1 file changed, 23 insertions(+), 34 deletions(-)
commit 27e33aa14ff5d14f6066da74922c960a037b5089
Author: Chris Lord <chris@linux.intel.com>
Date: Sat Feb 6 14:59:51 2010 +0100
[stage] Get the current size correctly
Get the current size of the stage correctly in
clutter_stage_set_minimum_size. The get_geometry StageWindow function is
not equivalent of the current size, use clutter_actor_get_size().
clutter/clutter-stage.c | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
commit be11564b556a1b1c08b7b9e7a0a94bc00c4e6550
Author: Chris Lord <chris@linux.intel.com>
Date: Sat Feb 6 14:04:47 2010 +0100
[stage] Set minimum width/height to 1x1
Whoops, to maintain the old behaviour, make sure the default minimum
width/height are 1x1.
clutter/clutter-stage.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
commit fd11d3098f0182f24666ed77973269111cb0a8f5
Author: Chris Lord <chris@linux.intel.com>
Date: Sat Feb 6 11:23:37 2010 +0000
[stage] Add set/get_minumum_size
Add two functions to set/get the minimum stage size. This takes effect
when a stage is set to user resizable.
clutter/clutter-stage.c | 75 ++++++++++++++++++++++++++++++
clutter/clutter-stage.h | 7 +++
clutter/x11/clutter-stage-x11.c | 6 +--
doc/reference/clutter/clutter-sections.txt | 2 +
4 files changed, 87 insertions(+), 3 deletions(-)
commit f973b73208bad266a2362e22e5aed1a0780d096d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sat Feb 6 11:00:50 2010 +0000
Add cogl-subtexture test to the Git ignore file
.gitignore | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
commit e55966d675e57d516ea5aff36b03fde63d4839d3
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Feb 5 16:22:09 2010 +0000
Deprecate clutter_util_next_p2()
The next_p2() function should have never been publicly exposed by
Clutter.
clutter/clutter-util.c | 15 ++++++++-------
clutter/clutter-util.h | 9 ++++++---
tests/interactive/test-shader.c | 19 +++++++++++++++++--
3 files changed, 31 insertions(+), 12 deletions(-)
commit bbaf6b233d0120e3199d779eeb2829e56ecc279b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Feb 5 15:31:18 2010 +0000
docs: Fix whitespace in the App manual stub
doc/manual/clutter-manual.xml.in | 185 +++++++++++++++++----------------------
1 file changed, 81 insertions(+), 104 deletions(-)
commit dcdb97006b563407d43f19779ac47f0330052541
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Feb 5 14:47:39 2010 +0000
build: Add suppressions file to EXTRA_DIST
tests/data/Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 830f2402d4f49b7173eb7fa0bda5762a4c430c9a
Merge: 1bdc3db9a 6b1b27d4f
Author: Neil Roberts <neil@linux.intel.com>
Date: Sat Feb 6 00:20:07 2010 +0000
Merge branch 'more-texture-backends'
This adds three new texture backends.
- CoglTexture2D: This is a trimmed down version of CoglTexture2DSliced
which only supports a single texture and only works with the
GL_TEXTURE_2D target. The code is a lot simpler so it has a less
overheads than dealing with slices. Cogl will use this wherever
possible.
- CoglSubTexture: This is used to get a CoglHandle to represent a
subregion of another texture. The texture can be used as if it was a
standalone texture but it does not need to copy the resources.
- CoglAtlasTexture: This collects RGB and RGBA textures into a single
GL texture with the aim of reducing texture state changes and
increasing batching. The backend will try to manage the atlas and
may move the textures around to close gaps in the texture. By
default all textures will be placed in the atlas.
commit 6b1b27d4f894cbefc90601eaf6214b55a71834b7
Author: Neil Roberts <neil@linux.intel.com>
Date: Sat Feb 6 00:12:10 2010 +0000
cogl-bitmap: Update the format after (un)premultiplying
The pixel format of the bitmap needs to have its premult flag cleared
or set after the premult conversion otherwise it may get converted
again.
clutter/cogl/cogl/cogl-bitmap-fallback.c | 4 ++++
clutter/cogl/cogl/cogl-texture.c | 3 +--
2 files changed, 5 insertions(+), 2 deletions(-)
commit 191d20eb56f31786660cd04aacc710344eb8df7a
Author: Neil Roberts <neil@linux.intel.com>
Date: Fri Feb 5 17:03:04 2010 +0000
cogl-atlas-texture: Fix a cut and paste error when getting the height
There was a typo in getting the height of the full texture to check
whether the sub region fits so that it was using the width
instead. This was causing crashes when debugging is enabled for some
apps.
clutter/cogl/cogl/cogl-sub-texture.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 1bdc3db9ab54316f5f313dc3e991f3a621e83586
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Thu Feb 4 21:10:02 2010 +0000
docs: Use % for defines not #
Some links to defines in the gtk-doc annotations were using '#' instead
of '%'.
clutter/clutter-actor.c | 4 ++--
clutter/clutter-path.c | 10 +++++-----
clutter/cogl/cogl/cogl-fixed.c | 4 ++--
3 files changed, 9 insertions(+), 9 deletions(-)
commit 1b94cc9268e57cc49e3bac914c4b979aec955f77
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Wed Jan 27 16:03:28 2010 +0000
docs: fix new line in the cogl xml top level document
A comma in the FSF address is wrong. Supreme Offence.
doc/reference/cogl/cogl-docs.xml.in | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
commit 0ea25d661b887c27beaf0bd848dfda994d88782f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Feb 4 18:29:47 2010 +0000
event: Do not generate click count for SCROLL events
The ClutterScrollEvent structure does not have a click count field,
so Clutter should not generate the click count for events of type
CLUTTER_SCROLL.
clutter/clutter-main.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
commit 15c6fef7e3e426764bafc316794a195a086e0d03
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Feb 4 16:49:06 2010 +0000
tests: Add a Valgrind suppression file
When running tests under Valgrind it would be useful to pass a
suppression file for the known one-off allocations done by Clutter
and by its dependencies. This trims the output of Valgrind and
improves the ability to actually spot leaks.
tests/README | 35 ++++++--
tests/data/clutter-1.0.suppressions | 173 ++++++++++++++++++++++++++++++++++++
2 files changed, 203 insertions(+), 5 deletions(-)
commit 1f70da62a73e3a10fe1ceb33d11f79fc29586fcf
Author: Neil Roberts <neil@linux.intel.com>
Date: Thu Feb 4 16:28:29 2010 +0000
glx: Create a colormap for the dummy window
Otherwise X will fail to create the window and throw a BadMatch error
at least on NVidia.
clutter/glx/clutter-backend-glx.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
commit 466b00a8064ad09f0574f8f46c6df0390d7c7d00
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Feb 4 13:59:39 2010 +0000
glx: Clarify *why* we need the dummy window
The reason why we have a dummy, offscreen Window when we create the
GLX context is that GLX does not like it when you ask the context for
features if it's not made current to a Drawable. Maybe in the future
it will allow us to do so, but right now we have to make do with what
GLX offers us.
clutter/glx/clutter-backend-glx.c | 6 ++++++
1 file changed, 6 insertions(+)
commit ea5e33cf3a38edddef88ec30131c35bb8ab4bfaf
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Feb 4 13:56:33 2010 +0000
glx: Do not leak a XVisualInfo
The XVisualInfo we retrieve for the dummy window should be freed after
we used it.
clutter/glx/clutter-backend-glx.c | 2 ++
1 file changed, 2 insertions(+)
commit e6a3b6ebe75a2c0c3709fbe12cf04c4357b54fdd
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Feb 3 23:08:30 2010 +0000
cogl-texture: Avoid copying the bitmap when premultiplying from a file
In cogl_texture_new_from_file we create and own a temporary
bitmap. There's no need to copy this data if we need to do a premult
conversion so instead it just does conversion before passing it on to
cogl_texture_new_from_bitmap.
clutter/cogl/cogl/cogl-texture.c | 23 ++++++++++++++++++-----
1 file changed, 18 insertions(+), 5 deletions(-)
commit 59198b8ab8a6a7c1c3dbfa5c72abf36f8d66c543
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Feb 3 22:54:44 2010 +0000
cogl-texture: Split out _cogl_texture_prepare_for_upload
The Cogl atlas code was using _cogl_texture_prepare_for_upload with a
NULL pointer for the dst_bmp to determine the internal format of the
texture without converting the bitmap. It needs to do this to decide
whether the texture will go in the atlas before wasting time on the
conversion. This use of the function is a little confusing so that
part of it has been split out into a new function called
_cogl_texture_determine_internal_format. The code to decide whether a
premult conversion is needed has also been split out.
clutter/cogl/cogl/cogl-atlas-texture.c | 11 +----
clutter/cogl/cogl/cogl-texture-private.h | 7 +++
clutter/cogl/cogl/cogl-texture.c | 81 +++++++++++++++++++-------------
3 files changed, 57 insertions(+), 42 deletions(-)
commit 5063f4669c2c94d7288405005f4df14e73a4f578
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Feb 3 19:54:12 2010 +0000
cogl-atlas: Make the cogl_atlas_* API internal
This just adds an underscore to every entry point for the CoglAtlas
API so that it's not exported.
clutter/cogl/cogl/cogl-atlas-texture.c | 89 ++++++++++-----------
clutter/cogl/cogl/cogl-atlas.c | 140 ++++++++++++++++-----------------
clutter/cogl/cogl/cogl-atlas.h | 32 ++++----
clutter/cogl/cogl/cogl-context.c | 2 +-
4 files changed, 132 insertions(+), 131 deletions(-)
commit cd3c5155d879782a6e6e1d7fa56043e03712b727
Author: Jussi Kukkonen <jku@linux.intel.com>
Date: Wed Feb 3 17:04:38 2010 +0000
text: implement del_word_next/del_word_prev()
Bind ctrl-backspace and ctrl-del to functions that delete a word before
or after the cursor, respectively.
Selection does not affect the deletion, but current selection is
preserved. This mimicks GTK+ functionality in GtkTextView and GtkEntry.
http://bugzilla.openedhand.com/show_bug.cgi?id=1767
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
clutter/clutter-text.c | 95 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 95 insertions(+)
commit d8d728a8d7ac4bc56f058379d76f4539d01189de
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Dec 9 00:50:33 2009 +0000
Remove the SDL backend
The SDL API is far too limited for the windowing system needs of
Clutter; the status of the SDL backend was always experimental, and
since the Windows platform is supported by a native backend there is
no point in having the SDL backend around any more.
README | 8 +-
clutter/Makefile.am | 2 +-
clutter/sdl/Makefile.am | 26 ---
clutter/sdl/clutter-backend-sdl.c | 207 ---------------------
clutter/sdl/clutter-backend-sdl.h | 70 -------
clutter/sdl/clutter-event-sdl.c | 377 --------------------------------------
clutter/sdl/clutter-sdl.h | 39 ----
clutter/sdl/clutter-stage-sdl.c | 197 --------------------
clutter/sdl/clutter-stage-sdl.h | 34 ----
configure.ac | 41 +----
10 files changed, 5 insertions(+), 996 deletions(-)
commit ae188d203c63d680dc58ba1e19f333719a6916d4
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Jan 20 16:41:25 2010 +0000
win32: Use a dummy window to support delayed stage creation
The Win32 backend now implements the create_context method which
creates a context and binds it to a 1x1 invisible window. That way
there will always be a context bound and the features can be retrieved
without creating the default stage. This reflects the changes in
1c6ffc8..b245d55 to the GLX backend.
clutter/win32/clutter-backend-win32.c | 194 ++++++++++++++++++++++++++++++++--
clutter/win32/clutter-backend-win32.h | 2 +
clutter/win32/clutter-stage-win32.c | 84 +++------------
3 files changed, 198 insertions(+), 82 deletions(-)
commit 479fdffc7d4f37f9ff104403dd7de685df97e0d5
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sun Dec 6 18:56:14 2009 +0000
glx: Fix error messages and debug notes
Instead of using g_critical() inside the create_context() implementation
of the ClutterBackendGLX we should use the passed GError, so that the
error message can bubble up to the caller.
clutter/glx/clutter-backend-glx.c | 31 +++++++++++++++++++------------
1 file changed, 19 insertions(+), 12 deletions(-)
commit ede2cbfab05035247b2a6a2ca837cb8f71871c5d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Dec 3 21:07:45 2009 +0000
stage: Create the default stage on demand
Instead of creating the default stage during initialization we can
now safely create it whenever clutter_stage_get_default() is called.
To maintain the invariant, the default stage is immediately realized
by Clutter itself.
clutter/clutter-main.c | 28 ----------------------------
clutter/clutter-stage.c | 15 ++++++++++-----
2 files changed, 10 insertions(+), 33 deletions(-)
commit d2c091e62d4b9e897e8f8ef5de99f20417cc6682
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Dec 3 20:49:54 2009 +0000
glx: Create the dummy Window with the GLX context
Since we must guarantee that Cogl has a GL context to query, it is too
late to use the "dummy Window" trick from within the get_features()
virtual function implementation.
Instead, we can create a dummy Window from create_context() itself and
leave it around - basically trading a default stage with a dummy X
window.
We need to have the dummy X window around all the time so that the
GLX context can be selected and made current.
clutter/clutter-main.c | 16 ++--
clutter/glx/clutter-backend-glx.c | 169 +++++++++++++++++++-------------------
clutter/glx/clutter-backend-glx.h | 1 +
3 files changed, 95 insertions(+), 91 deletions(-)
commit 5eb6fb74b660d22e7f31867b16997ee9f63bef4b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Dec 3 20:48:55 2009 +0000
feature: Make sure we have a GL context
Before asking Cogl and ClutterBackend for the list of features we must
have a GL backend ready.
clutter/clutter-feature.c | 3 +++
1 file changed, 3 insertions(+)
commit a8daaa8222c9b4aaf7e46b1bb13a2ce8097153f1
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Dec 3 20:47:48 2009 +0000
stage: Move default title in Stage.init
The default title should be set from within clutter_stage_init(); at
that point clutter_init() must have been called.
clutter/clutter-main.c | 2 --
clutter/clutter-stage.c | 1 +
2 files changed, 1 insertion(+), 2 deletions(-)
commit 38f26634eec3c81d61bb3b88b24563d7e4719f67
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Dec 3 17:36:03 2009 +0000
Lazily create the Pango fontmap
The Pango fontmap needed by Clutter should be initialized the first
time we need a PangoContext, not on initialization.
clutter/clutter-main.c | 35 ++++++++++++++++-------------------
1 file changed, 16 insertions(+), 19 deletions(-)
commit 6fbed66add4b8c03a0ba0f4edc1c2f0044608998
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Dec 3 17:13:44 2009 +0000
Delay default stage creation
The default stage creation should be delayed as much as possible,
ideally at the end of the init() process.
clutter/clutter-backend.c | 8 ++++
clutter/clutter-main.c | 67 +++++++++++++-------------
clutter/clutter-stage.c | 6 +--
clutter/cogl/cogl/cogl-journal.c | 3 ++
clutter/glx/clutter-backend-glx.c | 98 +++++++++++++++++++++++++++++----------
clutter/glx/clutter-stage-glx.c | 5 ++
6 files changed, 126 insertions(+), 61 deletions(-)
commit 3191ea1195d5e1d55facc147760b273efca76867
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Dec 3 17:35:19 2009 +0000
cogl-debug: Remove redundant newlines
The debugging notes wrapping g_debug() already have an implicit newline
at the end of the passed message.
clutter/cogl/cogl/cogl-handle.h | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
commit 16a5911cff90a2bba1b283ccd9a9ce6d0f435924
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Feb 3 15:05:37 2010 +0000
tests: Clean up the cairo-flowers interactive test
tests/interactive/test-clutter-cairo-flowers.c | 14 ++++++--------
1 file changed, 6 insertions(+), 8 deletions(-)
commit cb52581a24c157e2bedb74c32d522dc56d9a91a2
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Feb 3 14:35:45 2010 +0000
text: Add :font-description
High level toolkits might wish to construct a PangoFontDescription and
then set it directly on a ClutterText actor proxy or sub-class.
ClutterText should have a :font-description property to set (and get)
the PangoFontDescription.
http://bugzilla.openedhand.com/show_bug.cgi?id=1960
clutter/clutter-text.c | 131 +++++++++++++++--
clutter/clutter-text.h | 225 +++++++++++++++--------------
doc/reference/clutter/clutter-sections.txt | 2 +
3 files changed, 234 insertions(+), 124 deletions(-)
commit 74c0170ccc80504018f2aab849a6a311c64052a6
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Feb 3 14:31:12 2010 +0000
cogl-vertex-buffer: Refix disabling texture coord arrays
Commit 92a375ab4 changed the initial value of max_texcoord_attrib_unit
to -1 so that it could disable the texture coord array for the first
texture unit when there are no texture coords used in the vbo. However
max_texcoord_attrib_unit was an unsigned value so this actually became
G_MAXUINT. The disabling loop at the bottom still worked because
G_MAXUINT+1==0 but the check for whether any texture unit is greater
than max_texcoord_attrib_unit was failing so it would always end up
disabling all texture units. This is now fixed by changing
max_texcoord_attrib_unit to be signed.
clutter/cogl/cogl/cogl-vertex-buffer.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 301863d43bc79e792f8fe3ea5e9185d87cb74069
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Feb 2 17:07:22 2010 +0000
text: Fixes for selection bound
The commit ecbb7ce41a1a759e246fce07f146b8bed5e3d730 exposed some issues
when positioning the cursor with the mouse pointer: the selection is
not moved along with the cursor when inserting a single character or a
string.
Also, some freeze_notify() are called too early, leading to decoupling
from their respective thaw_notify().
http://bugzilla.openedhand.com/show_bug.cgi?id=1955
clutter/clutter-text.c | 44 +++++++++++++++++++-------------------------
1 file changed, 19 insertions(+), 25 deletions(-)
commit 5bec49aea931e6835b97e549e23458a6214548ce
Author: Kristian Høgsberg <krh@bitplanet.net>
Date: Wed Jan 27 12:55:18 2010 -0500
Use ClutterTimeline in test-clutter-cairo-flowers.c
http://bugzilla.openedhand.com/show_bug.cgi?id=1969
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
tests/interactive/test-clutter-cairo-flowers.c | 24 +++++++++++++++++-------
1 file changed, 17 insertions(+), 7 deletions(-)
commit c9a6e63fa4d1d710d9efeb850f3fc336933ee2a8
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Feb 2 14:50:03 2010 +0000
docs: Clarify Group's sizing semantics
The documentation for ClutterGroup behaviour when setting an explicit
size is not accurate - or, actually, it was accurate by the time
ClutterGroup was first written but has been neglected in the following
release cycles.
To avoid confusion for new users of Clutter the documentation should be
slightly expanded, mentioning the exact semantics of ClutterGroup with
regards to: preferred size, explicitly set size and how to constrain the
visible area of a ClutterGroup to an explicitly set size.
Based on a patch by: Neil Roberts <neil@linux.intel.com>
clutter/clutter-group.c | 16 ++++++++++++----
1 file changed, 12 insertions(+), 4 deletions(-)
commit 12b004b0e7e13ca64d7d35cd3fe083f582b7aa09
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Feb 2 12:56:04 2010 +0000
tests: Add an initial Behaviour conformance suite
The coverage of the Behaviour sub-classes is currently abysmal. An
initial test suite for Behaviours should at least verify that the
accessors and the constructors are doing the right thing.
This initial test suite just verifies the BehaviourOpacity sub-class,
but it already bumps up the overall coverage by 2%.
.gitignore | 1 +
tests/conform/Makefile.am | 1 +
tests/conform/test-behaviours.c | 87 +++++++++++++++++++++++++++++++++++++++
tests/conform/test-conform-main.c | 2 +
4 files changed, 91 insertions(+)
commit f94e6911510b5376dd490c1f8724e616aaf2e5dc
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Feb 2 12:54:51 2010 +0000
behaviour: Clean up BehaviourOpacity
• Use a consistent coding style
• Call set_bounds() from set_property(), because we need proper
notification on the modified property
clutter/clutter-behaviour-opacity.c | 56 +++++++++++++++++++++----------------
1 file changed, 32 insertions(+), 24 deletions(-)
commit 521d71d4bc4ca4b06343365c71c9520b1ebfdc7f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Feb 1 15:47:50 2010 +0000
event: Unify the off-stage motion events delivery behaviour
When we disable the per-actor events delivery Clutter replicates the X11
implicit soft grab for motion events with off-stage. The implicit grab
is done whenever the pointer of a device leaves a window with a button
still pressed; with the implicit grab in place the window still receives
motion events even after the LeaveNotify - until the button is released.
The implicit grab is not honoured in the per-actor event deliver case,
though, so we have a mismatch between two in theory equivalent cases.
Luckily, the fix is pretty trivial: when we check for a motion event
with a stage set but without an actor set, and that has off-stage
coordinates, we arbitrarily set the source to be the stage of the event
and emit the pointer event.
clutter/clutter-main.c | 40 ++++++++++++++++++++++++++++++++++------
1 file changed, 34 insertions(+), 6 deletions(-)
commit 46d6697b9170ba110439cbf61d152890b35a3837
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Feb 1 14:53:13 2010 +0000
build: -Wformat is required for -Wformat-security
GCC will ignore -Wformat-security without -Wformat on the same compiler
flags.
configure.ac | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
commit 157a0cf9364a9e60b29e5e88ca1783d9e174a635
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Feb 1 14:48:50 2010 +0000
build: Retrieve X11 cflags and libraries
When using pkg-config to check for the x11 package compiler flags and
libraries we actually need to retrieve those values from the pc file.
This should also fix the issue with non-canonical installations of the
X11 headers and shared objects.
http://bugzilla.openedhand.com/show_bug.cgi?id=1966
configure.ac | 5 +++++
1 file changed, 5 insertions(+)
commit 145cc9d3dfd1dc51f254eefde35042fc20a6375e
Merge: aa6731e33 5f1c8a17e
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Feb 1 13:37:19 2010 +0000
Merge remote branch 'master' into texture-debugging
Conflicts:
clutter/cogl/cogl/cogl-context.h
commit aa6731e338a88d03e718980604ac8f2393391a9f
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Feb 1 13:25:19 2010 +0000
cogl-material: Compare GL texture numbers for material layer textures
When deciding if a material layer is equal it now compares the GL
target and texture number if the textures are not sliced. This is
needed to get batching across atlased textures.
clutter/cogl/cogl/cogl-material.c | 25 ++++++++++++++++++++++++-
1 file changed, 24 insertions(+), 1 deletion(-)
commit abe91784c4ba98417eabe0649bf73381afbd6fc7
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Feb 1 12:11:58 2010 +0000
cogl: Let GL do the format conversion when uploading texture data
Cogl accepts a pixel format for both the data in memory and the
internal format to be used for the texture. If they do not match then
it would convert them using the CoglBitmap functions before uploading
the data. However, GL also lets you specify both formats so it makes
more sense to let GL do the conversion. The driver may need the
texture in a specific format so it may end up being converted anyway.
The cogl_texture_upload_data functions have been removed and replaced
with a single function to prepare the bitmap. This will only do the
premultiplication conversion because that is the only part that GL
can't do directly.
clutter/cogl/cogl/cogl-atlas-texture.c | 111 +++++++--------
clutter/cogl/cogl/cogl-texture-2d-sliced.c | 220 ++++++++++++++++-------------
clutter/cogl/cogl/cogl-texture-2d.c | 92 ++++++------
clutter/cogl/cogl/cogl-texture-private.h | 44 ++----
clutter/cogl/cogl/cogl-texture.c | 136 ++++++++----------
5 files changed, 290 insertions(+), 313 deletions(-)
commit e83ffb1fa3436bf1506c32856b2a3ba23254e068
Author: Neil Roberts <neil@linux.intel.com>
Date: Fri Jan 29 15:15:08 2010 +0000
cogl: Do the premult conversion in-place rather than copying to a new buffer
The premult part of _cogl_convert_premult has now been split out as
_cogl_convert_premult_status. _cogl_convert_premult has been renamed
to _cogl_convert_format to make it less confusing. The premult
conversion is now done in-place instead of copying the
buffer. Previously it was copying the buffer once for the format
conversion and then copying it again for the premult conversion. The
premult conversion never changes the size of the buffer so it's quite
easy to do in place. We can also use the separated out function
independently.
clutter/cogl/cogl/cogl-atlas-texture.c | 6 +-
clutter/cogl/cogl/cogl-bitmap-fallback.c | 142 +++++++++++------------------
clutter/cogl/cogl/cogl-bitmap-pixbuf.c | 6 +-
clutter/cogl/cogl/cogl-bitmap-private.h | 22 ++---
clutter/cogl/cogl/cogl-bitmap.c | 102 ++++++++-------------
clutter/cogl/cogl/cogl-texture-2d-sliced.c | 12 +--
clutter/cogl/cogl/cogl-texture-2d.c | 12 +--
clutter/cogl/cogl/cogl-texture.c | 6 +-
8 files changed, 123 insertions(+), 185 deletions(-)
commit 72fba19eac68ffa30c3f60aeecfdbfa6a2da7bd4
Author: Neil Roberts <neil@linux.intel.com>
Date: Fri Jan 29 12:19:42 2010 +0000
cogl-atlas-texture: Use a single atlas for both RGB and RGBA textures
The internal format of the atlas texture is still set to the
appropriate format so Cogl will disable blending for textures that are
intended to be RGB. This should end up ignoring the alpha channel from
the texture in the atlas. This makes the code slightly easier to
maintain and should also improve the chances of batching.
clutter/cogl/cogl/cogl-atlas-texture.c | 134 ++++++++++++---------------------
clutter/cogl/cogl/cogl-context.c | 18 ++---
clutter/cogl/cogl/cogl-context.h | 8 +-
3 files changed, 57 insertions(+), 103 deletions(-)
commit ad6bd2ee88770c2ce86f81f7a64b6b121c3418d6
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Feb 1 12:18:10 2010 +0000
actor: Reword the allocation cycle warning
Since we're allowing allocation cycles saying that calling
queue_relayout() inside an allocation cycle "is not allowed" is kind of
confusing. We should say that "it is not recommended".
clutter/clutter-actor.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 5f1c8a17e4f81ead1747b47939d593c80246bf06
Merge: ecbb7ce41 8a4b64715
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Feb 1 11:26:56 2010 +0000
Merge branch 'device-manager'
* device-manager: (37 commits)
x11: Re-enable XI1 extension keyboards
x11: Always handle core device events before XI events
docs: Documentation fixes for DeviceManager
device-manager: Fix the signals definition
docs: Add sections for InputDevice and DeviceManager
docs: Add clutter_input_device_get_device_name()
tests: Print out the device details on motion
Always register core devices
device: Remove unused is_default member
win32: Experimental implementation of device support
tests: Print the device name, as well as its Id
x11: Fill out the :name property of the InputDevices
device: Add the :name property to InputDevice
x11: Store core devices on the X11 Backend singleton
device: Unset the cursor actor when leaving the stage
device: Add pointer actor getter
x11: Discard the LeaveNotify for off-stage ButtonRelease
device: Do not overwrite the stage for an InputDevice
event: Off-stage button releases have a click count of 1
event: Scroll events do not have click count
...
commit ecbb7ce41a1a759e246fce07f146b8bed5e3d730
Author: Alejandro Piñeiro <apinheiro@igalia.com>
Date: Mon Jan 25 16:13:58 2010 +0100
Fix problems with "position" and "selection-bound" change notification
Added a "selection-bound" notify on clutter_text_clear_selection as it
changes the value.
Added utility function clutter_text_set_positions, in order to
change both cursor position and selection bound inside a
g_object_[freeze/thaw]_notify block
Added g_object_[freeze/thaw]_notify in other functions that changes
both cursor position and selection bound
Solves http://bugzilla.openedhand.com/show_bug.cgi?id=1955
clutter/clutter-text.c | 77 ++++++++++++++++++++++++++++++++++----------------
1 file changed, 53 insertions(+), 24 deletions(-)
commit 579a9a2665b402405820585dacba137984700110
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Feb 1 11:04:59 2010 +0000
stage: Add :key-focus property
ClutterStage has both set_key_focus() and get_key_focus() methods, but
there is no :key-focus property. This means that it is not possible to
get notifications when the key-focus has changes except by connecting to
both the ::key-focus-in and ::key-focus-out signals and do additional
bookkeeping.
http://bugzilla.openedhand.com/show_bug.cgi?id=1956
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
clutter/clutter-stage.c | 30 +++++++++++++++++++++++++++++-
1 file changed, 29 insertions(+), 1 deletion(-)
commit 95712f9897db7f06a6ca34661f20b388dd5a5f77
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Jan 29 10:13:57 2010 +0000
docs: Update the README
Clean up the grammar and some wrinkles in the text.
README | 91 ++++++++++++++++++++++++++++++++++++++++++------------------------
1 file changed, 58 insertions(+), 33 deletions(-)
commit 5b9259ba807f4151d08bf2ea868c2cdeed97e975
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Jan 29 09:31:13 2010 +0000
docs: Update the configure switches in the README
README | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
commit 763fcabd8b287445d32eadb6086b0438e3962294
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Jan 29 09:29:53 2010 +0000
build: Warn with --disable-conformance and --enable-gcov
When building Clutter without conformance test suite we ought to warn
the user that the coverage report is not going to be accurate.
configure.ac | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
commit 21d21adbc45a6e0023e4a21b357fbf392b469fb2
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Jan 29 09:29:37 2010 +0000
Remove tabs from configure.ac
configure.ac | 51 ++++++++++++++++++++++++++++-----------------------
1 file changed, 28 insertions(+), 23 deletions(-)
commit 5f5f6d825f6460f532f0c0448fc403cdb95e4697
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Jan 29 09:26:47 2010 +0000
build: Allow disabling the conformance test suite
When building Clutter for packaging on headless boxes it's pointless to
allow building the conformance test to be built (and run on 'make
check').
configure.ac | 14 +++++++++++++-
tests/Makefile.am | 25 ++++++++++++++++++++-----
2 files changed, 33 insertions(+), 6 deletions(-)
commit 7a1ebcbced45c21937c4407e28274fdb4a92af52
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Jan 27 21:26:26 2010 +0000
Whitespace fixes in cogl-util
clutter/cogl/cogl/cogl-util.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
commit 578e83e463d4d681de27f1b4e5d64dea8161f0f7
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Jan 27 21:16:28 2010 +0000
Whitespace fixes
clutter/clutter-frame-source.c | 3 ++-
clutter/clutter-timeout-interval.c | 38 +++++++++++++++++++++++---------------
clutter/clutter-timeout-pool.c | 5 +++--
3 files changed, 28 insertions(+), 18 deletions(-)
commit 2d5eeba5d89c129f991f367f0e80c3a152f19e52
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Jan 27 21:14:43 2010 +0000
docs: Fixes for TimeoutPool and Frame sources
The TimeoutPool is not used by ClutterTimeline any more, so we need to
remove a sentence from its description. We also need to fix the gtk-doc
syntax errors.
clutter/clutter-frame-source.c | 25 +++++++++++++------------
clutter/clutter-timeout-pool.c | 8 +-------
2 files changed, 14 insertions(+), 19 deletions(-)
commit 046a4b80476794bebdfd9005c826a64b7c8c9f81
Author: Neil Roberts <neil@linux.intel.com>
Date: Fri Jan 22 18:14:57 2010 +0000
cogl: Use the colours of COGL_DEBUG=rectangles to debug batching
Instead of assigning a new colour to each quad of a batch, the
rectangle debugging code now assigns a new colour to each batch so
that it can be used to visually see what is being batched. The colour
is stored in a global variable that is reset during cogl_clear. This
improves the chances that the same colour will be used for a batch in
the next frames to avoid flickering.
clutter/cogl/cogl/cogl-context.h | 6 +++++
clutter/cogl/cogl/cogl-journal.c | 54 +++++++++++++++++++++++++++-------------
clutter/cogl/cogl/cogl.c | 11 ++++++++
3 files changed, 54 insertions(+), 17 deletions(-)
commit 92a375ab47296a81d739ca29b0972c7abe6eda16
Author: Neil Roberts <neil@linux.intel.com>
Date: Tue Jan 26 13:46:27 2010 +0000
cogl-vertex-buffer: Fix disabling the texture arrays from previous prim
When setting up the state for the vertex buffer,
enable_state_for_drawing_buffer tries to keep track of the highest
numbered texture unit in use. It then disables any texture arrays for
units that were previously enabled if they are greater than that
number. However if there is no texturing in the VBO then the max used
unit would be left at 0 which it would later think meant unit 0 is
still in use so it wouldn't disable it. To fix this it now initialises
the max used unit to -1 which it should interpret as ‘no units are in
use’ so it will later disable the arrays for all units.
Thanks to Jon Mayo for reporting the bug.
http://bugzilla.openedhand.com/show_bug.cgi?id=1957
clutter/cogl/cogl/cogl-vertex-buffer.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit f288eae0fc454876c2beb87b1205681a338d7f65
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Jan 27 12:06:22 2010 +0000
docs: Add some notes about the CoglPixelFormat enums
The pixel format enums didn't explain what order in memory the
components should be so it was difficult to use them.
clutter/cogl/cogl/cogl-types.h | 22 +++++++++++++++++++---
1 file changed, 19 insertions(+), 3 deletions(-)
commit da392e24a55ad34bdc8fe9ac0841eca574f76194
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Jan 27 11:02:34 2010 +0000
docs: Fix some of the examples for the animation docs
In the example for clutter_actor_animate the "x" and "y" properties
are floats so they need to be passed float values in the var args
otherwise it will crash. There was also a missing comma.
There were some other minor problems with the behaviours example which
would cause it not to compile.
doc/reference/clutter/clutter-animation-tutorial.xml | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
commit 52cb54f5fa665fdf06270fc58121617b44877639
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Tue Jan 26 18:47:25 2010 +0000
cogl: Fix checks of the number of available texture units
We were checking the number of texture units against the GL enum that is
used in glGetInteger() to query that number. Let's abstract this in a
little function.
Took the opportunity to dig a bit on the usage of GL limits for the
number of texture (image) units and document our use of them. We'll need
something finer grained if we want to fully exploit texture image units
with a programmable pipeline.
clutter/cogl/cogl/cogl-internal.h | 2 ++
clutter/cogl/cogl/cogl-material.c | 10 ++--------
clutter/cogl/cogl/cogl.c | 30 ++++++++++++++++++++++++++++++
3 files changed, 34 insertions(+), 8 deletions(-)
commit 87d19b8d182c2524a5d3c30921fe2c3d4d120606
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Sun Nov 15 20:17:47 2009 +0000
cogl: Fix gl equivalent of blend string
An example of what could be the equivalent of
"RBG = REPLACE(TEXTURE)
A = MODULATE(PREVIOUS,TEXTURE)"
using the ARB_texture_env_combine extension was given, but it seems that
a few typo were left:
* remove a spurius GL_COMBINE_ALPHA
* use the _ALPHA variant of SRCN and OPERANDN when setting up the
alpha combiner
doc/reference/cogl/blend-strings.xml | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
commit afb30f4013fdcb58ee35af919fdb739ab587683c
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Wed Nov 18 01:13:11 2009 +0000
tests: blend-string: use g_assert_cmpint
It's very useful to see the actual number the reference value is
compared too when the test fails. GTest has g_assert_cmp$type()
functions for that, so make good use of them.
tests/conform/test-cogl-blend-strings.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
commit de31cbf4f7932f8d48583a476c5af9f6eed6adbd
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Tue Jan 26 16:59:50 2010 +0000
test-cogl-multitexture: use several materials with texture matrices
A small doubt has risen about the use of CoglTextureUnit in materials:
will texture matrices still work if we have several materials, each of
them having at texture on the same texture unit? The answer is yes!
test-cogl-multitexture has been extended to use 2 materials with about
the same setup except a little difference: the texture matrices for the
lightmaps rotate in opposite directions.
While at it, changed the rotation behaviour by an implicit animation
with a small additional bonus bling.
tests/interactive/test-cogl-multitexture.c | 143 ++++++++++++++++++++---------
1 file changed, 102 insertions(+), 41 deletions(-)
commit 06d8ebb0ba2d468d492eeb94dede095a14eec909
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Sun Nov 15 19:54:17 2009 +0000
cogl: Create CoglTextureUnit with its associated unit number
The index field of CoglTextureUnit was never set, leading to the
creation of units with index set to 0. When trying to retrieve a texture
unit by its index (!= 0) with _cogl_get_texture_unit(), a new one was
created as it could not find it back in the list of textures units:
ctx->texture_units.
http://bugzilla.openedhand.com/show_bug.cgi?id=1958
clutter/cogl/cogl/cogl.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
commit 8fc07c51a9c71aec77e4b76416ffedc72da309e2
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Jan 21 17:41:10 2010 +0000
actor: Use GParamSpecUint for :opacity
The :opacity property is defined using a GParamSpecUchar. This usually
leads to issues with language bindings that don't have an 'unsigned
char' type and that need to explicitly handle the conversion between
G_TYPE_UCHAR and G_TYPE_INT or G_TYPE_UINT.
The property definition already specifies an interval size of [0, 255]
on the values; more importantly, GObject already implicitly transforms
between G_TYPE_UCHAR and G_TYPE_UINT (the GValue transformation
functions are registered at type system initialization time) so
switching between a GParamSpecUchar and a GParamSpecUint should not be
an ABI break.
I have tested a simple program using the opacity property before and
after the change and I cannot see any run-time warnings related to this
issue.
clutter/clutter-actor.c | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
commit d0f7debfba4879c3df20c0067789b063e18d93ce
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Jan 22 21:44:28 2010 +0000
test-easing: Do not reconnect signals multiple times
The test should keep track of the last animation and avoid reconnecting
signals to the same instance in case the -r argument has been passed.
tests/interactive/test-easing.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
commit 7073e69b4e504ddbaffad4a6139e93ddbd40b9f8
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Jan 22 21:42:55 2010 +0000
animation: Verify internal state
Be more drastic if the internal state is broken, and assert() if the
expected Alpha and Timeline instances we need are not valid. This
usually implies a library bug or a massive heap corruption.
clutter/clutter-animation.c | 4 ++++
1 file changed, 4 insertions(+)
commit 8daa3035e563870fc614813fd6329c63542b129e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Jan 22 21:42:10 2010 +0000
docs: Fix the Animation:object property
There is a typo in the Animation:object property gtk-doc declaration.
clutter/clutter-animation.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 0788aa43b29454efed3f60160b87881a1c84f603
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Jan 22 21:41:33 2010 +0000
animation: Add more debug annotations
We need some better tracking of the Animation's lifetime.
clutter/clutter-animation.c | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
commit 7fa7c4a1b621eff0533ff70b1b6c9be001f62e2a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Jan 22 21:36:41 2010 +0000
animation: Transform if necessary
The Animation code does transformation of values between type A and A'
after checking for compatibility using g_value_type_compatible(). This
is incorrect: compatibility means that the two types can be copied. The
correct conversion should follow:
if (compatible (type (A), type (A')))
copy (A, A');
else
if (transformable (type (A), type (A')))
transform (A, A');
else
error("Unable to trasform type A in A'");
The transformation might still fail, so we need to check for errors
there as well as a fall-through case.
clutter/clutter-animation.c | 42 ++++++++++++++++++++++--------------------
1 file changed, 22 insertions(+), 20 deletions(-)
commit 94249efff7ec46bbeaac04800d5a9a30c05dcde3
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Jan 22 21:33:28 2010 +0000
animation: Check for value transformability
We should not just check for compatibility, but also for the ability to
transform a GValue of type A into another of type A'.
Usually compatibility is enough, especially if types can be
introspected beforehand; some times, though, we also need to check for
transformability as a type can provide the transformation functions
necessary for the operation.
clutter/clutter-animation.c | 29 ++++++++++++++++++++---------
1 file changed, 20 insertions(+), 9 deletions(-)
commit 996614cfaf582bbfbf86874a95b4a7eef3c50630
Author: Neil Roberts <neil@linux.intel.com>
Date: Thu Jan 21 15:34:19 2010 +0000
cogl-atlas-texture: Add a debug option to disable the atlas
If the user specifies the 'disable-atlas' debug option then no texture
will be put in the atlas.
clutter/cogl/cogl/cogl-atlas-texture.c | 5 +++++
clutter/cogl/cogl/cogl-debug.c | 3 ++-
clutter/cogl/cogl/cogl-debug.h | 3 ++-
3 files changed, 9 insertions(+), 2 deletions(-)
commit 4695383281d4b74baa10d78253a27b2eb541eef3
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Jan 22 00:06:17 2010 +0000
build: Use no-define
We don't need the PACKAGE and VERSION defines in the config.h.
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit f7e7985344420caf4897777ced6f04cddb7052ee
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Jan 21 23:57:38 2010 +0000
build: Add no-portability option to automake
We require the GNU version of make for some of our rules, and it's been
so for a while now.
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit a545f66a5c34b66d1a31387105d114ca3edd3a46
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Jan 21 23:41:18 2010 +0000
master clock: Improve the timeline advancement protection
The commit 1c69c61745ed510f0b6ab16cb963ca01994cb9fc which improved the
protection against timeline removals during the master clock advancement
was only doing half the job - and actually broke the chaining of
animations inside the ::completed signal.
We cannot simply take a reference on the timelines and still use the list
held by the master clock because the do_tick() might result in the
creation of a new timeline, which gets added at the end of the list with
no reference increase and thus gets disposed at the end of the iteration.
We also cannot steal the master clock timelines list because a timeline
might be removed as the direct result of do_tick() and remove_timeline()
would not find the timeline, failing and leaving a dangling pointer
behind.
For this reason we copy the list of timelines out of the one that the
Master Clock holds, take a reference on each timeline, advance them all,
release the reference and free the list.
clutter/clutter-master-clock.c | 39 +++++++++++++++++++++++++++------------
1 file changed, 27 insertions(+), 12 deletions(-)
commit 8a4b64715486699dd8d0ea2146d0adea37d2a6c7
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Jan 20 19:40:58 2010 +0000
x11: Re-enable XI1 extension keyboards
The extension keyboard support in XInput 1.x is hopelessly broken.
Nevertheless, it's possible to use some bits of it, as we prefer the
core keyboard events to the XInput events, thus at least having proper
handling for X11 key events on the Stage window.
clutter/x11/clutter-backend-x11.c | 2 --
clutter/x11/clutter-event-x11.c | 28 ++++++++++++++++++++++++++--
clutter/x11/clutter-input-device-x11.c | 21 ++++++++++++++-------
tests/interactive/test-devices.c | 12 +++++++-----
4 files changed, 47 insertions(+), 16 deletions(-)
commit 94f9f3bd9345d8eb1551c429615473134e3f4e8f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Jan 15 16:28:00 2010 +0000
x11: Always handle core device events before XI events
The XI 1.0 layer is complementary to the X11 core devices handling; this
means that core events will still be emitted for the core pointer and
keyboard devices, and that secondary (floating) devices should be
handled on top of that.
Thus, the XI event handling code should be executed (if explicitly
compiled in and enabled) if the core device events have not been parsed.
Note: this is going away with XI2, which completely replaces both core and
XI1 events.
clutter/x11/clutter-event-x11.c | 499 ++++++++++++++++++----------------------
1 file changed, 224 insertions(+), 275 deletions(-)
commit dc39e9eff9de0797086ea1a505855724296981f7
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Jan 15 15:29:52 2010 +0000
docs: Documentation fixes for DeviceManager
clutter/clutter-device-manager.c | 7 ++++++-
doc/reference/clutter/clutter-sections.txt | 2 --
doc/reference/clutter/clutter.types | 2 ++
3 files changed, 8 insertions(+), 3 deletions(-)
commit 65c7ff7d05389a10eed1d881ca572082f03932fe
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Jan 15 15:29:14 2010 +0000
device-manager: Fix the signals definition
Add documentation for the signals, as well as using the correct type for
the marshallers.
clutter/clutter-device-manager.c | 26 +++++++++++++++++++++++---
1 file changed, 23 insertions(+), 3 deletions(-)
commit 0b47acf60b46b64ae838471765d86e1c65c01cc0
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Jan 15 14:56:43 2010 +0000
docs: Add sections for InputDevice and DeviceManager
doc/reference/clutter/clutter-docs.xml.in | 2 ++
1 file changed, 2 insertions(+)
commit 8ead5abba0ebe9c5b5c1b749bb28f7879d63aa49
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Jan 15 14:42:19 2010 +0000
docs: Add clutter_input_device_get_device_name()
doc/reference/clutter/clutter-sections.txt | 1 +
1 file changed, 1 insertion(+)
commit 1f5a7b61b761bf8426b1229c481574c273a5964f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Jan 15 12:24:21 2010 +0000
tests: Print out the device details on motion
The test-device interactive test should print out the device name and id
when it detects a motion event.
tests/interactive/test-devices.c | 31 ++++++++++++++++++++++++++++++-
1 file changed, 30 insertions(+), 1 deletion(-)
commit d8e167f1519499a27ee04a9a0d167b5ffed3ce8e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Jan 15 12:22:29 2010 +0000
Always register core devices
Even with XInput support we should always register core devices. This
allows us to handle enter and leave events correctly on the Stage and
to have a working XInput 1.x support in Clutter.
clutter/x11/clutter-backend-x11.c | 87 +++++++++++-----------------------
clutter/x11/clutter-backend-x11.h | 1 +
clutter/x11/clutter-event-x11.c | 47 +++++++++++++++++-
clutter/x11/clutter-input-device-x11.c | 14 +++---
4 files changed, 82 insertions(+), 67 deletions(-)
commit e0b8d631593c0539c47de0158d5425391d7cdbc0
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Jan 15 11:52:27 2010 +0000
device: Remove unused is_default member
The is_default member of the InputDevice structure was not used
anywhere.
clutter/clutter-private.h | 2 --
clutter/x11/clutter-backend-x11.c | 11 ++---------
2 files changed, 2 insertions(+), 11 deletions(-)
commit 74dbcede25c9dee5b40cb057a26263d580800e7e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Jan 15 11:47:05 2010 +0000
win32: Experimental implementation of device support
Mostly lifted from the core pointer and keyboard X11 backend support.
The win32 backend registers two devices (a core pointer and a core
keyboard) and assigns them to the event structure when doing the
translation from native events to Clutter events.
Thanks to: Samuel Degrande <Samuel.Degrande@lifl.fr> for testing this
patch.
clutter/win32/clutter-backend-win32.c | 23 +++++++++++++++
clutter/win32/clutter-backend-win32.h | 3 ++
clutter/win32/clutter-event-win32.c | 55 ++++++++++++++++++++++-------------
3 files changed, 61 insertions(+), 20 deletions(-)
commit 850dd5a38fe17e82b16e19144db4ac516e349dbb
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Jan 15 11:40:01 2010 +0000
tests: Print the device name, as well as its Id
The test-devices interactive test should display the device name along
with the id.
tests/interactive/test-devices.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
commit 66740e8000ea92b04da663a0d2ce890271d2af2f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Jan 15 11:38:58 2010 +0000
x11: Fill out the :name property of the InputDevices
For the core pointer and keyboard we assign the names ourselves; for
devices coming from XI we can use the XDeviceInfo.name member.
clutter/x11/clutter-backend-x11.c | 5 ++++-
clutter/x11/clutter-event-x11.c | 9 ++++++---
2 files changed, 10 insertions(+), 4 deletions(-)
commit cf4e05930a1243f9b58617a4a50833d5bab705b1
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Jan 15 11:37:43 2010 +0000
device: Add the :name property to InputDevice
The InputDevice should have a name, possibly user readable, coming from
the backend.
clutter/clutter-input-device.c | 46 +++++++++++++++++++++++++++++++++++++++++-
clutter/clutter-input-device.h | 6 +++---
clutter/clutter-private.h | 9 +++++++++
3 files changed, 57 insertions(+), 4 deletions(-)
commit 79ad2b6a72bd91273e139e72af36d9b6db264001
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Jan 15 11:21:52 2010 +0000
x11: Store core devices on the X11 Backend singleton
Instead of overloading the device id of 0 and 1 we should treat the core
devices as special, and have a pointer inside the X11 backend singleton
structure, for fast access.
clutter/x11/clutter-backend-x11.c | 8 +++--
clutter/x11/clutter-backend-x11.h | 3 ++
clutter/x11/clutter-event-x11.c | 13 +++----
clutter/x11/clutter-input-device-x11.c | 63 ++++++++++++++++++++++++++++++++++
4 files changed, 77 insertions(+), 10 deletions(-)
commit 8a579838d54d2b6f552fd32d9772f6e04f178179
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Jan 14 17:14:33 2010 +0000
device: Unset the cursor actor when leaving the stage
When an InputDevice leaves a stage we set the stage member of
InputDevice to NULL. We should also unset the cursor_actor (as the
device is obviously not on an actor any more).
When the device re-enters the Stage the ENTER/LEAVE event generation
machinery will then be able to emit the ENTER event on the Stage.
clutter/clutter-input-device.c | 43 +++++++++++++++++++++++++++---------------
1 file changed, 28 insertions(+), 15 deletions(-)
commit 55e4315aa5889185a055f3ab2d5b5d4c9cae4dc4
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Jan 12 11:53:12 2010 +0000
device: Add pointer actor getter
ClutterInputDevice should have a getter method for retrieving the
reactive actor underneath the pointer.
clutter/clutter-input-device.c | 37 ++++++++++++++++++++++++++++++
clutter/clutter-input-device.h | 3 ++-
doc/reference/clutter/clutter-sections.txt | 1 +
3 files changed, 40 insertions(+), 1 deletion(-)
commit 25c6ebbb2c70af7f268036b10dcd8d4a965c34c3
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Dec 9 00:03:13 2009 +0000
x11: Discard the LeaveNotify for off-stage ButtonRelease
If the user presses a button on a pointer device and then moves out the
Stage X11 will emit the following events:
LeaveNotify ➔ MotionNotify ... ➔ ButtonRelease ➔ LeaveNotify
The second LeaveNotify differs from the first by the state field.
Unfortunately, ClutterCrossingEvent doesn't have a modifier_state field
like other events, so we cannot provide a way for programmatically
distinguishing them from a Clutter perspective. This is also an X11-ism
we might not even want to replicate on every backend with sane
enter/leave semantics.
For this reason we should check inside the X11 event processing if the
pointer device has already left the Stage and ignore the second
LeaveNotify.
clutter/x11/clutter-event-x11.c | 58 ++++++++++++++++++++++++-----------------
1 file changed, 34 insertions(+), 24 deletions(-)
commit 8736b53d7cc6fd2b53649c076ef09cb69f9b37d6
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Dec 9 00:01:50 2009 +0000
device: Do not overwrite the stage for an InputDevice
The Stage field of an InputDevice is set by the backend, whenever the
pointer enters or leaves the Stage. The Stage should not overwrite the
stage field for every event it processes.
clutter/clutter-stage.c | 1 -
1 file changed, 1 deletion(-)
commit cf287db2048eae5eaa58a9cbffd42c703f345ff5
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Dec 9 00:00:49 2009 +0000
event: Off-stage button releases have a click count of 1
The ButtonRelease off-stage should not have a click count of 0 but a
click count initialized to 1.
clutter/clutter-main.c | 1 +
1 file changed, 1 insertion(+)
commit bddabf6d2ca100f4d91461129d4bb097c59ac666
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Dec 8 23:59:56 2009 +0000
event: Scroll events do not have click count
Remove the unneeded CLUTTER_SCROLL case from the click count checks.
clutter/clutter-main.c | 1 -
1 file changed, 1 deletion(-)
commit e30856a54d5d1e012cd2de30e519a487fd0b4f46
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Dec 8 18:33:01 2009 +0000
Whitespace and indentation fixes
clutter/x11/clutter-event-x11.c | 24 ++++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)
commit 0f9cfd9911c21933b34c07a9616f79022bcc01e3
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Dec 7 23:13:52 2009 +0000
event: Clean up click-count detection
Avoid a few indirections and direct access to the Event and InputDevice
structures.
clutter/clutter-main.c | 65 ++++++++++++++++++++++++++++++++++----------------
1 file changed, 45 insertions(+), 20 deletions(-)
commit cf8a06f0186e44b3437b06c56c088e8dc465402b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Dec 7 23:05:20 2009 +0000
device: Store the current state, not the previous
The previous state for the device is used by the click count machinery
and we should not be overwriting it at every event; instead, we should
use a parallel storage for the current state coming from the windowing
system.
clutter/clutter-input-device.c | 34 +++++++++++++++++-----------------
clutter/clutter-private.h | 7 +++++++
2 files changed, 24 insertions(+), 17 deletions(-)
commit 68b47e3ed479242a94f7a8d302a2900f7e28c840
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Dec 7 23:02:48 2009 +0000
tests: Fix test-events output
• The enter/leave event line should take into account the case where
the related field is set to NULL (meaning entering from off-stage
and leaving the stage).
• The ButtonRelease line shows the click count but uses the button; the
button *and* the click count should be displayed for both ButtonPress
and ButtonRelease, to verify they match.
tests/interactive/test-events.c | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
commit b3a42c3b09e256732395f7c63c4a39956d32d3da
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Dec 7 18:38:18 2009 +0000
docs: Update the API reference
Add the new symbols for InputDevice and DeviceManager
clutter/clutter-device-manager.c | 2 +-
clutter/clutter-device-manager.h | 2 +-
clutter/clutter-main.c | 4 +--
doc/reference/clutter/clutter-sections.txt | 49 +++++++++++++++++++++++++++---
4 files changed, 49 insertions(+), 8 deletions(-)
commit 130286979d04128b51fa8662aa13b6bbd1867ca2
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Nov 24 17:54:02 2009 +0000
Do not pick when motion event delivery is disabled
The device manager does not need to update the state of the devices
when the user has disabled the delivery of motion events to actors:
the events will always be delivered as they are to the stage.
clutter/clutter-device-manager.c | 7 +++++++
1 file changed, 7 insertions(+)
commit 687c70dffa70a3256e9f734b090cb4a088e97bb1
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Nov 24 16:33:03 2009 +0000
Rework the emission of LEAVE/ENTER event pairs
The LEAVE/ENTER event pairs should be queued during the InputDevice
update process, when we change the actor under the device pointer.
This commit cleans up the event emission code inside clutter-main.c
and the logic of the event processing.
clutter/clutter-device-manager.c | 4 +-
clutter/clutter-input-device.c | 81 +++++++++++++++--
clutter/clutter-main.c | 190 ++++++---------------------------------
clutter/clutter-private.h | 2 -
4 files changed, 104 insertions(+), 173 deletions(-)
commit 75f05646fa117b8096e033f9fad0ba9de1ee01ac
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Nov 24 16:31:14 2009 +0000
tests: Clean up test-events
The output of test-events is a bit of a mess; this patch should clean
it up a little bit - at least enough for it to be useful again during
visual inspection.
tests/interactive/test-events.c | 101 ++++++++++++++++++++++++----------------
1 file changed, 60 insertions(+), 41 deletions(-)
commit a056ae716442e07e50ebd07cbca030776a5b3c28
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Nov 24 16:22:44 2009 +0000
Add docs and licensing notices
clutter/clutter-device-manager.c | 125 ++++++++++++++++++++++++++++++++++++++-
clutter/clutter-device-manager.h | 29 +++++++++
clutter/clutter-input-device.c | 109 +++++++++++++++++++++++++++++++++-
clutter/clutter-input-device.h | 31 ++++++++++
4 files changed, 288 insertions(+), 6 deletions(-)
commit 9506510d1cf794ef530f6c4db45103efb60cca63
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Jan 8 17:51:00 2010 +0000
Move all picking-related operations inside InputDevice
The InputDevice objects stores pointer coordinates, state, stage and
the actor under the cursor, so if the current backend provides us with
one attached to the Event structure then we want the InputDevice itself
to update its state and give us the ClutterActor underneath the
pointer's cursor.
clutter/clutter-device-manager.c | 24 +++++++++++
clutter/clutter-event.c | 36 ----------------
clutter/clutter-input-device.c | 91 ++++++++++++++++++++++++++++++++++++++--
clutter/clutter-input-device.h | 7 +++-
clutter/clutter-main.c | 60 +++++++++++++++-----------
clutter/clutter-master-clock.c | 7 ++--
clutter/clutter-private.h | 36 ++++++++++------
clutter/clutter-stage.c | 28 +++++++++++--
clutter/x11/clutter-event-x11.c | 36 ++++++++++------
9 files changed, 225 insertions(+), 100 deletions(-)
commit 1f87cac0695dc95be4ed0219752d454d9a285e50
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Nov 24 12:53:57 2009 +0000
actor: Add :has-pointer property
ClutterActor should be able to tell whether a pointer is within
its area or not.
clutter/clutter-actor.c | 60 ++++++++++++++++++++++++++++++++++++++++++++++-
clutter/clutter-actor.h | 1 +
clutter/clutter-private.h | 3 +++
3 files changed, 63 insertions(+), 1 deletion(-)
commit d23dd9af6bf48c3c02f685505a5a34b477d4d2b3
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Nov 23 16:07:16 2009 +0000
device: Make InputDevice an object and subclass it for X11
ClutterInputDevice should be a type that we can subclass per-backend
to add functionality.
clutter/Makefile.am | 2 +
clutter/clutter-event.h | 35 +------
clutter/clutter-input-device.c | 175 +++++++++++++++++++++++++++++++++
clutter/clutter-input-device.h | 64 ++++++++++++
clutter/clutter-main.c | 34 +++----
clutter/clutter-private.h | 19 +++-
clutter/clutter.h | 1 +
clutter/x11/Makefile.am | 2 +
clutter/x11/clutter-backend-x11.c | 141 ++++++--------------------
clutter/x11/clutter-input-device-x11.c | 151 ++++++++++++++++++++++++++++
clutter/x11/clutter-input-device-x11.h | 25 +++++
11 files changed, 484 insertions(+), 165 deletions(-)
commit d5331bfb5786b496cfcab925319711853db2f1d3
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Nov 20 16:37:58 2009 +0000
tests: Update the devices test
Use the DeviceManager API instead of the X11 specific API.
tests/interactive/test-devices.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
commit 157da20e86f88bf906f0b59bafbea171a2e5e678
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Nov 20 16:24:16 2009 +0000
x11: Always assign a device to pointer and key events
Even when we are not using XInput we now have fallback devices; the
X11 backend should always assign the default devices when translating
the X events to Clutter events.
clutter/x11/clutter-event-x11.c | 37 ++++++++++++++++++++++++++++---------
1 file changed, 28 insertions(+), 9 deletions(-)
commit ca16446319b6281cf63edf3b1b6d7d4f8d41e499
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Nov 20 15:43:50 2009 +0000
Add :is-default flag to InputDevice
clutter/clutter-private.h | 2 ++
clutter/x11/clutter-backend-x11.c | 9 ++++++++-
2 files changed, 10 insertions(+), 1 deletion(-)
commit 3027d4327ae0c5d9bb7cc831f24d5ee5e8fb107f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Nov 20 15:36:43 2009 +0000
Port the X11 backend to the Device Manager
Use the device manager to store the input devices. Also, provide
two fallback devices when initializing the X11 backend: device 0
for the pointer and device 1 for the keyboard.
clutter/clutter-private.h | 3 -
clutter/x11/clutter-backend-x11.c | 514 +++++++++++++++++++-------------------
clutter/x11/clutter-backend-x11.h | 6 -
clutter/x11/clutter-event-x11.c | 5 +-
clutter/x11/clutter-x11.h | 2 +
5 files changed, 256 insertions(+), 274 deletions(-)
commit d34f1aa775e8a66bd0e599b32c761869b319c639
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Nov 20 15:35:40 2009 +0000
Add ClutterDeviceManager
The ClutterDeviceManager is a singleton object that behaves like the
StageManager: it holds all input devices and notifies on addition and
removal.
clutter/Makefile.am | 6 +-
clutter/clutter-device-manager.c | 146 +++++++++++++++++++++++++++++++++++++++
clutter/clutter-device-manager.h | 30 ++++++++
clutter/clutter-main.c | 30 ++++----
clutter/clutter-marshal.list | 1 +
clutter/clutter-private.h | 43 ++++++++----
clutter/clutter.h | 1 +
7 files changed, 224 insertions(+), 33 deletions(-)
commit 1ef40b882349820d5edb2f1ed8885c3386d2cdf7
Author: Neil Roberts <neil@linux.intel.com>
Date: Tue Jan 19 17:14:58 2010 +0000
test-cogl-npot-texture: Use the COGL_TEXTURE_NO_ATLAS flag
If the texture is put in the atlas it won't be sliced whatever size it
is so it negates the test. We can avoid this with the NO_ATLAS flag.
tests/conform/test-cogl-npot-texture.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 08b8b2791f91770d1a6e7aff163167d003b0fad3
Author: Neil Roberts <neil@linux.intel.com>
Date: Tue Jan 19 17:06:28 2010 +0000
cogl-atlas-texture: Don't create atlas textures with the premult bit
Previously the atlas textures were being created with whatever format
the first sub texture is in. Only three formats are supported so this
only matters if the first texture is a premultiplied alpha
texture. Instead it now masks out the premultiplied bit so that the
textures are always either RGB_888 or RGBA_8888.
clutter/cogl/cogl/cogl-atlas-texture.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
commit 14a28620ae13ef041696e2e3747ec00738cfd2bd
Author: Neil Roberts <neil@linux.intel.com>
Date: Fri Jan 15 22:56:37 2010 +0000
win32: Use an invisible cursor when cursor-visible is FALSE
The win32 backend now handles the WM_SETCURSOR message and sets a
fully transparent cursor if the cursor-visible property has been
cleared on the stage. The icon is stored in the library via a resource
file. The instance handle for the DLL is needed to load the resource
so there is now a DllMain function to grab the handle.
clutter/Makefile.am | 21 +++++++++++++++-
clutter/win32/Makefile.am | 2 +-
clutter/win32/clutter-backend-win32.c | 25 +++++++++++++++++++
clutter/win32/clutter-backend-win32.h | 4 ++++
clutter/win32/clutter-event-win32.c | 14 +++++++++++
clutter/win32/clutter-stage-win32.c | 44 ++++++++++++++++++++++++++++++----
clutter/win32/clutter-stage-win32.h | 2 ++
clutter/win32/invisible-cursor.cur | Bin 0 -> 86 bytes
clutter/win32/resources.rc | 1 +
configure.ac | 7 ++++++
10 files changed, 113 insertions(+), 7 deletions(-)
commit 4db89759a0aa91b353ac0bb41562addfff6d76c9
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Jan 18 17:33:08 2010 +0000
Post-release version bump to 1.1.7
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 07ff8d26f8097a00757e6e3cfcd587bce188ae0d
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Jan 18 15:44:58 2010 +0000
Release Clutter 1.1.6
NEWS | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
configure.ac | 2 +-
2 files changed, 50 insertions(+), 1 deletion(-)
commit 8daff42b3bcc9d59d7c87801b3926d8ed7c105a4
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Jan 18 15:43:25 2010 +0000
README: Clarify the required OpenGL version
Cogl will not allow OpenGL 1.2 if it doesn't have the multitexturing
extension so we should make this clear in the README.
README | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
commit fa51ff25d3555ce938922d7bbd64acb12140a774
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Jan 18 13:56:56 2010 +0000
Add build/mingw/{README,mingw-cross-compile.sh} to the dist tarball
It's quite difficult to get git working on Windows so it makes sense
to put the build instructions somewhere accessible.
build/Makefile.am | 2 +-
build/mingw/Makefile.am | 1 +
configure.ac | 1 +
3 files changed, 3 insertions(+), 1 deletion(-)
commit ff1d9cf090aef74efa1ec04b8cd490a45b148ae4
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Jan 18 12:42:20 2010 +0000
test-texture-fbo: Disconnect the paint handler for the stage
Otherwise the paint handler will still be run for the subsequent
tests. This ends up writing to the ‘state’ variable which used to be
on the stack so it will end up corrupting some stack variable. This
was causing test-cogl-premult to fail.
tests/conform/test-texture-fbo.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
commit ce030a3fce362cf4238d361743aaf9027ceed95a
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Jan 18 12:35:05 2010 +0000
clutter-group: Use g_list_foreach in clutter_group_real_foreach
g_list_foreach has better protection against the current node being
removed. This will happen for example if someone calls
clutter_container_foreach(container, clutter_actor_destroy). This was
causing valgrind errors for the conformance tests which do just that.
clutter/clutter-group.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
commit c4adefffd34d91fdf72365a6d11641f3c9f751cc
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Jan 18 10:53:00 2010 +0000
cogl-atlas-texture: Fix premultiplied texture formats
When uploading texture data it was just calling cogl_texture_set_data
on the large texture. This would attempt to convert the data to the
format of the large texture. All of the textures with alpha channels
are stored together regardless of whether they are premultiplied so
this was causing premultiplied textures to be unpremultiplied
again. It now just uploads the data ignoring the premult bit of the
format so that it only gets converted once.
clutter/cogl/cogl/cogl-atlas-texture.c | 232 ++++++++++++++++++++++-----------
1 file changed, 158 insertions(+), 74 deletions(-)
commit b78024bd2dbf39cb86a1c1458e477af9c9353d9e
Author: Neil Roberts <neil@linux.intel.com>
Date: Thu Jan 14 17:57:43 2010 +0000
cogl-primitives: Ensure the mipmaps for a layer before logging quads
With the atlas texture backend ensuring the mipmaps can make it become
a completely different texture which will have different texture
coordinates or may even be sliced. Therefore we need to ensure the
mipmaps before deciding which quads to log in the journal. This adds a
new private function to cogl-material which ensures the mipmaps if
needed.
clutter/cogl/cogl/cogl-material-private.h | 6 ++++++
clutter/cogl/cogl/cogl-material.c | 19 +++++++++++++++----
clutter/cogl/cogl/cogl-primitives.c | 6 ++++++
3 files changed, 27 insertions(+), 4 deletions(-)
commit 36f18e5ac57e068c3987d5b705f68fcc6f18d472
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Jan 18 09:22:04 2010 +0000
cogl: Make CoglSubTexture only work for quad rendering
The sub texture backend doesn't work well as a completely general
texture backend because for example when rendering with cogl_polygon
it needs to be able to tranform arbitrary texture coordinates without
reference to the other coordintes. This can't be done when the texture
coordinates are a multiple of one because sometimes the coordinate
should represent the left or top edge and sometimes it should
represent the bottom or top edge. For example if the s coordinates are
0 and 1 then 1 represents the right edge but if they are 1 and 2 then
1 represents the left edge.
Instead the sub-textures are now documented not to support coordinates
outside the range [0,1]. The coordinates for the sub-region are now
represented as integers as this helps avoid rounding issues. The
region can no longer be a super-region of the texture as this
simplifies the code quite a lot.
There are two new texture virtual functions:
transform_quad_coords_to_gl - This transforms two pairs of coordinates
representing a quad. It will return FALSE if the coordinates can
not be transformed. The sub texture backend uses this to detect
coordinates that require repeating which causes cogl-primitives
to use manual repeating.
ensure_non_quad_rendering - This is used in cogl_polygon and
cogl_vertex_buffer to inform the texture backend that
transform_quad_to_gl is going to be used. The atlas backend
migrates the texture out of the atlas when it hits this.
clutter/cogl/cogl/cogl-atlas-texture.c | 57 ++-
clutter/cogl/cogl/cogl-primitives.c | 21 +-
clutter/cogl/cogl/cogl-sub-texture-private.h | 15 +-
clutter/cogl/cogl/cogl-sub-texture.c | 498 +++++++++------------------
clutter/cogl/cogl/cogl-texture-2d-sliced.c | 21 ++
clutter/cogl/cogl/cogl-texture-2d.c | 17 +
clutter/cogl/cogl/cogl-texture-private.h | 10 +
clutter/cogl/cogl/cogl-texture.c | 33 +-
clutter/cogl/cogl/cogl-texture.h | 22 +-
clutter/cogl/cogl/cogl-vertex-buffer.c | 5 +
tests/conform/test-cogl-sub-texture.c | 81 ++---
tests/conform/test-conform-main.c | 2 +-
12 files changed, 348 insertions(+), 434 deletions(-)
commit 3d373c7278c47b18576edc8c8a0074654ce4a60e
Author: Samuel Degrande <Samuel.Degrande@lifl.fr>
Date: Fri Nov 27 16:53:50 2009 +0100
win32: Fix computation of the fullscreen size during stage realization
http://bugzilla.openedhand.com/show_bug.cgi?id=1905
Signed-off-by: Neil Roberts <neil@linux.intel.com>
clutter/win32/clutter-stage-win32.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 12a9150f5b455e5700c745de4ad1ac5f2e43631f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Jan 15 17:32:46 2010 +0000
docs: Clarify usage of UTF-8 or ASCII art in commit messages
doc/HACKING | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit ea662b9ecaf1dd956f0cdc79ce04880270bf99de
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Jan 15 17:06:56 2010 +0000
docs: Display the features section
The features section of the API reference is built but not used, and it
has some copy-and-paste errors.
clutter/clutter-feature.c | 11 +++++++++--
clutter/clutter-feature.h | 8 --------
doc/reference/clutter/clutter-docs.xml.in | 1 +
doc/reference/clutter/clutter-sections.txt | 2 +-
4 files changed, 11 insertions(+), 11 deletions(-)
commit cdfd9eb212829df0408431673bedfbe6b566fefe
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Jan 15 14:50:06 2010 +0000
Add test-cogl-texture-mipmaps to the Git ignore file
.gitignore | 1 +
1 file changed, 1 insertion(+)
commit e019547e8c7d110332a9ba071737736a059f5b4b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Jan 15 14:48:42 2010 +0000
x11: Fix typo in clutter_x11_set_use_argb_visual() declaration
The function should have a lowercase x11, not an uppercase X11 in its
name.
clutter/x11/clutter-x11.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 148145ea1ad24fb1ceca3229c4cae9c7c5755f75
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Jan 15 14:47:20 2010 +0000
docs: Ignore clutter-profile.h
doc/reference/clutter/Makefile.am | 57 ++++++++++++++++++++-------------------
1 file changed, 29 insertions(+), 28 deletions(-)
commit b844653c649277eed63b6a85d29b84aab8abe641
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Jan 11 16:23:38 2010 +0000
cogl-texture: Fix manual repeating for negative coordinates
When calculating the next integer position for negative coordinates it
would not increment if the position is already a multiple of one so we
need to manually add one.
clutter/cogl/cogl/cogl-texture.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
commit a01b4eefceb1d490d918eba1729c87354695d1ca
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Jan 11 16:21:56 2010 +0000
cogl-texture-2d: Fix the coordinate wrapping for negative coordinates
The formula to wrap the coordinates to the [0,1] range was broken when
the coordinates were negative.
clutter/cogl/cogl/cogl-texture-2d.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
commit ead43995364bb8865ca5bab15d1bfd295578fff4
Merge: 34b50934b a70ebe4f5
Author: Neil Roberts <neil@linux.intel.com>
Date: Fri Jan 15 12:15:46 2010 +0000
Merge branch 'master' into more-texture-backends
commit a70ebe4f52e192c11f8db6a4fa1f419a5b175ab3
Author: Neil Roberts <neil@linux.intel.com>
Date: Fri Jan 15 12:02:09 2010 +0000
tests: Add a simple conformance test for texture mipmaps
This adds a test which renders a texture into a 1x1 pixel quad with
and without filters that use mipmaps. The pixel without mipmaps will
be one of the colors from the texture and the one with will be the
average of all the pixels in the texture.
tests/conform/Makefile.am | 1 +
tests/conform/test-cogl-texture-mipmaps.c | 147 ++++++++++++++++++++++++++++++
tests/conform/test-conform-main.c | 1 +
3 files changed, 149 insertions(+)
commit ba4622ff8bd1abde577fa26637fd1afec1b3abd6
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Jan 14 15:23:41 2010 +0000
Add a notice of deprecation in the pre-Git ChangeLog
ChangeLog.pre-git-import | 6 ++++++
1 file changed, 6 insertions(+)
commit 8247bdf4f9b940fe69165ae6556511fcc9ca3a5d
Author: Neil Roberts <neil@linux.intel.com>
Date: Tue Jan 12 21:44:40 2010 +0000
cogl-framebuffer: Return gboolean from try_creating_fbo
When try_creating_fbo fails it returns 0 to report the error and if it
succeeds it returns ‘flags’. However cogl_offscreen_new_to_texture
also passes in 0 for the flags as the last fallback to create the fbo
with nothing but the color buffer. In that case it will return 0
regardless of whether it succeeded so the last fallback will always be
considered a failure.
To fix this it now just returns a gboolean to indicate whether it
succeeded and the flags used for each attempt is assigned when passing
the argument rather than from the return value of the function.
Also if the only configuration that succeeded was with flags==0 then
it would always try all combinations because last_working_flags would
also be zero. To avoid this it now uses a separate gboolean to mark
whether we found a successful set of flags.
http://bugzilla.openedhand.com/show_bug.cgi?id=1873
clutter/cogl/cogl/cogl-framebuffer.c | 56 ++++++++++++++++++------------------
1 file changed, 28 insertions(+), 28 deletions(-)
commit c6ce9c338966188248c3c1ae7b10480205fe20bf
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Jan 14 14:07:04 2010 +0000
conform: Add operators tests for ClutterColor
The clutter_color_add() and clutter_color_subtract() functions are
lacking unit testing to catch eventual regressions.
.gitignore | 1 +
tests/conform/test-color.c | 57 +++++++++++++++++++++++++++++++++++++++
tests/conform/test-conform-main.c | 1 +
3 files changed, 59 insertions(+)
commit 4388509a1589dbac7aae0ebe5995ca0e06f7c70c
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Jan 14 12:28:07 2010 +0000
master-clock: Add profiling timers
Use the newly-added profiling timers inside the master clock dispatch
function to see how much time we spend:
• in the whole function
• in the event processing for each stage
• in the timeline advancement
clutter/clutter-master-clock.c | 31 +++++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)
commit 6e82d11daf8b1d7259c26e6a0816392a71c726f3
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Jan 13 17:31:13 2010 +0000
units: Improve coverage of clutter_units_from_string()
Add a unit for an empty string as well as units for the missing unit
types like cm, mm and px.
tests/conform/test-clutter-units.c | 11 +++++++++++
1 file changed, 11 insertions(+)
commit ed735ae730ea2140ef4d1be9d1947dbdce8b1f28
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Jan 13 16:57:55 2010 +0000
Add test-cogl-multitexture to the Git ignore file
.gitignore | 1 +
1 file changed, 1 insertion(+)
commit a076e0e11d222ca17dbdbadb3aa2c762d32a5730
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Jan 13 16:35:53 2010 +0000
build: Add a script to format gcov report lines
Instead of using echo let's try Perl and the format() built-in.
build/Makefile.am | 2 ++
build/autotools/Makefile.am.gcov | 2 +-
build/gen-gcov.pl | 44 ++++++++++++++++++++++++++++++++++++++++
3 files changed, 47 insertions(+), 1 deletion(-)
commit 948db40c875f8eb7032582a32515737be6587067
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Jan 4 14:53:03 2010 +0000
Add gcov support to the build
Using gcov it's possible to get a coverage report, that is a break down
of how much the exposed API is exercised by the conformance test suite.
.gitignore | 2 ++
Makefile.am | 3 +++
build/autotools/Makefile.am | 1 +
build/autotools/Makefile.am.gcov | 33 +++++++++++++++++++++++++++++++++
clutter/Makefile.am | 20 +++++++++++---------
configure.ac | 26 ++++++++++++++++++++++++++
6 files changed, 76 insertions(+), 9 deletions(-)
commit 5322546a4e2100bcec8aba651f8de7d849d67711
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Jan 13 15:40:36 2010 +0000
build: Clean up COGL build flags
clutter/cogl/cogl/Makefile.am | 53 +++++++++++++++++++++----------------------
1 file changed, 26 insertions(+), 27 deletions(-)
commit 18d96005ec4d1395d70d71f2bef6cc378f4afb43
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Mon Nov 2 17:08:55 2009 +0000
texture: Remove reading the texture data back in ::unrealize()
Reading back the texture data in unrealize does not seem like a
desirable feature any more, clutter has evolved a lot since it was
implemented.
What's wrong with it now:
* It takes *a lot* of time to read the data back with glReadPixel(),
* When several textures share the same CoglTexture, the same data can
be read back multiple times,
* If the underlying material uses multiple texture units, only the
first one was copied back,
* In ClutterCairoTexture, we end up having two separate copies of the
data,
* GL actually manages texture memory accross system/video memory
for us!
For all the reasons above, let's get rid of the glReadPixel() in
Texture::unrealize()
Fixes: OHB#1842
clutter/clutter-texture.c | 163 +++-------------------------------------------
1 file changed, 8 insertions(+), 155 deletions(-)
commit 778e08e4e24822b0875e6aeaf168cb5cecfc8a7f
Author: Neil Roberts <neil@linux.intel.com>
Date: Tue Jan 12 14:49:55 2010 +0000
cogl-framebuffer: Add some missing GL defines
Since 755cce33a7 the framebuffer code is using the GL enums
GL_DEPTH_ATTACHMENT and GL_DEPTH_COMPONENT16. These aren't available
directly under GLES except with the OES suffix so we need to define
them manually as we do with the other framebuffer constants.
clutter/cogl/cogl/cogl-framebuffer.c | 6 ++++++
1 file changed, 6 insertions(+)
commit bb8352ca95f18ca5582abb97e20e78f69300adde
Author: Neil Roberts <neil@linux.intel.com>
Date: Tue Jan 12 14:43:36 2010 +0000
cogl: Remove the CGL_* defines
These macros used to define Cogl wrappers for the GLenum values. There are
now Cogl enums everywhere in the API where these were required so we
shouldn't need them anymore. They were in the public headers but as
they are not neccessary and were not in the API docs for Clutter 1.0
it should be safe to remove them.
clutter/cogl/cogl/cogl-material.c | 10 +-
clutter/cogl/cogl/cogl-primitives.c | 2 +-
clutter/cogl/cogl/cogl-shader.h | 2 +-
clutter/cogl/cogl/cogl-texture.h | 7 +-
clutter/cogl/cogl/driver/gl/cogl-defines.h.in | 655 ---------------------
clutter/cogl/cogl/driver/gl/cogl-texture-driver.c | 2 +-
clutter/cogl/cogl/driver/gles/cogl-defines.h.in | 597 -------------------
clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.c | 4 +-
clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.h | 65 +-
clutter/glx/clutter-glx-texture-pixmap.c | 8 +-
10 files changed, 55 insertions(+), 1297 deletions(-)
commit 1c6ffc8a238e5e7de429f35f7653695d91d9d26d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Jan 12 15:44:28 2010 +0000
stage: Add the delete-event signal
Using the ::event signal to match the CLUTTER_DELETE event type (and
block the stage destruction) can be costly, since it means checking
every single event.
The ::delete-event signal is similar in spirit to any other specialized
signal handler dealing with events, and retains the same semantics.
clutter/clutter-main.c | 9 +--------
clutter/clutter-stage.c | 49 ++++++++++++++++++++++++++++++++++++++++++++++++-
clutter/clutter-stage.h | 6 +++++-
3 files changed, 54 insertions(+), 10 deletions(-)
commit 8b950bdc87fae2626af8a96916b7f51fdea40a17
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Jan 12 11:02:09 2010 +0000
journal: Fixes logging of multiple sets of texture coordinates
If a user supplied multiple groups of texture coordinates with
cogl_rectangle_with_multitexture_coords() then we would repeatedly log only
the first group in the journal. This fixes that bug and adds a conformance
test to verify the fix.
Thanks to Gord Allott for reporting this bug.
clutter/cogl/cogl/cogl-journal.c | 8 +-
tests/conform/Makefile.am | 1 +
tests/conform/test-cogl-multitexture.c | 209 +++++++++++++++++++++++++++++++++
tests/conform/test-conform-main.c | 1 +
4 files changed, 215 insertions(+), 4 deletions(-)
commit bc8a80fee53c9eed17fab6d821846c1a0fa3460f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Jan 11 17:08:42 2010 +0000
text: Zero out the cursor_pos member
Do not trust the zero-ing done by GObject on the private data structure,
and use memset() instead to zero the ClutterGeometry structure.
clutter/clutter-text.c | 1 +
1 file changed, 1 insertion(+)
commit 5c14538c1406b1358a2747428c73fe0cf1198e94
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Jan 11 17:06:52 2010 +0000
Remove obsolete code from test-text
The test-text "fake scrolling" code stopped working somewhere between
0.8 and 0.9, with the new layout code. Instead of the ::cursor-event
signal it should use an approach similar to the Scrollable interface in
the Moblin User Experience toolkit.
Right now, it makes sense to ignore this code entirely.
tests/interactive/test-text.c | 26 ++------------------------
1 file changed, 2 insertions(+), 24 deletions(-)
commit 755cce33a729817aebe4cf5c08d97c31a327c863
Author: Robert Bragg <robert@linux.intel.com>
Date: Mon Nov 30 20:04:41 2009 +0000
cogl: Support multiple fallbacks in cogl_offscreen_new_to_texture()
The Intel drivers in Mesa 7.6 (and possibly earlier versions) don't
support creating FBOs with a stencil buffer but without a depth
buffer. This reworks framebuffer allocation so that we try a number
of fallback options before failing.
The options we try in order are:
- the same options that were sucessful last time if available
- combined depth and stencil
- separate depth and stencil
- just stencil, no depth
- just depth, no stencil
- neither depth or stencil
clutter/cogl/cogl/cogl-framebuffer-private.h | 2 +-
clutter/cogl/cogl/cogl-framebuffer.c | 238 +++++++++++++++++----------
2 files changed, 156 insertions(+), 84 deletions(-)
commit 4c1231c7fe545a7764d06754d7d6be0906686e0a
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Wed Jan 6 11:48:46 2010 +0000
media: Add an API to specify which font should be used for subtitles
Allow the user of the ClutterMedia interface to specify a Pango font
description to display subtitles. Even if the underlying implementation
of the interface does not natively use Pange, it must be capable of
parsing the grammar that pango_font_description_from_string() accepts.
clutter/clutter-media.c | 64 ++++++++++++++++++++++++++++++
clutter/clutter-media.h | 45 +++++++++++----------
doc/reference/clutter/clutter-sections.txt | 2 +
3 files changed, 90 insertions(+), 21 deletions(-)
commit 8e9f56c41160452166be68202227b206a690472d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sun Jan 10 11:35:26 2010 +0000
build: Clean up private header/source files
Some source files should not be passed through the introspection parser,
as they are fully private and do not expose any valuable API.
Also the clutter-profile.h header is private and should not be
installed.
clutter/Makefile.am | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
commit d9b91d61f5730e9ce29627f467c89070b78fb6b6
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Nov 25 14:26:32 2009 +0000
framebuffers: cogl_offscreen_new_to_texture should take a ref on the texture
We weren't taking a reference on the texture to be used as the color buffer
for offscreen rendering, so it was possible to free the texture leaving the
framebuffer in an inconsistent state.
clutter/cogl/cogl/cogl-framebuffer-private.h | 1 +
clutter/cogl/cogl/cogl-framebuffer.c | 3 +++
2 files changed, 4 insertions(+)
commit 30b557c4653d15eeb1311b516ab1f4c0035a5e83
Author: Robert Bragg <robert@linux.intel.com>
Date: Fri Jul 3 16:22:35 2009 +0100
profiling: Adds initial UProf accounting to Cogl
This adds gives Cogl a dedicated UProf context which will be linked together
with Clutter's context during clutter_init_real().
Initial timers cover _cogl_journal_flush and _cogl_journal_log_quad
You can explicitly ask for a report of Cogl statistics by exporting
COGL_PROFILE_OUTPUT_REPORT=1 but since the context is linked with Clutter's
the statisitcs will also be shown in the automatic Clutter reports.
clutter/clutter-main.c | 7 ++++++
clutter/cogl/cogl/Makefile.am | 2 ++
clutter/cogl/cogl/cogl-journal.c | 19 ++++++++++++++
clutter/cogl/cogl/cogl-profile.c | 30 ++++++++++++++++++++++
clutter/cogl/cogl/cogl-profile.h | 54 ++++++++++++++++++++++++++++++++++++++++
configure.ac | 2 +-
6 files changed, 113 insertions(+), 1 deletion(-)
commit 0b6515a1d53571fea13417d47e7bf0f4749321f8
Author: Robert Bragg <robert@linux.intel.com>
Date: Fri Apr 17 12:15:56 2009 +0100
profiling: Allow limiting statisics just to picking
This suspends and resumes all uprof timers and counters except while dealing
with picking, so as to give more focused statistics.
Be aware that there are still some issues with this profile option since
there are a few special case counters and timers that shouldn't be
suspended; noteably the frame counters are incorrect so the per frame stats
can't be trusted.
clutter/clutter-main.c | 22 ++++++++++++++++++++--
clutter/clutter-profile.c | 29 +++++++++++++++++++++++++++++
clutter/clutter-profile.h | 9 +++++++++
3 files changed, 58 insertions(+), 2 deletions(-)
commit 9cb530d42e7860d1a44f441b97910fd3903480f1
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Jan 6 18:15:13 2010 +0000
profiling: Parse --clutter-profile and CLUTTER_PROFILE= options
As we have for debugging, this adds the ability to control profiling flags
either via the command line or an environment variable.
The first option added is CLUTTER_PROFILE=disable-report
This also changes the reporting to be opt-out so you don't need to export
CLUTTER_PROFILE_OUTPUT_REPORT=1 to see a report but you can use
CLUTTER_PROFILE=disable-report to disable it if desired.
clutter/clutter-main.c | 51 +++++++++++++++++++++++++++++++++++++++++++++++
clutter/clutter-profile.c | 2 +-
clutter/clutter-profile.h | 8 ++++++++
3 files changed, 60 insertions(+), 1 deletion(-)
commit 00577558540db2c9f7bf24e870ff6231abb2b99d
Author: Robert Bragg <robert@linux.intel.com>
Date: Mon Mar 30 16:41:02 2009 +0100
profiling: Adds initial UProf support across clutter
UProf is a small library that aims to help applications/libraries provide
domain specific reports about performance. It currently provides high
precision timer primitives (rdtsc on x86) and simple counters, the ability
to link statistics between optional components at runtime and makes report
generation easy.
This adds initial accounting for:
- Total mainloop time
- Painting
- Picking
- Layouting
- Idle time
The timing done by uprof is of wall clock time. It's not based on stochastic
samples we simply sample a counter at the start and end. When dealing with
the complexities of GPU drivers and with various kinds of IO this form of
profiling can be quite enlightening as it will be able to represent where
your application is blocking unlike tools such as sysprof.
To enable uprof accounting you must configure Clutter with --enable-profile
and have uprof-0.2 installed from git://git.moblin.org/uprof
If you want to see a report of statistics when Clutter applications exit you
should export CLUTTER_PROFILE_OUTPUT_REPORT=1 before running them.
Just a final word of caution; this stuff is new and the manual nature of
adding uprof instrumentation means it is prone to some errors when modifying
code. This just means that when you question strange results don't rule out
a mistake in the instrumentation. Obviously though we hope the benfits out
weigh e.g. by focusing on very key stats and by having automatic reporting.
clutter/Makefile.am | 2 +
clutter/clutter-actor.c | 14 ++++
clutter/clutter-backend.c | 15 ++++
clutter/clutter-main.c | 94 ++++++++++++++++++++-
clutter/clutter-profile.c | 170 ++++++++++++++++++++++++++++++++++++++
clutter/clutter-profile.h | 57 +++++++++++++
clutter/clutter-stage.c | 9 ++
clutter/glx/clutter-backend-glx.c | 17 ++++
8 files changed, 376 insertions(+), 2 deletions(-)
commit bd41db7c00fc54aa8077f53177ff33bd33a19c83
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Mar 17 13:07:46 2009 +0000
Adds a --enable-profile option to configure.ac
There is nothing else hooked up to this option so far
README | 4 ++++
configure.ac | 58 +++++++++++++++++++++++++++++++++++++++++++++-------------
2 files changed, 49 insertions(+), 13 deletions(-)
commit 5157da9fc8340cebdd29989a4ea02ccf607d3c52
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Jan 8 15:04:56 2010 +0000
x11: Switch back to RGB visuals by default
Since asking for ARGB by default is still somewhat experimental on X11
and not every toolkit or complex widgets (like WebKit) still do not like
dealing with ARGB visuals, we should switch back to RGB by default - now
that at least we know it works.
For applications (and toolkit integration libraries) that want to enable
the ClutterStage:use-alpha property there is a new function:
void clutter_x11_set_use_argb_visual (gboolean use_argb);
which needs to be called before clutter_init().
The CLUTTER_DISABLE_ARGB_VISUAL environment variable can still be used
to force this value off at run-time.
clutter/glx/clutter-backend-glx.c | 2 +-
clutter/x11/clutter-backend-x11.c | 70 +++++++++++++++++++++++++++++-
clutter/x11/clutter-stage-x11.c | 6 ++-
clutter/x11/clutter-x11.h | 9 +++-
doc/reference/clutter/clutter-sections.txt | 3 ++
5 files changed, 83 insertions(+), 7 deletions(-)
commit 9599adbd820db7526d77790d8b611a6b61cb2dc7
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Wed Jan 6 00:44:24 2010 +0000
doc: Fix media::{get,set}_subtitle_uri() symbol names
At first, those symbols were called {get,set}_subtitles_uri() but were
renamed to {get,set}_subtitle_uri() without updating the
clutter-section.txt file.
This fix makes gtk-doc document those symbols again.
doc/reference/clutter/clutter-sections.txt | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
commit bf4818bd759f612a9cec62c2e072544d54cc104c
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Jan 7 11:08:52 2010 +0000
actor: Just emit a relayout cycle warning
Currently, ClutterActor detects a relayout cycle (an actor causing a
relayout to be queued from within an allocate() function) and aborts
after printing out a warning. This might be a little bit too anal
retentive, and it currently breaks GTK+ embedding inside clutter-gtk
so we should probably relax the behaviour a bit. Now we just emit the
warning but we still go ahead with the relayout.
clutter/clutter-actor.c | 1 -
1 file changed, 1 deletion(-)
commit 821e622de671ad4e18a55e9dbd33aee004e822df
Author: Neil Roberts <neil@linux.intel.com>
Date: Thu Jan 7 15:58:53 2010 +0000
Don't set the GLX_TRANSPARENT_TYPE attribute to choose an FBConfig
When Clutter tries to pick an ARGB visual it tried to set the
GLX_TRANSPARENT_TYPE attribute of the FBConfig to
GLX_TRANSPARENT_RGB. However the code to do this was broken so that it
was actually trying to set the non-existant attribute number 0x8008
instead. Mesa silently ignored this so it appeared as if it was
working but the Nvidia drivers do not like it.
It appears that the TRANSPARENT_TYPE attribute is not neccessary for
getting an ARGB visual anyway and instead it is intended to support
color-key transparency. Therefore we can just remove it and get all of
the FBConfigs. Then if we need an ARGB visual we can just walk the
list to look for one with depth == 32.
The fbconfig is now stored in a single variable instead of having a
separate variable for the rgb and rgba configs because the old code
only ever retrieved one of them anyway.
clutter/glx/clutter-backend-glx.c | 145 +++++++++++++++-----------------------
clutter/glx/clutter-backend-glx.h | 5 +-
2 files changed, 57 insertions(+), 93 deletions(-)
commit 8b59573190907da97c2af5a5be2e563fc66f8d51
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Jan 5 18:02:29 2010 +0000
Covert stb_image.c to Unix format
The file is still in DOS format (CRLF instead of LF) and this confuses
the hell out of some versions of Git.
clutter/cogl/cogl/stb_image.c | 7544 ++++++++++++++++++++---------------------
1 file changed, 3772 insertions(+), 3772 deletions(-)
commit 58b5a46e0e6b263bd32808e4a9a46bbdd81eedfe
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Jan 5 17:54:45 2010 +0000
Include cogl-defines.h before using GL types
If we are using GL* types we should also be including cogl-defines.h, as
that will include the right GL header.
clutter/cogl/cogl/cogl-shader.h | 1 +
clutter/cogl/cogl/cogl-texture.h | 1 +
2 files changed, 2 insertions(+)
commit 793fec8138b478ba1f1ea419f9ef8bed4f453e77
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Jan 5 16:11:45 2010 +0000
cogl: Fix array annotations
The arrays in the cogl_program_set_uniform_* API should be marked as
such, and have their length arguments specified.
clutter/cogl/cogl/cogl-shader.h | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
commit 59105341bce12b2ec009ff953facbb7f7b10e85f
Author: Neil Roberts <neil@linux.intel.com>
Date: Tue Jan 5 11:58:12 2010 +0000
text: Store the markup attributes separately
Previously when the markup property is set it would generate an
attribute list from the markup and then merge it with the attributes
from the attribute property and store it as the effective
attributes. The markup attributes and the marked up text would then be
forgotten. This breaks if the application then later changes the
attributes property because it would try to regenerate the effective
attributes from the markup text but the stored text no longer contains
any markup. If the original markup text happened to contain entities
like '<' they would end up causing parse errors because they would
be converted to the actual symbols.
To fix this the attributes from the markup are now stored
independently from the effective attributes. The effective attributes
are now regenerated if either set of attributes changes right before a
layout is created.
http://bugzilla.openedhand.com/show_bug.cgi?id=1940
clutter/clutter-text.c | 134 ++++++++++++++++++++++++++++++-------------------
1 file changed, 82 insertions(+), 52 deletions(-)
commit 32b456fc8c4e8743c1b2c32164f7e9f67188a60e
Author: Neil Roberts <neil@linux.intel.com>
Date: Tue Jan 5 11:44:17 2010 +0000
text: Free the Pango attribute list resources
The ClutterText owns three PangoAttrList resources which were not
being unref'd. This adds the unref calls to the finalize method.
clutter/clutter-text.c | 7 +++++++
1 file changed, 7 insertions(+)
commit 64c1294cc26e034fbf8a9a05b4413f63b9cd882d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Jan 5 14:10:19 2010 +0000
x11 tfp: Plug a leak
Destroy the dummy XImage we create even on success.
http://bugzilla.openedhand.com/show_bug.cgi?id=1918
Based on a patch by: Carlos Martín Nieto <carlos@cmartin.tk>
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
clutter/x11/clutter-x11-texture-pixmap.c | 22 +++++++++++++---------
1 file changed, 13 insertions(+), 9 deletions(-)
commit fa298b45b530c6b6821e73b011c3c7d226950ce0
Merge: 4207524e9 4adc2c2d8
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Jan 5 11:04:50 2010 +0000
Merge branch 'matrix-mode'
* matrix-mode:
build: Move CoglMatrixMode to cogl-matrix-stack.h
commit 4207524e950efd3f1fa5334f6d0b9b374a0b3f93
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Jan 5 11:02:39 2010 +0000
Remove trailing comma from test UI definition
The animation definition test has a trailing comma at the end of an
array item.
tests/data/test-script-animation.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 2aa9d7bdc78703fc9a6354d2e54f880fde96db39
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Jan 5 10:55:28 2010 +0000
script: Copy the JSON node in PropertyInfo
PropertyInfo should store a copy of the JsonNodes it references, so
that property_info_free() can safely dispose them, and we can reference
values across different UI definition data.
The implicit timeline parsing code is not copying the JsonNode; this
leads to a double free in some cases, which is masked by the GSlice
allocator and produces a heap corruption later on.
clutter/clutter-script-parser.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 10963d1ae03920e202ccbd0107854f489117f89b
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Mon Dec 28 17:52:43 2009 +0100
[media] Add an API to play a subtitle file along with the media
Allow the user of the ClutterMedia interface to specify an external (as
in not multiplexed with the audio/video streams) location of a subtitle
stream.
clutter/clutter-media.c | 55 ++++++++++++++++++++++++++++++
clutter/clutter-media.h | 3 ++
doc/reference/clutter/clutter-sections.txt | 2 ++
3 files changed, 60 insertions(+)
commit 5d5c7142f7fa2447e13bcb80a272b0d9dfc28f06
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Jan 4 12:03:47 2010 +0000
text: Use G_SIGNAL_ACTION for ::insert-text and ::delete-text
Both the ::insert-text and ::delete-text are "action" signals, that is
signals that are safe to (and should) be emitted using g_signal_emit()
directly.
clutter/clutter-text.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
commit bf43cb6cdc84e646add7adc592487274331d4930
Author: Alejandro Piñeiro <apinheiro@igalia.com>
Date: Fri Nov 20 15:17:41 2009 +0100
Added ClutterText::insert-text and ClutterText::delete-text signals
* clutter/clutter-marshal.list: added new marshaller
* clutter/clutter-text.c
(clutter_text_class_init): added insert-text and delete-text signals
(clutter_text_insert_unichar): emits insert-text signal
(clutter_text_insert_text): emits insert-text signal
(clutter_text_delete_text): emits delete-text signal
(clutter_text_delete_chars): emits delete-text signal
(clutter_text_set_markup_internal): emits delete-text and insert-text signals
(clutter_text_set_text): emits delete-text and insert-text signals
http://bugzilla.openedhand.com/show_bug.cgi?id=1894
clutter/clutter-marshal.list | 1 +
clutter/clutter-text.c | 87 ++++++++++++++++++++++++++++++++++++++++++--
2 files changed, 84 insertions(+), 4 deletions(-)
commit 4adc2c2d839c42eccc7187735ddcce061d25f14b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Jan 4 11:58:32 2010 +0000
build: Move CoglMatrixMode to cogl-matrix-stack.h
This avoids a redeclaration of _cogl_matrix_stack_flush_to_gl() from
using GLenum to CoglMatrixMode.
http://bugzilla.openedhand.com/show_bug.cgi?id=1928
clutter/cogl/cogl/cogl-internal.h | 7 -------
clutter/cogl/cogl/cogl-matrix-stack.h | 9 +++++++--
2 files changed, 7 insertions(+), 9 deletions(-)
commit eb9029504124daf4c032f027c2f068ec25548f3f
Author: Halton Huo <halton.huo@sun.com>
Date: Mon Jan 4 11:49:50 2010 +0000
cogl-texture: Remove return in void functions
http://bugzilla.o-hand.com/show_bug.cgi?id=1929
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
clutter/cogl/cogl/cogl-texture.c | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
commit b98d486fc99fd46626877be728961190dbf831dc
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Jan 4 11:49:13 2010 +0000
build: Maintainer cflags go in the _CFLAGS target
The maintainer compiler flags are not pre-processor flags.
clutter/cogl/cogl/Makefile.am | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
commit 0fb51658fdba886fd5d9cb53cfca6df13aa1f7a0
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Jan 4 11:43:00 2010 +0000
cogl: Const-ify vertices in cogl_polygon()
The CoglTextureVertex array passed to cogl_polygon() is a pure
in-argument and should be const-ified.
http://bugzilla.openedhand.com/show_bug.cgi?id=1917
clutter/cogl/cogl/cogl-primitives.c | 27 ++++++++++++++-------------
clutter/cogl/cogl/cogl-texture.h | 6 +++---
2 files changed, 17 insertions(+), 16 deletions(-)
commit 1c69c61745ed510f0b6ab16cb963ca01994cb9fc
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Nov 11 11:00:29 2009 +0000
master-clock: Take a reference before advancing timelines
A timeline advancement might cause another timeline to be
destroyed, which will likely lead to a segmentation fault.
Before advancing the timelines we should take a reference
on them - just like we do for the stages before doing
event processing. This will prevent dispose() from running
until the end of the advancement.
http://bugzilla.openedhand.com/show_bug.cgi?id=1854
clutter/clutter-master-clock.c | 7 +++++++
1 file changed, 7 insertions(+)
commit 5ae88f5777c5ed0663937f990350f145b254692c
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sun Jan 3 20:41:17 2010 +0000
Post-release version bump to 1.1.5
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 6d7e1e5434d3da27cf23a9c16f9990523eedba4e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sun Jan 3 20:11:43 2010 +0000
Release Clutter 1.1.4
NEWS | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
configure.ac | 4 ++--
2 files changed, 58 insertions(+), 2 deletions(-)
commit 3355c2ab2518711d7ab79f3ffe1f4a8ce105af84
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sun Jan 3 20:24:39 2010 +0000
build: Remove dist rule for non-existing image files
doc/cookbook/Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 8d40cb947031f90a7b8cf459720278c6a6fe295d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sun Jan 3 20:12:49 2010 +0000
Disable g_set_prgname()
Apparently, calling g_set_prgname() multiple times is not allowed
anymore, and hence clutter_init_* calls should not do that. Though this
is really GLib's fault - and a massive nuisance for us - we should
prolly comply to avoid the test suite dying on us.
clutter/clutter-main.c | 4 ++++
1 file changed, 4 insertions(+)
commit 3d350078a8aa6f1bdf38c12de62e2708c5369247
Merge: a09ac0b27 934eee17a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Dec 23 10:38:02 2009 +0000
Merge branch 'animate-layout-manager' into ebassi-next
* animate-layout-manager:
layout-manager: Document the animation support
layout-manager: Rewind the timeline in begin_animation()
box-layout: Remove the allocations hash table
docs: Clean up the README file
layout: Let begin_animation() return the Alpha
box-layout: Add knobs for controlling animations
box-layout: Animate layout properties
layout: Add animation support to LayoutManager
Add ActorBox animation methods
commit 934eee17ae34098773ff5876747061b5a1d1f1a5
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Dec 23 10:35:16 2009 +0000
layout-manager: Document the animation support
Add a section inside the LayoutManager class API reference documenting,
with examples, how to implement animation support inside a layout
manager sub-class.
clutter/clutter-layout-manager.c | 213 ++++++++++++++++++++++++++++++++++-----
1 file changed, 190 insertions(+), 23 deletions(-)
commit 713c2952410e99e681825dac51da3e0b575ef2cf
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Dec 23 08:39:16 2009 +0000
layout-manager: Rewind the timeline in begin_animation()
If the default implementation begin_animation() is called twice then we
should rewind the timeline, as well as updating its duration and the
easing mode of the alpha.
clutter/clutter-layout-manager.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
commit b9c1de0ec7001ce6a6b62dbd8d1fd9ee15539093
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Dec 23 08:34:08 2009 +0000
box-layout: Remove the allocations hash table
The BoxLayout uses a HashTable to map the latest stable allocation of
each child, in order to use that as the initial value during an
animation; this in spite of already having a perfectly valid per-child
storage as part of the layout manager: ClutterBoxChild.
The last stable allocation should be stored inside the ClutterBoxChild
instead of having it in the private data for ClutterBoxLayout. The
access remains O(1), since there is a 1:1 mapping between child and
BoxChild instances, but we save a little bit of memory and we avoid
keeping aroud allocations for old children.
clutter/clutter-box-layout.c | 47 ++++++++++++++++++++------------------------
1 file changed, 21 insertions(+), 26 deletions(-)
commit c8c5e0ee39626d434c2d3e5486c6520eff17f519
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Dec 22 18:10:39 2009 +0000
docs: Clean up the README file
README | 137 +++++++++++++++++++++++++++++++++++++++--------------------------
1 file changed, 83 insertions(+), 54 deletions(-)
commit a09ac0b27ccb4a9c08a4e42e00776bf627f0e163
Merge: b6bd8be6c 34913378f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sun Dec 20 17:39:12 2009 +0000
Merge branch 'stage-use-alpha' into ebassi-next
* stage-use-alpha:
tests: Use accessor methods for :use-alpha
stage: Add accessors for :use-alpha
tests: Allow setting the stage opacity in test-paint-wrapper
stage: Premultiply the stage color
stage: Composite the opacity with the alpha channel
glx: Always request an ARGB visual
stage: Add :use-alpha property
materials: Get the right blend function for alpha
commit b6bd8be6cb0fabf2ddf3eedadce68c8d3a60c3d9
Merge: 7b53aa751 c7e8ddb7a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sun Dec 20 17:33:51 2009 +0000
Merge branch 'internal-flag' into ebassi-next
* internal-flag:
conform: Add test unit for the destruction of Containers
actor: Add internal child flag
Clean up whitespace, indentation and comments
commit c7e8ddb7a60dd76d5f62027383693575f30e2473
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Dec 18 23:29:11 2009 +0000
conform: Add test unit for the destruction of Containers
Verify that internal children do not go through the remove()
implementation, and that non-internal children do.
.gitignore | 1 +
tests/conform/Makefile.am | 1 +
tests/conform/test-actor-destroy.c | 168 +++++++++++++++++++++++++++++++++++++
tests/conform/test-conform-main.c | 1 +
4 files changed, 171 insertions(+)
commit 1520ba6190165dc8902b622833efbccf23716751
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Dec 18 23:20:04 2009 +0000
actor: Add internal child flag
ClutterActor checks, when destroying and reparenting, if the parent
actor implements the Container interface, and automatically calls the
remove() method to perform a clean removal.
Actors implementing Container, though, might have internal children;
that is, children that are not added through the Container API. It is
already possible to iterate through them using the Container API to
avoid breaking invariants - but calling clutter_actor_destroy() on
these children (even from the Container implementation, and thus outside
of Clutter's control) will either lead to leaks or to segmentation
faults.
Clutter needs a way to distinguish a clutter_actor_set_parent() done on
an internal child from one done on a "public" child; for this reason, a
push/pop pair of functions should be available to Actor implementations
to mark the section where they wish to add internal children:
➔ clutter_actor_push_internal ();
...
clutter_actor_set_parent (child1, parent);
clutter_actor_set_parent (child2, parent);
...
➔ clutter_actor_pop_internal ();
The set_parent() call will automatically set the newly added
INTERNAL_CHILD private flag on each child, and both
clutter_actor_destroy() and clutter_actor_unparent() will check for the
flag before deciding whether to call the Container's remove method.
clutter/clutter-actor.c | 110 +++++++++++++++++++++++++++--
clutter/clutter-actor.h | 3 +
clutter/clutter-private.h | 29 ++++++--
doc/reference/clutter/clutter-sections.txt | 2 +
4 files changed, 132 insertions(+), 12 deletions(-)
commit 4a21425f4837798d01f4435b68582faf9029c61c
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sun Dec 13 01:23:54 2009 +0000
layout: Let begin_animation() return the Alpha
When beginning a new animation for a LayoutManager, the implementation
should return the ClutterAlpha used. This allows controlling the
timeline and/or modifying the animation parameters on the fly.
clutter/clutter-box-layout.c | 5 +++--
clutter/clutter-layout-manager.c | 30 ++++++++++++++++++++++--------
clutter/clutter-layout-manager.h | 5 +++--
3 files changed, 28 insertions(+), 12 deletions(-)
commit 2e6397c39132007e79f5f87743fe9378fd8d5387
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sun Dec 13 01:07:44 2009 +0000
box-layout: Add knobs for controlling animations
ClutterLayoutManager does not have any state associated with it, and
defers all the state to its sub-classes.
The BoxLayout is thus in charge of controlling:
• whether or not animations should be used
• the duration of the animation
• the easing mode of the animation
By adding three new properties:
• ClutterBoxLayout:use-animations
• ClutterBoxLayout:easing-duration
• ClutterBoxLayout:easing-mode
And their relative accessors pairs we can make BoxLayout decide whether
or not, and with which parameters, call the begin_animation() method of
ClutterLayoutManager.
The test-box-layout has been modified to reflect this new functionality,
by checking the key-press event for the 'a' key symbol to toggle the use
of animations.
clutter/clutter-box-layout.c | 320 +++++++++++++++++++++++++++--
clutter/clutter-box-layout.h | 90 ++++----
doc/reference/clutter/clutter-sections.txt | 8 +
tests/interactive/test-box-layout.c | 6 +
4 files changed, 370 insertions(+), 54 deletions(-)
commit 3c2e91aef586de5521aa9674b80d449cf96da0e1
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sat Dec 12 00:13:05 2009 +0000
box-layout: Animate layout properties
Use the newly added animation support inside LayoutManager to animate
between state changes of the BoxLayout properties.
The implementation is based on equivalent code from Mx, written by:
Thomas Wood <thomas.wood@intel.com>
clutter/clutter-box-layout.c | 130 +++++++++++++++++++++++++++++++++++++------
1 file changed, 113 insertions(+), 17 deletions(-)
commit f94a903d9ebdbc055010bb4a4c6fe7e76f418bd8
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sat Dec 12 00:02:43 2009 +0000
layout: Add animation support to LayoutManager
In order to animate a fluid layout we cannot use the common animation
code paths as they will override the size request and allocation paths
that are handled by the layout manager itself.
One way to introduce animations in the allocation sequence is to use a
Timeline and an Alpha to compute a progress value and then use that
value to interpolate an ActorBox between the initial and final states of
the animation - with the initial state being the last allocation of the
child prior to the animation start, and the final state the allocation
of the child at the end; for every frame of the Timeline we then queue a
relayout on the layout manager's container, which will result in an
animation.
ClutterLayoutManager is the most likely place to add a generic API for
beginning and ending an animation, as well as the place to provide a
default code path to create the ancillary Timeline and Alpha instances
needed to drive the animation.
A LayoutManager sub-class will need to:
• call clutter_layout_manager_begin_animation() whenever it should
animate between two states, for instance: whenever a layout property
changes value;
• eventually override begin_animation() and end_animation() in case
further state needs to be set up, and then chain up to the default
implementation provided by LayoutManager;
• if a completely different implementation is required, the layout
manager sub-class should override begin_animation(), end_animation()
and get_animation_progress().
Inside the allocate() implementation the sub-class should also
interpolate between the last known allocation of a child and the newly
computed allocation.
clutter/clutter-layout-manager.c | 159 ++++++++++++++++++++++++++++-
clutter/clutter-layout-manager.h | 68 +++++++-----
doc/reference/clutter/clutter-sections.txt | 5 +
3 files changed, 207 insertions(+), 25 deletions(-)
commit 999359d64ccfbdbcc952662c14fa47441d6a5225
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Dec 11 23:48:58 2009 +0000
Add ActorBox animation methods
ClutterActorBox should have an interpolate() method that allows to
compute the intermediate values between two states, given a progress
value, e.g.:
clutter_actor_box_interpolate (start, end, alpha, &result);
Another utility method, useful for layout managers, is a modifier
that clamps the members of the actor box to the nearest integer
value.
clutter/clutter-actor.c | 47 ++++++++++++++++++++++++++++++
clutter/clutter-types.h | 5 ++++
doc/reference/clutter/clutter-sections.txt | 2 ++
3 files changed, 54 insertions(+)
commit d2ea7cd6a8a1eb4ff04f11cb53aa387458a8e128
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Dec 11 20:17:58 2009 +0000
Clean up whitespace, indentation and comments
clutter/clutter-main.c | 70 ++++++++++++++++++++++++++------------------------
1 file changed, 36 insertions(+), 34 deletions(-)
commit 7b53aa7510adc60d3287740772ec97117ce78ab9
Merge: 60a6bff31 1374b5aac
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Dec 10 23:36:04 2009 +0000
Merge branch 'get-current-event' into ebassi-next
* get-current-event:
Add clutter_get_current_event
commit 1374b5aac9398852cf3f3482fdf925b52aa31338
Author: Colin Walters <walters@verbum.org>
Date: Thu Nov 12 17:33:15 2009 -0500
Add clutter_get_current_event
When getting signals from higher level toolkits, occasionally
one wants access to the underlying event; say for a Button
widget's "clicked" signal, to get the keyboard state.
Rather than having all of the highlevel widgets emit
ClutterEvent just for the more unusual use cases,
add a global function to access the event state.
http://bugzilla.openedhand.com/show_bug.cgi?id=1888
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
clutter/clutter-event.c | 23 +++++++++++
clutter/clutter-event.h | 1 +
clutter/clutter-main.c | 62 +++++++++++++++++-------------
clutter/clutter-private.h | 1 +
doc/reference/clutter/clutter-sections.txt | 1 +
5 files changed, 61 insertions(+), 27 deletions(-)
commit 60a6bff3136c21c5ff6d4c5bb6614716853620f0
Merge: dc47550bc c4f27b155
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Dec 9 23:32:41 2009 +0000
Merge branch 'no-layout-flag' into ebassi-next
* no-layout-flag:
actor: Add a NO_LAYOUT flag for actors
commit dc47550bc8eabc2c6e6e99364c1cb536a9adc973
Merge: 86ce92eec b33b6287a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Dec 9 23:32:18 2009 +0000
Merge branch 'size-cache' into ebassi-next
* size-cache:
tests: Clean up the BoxLayout interactive test
actor: Add debugging notes for size cache
Add a cache of size requests
commit 86ce92eec14aa1aaf7c9ab14a520b66690488213
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Dec 9 18:46:25 2009 +0000
x11: Emulate XKB's detectable key auto-repeat
Old-style X11 terminals require that even modern X11 send KeyPress
and KeyRelease pairs when auto-repeating. For this reason modern(-ish)
API like XKB has a way to detect auto-repeat and do a single KeyRelease
at the end of a KeyPress sequence.
The newly added check emulates XKB's detectable auto-repeat by peeking
the next event after a KeyRelease and checking if it's a KeyPress for
the same key and timestamp - and then ignoring the KeyRelease if it
matches.
clutter/x11/clutter-event-x11.c | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)
commit 9242d6b934710ca4001e8dc2a0f1f4bc4a738a63
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Dec 9 18:10:52 2009 +0000
docs: Move RELEASING under docs/
RELEASING => doc/RELEASING | 0
1 file changed, 0 insertions(+), 0 deletions(-)
commit 1ffd2ccb87a570733647e655e5e608ee05661c74
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Dec 9 01:52:09 2009 +0000
stage: Deprecate default stage size macros
The macros for getting the size of the default stage are a relic of the
past and they should be deprecated.
clutter/clutter-stage.h | 36 ++++++++++++++----------------------
1 file changed, 14 insertions(+), 22 deletions(-)
commit 34913378fb7aa84874bfda63648e9e0e02e40d8c
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Dec 9 17:17:33 2009 +0000
tests: Use accessor methods for :use-alpha
Instead of using g_object_set().
tests/interactive/test-paint-wrapper.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
commit 1208e47198ea981b644bca2ce9beab3b59f05d0b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Dec 9 02:04:56 2009 +0000
stage: Add accessors for :use-alpha
Use real accessors for the :use-alpha property.
clutter/clutter-stage.c | 53 ++++++++++++++++++++++++++++--
clutter/clutter-stage.h | 4 +++
doc/reference/clutter/clutter-sections.txt | 2 ++
3 files changed, 57 insertions(+), 2 deletions(-)
commit 3b075b6dc4197ed78f6386ee7e9a6e307839590f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Dec 9 01:46:52 2009 +0000
tests: Allow setting the stage opacity in test-paint-wrapper
This allows testing the Stage:use-alpha property and the blending done
by a compositor.
tests/interactive/test-paint-wrapper.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
commit 3a3c815286daa55761787a49d7a33c6eb8c3d74d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Dec 9 01:46:09 2009 +0000
stage: Premultiply the stage color
In case we are using Stage:use-alpha then we need to premultiply the
stage color to get the correct blending from the compositor.
clutter/clutter-stage.c | 1 +
1 file changed, 1 insertion(+)
commit e957e277b8a4893ce8c99e94402036d42a8b3748
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Dec 8 18:24:30 2009 +0000
x11: Do not manage a foreign window
If a Stage has been set to use a foreign Window then Clutter should not
be managing it; calling XWithdrawWindow and XMapWindow should be
reserved to the windows we manage ourselves.
clutter/x11/clutter-stage-x11.c | 23 ++++++++++++++---------
1 file changed, 14 insertions(+), 9 deletions(-)
commit 28cb2cdab588ac361544538d4bb70a3e9bf24c81
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Dec 7 19:00:55 2009 +0000
Remove clutter_set_default_text_direction()
Setting the default text direction programmatically is wrong: it is a
value dependent on the locale or by the environment.
clutter/clutter-actor.c | 3 ++-
clutter/clutter-main.c | 32 +++++++++++++-----------------
clutter/clutter-main.h | 1 -
doc/reference/clutter/clutter-sections.txt | 1 -
4 files changed, 16 insertions(+), 21 deletions(-)
commit 3b9575baf8d254b7ba8b5faf56b14fbc6c3fde74
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Dec 7 18:41:15 2009 +0000
Queue a relayout when the default text direction changes
We need a relayout cycle if the default direction for the text changes
while the main loop is running.
clutter/clutter-main.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
commit 6a3f6a460e730b0067adfa1eac455246c8d6e8d8
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Dec 7 17:35:17 2009 +0000
stage: Composite the opacity with the alpha channel
The Stage's opacity should be composited with the alpha component of the
Stage's background color.
clutter/clutter-stage.c | 20 +++++++++++---------
1 file changed, 11 insertions(+), 9 deletions(-)
commit c4f27b1556b65464fd1f53749d32db9adab97942
Author: Emmanuele Bassi <ebassi@gnome.org>
Date: Wed Oct 7 16:41:25 2009 +0100
actor: Add a NO_LAYOUT flag for actors
Some actor implementation might avoid imposing any layout on their
children. The Actor base class usually assumes some sort of layout
management is in place, so it will queue relayouts when, for instance,
an actor is shown or is hidden. If the parent of the actor does not
impose any layout, though, showing or hiding one of its children will
not affect the layout of the others.
An example of this kind of container is ClutterGroup.
By adding a new Actor flag, CLUTTER_ACTOR_NO_LAYOUT, and by making
the Group actor set it on itself, the Actor base class can now decide
whether or not to queue a relayout. The flag is not meant to be used
by application code, and should only be set when implementing a new
container.
http://bugzilla.openedhand.com/show_bug.cgi?id=1838
clutter/clutter-actor.c | 37 +++++++++++++++++++++++++++----------
clutter/clutter-actor.h | 15 ++++++++++-----
clutter/clutter-group.c | 6 ++++++
3 files changed, 43 insertions(+), 15 deletions(-)
commit 34b50934be581cde0ef2eba75f45aa36b1add14d
Author: Neil Roberts <neil@linux.intel.com>
Date: Sat Dec 5 14:20:00 2009 +0000
cogl-material: Ensure mipmaps before doing anything else on a texture
When the texture is in the atlas, ensuring the mipmaps can effectively
make it become a completely different texture so we should do this
before getting the GL handle.
clutter/cogl/cogl/cogl-material.c | 19 +++++++++++--------
1 file changed, 11 insertions(+), 8 deletions(-)
commit 231cfffa1871806713928f7b4c599d904a813fb9
Author: Neil Roberts <neil@linux.intel.com>
Date: Sat Dec 5 13:48:03 2009 +0000
cogl-atlas-texture: Remove textures from the atlas when mipmapping is required
Mipmaps don't work very well in the current atlas because there is not
enough padding between the textures. If ensure_mipmaps is called it
will now create a new texture and migrate the atlased texture to
it. It will use the same blit mechanism as when migrating so it will
try to use an FBO for a fast blit. However if this is not possible it
will end up downloading the data for the entire atlas which is not
ideal.
clutter/cogl/cogl/cogl-atlas-texture.c | 66 +++++++++++++++++++++++++++++-----
1 file changed, 57 insertions(+), 9 deletions(-)
commit 6cf5ee2cbdad4bb71a065bb7e49a534ca7ba78ac
Author: Neil Roberts <neil@linux.intel.com>
Date: Sat Dec 5 13:24:01 2009 +0000
cogl-atlas-texture: Try to do texture blits using an FBO
When reorganizing the textures, we can avoid downloading the entire
texture data if we bind the source texture in a framebuffer object and
copy the destination using glCopyTexSubImage2D. This is also
implemented using a much faster path in Mesa.
Currently it is calling the GL framebuffer API directly but ideally it
would use the Cogl offscreen API. However there is no way to tell Cogl
not to create a stencil renderbuffer which seems like a waste in this
situation.
If FBOs are not available it will fallback to reading back the entire
texture data as before.
clutter/cogl/cogl/cogl-atlas-texture.c | 198 ++++++++++++++++++++++++++++-----
1 file changed, 168 insertions(+), 30 deletions(-)
commit c51a31a2fc3f0f087a44cbccf1726c40fa581746
Author: Neil Roberts <neil@linux.intel.com>
Date: Fri Dec 4 19:43:39 2009 +0000
cogl-atlas: Add a debug option to visualize the atlas
This adds a 'dump-atlas-image' debug category. When enabled, CoglAtlas
will use Cairo to create a png which visualizes the leaf rectangles of
the atlas.
clutter/cogl/cogl/cogl-atlas.c | 76 ++++++++++++++++++++++++++++++++++++++++++
clutter/cogl/cogl/cogl-debug.c | 3 +-
clutter/cogl/cogl/cogl-debug.h | 3 +-
3 files changed, 80 insertions(+), 2 deletions(-)
commit 032d6e8aa00cd04a8084303a4942760ef5651a0c
Author: Neil Roberts <neil@linux.intel.com>
Date: Fri Dec 4 18:55:53 2009 +0000
cogl-texture-atlas: Add some debugging notes
This adds an 'atlas' category to the COGL_DEBUG environment
variable. When enabled Cogl will display messages when textures are
added to the atlas and when the atlas is reorganized.
clutter/cogl/cogl/cogl-atlas-texture.c | 62 ++++++++++++++++++++++++++++++----
clutter/cogl/cogl/cogl-debug.c | 3 +-
clutter/cogl/cogl/cogl-debug.h | 3 +-
3 files changed, 60 insertions(+), 8 deletions(-)
commit bc845e26d9cab75ecba69d12a937cf7d42bcaf71
Author: Neil Roberts <neil@linux.intel.com>
Date: Fri Dec 4 18:24:15 2009 +0000
cogl-atlas-texture: Support reorganizing the atlas when it is full
When space can't be found in the atlas for a new texture it will now
try to reorganize the atlas to make space. A new CoglAtlas is created
and all of the textures are readded in decreasing size order. If the
textures still don't fit then the size of the atlas is doubled until
either we find a space or we reach the texture size limits. If we
successfully find an organization that fits then all of the textures
will be migrated to a new texture. This involves copying the texture
data into CPU memory and then uploading it again. Potentially it could
eventually use a PBO or an FBO to transfer the image without going
through the CPU.
The algorithm for laying out the textures works a lot better if the
rectangles are added in order so we might eventually want some API for
creating multiple textures in one go to avoid reorganizing the atlas
as far as possible.
clutter/cogl/cogl/cogl-atlas-texture.c | 315 +++++++++++++++++++++++++++++----
1 file changed, 280 insertions(+), 35 deletions(-)
commit 1fb32167ec37f7b3bc8193258faa5963fe49569e
Author: Neil Roberts <neil@linux.intel.com>
Date: Fri Dec 4 13:06:32 2009 +0000
cogl: Add an atlased texture backend
This adds a CoglAtlas type which is a data structure that keeps track
of unused sub rectangles of a larger rectangle. There is a new atlased
texture backend which uses this to put multiple textures into a single
larger texture.
Currently the atlas is always sized 256x256 and the textures are never
moved once they are put in. Eventually it needs to be able to
reorganise the atlas and grow it if necessary. It also needs to
migrate the textures out of the atlas if mipmaps are required.
clutter/cogl/cogl/Makefile.am | 4 +
clutter/cogl/cogl/cogl-atlas-texture-private.h | 64 +++
clutter/cogl/cogl/cogl-atlas-texture.c | 488 +++++++++++++++++++++++
clutter/cogl/cogl/cogl-atlas.c | 520 +++++++++++++++++++++++++
clutter/cogl/cogl/cogl-atlas.h | 76 ++++
clutter/cogl/cogl/cogl-context.c | 14 +
clutter/cogl/cogl/cogl-context.h | 8 +
clutter/cogl/cogl/cogl-texture.c | 30 +-
clutter/cogl/cogl/cogl-types.h | 3 +-
9 files changed, 1194 insertions(+), 13 deletions(-)
commit b33b6287a1d3d3b07bbb845e79dfc4e2162c5c77
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Dec 4 17:39:04 2009 +0000
tests: Clean up the BoxLayout interactive test
tests/interactive/test-box-layout.c | 27 ++++++++++++++++-----------
1 file changed, 16 insertions(+), 11 deletions(-)
commit cf62b8fe4ab0d7cca360077843a9e213540e2c4d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Dec 4 17:38:26 2009 +0000
actor: Add debugging notes for size cache
Add a note for cache hits, and another one for cache misses.
clutter/clutter-actor.c | 3 +++
1 file changed, 3 insertions(+)
commit 9ccdf2eb02a0d0155e27d5f9270bca6b72c08359
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Dec 4 16:54:22 2009 +0000
box: Add relative packing methods
ClutterBox should provide some convenience functions to pack a new child
at a given position, either an absolute index or relative to a sibling.
clutter/clutter-box.c | 221 ++++++++++++++++++++++++-----
clutter/clutter-box.h | 16 +++
doc/reference/clutter/clutter-sections.txt | 3 +
tests/interactive/test-bin-layout.c | 1 -
4 files changed, 203 insertions(+), 38 deletions(-)
commit c9b7efec96636e9368a8dfb76440d1b89c618c99
Author: Johan Bilien <jobi@via.ecp.fr>
Date: Wed Nov 11 20:40:57 2009 -0500
Add a cache of size requests
clutter_actor_get_preferred_width/height currently caches only one size
requests, for a given height / width.
It's common for a layout manager to call get_preferred_width with 2
different heights during the same allocation cycle. Typically once in
the size request, once in the allocation. If
clutter_actor_get_preferred_width is called
alternatively with 2 different for_height, the cache is totally
inefficient, and we end up always querying the actor size even
when the actor does not need a re-allocation.
http://bugzilla.openedhand.com/show_bug.cgi?id=1876
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
clutter/clutter-actor.c | 137 +++++++++++++++++++++++++++++++++++++++++-------
1 file changed, 117 insertions(+), 20 deletions(-)
commit 18860eb16f36eb62b94aee353b4e2ace76e2fffa
Author: Bastian Winkler <buz@netbuz.org>
Date: Thu Dec 3 15:38:05 2009 +0000
flow-layout: Use the natural size
Fix a copy-and-paste thinko where the cell size was computed using the
minimum size instead of the natural size. For actors with a minimum size
of zero, like Textures, this implied always a zero allocation.
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
clutter/clutter-flow-layout.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
commit 6c3e1989e47b17f826d25704b2433ffecc6e83b9
Author: Neil Roberts <neil@linux.intel.com>
Date: Thu Dec 3 14:46:20 2009 +0000
cogl-sub-texture: Fix the height of sub textures
The code which is used to get the texture height was accidentally
using the width due to a cut-and-paste fail.
clutter/cogl/cogl/cogl-sub-texture.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
commit 97f8eed11917fa0d545dcb08d20841f6b501c878
Author: Neil Roberts <neil@linux.intel.com>
Date: Fri Nov 27 18:45:36 2009 +0000
cogl: Add a CoglTexture2D backend
This is an optimised version of CoglTexture2DSliced that always deals
with a single texture and always uses the GL_TEXTURE_2D
target. cogl_texture_new_from_bitmap now tries to use this backend
first. If it can't create a texture with that size then it falls back
the sliced backend.
cogl_texture_upload_data_prepare has been split into two functions
because the sliced backend needs to know the real internal format
before the conversion is performed. Otherwise the converted bitmap
will be wasted if the backend can't support the size.
clutter/cogl/cogl/Makefile.am | 2 +
clutter/cogl/cogl/cogl-texture-2d-private.h | 69 +++
clutter/cogl/cogl/cogl-texture-2d.c | 623 ++++++++++++++++++++++++++++
clutter/cogl/cogl/cogl-texture-private.h | 9 +
clutter/cogl/cogl/cogl-texture.c | 75 +++-
5 files changed, 755 insertions(+), 23 deletions(-)
commit f3df76d5129ba0ed7014c6aa52be7bee67c3f7aa
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Nov 30 12:15:05 2009 +0000
cogl: Add _cogl_texture_driver_upload_to_gl
This provides a way to upload the entire data for a texture without
having to first call glTexImage and then glTexSubImage. This should be
faster especially with indirect rendering where it would needlessy
send the data for the texture twice.
clutter/cogl/cogl/cogl-texture-driver.h | 14 +++++++
clutter/cogl/cogl/driver/gl/cogl-texture-driver.c | 26 ++++++++++++
.../cogl/cogl/driver/gles/cogl-texture-driver.c | 47 ++++++++++++++++++++++
3 files changed, 87 insertions(+)
commit 19a19579ba72ea9ca4f6d406c035c3ad074fd442
Author: Neil Roberts <neil@linux.intel.com>
Date: Fri Nov 27 16:59:51 2009 +0000
cogl: Move some of the texture_2d_sliced_new_* functions into cogl-texture
new_from_data and new_from_file can be implemented in terms of
new_from_bitmap so it makes sense to move these to cogl-texture rather
than having to implement them in every texture backend.
clutter/cogl/cogl/cogl-texture-2d-sliced-private.h | 16 -----
clutter/cogl/cogl/cogl-texture-2d-sliced.c | 84 ----------------------
clutter/cogl/cogl/cogl-texture.c | 44 +++++++++---
3 files changed, 33 insertions(+), 111 deletions(-)
commit 27c4eb483d0ce219d80000613357c20fc25724e3
Author: Neil Roberts <neil@linux.intel.com>
Date: Fri Nov 27 16:40:31 2009 +0000
cogl: Add a conformance test for sub textures
This tests creating a sub texture from a larger texture using various
different texture coordinates. It also tries to read back the texture
data using cogl_texture_get_data.
tests/conform/Makefile.am | 1 +
tests/conform/test-cogl-sub-texture.c | 388 ++++++++++++++++++++++++++++++++++
tests/conform/test-conform-main.c | 1 +
3 files changed, 390 insertions(+)
commit 9752493272b39e6a8aeb1b8d667667d53de439fb
Author: Neil Roberts <neil@linux.intel.com>
Date: Fri Nov 27 16:39:16 2009 +0000
cogl: Add a sub texture backend
This adds a new texture backend which represents a sub texture of a
larger texture. The texture is created with a reference to the full
texture and a set of coordinates describing the region. The backend
simply defers to the full texture for all operations and maps the
coordinates to the other range. You can also use coordinates outside
the range [0,1] to create a repeated version of the full texture.
A new public API function called cogl_texture_new_from_sub_texture is
available to create the sub texture.
clutter/cogl/cogl/Makefile.am | 2 +
clutter/cogl/cogl/cogl-sub-texture-private.h | 56 +++
clutter/cogl/cogl/cogl-sub-texture.c | 699 +++++++++++++++++++++++++++
clutter/cogl/cogl/cogl-texture.c | 15 +-
clutter/cogl/cogl/cogl-texture.h | 27 ++
doc/reference/cogl/cogl-sections.txt | 1 +
6 files changed, 798 insertions(+), 2 deletions(-)
commit 070a91f31176eb304031fc6dc2c374ef25f92a92
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Dec 2 17:17:24 2009 +0000
cogl: Make the callback for foreach_sub_texture_in_region use const
The CoglTextureSliceCallback function pointer now takes const pointers
for the texture coordinates. This makes it clearer that the callback
should not modify the array and therefore the backend can use the same
array for both sets of coords.
clutter/cogl/cogl/cogl-journal-private.h | 2 +-
clutter/cogl/cogl/cogl-journal.c | 2 +-
clutter/cogl/cogl/cogl-primitives.c | 14 +++++++-------
clutter/cogl/cogl/cogl-texture-private.h | 4 ++--
4 files changed, 11 insertions(+), 11 deletions(-)
commit 1a1de0e278de7c06b528ae74a31580dfd576d041
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Dec 2 13:41:49 2009 +0000
cogl: Add a texture utility function for manually repeating
Given a region of texture coordinates this utility invokes a callback
enough times to cover the region with a subregion that spans the
texture at most once. Eg, if called with tx1 and tx2 as 0.5 and 3.0 it
it would invoke the callback with:
0.5,1.0 1.0,2.0 2.0,3.0
Manual repeating is needed by all texture backends regardless of
whether they can support hardware repeating because when Cogl calls
the foreach_sub_texture_in_region method then it sets the wrap mode to
GL_CLAMP_TO_EDGE and no hardware repeating is possible.
clutter/cogl/cogl/cogl-texture-private.h | 14 +++++
clutter/cogl/cogl/cogl-texture.c | 102 +++++++++++++++++++++++++++++++
2 files changed, 116 insertions(+)
commit 5fcb29c91695bdbb2aec418ba1d2956ff23612a0
Author: Neil Roberts <neil@linux.intel.com>
Date: Fri Nov 27 15:47:22 2009 +0000
cogl-primitives: Check for repeating after the coordinate transform
In _cogl_multitexture_quad_single_primitive we use a wrap mode of
GL_CLAMP_TO_EDGE if the texture coordinates are all in the range [0,1]
or GL_REPEAT otherwise. This is to avoid pulling in pixels from either
side when using GL_LINEAR filter mode and rendering the entire
texture. Previously it was checking using the unconverted texture
coordinates. This is ok unless the texture backend is radically
transforming the texture coordinates, such as in the sub texture
backend where the coordinates may map to something completely
different. We now check whether the coordinates are in range after
converting them.
clutter/cogl/cogl/cogl-primitives.c | 87 ++++++++++++++++---------------------
1 file changed, 37 insertions(+), 50 deletions(-)
commit 812d4d25bb28d8512c101701cf7cd06dc2dd95eb
Author: Neil Roberts <neil@linux.intel.com>
Date: Thu Nov 26 18:58:17 2009 +0000
cogl: Move all of the fields from CoglTexture to CoglTexture2DSliced
Most of the fields that were previously in CoglTexture are specific to
the implementation of CoglTexture2DSliced so they should be placed
there instead. For example, the 'mipmaps_dirty' flag is an
implementation detail of the ensure_mipmaps function so it doesn't
make sense to force all texture backends to have this function.
Other fields such as width, height, gl_format and format may make
sense for all textures but I've added them as virtual functions
instead. This may make more sense for a sub-texture backend for
example where it can calculate these based on the full texture.
clutter/cogl/cogl/cogl-texture-2d-sliced-private.h | 25 ++-
clutter/cogl/cogl/cogl-texture-2d-sliced.c | 204 ++++++++++++---------
clutter/cogl/cogl/cogl-texture-private.h | 21 +--
clutter/cogl/cogl/cogl-texture.c | 19 +-
4 files changed, 149 insertions(+), 120 deletions(-)
commit 071dea2fbc307eca949f5f44c4ccb6c4dd73f789
Author: Neil Roberts <neil@linux.intel.com>
Date: Thu Nov 26 17:32:52 2009 +0000
cogl: Move data only used for upload out of CoglTexture
The CoglTexture struct previously contained some fields which are only
used to upload data such as the CoglBitmap and the source GL
format. These are now moved to a separate CoglTextureUploadData struct
which only exists for the duration of one of the cogl_texture_*_new
functions. In cogl-texture there are utility functions which operate
on this new struct rather than on CoglTexture directly.
Some of the fields that were previously stored in the CoglBitmap
struct are now copied to the CoglTexture such as the width, height,
format and internal GL format.
The rowstride was previously stored in CoglTexture and this was
publicly accessible with the cogl_texture_get_rowstride
function. However this doesn't seem to be a useful function because
there is no need to use the same rowstride again when uploading or
downloading new data. Instead cogl_texture_get_rowstride now just
calculates a suitable rowstride from the format and width of the
texture.
clutter/cogl/cogl/cogl-texture-2d-sliced.c | 344 ++++++++++-----------
clutter/cogl/cogl/cogl-texture-driver.h | 6 +-
clutter/cogl/cogl/cogl-texture-private.h | 51 +--
clutter/cogl/cogl/cogl-texture.c | 93 +++---
clutter/cogl/cogl/driver/gl/cogl-texture-driver.c | 14 +-
.../cogl/cogl/driver/gles/cogl-texture-driver.c | 16 +-
6 files changed, 262 insertions(+), 262 deletions(-)
commit 7f58c14dcdbb5a6a24f17aacb784702dbaa468fb
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Dec 2 21:54:22 2009 +0000
cogl: Use #ifdef GL around GL_TEXTURE_RECTANGLE_ARB
Commit 558b17ee1e added support for rectangle textures to the
framebuffer code. Under GLES there is no GL_TEXTURE_RECTANGLE_ARB
definition so this was breaking the build. The rest of Cogl uses
ifdef's around that constant so we should do the same here.
clutter/cogl/cogl/cogl-framebuffer.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
commit 59d84f7806e16b3d1fea5eed44a5d06d9772be23
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Dec 2 16:03:55 2009 +0000
build: Fix CPP and LD flags
• The debug flags are pre-processor ones, so they should be listed
inside AM_CPPFLAGS.
• Clutter's publicly exported symbols match the following regular
expression:
^(clutter|cogl|json)_*
The old one also listed "pango" as a possible prefix, but the
Pango API is now under the Cogl namespace.
clutter/Makefile.am | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
commit 17e3b526d569b6c8f33cd050acce107d5f1b057b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Dec 2 14:15:43 2009 +0000
docs: Document Clutter's threading model
Be explicit on how to deal with threads and Clutter.
clutter/clutter-main.c | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 56 insertions(+)
commit fc7bbf1abf732ba37fee8f12b5ed36e0b9a5fb95
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Dec 2 14:15:19 2009 +0000
docs: Fix docbook syntax
The <variablename> tag is really called <varname> in DocBook.
clutter/clutter-layout-manager.c | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
commit 3c08c411d2ccd1523439c4f35427d266d1ef67dd
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Dec 2 11:38:04 2009 +0000
docs: Annotate StageManager
The ClutterStageManager instance structure is private, so we need a
"floating" annotation.
clutter/clutter-stage-manager.h | 8 ++++++++
1 file changed, 8 insertions(+)
commit 7a33b706a40719e1d123ccfa71c3d5c5d864fdea
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Dec 2 11:37:13 2009 +0000
Remove a gtk-doc annotation
The Mesa matrix code still has a comment that looks like a gtk-doc
annotation.
clutter/cogl/cogl/cogl-matrix-mesa.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 0270313121e9a02cb1f59de134ed724e6f8c0ae6
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Dec 2 11:36:25 2009 +0000
layout: Add padding to LayoutMeta
Add some padding to the LayoutMeta and LayoutMetaClass structures.
clutter/clutter-layout-meta.h | 18 +++++++++++++++++-
1 file changed, 17 insertions(+), 1 deletion(-)
commit 02398c0cf13f8326a8fadf0536ce1ac1994901ee
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Dec 1 18:16:48 2009 +0000
Remove unused variable 'lang'
Fix a compiler warning.
clutter/clutter-main.c | 1 -
1 file changed, 1 deletion(-)
commit cdba8cc220a8ef026ade2dfaa542ff94c92cd5ef
Author: Rob Bradford <rob@linux.intel.com>
Date: Tue Dec 1 17:44:42 2009 +0000
flow-layout: Include the first line when calculating number of lines
This ensures that the preferred height / width height takes into consideration
the correct amount of padding
clutter/clutter-flow-layout.c | 6 ++++++
1 file changed, 6 insertions(+)
commit c564303601f6cabdc3314070d225f74a3c6df174
Author: Rob Bradford <rob@linux.intel.com>
Date: Tue Dec 1 17:11:08 2009 +0000
flow-layout: Respect row-spacing/col-spacine in horizontal/vertical flows
We need to add the row-spacing value when calculating the y position for lines
of actors in horizontal flowing layouts.
Similarly we need to add the col-spacing value when calculating the x posution
for actors in vertical flowing layouts.
clutter/clutter-flow-layout.c | 6 ++++++
1 file changed, 6 insertions(+)
commit e6ca2d891a2c48c91db45a0c2f5ce84d5e6621e1
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Dec 1 16:18:39 2009 +0000
glx: Always request an ARGB visual
When requesting the GLXFBConfig for creating the GLX context, we should
always request one that links to an ARGB visual instead of a plain RGB
one.
By using an ARGB visual we allow the ClutterStage:use-alpha property to
work as intended when running Clutter under a compositing manager.
The default behaviour of requesting an ARGB visual can be disabled by
using the:
CLUTTER_DISABLE_ARGB_VISUAL
Environment variable.
clutter/glx/clutter-backend-glx.c | 128 ++++++++++++++++++++++++++++++--------
clutter/glx/clutter-backend-glx.h | 5 +-
clutter/glx/clutter-glx.h | 5 --
clutter/glx/clutter-stage-glx.c | 13 +---
clutter/x11/clutter-backend-x11.c | 15 ++++-
clutter/x11/clutter-x11.h | 2 +
6 files changed, 125 insertions(+), 43 deletions(-)
commit 2f7ff4d3e363a0568e4051ab67c0df6f745d06d2
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Dec 1 16:16:18 2009 +0000
stage: Add :use-alpha property
The ClutterStage:use-alpha property is used to let a stage know that it
should honour the alpha component of the ClutterStage:color property.
If :use-alpha is set to FALSE the stage always uses the full opacity
when clearing itself before a paint(); otherwise, the alpha value is
used.
clutter/clutter-stage.c | 38 +++++++++++++++++++++++++++++++++++---
1 file changed, 35 insertions(+), 3 deletions(-)
commit 1d87ecc6a1be73e7d72c8c5ecb2b8268d5a0cd5e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Dec 1 16:22:45 2009 +0000
materials: Get the right blend function for alpha
The correct blend function for the alpha channel is:
GL_ONE, GL_ONE_MINUS_SRC_ALPHA
As per bug 1406. This fix was dropped when the switch to premultiplied
alpha was merged.
clutter/cogl/cogl/cogl-material.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit b43e804c078578e54b0ef9680a5d7b4bf53cafe8
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Dec 1 16:06:57 2009 +0000
actor: Fix a pre-condition check in set_text_direction()
The check is failing because the condition should be:
text_dir != CLUTTER_TEXT_DIRECTION_DEFAULT
clutter/clutter-actor.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 3e034cda58776a0fbc6812cd8d859ad58b5cab54
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Dec 1 15:17:49 2009 +0000
build: More cleanups for the configure summary
Document each section, and add some more items to the summary like what
JSON-GLib are we using, and which version of the GLES API is COGL
wrapping.
configure.ac | 27 ++++++++++++++++++++++-----
1 file changed, 22 insertions(+), 5 deletions(-)
commit e3b409529e9000cff6aabac8efdaccc0eaecf83f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Dec 1 15:17:16 2009 +0000
build: Require a stable JSON-GLib version
The 0.7 version is the development cycle for JSON-GLib 0.8.
configure.ac | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
commit 1c47638db4ac741f4bae9ede860d16b4e1693a36
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Dec 1 14:59:44 2009 +0000
docs: Add missing symbols to clutter-sections.txt
doc/reference/clutter/clutter-sections.txt | 8 ++++++++
1 file changed, 8 insertions(+)
commit 586750751a60b76e2f398be28d596009b6587c52
Merge: c2332a5d2 6e99c1aef
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Dec 1 14:55:19 2009 +0000
Merge branch 'text-direction'
* text-direction:
docs: Add text-direction accessors
Set the default language on the Pango context
actor: Set text direction on parenting
tests: Display the index inside text-box-layout
box-layout: Honour :text-direction
text: Dirty layout cache on text direction changes
actor: Add :text-direction property
Use the newly added ClutterTextDirection enumeration
Add ClutterTextDirection enumeration
commit 6e99c1aefe8f76cb3004a8cc89ae6f8b95d1f597
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Dec 1 14:55:01 2009 +0000
docs: Add text-direction accessors
doc/reference/clutter/clutter-sections.txt | 4 ++++
1 file changed, 4 insertions(+)
commit c2332a5d26d854dcb4223088904305988b35a906
Author: Bastian Winkler <buz@netbuz.org>
Date: Tue Dec 1 12:31:07 2009 +0000
build: Fix the SUBDIRS ordering
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
Makefile.am | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
commit 220a8fbfda5bda38e6c7689176fd876c57074ab5
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Dec 1 10:16:25 2009 +0000
docs: Move documentation under doc/
Clean up the root directory of the project and try to keep the
documentation all together.
Makefile.am | 3 ---
CODING_STYLE => doc/CODING_STYLE | 0
HACKING => doc/HACKING | 0
HACKING.backends => doc/HACKING.backends | 0
doc/Makefile.am | 5 +++++
5 files changed, 5 insertions(+), 3 deletions(-)
commit 348f5bfec8b8c0c682384001ac39b4e656b9c526
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Dec 1 10:11:33 2009 +0000
cookbook: Clean up the text
• Remove the empty sections.
• Add the description for the "overriding the paint sequence" recipe.
doc/cookbook/clutter-cookbook.xml.in | 124 ++++++++++++++++++++++++-----------
1 file changed, 86 insertions(+), 38 deletions(-)
commit 52db14b78d848f0f876d4721895ccc2c83e06aba
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Nov 30 21:51:46 2009 +0000
docs: Fix recursion into doc/ directory
We should always recurse into the doc/ directory; whether we should then
recurse into reference/, cookbook/ and manual/ is a matter of specific
configure-time flags.
Makefile.am | 6 +-----
doc/Makefile.am | 6 +++++-
2 files changed, 6 insertions(+), 6 deletions(-)
commit 5e1ccaeb603fb9f9b2b11cad13bbcf8682b33504
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Sep 3 13:04:59 2009 +0100
docs: Clean up the additional documentation build
• Make the manual a DevHelp book
• Make the generation of PDFs of the cookbook and the manual optional
• Consequently, make the hard dependency on jw optional
• Clean up the checks and build for the additional documentation
.gitignore | 9 +--
configure.ac | 41 +++++------
doc/Makefile.am | 8 ++-
doc/common/Makefile.am | 9 +++
doc/{cookbook => common}/common.xsl | 0
doc/{cookbook => common}/devhelp.xsl | 0
doc/{cookbook => common}/html.xsl | 0
doc/{cookbook => common}/ref-html-style.xsl | 0
doc/{cookbook => common}/style.css | 0
doc/cookbook/Makefile.am | 30 ++++----
...lutter-cookbook.xml => clutter-cookbook.xml.in} | 7 +-
doc/cookbook/cookbook.xsl | 14 ----
doc/manual/Makefile.am | 84 ++++++++++++----------
doc/manual/clutter-manual.xml.in | 9 ++-
14 files changed, 112 insertions(+), 99 deletions(-)
commit ee9d358c452c8da879e7f40e4a2e701472067c04
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Sep 2 18:11:06 2009 +0100
[cookbook] Build the Cookbook as a devhelp document
Instead of creating stand-alone HTML files, use XSLT to transform the
DocBook into a DevHelp file, so that we can read the Cookbook inside
DevHelp -- just like the API reference.
configure.ac | 9 +-
doc/cookbook/Makefile.am | 83 ++++++------
doc/cookbook/common.xsl | 19 +++
doc/cookbook/devhelp.xsl | 154 ++++++++++++++++++++++
doc/cookbook/html.xsl | 285 ++++++++++++++++++++++++++++++++++++++++
doc/cookbook/ref-html-style.xsl | 54 ++++++++
6 files changed, 564 insertions(+), 40 deletions(-)
commit 9485ef81a61d8950b7f04e01c749964c6a64922c
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Sep 2 13:13:44 2009 +0100
[cookbook] Fix folds
doc/cookbook/clutter-cookbook.xml | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
commit 2675b829990eb0b6fb9bae848bd64fc4461324d2
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Dec 11 17:03:10 2008 +0000
Update the ignore file
Add the temporary and output files of the cookbook.
.gitignore | 5 +++++
1 file changed, 5 insertions(+)
commit a7f7bfbc876a256f40fc0c3a43691b07bffeae96
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Dec 11 17:02:05 2008 +0000
Add the secon recipe to the Actors chapter
The second recipe shows how to use the ::paint signal to override
the paint sequence of a pre-existing actor.
doc/cookbook/clutter-cookbook.xml | 153 ++++++++++++++++++++++++++++++--------
1 file changed, 122 insertions(+), 31 deletions(-)
commit 26b35e657f3fcf3ae8b919c4c315337f2261003f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Dec 11 17:00:16 2008 +0000
Add the first recipe to the Actors chapter
The first recipe shows how to be notified when the relative position
and size of an actor changes using the notify:: signal on the actor's
dimensional and positional properties.
doc/cookbook/clutter-cookbook.xml | 128 +++++++++++++++++++++++++++++++++++---
1 file changed, 120 insertions(+), 8 deletions(-)
commit 135cb5c6e21200162939dc5a42f0a34c4daf8a39
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Dec 11 16:58:07 2008 +0000
Add a preface instead of an introduction
Make the Cookbook look more like a book than a tutorial.
doc/cookbook/clutter-cookbook.xml | 64 +++++++++++++++++++++++++++++++++++----
1 file changed, 58 insertions(+), 6 deletions(-)
commit 35627f240fa498656492e437c130ffe34674ca54
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Dec 11 16:57:46 2008 +0000
Add the Clutter Cookbook to the build
The "Clutter Cookbook" is a document designed to contain solutions
to common problems applications developers might encounter when using
Clutter. It is meant as a companion to the API reference but it
requires knowledge of the Clutter API and framework.
.gitignore | 1 +
configure.ac | 2 +
doc/cookbook/Makefile.am | 71 ++++++++++++++
doc/cookbook/clutter-cookbook.xml | 200 ++++++++++++++++++++++++++++++++++++++
doc/cookbook/cookbook.xsl | 14 +++
doc/cookbook/style.css | 97 ++++++++++++++++++
doc/cookbook/version.xml.in | 1 +
7 files changed, 386 insertions(+)
commit 15a04a1dd39fd19f28132cbd3c22b49c05c0773b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Nov 30 19:03:11 2009 +0000
layout-manager: Create LayoutMeta on demand
The ClutterLayoutMeta instances should be created on demand, whenever
the layout manager needs them - if the layout manager supports layout
properties.
This removes the requirement to call add_child_meta() and
remove_child_meta() on add and remove respectively; it also simplifies
the implementation of LayoutManager sub-classes since we can add
fallback code in the base abstract class.
Eventually, this will also lead to an easier to implement ClutterScript
parser for layout properties.
With the new scheme, the ClutterLayoutMeta instance is created whenever
the layout manager tries to access it; if there isn't an instance
already attached to the container's child, one is created -- assuming
that the LayoutManager sub-class has overridden the
get_child_meta_type() virtual function and it's returning a valid GType.
We can also provide a default implementation for create_child_meta(),
by getting the GType and instantiating a ClutterLayoutMeta with all the
fields already set. If the layout manager requires more work then it can
obviously override the default implementation (and even chain up to it).
The ClutterBox actor has been updated, as well as the ClutterBoxLayout
layout manager, to take advantage of the changes of LayoutManager.
clutter/clutter-box-layout.c | 13 --
clutter/clutter-box.c | 10 --
clutter/clutter-layout-manager.c | 221 +++++++++--------------------
clutter/clutter-layout-manager.h | 8 +-
doc/reference/clutter/clutter-sections.txt | 2 -
5 files changed, 70 insertions(+), 184 deletions(-)
commit 7d842079ca7521332b98e7cc06480a3f7e23110f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Nov 30 18:22:26 2009 +0000
conform: Add named object property unit for ClutterScript
We should exercise the resolution of the object properties containing a
string pointing to an object previously defined using ClutterScript.
.gitignore | 1 +
tests/conform/test-conform-main.c | 1 +
tests/conform/test-script-parser.c | 28 ++++++++++++++++++++++++++++
tests/data/Makefile.am | 18 ++++++++++++++----
tests/data/test-script-named-object.json | 22 ++++++++++++++++++++++
5 files changed, 66 insertions(+), 4 deletions(-)
commit c3e640e6e36d3d3c72c1e340efa78817308a4283
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Nov 30 19:06:05 2009 +0000
Use the correct colour when clearing the stage for picking
The colour test for the stage in _clutter_do_pick checks for white to
determine whether the stage was picked but since 47db7af4d we were
setting the colur to black. This usually worked because the id of the
default stage ends up being 0 which equates to black. However if a
second stage is created then it will always end up picking the first
stage.
clutter/clutter-main.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 1bb034fbd75bb7153f35c88b05ed0fb9544d0c8b
Author: Neil Roberts <neil@linux.intel.com>
Date: Sun Nov 29 20:06:36 2009 +0000
cogl: Enable blending if a lighting colour is semi-transparent
We currently enable blending if the material colour has
transparency. This patch makes it also enable blending if any of the
lighting colours have transparency. Arguably this isn't neccessary
because we don't expose any API to enable lighting so there is no
bug. However it is currently possible to enable lighting with a direct
call to glEnable and this otherwise works so it is a shame not to have
it.
http://bugzilla.openedhand.com/show_bug.cgi?id=1907
clutter/cogl/cogl/cogl-material.c | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
commit 3cb974ee8be182944848b5e64dd4724f118bc8fa
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Nov 30 16:15:19 2009 +0000
Set the default language on the Pango context
When creating the Pango context we should also set the language
to be the default Pango language.
clutter/clutter-main.c | 2 ++
1 file changed, 2 insertions(+)
commit daeb3b2fecb3d740b6d84215928fc4477396dc71
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Nov 30 16:14:09 2009 +0000
actor: Set text direction on parenting
When setting the parent on an actor we should set the text direction to
be the same as the parent's.
clutter/clutter-actor.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
commit 0ce5c7d350c8b904ed8cc15c911e6433619c6a2d
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Mon Nov 30 13:26:45 2009 +0100
gitignore: update gitignore files to match the latest cogl tests
Some cogl tests were renamed in c1247066 to have 'cogl' in their names.
It's a good excuse to merge .gitigore and tests/.gitignore.
.gitignore | 21 +++++++++++++--------
tests/.gitignore | 52 ----------------------------------------------------
2 files changed, 13 insertions(+), 60 deletions(-)
commit 4f06d035a2895b2839ba0e97109e8a44c1ad07e2
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Wed Nov 25 13:29:26 2009 +0100
tests: fix argument parsing of test-texture-quality
This test did not open redhand.png as argc/argv should be handled
normally (argv[0] being the name of the exectutable).
Reviewed-by: Emmanuele Bassi <ebassi@linux.intel.com>
tests/interactive/test-texture-quality.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
commit e4180b283836ccd665d23d1e19d35a8911c40436
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Wed Nov 25 13:25:14 2009 +0100
tests: give all the arguments to the wrapper
Some tests can be given extra arguments. The test-interactive dispatch
mechanism handles that but the small shell scripts around the wrapper
do not forward the arguments to the wrapper.
Reviewed-by: Emmanuele Bassi <ebassi@linux.intel.com>
tests/interactive/Makefile.am | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
commit 934eb5d251ad9d9987d0ff1f0f9878fffc2484f1
Author: Robert Bragg <robert@linux.intel.com>
Date: Fri Nov 27 15:24:09 2009 +0000
primitives: Don't use dynamic arrays since VS2008 can't cope with them :-(
This changes _cogl_path_fill_nodes_scanlines to use g_alloca instead of
using a variable to declare an array length.
clutter/cogl/cogl/cogl-primitives.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 47db7af4d3001387a3c7adc60f6c3166c149ab5d
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Nov 25 20:37:01 2009 +0000
picking: avoid redundant picking geometry for the stage.
The stage's pick id can be written to the framebuffer when we call
cogl_clear so there's no need for the stage to also chain up in it's pick
function resulting in clutter-actor.c also emitting a rectangle for the
stage.
clutter/clutter-main.c | 6 +++---
clutter/clutter-stage.c | 12 +++++++-----
2 files changed, 10 insertions(+), 8 deletions(-)
commit c12470666e6bd63024437a389cd2c1202df93c33
Author: Robert Bragg <robert@linux.intel.com>
Date: Fri Nov 27 00:28:39 2009 +0000
tests: rename cogl conformance tests so they can be clearly identified
All Cogl conformance tests are now prefixed 'test-cogl-'
tests/conform/Makefile.am | 24 +++++++--------
...face-culling.c => test-cogl-backface-culling.c} | 4 +--
...t-blend-strings.c => test-cogl-blend-strings.c} | 4 +--
.../{test-clutter-fixed.c => test-cogl-fixed.c} | 4 +--
.../{test-materials.c => test-cogl-materials.c} | 4 +--
...est-npot-texture.c => test-cogl-npot-texture.c} | 4 +--
.../{test-premult.c => test-cogl-premult.c} | 4 +--
...uous.c => test-cogl-vertex-buffer-contiguous.c} | 4 +--
...eved.c => test-cogl-vertex-buffer-interleved.c} | 4 +--
...lity.c => test-cogl-vertex-buffer-mutability.c} | 4 +--
tests/conform/test-conform-main.c | 34 ++++++++++++----------
11 files changed, 48 insertions(+), 46 deletions(-)
commit 439f8c62b0e2651b9afeb08cb5166ed9e7f49521
Author: Robert Bragg <robert@linux.intel.com>
Date: Thu Nov 26 19:06:35 2009 +0000
cogl: deprecate cogl_draw_buffer API and replace with a cogl_framebuffer API
cogl_push_draw_buffer, cogl_set_draw_buffer and cogl_pop_draw_buffer are now
deprecated and new code should use the new cogl_framebuffer_* API instead.
Code that previously did:
cogl_push_draw_buffer ();
cogl_set_draw_buffer (COGL_OFFSCREEN_BUFFER, buffer);
/* draw */
cogl_pop_draw_buffer ();
should now be re-written as:
cogl_push_framebuffer (buffer);
/* draw */
cogl_pop_framebuffer ();
As can be seen from the example above the rename has been used as an
opportunity to remove the redundant target argument from
cogl_set_draw_buffer; it now only takes one call to redirect to an offscreen
buffer, and finally the term framebuffer may be a bit more familiar to
anyone coming from an OpenGL background.
README | 13 +
clutter/clutter-texture.c | 15 +-
clutter/cogl/cogl/Makefile.am | 4 +-
clutter/cogl/cogl/cogl-clip-stack.c | 74 ++---
clutter/cogl/cogl/cogl-context.c | 13 +-
clutter/cogl/cogl/cogl-context.h | 4 +-
...buffer-private.h => cogl-framebuffer-private.h} | 75 ++---
.../{cogl-draw-buffer.c => cogl-framebuffer.c} | 367 +++++++++++----------
clutter/cogl/cogl/cogl-journal.c | 12 +-
clutter/cogl/cogl/cogl-matrix-stack.c | 6 +-
clutter/cogl/cogl/cogl-primitives.c | 30 +-
clutter/cogl/cogl/cogl-texture.c | 12 +-
clutter/cogl/cogl/cogl-vertex-buffer.c | 6 +-
clutter/cogl/cogl/cogl.c | 80 ++---
clutter/cogl/cogl/cogl.h | 73 +++-
doc/reference/cogl/cogl-sections.txt | 3 +
tests/conform/test-backface-culling.c | 7 +-
tests/conform/test-cogl-offscreen.c | 33 +-
tests/conform/test-cogl-readpixels.c | 45 ++-
tests/conform/test-cogl-viewport.c | 90 +++--
tests/interactive/test-cogl-offscreen.c | 4 +-
21 files changed, 517 insertions(+), 449 deletions(-)
commit b598210e011f6711848e649217ac7a35770bfe8e
Author: Robert Bragg <robert@linux.intel.com>
Date: Thu Nov 26 17:47:17 2009 +0000
cogl_offscreen: deprecate cogl_offscreen_ref/unref.
New code should use cogl_handle_ref/unref
clutter/cogl/cogl/cogl-offscreen.h | 34 +++++++++++++++++++++-------------
1 file changed, 21 insertions(+), 13 deletions(-)
commit e12a691187a7dbbcfe5b46b94fe2975fd0927966
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Nov 25 13:39:45 2009 +0000
cogl: Use a vtable for the texture backends instead of a type and switch
Instead of storing an enum with the backend type for each texture and
then using a switch statement to decide which function to call, we
should store pointers to all of the functions in a struct and have
each texture point to that struct. This is potentially slightly faster
when there are more backends and it makes implementing new backends
easier because it's more obvious which functions have to be
implemented.
clutter/cogl/cogl/cogl-texture-2d-sliced-private.h | 62 -----------
clutter/cogl/cogl/cogl-texture-2d-sliced.c | 122 ++++++++++----------
clutter/cogl/cogl/cogl-texture-private.h | 97 ++++++++++++----
clutter/cogl/cogl/cogl-texture.c | 124 ++++-----------------
4 files changed, 154 insertions(+), 251 deletions(-)
commit 558b17ee1e71fb0fe7aea35e13cd5a73b18130dc
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Nov 25 02:47:52 2009 +0000
offscreen: cogl_offscreen_new_to_texture now supports GL_TEXTURE_RECTANGLE_ARB
cogl_offscreen_new_to_texture previously bailed out if the given texture's
GL target was anything but GL_TEXTURE_2D, but it now also allows
foreign GL_TEXTURE_RECTANGLE_ARB textures.
Thanks to Owen for reporting this issue, ref:
https://bugzilla.gnome.org/show_bug.cgi?id=601032
clutter/cogl/cogl/cogl-draw-buffer.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
commit d3a01e0c96237ca060e3451d2b80e692dfb3b8f6
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Nov 24 18:24:07 2009 +0000
debug: remove the COGL_DEBUG=client-side-matrices option
Cogl only supports client side matrices so this debug option is no longer
useful.
clutter/cogl/cogl/cogl-debug.c | 1 -
clutter/cogl/cogl/cogl-debug.h | 13 ++++++-------
2 files changed, 6 insertions(+), 8 deletions(-)
commit b38c6b420f0ae1f118189bd0a8994fce479aef7b
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Nov 11 12:50:48 2009 +0000
[cogl-material] Adds cogl_material_copy() API
cogl_material_copy can be used to create a new CoglHandle referencing a copy
of some given material.
From now on we will advise that developers always aim to use this function
instead of cogl_material_new() when creating a material that is in any way
derived from another.
By using cogl_material_copy, Cogl can maintain an ancestry for each material
and keep track of "similar" materials. The plan is that Cogl will use this
information to minimize the cost of GPU state transitions.
README | 5 +++
clutter/cogl/cogl/cogl-context.c | 13 +++++--
clutter/cogl/cogl/cogl-context.h | 4 +-
clutter/cogl/cogl/cogl-material-private.h | 9 +++++
clutter/cogl/cogl/cogl-material.c | 62 ++++++++++++++++++++++++++-----
clutter/cogl/cogl/cogl-material.h | 18 +++++++++
clutter/cogl/cogl/cogl.c | 6 +--
7 files changed, 100 insertions(+), 17 deletions(-)
commit 70ca3bfe4173aabd352fd0aed484c0bab57a8d02
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Nov 11 12:52:08 2009 +0000
[cogl] remove unused gles/cogl-utils.[c,h]
The only function in gles/cogl-utils.c was cogl_util_next_p2() and it's
redundant since we also have a cogl/cogl-utils.[c,h]
clutter/cogl/cogl/driver/gles/cogl-util.c | 49 -------------------------------
clutter/cogl/cogl/driver/gles/cogl-util.h | 30 -------------------
2 files changed, 79 deletions(-)
commit 4a63af0c631cd9391a6b3cef6fdb545e36a68730
Author: Robert Bragg <robert@linux.intel.com>
Date: Mon Nov 23 11:30:32 2009 +0000
docs: Don't document cogl_flush_gl_state as public API
This function was #if 0'd before we released Clutter 1.0 so there's no
implementation of it. At some point we thought it might assist with
developers breaking out into raw OpenGL. Breaking out to raw GL is a
difficult problem though so we decided instead we will wait for a specific
use case to arrise before trying to support it.
clutter/cogl/cogl/cogl.c | 8 --------
clutter/cogl/cogl/cogl.h | 22 ----------------------
doc/reference/cogl/cogl-sections.txt | 1 -
3 files changed, 31 deletions(-)
commit 328ce370e7a7f155f63ee8206e8b6cd4e66a6c94
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Nov 24 16:59:24 2009 +0000
animation: Keep a weak reference on actors
Actors, unlike objects, can effectively go away whilst being
animated - usually because of an explicit destoy().
The Animation created by clutter_actor_animate() and friends
should keep a weak reference on the actor and eventually
get rid of the animation itself in case the actor goes away
whilst being animated.
clutter/clutter-animation.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
commit 1107fa8797b0d2475097c20b50065dbc3ae014a1
Author: Neil Roberts <neil@linux.intel.com>
Date: Thu Nov 19 16:07:38 2009 +0000
Minor fix to cogl material
_cogl_material_get_layer expects a CoglMaterial* pointer but it was
being called with a CoglHandle. This doesn't matter because the
CoglHandle is actually just the CoglMaterial* pointer anyway but it
breaks the ability to change the _cogl_material_pointer_from_handle
macro.
clutter/cogl/cogl/cogl-material.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 6fd80ffbd926318413296112871891706867cd78
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Nov 19 14:30:01 2009 +0000
docs: Add indices to the Cogl API reference
The Clutter API reference has an index of the symbols for each minor
version, and a list of deprecated symbols. The Cogl API reference
should have the same layout.
doc/reference/cogl/cogl-docs.xml.in | 23 ++++++++++++++++++++++-
1 file changed, 22 insertions(+), 1 deletion(-)
commit 8d64c4641dbf9dfb09d2719872911263d2b758dc
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Nov 19 13:55:10 2009 +0000
docs: Increase consistency in Cogl documentation
clutter/cogl/cogl/cogl-texture.h | 66 +++++++++-------
clutter/cogl/cogl/cogl-vertex-buffer.h | 134 +++++++++++++++++----------------
clutter/cogl/cogl/cogl.h | 90 +++++++++++-----------
3 files changed, 157 insertions(+), 133 deletions(-)
commit 550c14449e090f7921cdddc6acedb1bd72552663
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Nov 19 13:33:26 2009 +0000
docs: Documentation fixes for CoglMatrix
Clean up the references, the docbook tags, and the style to fit in
with the rest of the API references for Cogl and Clutter.
clutter/cogl/cogl/cogl-matrix.h | 136 ++++++++++++++++++++--------------------
1 file changed, 68 insertions(+), 68 deletions(-)
commit 056cfcffc312f9508f07c82e41d96c606559db97
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Nov 19 13:33:08 2009 +0000
Whitespace fix for cogl-color.h
clutter/cogl/cogl/cogl-color.h | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
commit 851d628cf8fe89ab28d66f790ad98db766831e37
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Nov 19 13:31:38 2009 +0000
docs: Documentation fixes for CoglMaterial
Clean up the references, the docbook tags, and the style to fit in
with the rest of the API references for Cogl and Clutter.
clutter/cogl/cogl/cogl-material.h | 404 +++++++++++++++++++-------------------
1 file changed, 205 insertions(+), 199 deletions(-)
commit fe804f1d023b50801d400971bf311545727921e9
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Nov 19 13:29:02 2009 +0000
docs: Documentation fixes for CoglBitmap
• Use the same style for the Cogl API reference as the one used for
the Clutter API reference.
• Fix the introspection annotations for cogl_bitmap_get_size_from_file()
clutter/cogl/cogl/cogl-bitmap.h | 25 +++++++++++++------------
1 file changed, 13 insertions(+), 12 deletions(-)
commit 1bf8db9e75c6155bb852980cb40a9117c6190500
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Nov 19 12:34:06 2009 +0000
docs: Fix Cogl API reference build
• Ignore all the private header files
• Add all missing/unused symbols
• Remove deprecated symbols from 0.*
doc/reference/cogl/Makefile.am | 30 ++++++++++++++++++++++--------
doc/reference/cogl/cogl-sections.txt | 29 ++++++++++++++++++++++++-----
2 files changed, 46 insertions(+), 13 deletions(-)
commit 05a5a7e759455a98233ea86016edf86d6d17be36
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Nov 19 12:32:59 2009 +0000
docs: Remove non-gtk-doc annotations
The imported Mesa matrix code has some documentation annotations
that make gtk-doc very angry. Since it's all private anyway we
can safely make gtk-doc ignore the offending stuff.
clutter/cogl/cogl/cogl-matrix-mesa.c | 136 +++++++++++++++++------------------
clutter/cogl/cogl/cogl-matrix-mesa.h | 12 ++--
2 files changed, 74 insertions(+), 74 deletions(-)
commit 7a011af97406c0075cc32eb2fbe4a07dc3d828c2
Author: Neil Roberts <neil@linux.intel.com>
Date: Thu Nov 19 11:51:21 2009 +0000
docs: Fix the 'Since' annotation for some functions
The 'Since' annotation needs to have a colon after it or gtk-doc won't
pick it up.
clutter/clutter-behaviour-path.h | 2 +-
clutter/clutter-text.c | 2 +-
clutter/cogl/cogl/cogl-material.h | 40 ++++++++++++++++----------------
clutter/cogl/cogl/cogl-texture.h | 6 ++---
clutter/cogl/cogl/cogl.h | 4 ++--
clutter/x11/clutter-x11-texture-pixmap.c | 4 ++--
6 files changed, 29 insertions(+), 29 deletions(-)
commit 8ef57898ad66af345946a1f69172fc8be7038def
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Nov 18 19:09:10 2009 +0000
cogl: Use APIENTRY for GL function pointer declarations
This matters for platforms such as Windows that use a different
calling covention from the default for GL functions.
clutter/cogl/cogl/driver/gl/cogl-context-driver.h | 6 +++++-
clutter/cogl/cogl/driver/gles/cogl-context-driver.h | 6 +++++-
2 files changed, 10 insertions(+), 2 deletions(-)
commit be58e5261f3b0c6a760577f67f2859511d6e52f2
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Nov 18 19:23:57 2009 +0000
build: Fix out-of-tree builds for cogl-defines.h
$(COGL_DRIVER)/cogl-defines.h is generated in the configure script so
it ends up in the build directory. Therefore the build rule for
cogl/cogl-defines.h should depend on the file in $(builddir) not
$(srcdir).
clutter/cogl/cogl/Makefile.am | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
commit 19e485325faa59d44556dd6dac9543fb616e680b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Nov 18 18:04:13 2009 +0000
docs: Clean up deprecation notices
The deprecation notices in gtk-doc should also refer to the
release that added the deprecation, and if the deprecated
symbol has been replaced by something else then the new symbol
should be correctly referenced.
clutter/cogl/cogl/cogl.h | 46 +++++++++++++++++++++++-----------------------
1 file changed, 23 insertions(+), 23 deletions(-)
commit 5f28c8b654094e27112426c206cf8294428515f9
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Nov 18 17:35:07 2009 +0000
build: Make cogl.h not conditional on driver defines
The main COGL header cogl.h is currently created at configure time
because it conditionally includes the driver-dependent defines. This
sometimes leads to a stale cogl.h with old definitions which can
break the build until you clean out the whole tree and start from
scratch.
We can generate a stable cogl-defines.h at build time from the
equivalent driver-dependent header and let cogl.h include that
file instead.
.gitignore | 7 +++----
clutter/cogl/cogl/Makefile.am | 18 ++++++++++++------
clutter/cogl/cogl/{cogl.h.in => cogl.h} | 2 +-
configure.ac | 5 ++---
4 files changed, 18 insertions(+), 14 deletions(-)
commit b869e87c86b73a8c09c5f509955a120978da7604
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Nov 18 17:16:38 2009 +0000
test-npot-texture: Add some verbose notes
This just adds some verbose output stating whether Cogl thinks that
NPOT textures are supported.
tests/conform/test-npot-texture.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
commit 8f1edcb6eda89405286b7b1cdab3b8d8b899a778
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Nov 18 14:21:22 2009 +0000
disable-npots: Don't allow the GL version to be 2.0
Cogl now assumes non-power-of-two textures are supported if the GL
version is >= 2.0 so the disable-npots utility should also change the
GL version.
tests/tools/disable-npots.c | 79 +++++++++++++++++++++++++++++++++++++++++----
1 file changed, 72 insertions(+), 7 deletions(-)
commit e80030755e37df28b30903bad63dc776b546abc3
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Nov 18 15:21:09 2009 +0000
build: Fix EXTRA_DIST and MAINTAINERCLEANFILES rules
Makefile.am | 19 +++++++------------
1 file changed, 7 insertions(+), 12 deletions(-)
commit ed4f0beac944a036839cd860f8aad223ffc101f2
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Nov 18 15:11:56 2009 +0000
Update README file
README | 36 ++++++++++++++++++------------------
1 file changed, 18 insertions(+), 18 deletions(-)
commit 44f926556d98737fd10b18fdb6951a41672c46db
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Nov 18 15:06:37 2009 +0000
docs: Update the "writing a backend" documentation
The documentation on how a ClutterBackend and stage are implemented
is a wee bit out of date.
HACKING.backends | 39 +++++++++++++++++++++++----------------
1 file changed, 23 insertions(+), 16 deletions(-)
commit f8e4e6727290aa63d2ec7dc30ca46913c98cb7ea
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Nov 18 14:56:59 2009 +0000
Remove clutter.symbols
The symbols file is unused since Clutter 0.6, and the win32 backend
does not depend on it anymore.
clutter.symbols | 611 --------------------------------------------------------
1 file changed, 611 deletions(-)
commit a4f1d1d6cc12b7007ac467673cf8d98dba132c87
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Nov 18 14:56:25 2009 +0000
Rename ChangeLog.SVN
ChangeLog.SVN => ChangeLog.pre-git-import | 0
1 file changed, 0 insertions(+), 0 deletions(-)
commit 60fae6a92eff5b61e4074f40161aa7b0b40bf2b9
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Nov 18 14:37:43 2009 +0000
build: Add cogl-matrix-private.h to the dist
clutter/cogl/cogl/Makefile.am | 1 +
1 file changed, 1 insertion(+)
commit 425f3b466041f46d1faed06da1cc46665bad60c6
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Nov 18 14:34:33 2009 +0000
build: Add cogl-feature-functions.h to the dist
clutter/cogl/cogl/driver/gl/Makefile.am | 1 +
clutter/cogl/cogl/driver/gles/Makefile.am | 3 ++-
2 files changed, 3 insertions(+), 1 deletion(-)
commit d11343532d813cf9b16e5c1ac92c0f0bc56e8850
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Nov 18 14:21:08 2009 +0000
build: Generate per-cycle ChangeLog files
We should generate a ChangeLog for each minor version cycle, starting
from the Git import date (since before that we used ChangeLog-style
commit messages that don't really look good with the Git ones).
For this reason we can take Cairo's Makefile.am.changelog file and,
after tweaking it to fit our use case, let it generate the correct
ChangeLogs on dist.
ChangeLog | 5 --
Makefile.am | 3 +-
build/autotools/Makefile.am.changelog | 91 +++++++++++++++++++++++++++++------
configure.ac | 8 +--
4 files changed, 82 insertions(+), 25 deletions(-)
commit 18e9d0db6fc9e120a63485d1ecbc8b5514d66c77
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Nov 18 12:20:53 2009 +0000
build: Move ChangeLog rules in a separate file
The ChangeLog creation rules should be moved to their own file, to
make it easier to fix or change them in the future.
Makefile.am | 20 +-------------------
build/autotools/Makefile.am | 1 +
build/autotools/Makefile.am.changelog | 19 +++++++++++++++++++
3 files changed, 21 insertions(+), 19 deletions(-)
commit 142305b1d51e9a3c69e8e2e224480297e43f79ea
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Nov 18 13:23:10 2009 +0000
cogl: Add the missing terminators for the arrays of feature functions
_cogl_feature_check expects the array of function names to be
terminated with a NULL pointer but I forgot to add this. This was
causing crashes depending on what happened to be in memory after the
array.
clutter/cogl/cogl/driver/gl/cogl.c | 1 +
clutter/cogl/cogl/driver/gles/cogl.c | 1 +
2 files changed, 2 insertions(+)
commit 70aeb1c64216d75ba63f1cbae1c824b69305bd73
Author: Christian Persch <chpe@gnome.org>
Date: Tue Nov 17 20:43:39 2009 +0100
Pass the interned string value to the binding callback
http://bugzilla.openedhand.com/show_bug.cgi?id=1891
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
clutter/clutter-binding-pool.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 2832940603733873a76cb4c890f4a3d656d07112
Author: Neil Roberts <neil@linux.intel.com>
Date: Tue Nov 17 18:06:31 2009 +0000
cogl: Use the GL_EXT_blend_{func,equation}_separate extensions
We should use these extensions to check for glBlendFuncSeparate and
glBlendEquationSeparate as well as checking the GL version number.
clutter/cogl/cogl/driver/gl/cogl-feature-functions.h | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
commit 6e0877507e00016cac1136c4e0dbab67e6a3e9ba
Author: Neil Roberts <neil@linux.intel.com>
Date: Tue Nov 17 17:22:22 2009 +0000
cogl: Don't bother checking for NPOTs or VBOs on later GLs
For VBOs, we don't need to check for the extension if the GL version
is greater than 1.5. Non-power-of-two textures are given in 2.0.
We could also assume shader support in GL 2.0 except that the function
names are different from those in the extension so it wouldn't work
well with the current mechanism.
clutter/cogl/cogl/driver/gl/cogl-feature-functions.h | 4 +++-
clutter/cogl/cogl/driver/gl/cogl.c | 3 ++-
2 files changed, 5 insertions(+), 2 deletions(-)
commit 4a8c1ff8fa6244cad0b0e770ab6f68e319271675
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Nov 17 15:32:00 2009 +0000
build: Clean up the configure summary
Split out into section the configuration report, and clean
up the reported settings - including when experimental features
have been enabled.
configure.ac | 97 +++++++++++++++++++++++++++++++++++++++---------------------
1 file changed, 64 insertions(+), 33 deletions(-)
commit 91cde78a7023d728ebb33c73684fc3702ad87963
Author: Neil Roberts <neil@linux.intel.com>
Date: Tue Nov 17 13:52:40 2009 +0000
cogl: Make it easier to add checks for GL extensions
Previously if you need to depend on a new GL feature you had to:
- Add typedefs for all of the functions in cogl-defines.h.in
- Add function pointers for each of the functions in
cogl-context-driver.h
- Add an initializer for the function pointers in
cogl-context-driver.c
- Add a check for the extension and all of the functions in
cogl_features_init. If the extension is available under multiple
names then you have to duplicate the checks.
This is quite tedious and error prone. This patch moves all of the
features and their functions into a list of macro invocations in
cogl-feature-functions.h. The macros can be redefined to implement all
of the above tasks from the same header.
The features are described in a struct with a pointer to a table of
functions. A new function takes the feature description from this
struct and checks for its availability. The feature can take a list of
extension names with a list of alternate namespaces (such as "EXT" or
"ARB"). It can also detect the feature from a particular version of
GL.
The typedefs are now gone and instead the function pointer in the Cogl
context just directly contains the type.
Some of the functions in the context were previously declared with the
'ARB' extension. This has been removed so that now all the functions
have no suffix. This makes more sense when the extension could
potentially be merged into GL core as well.
clutter/cogl/cogl/Makefile.am | 2 +
clutter/cogl/cogl/cogl-feature-private.c | 141 ++++++++
clutter/cogl/cogl/cogl-feature-private.h | 71 ++++
clutter/cogl/cogl/cogl-journal.c | 10 +-
clutter/cogl/cogl/cogl-vertex-buffer.c | 21 +-
clutter/cogl/cogl/driver/gl/cogl-context-driver.c | 58 +---
clutter/cogl/cogl/driver/gl/cogl-context-driver.h | 81 +----
clutter/cogl/cogl/driver/gl/cogl-defines.h.in | 361 --------------------
.../cogl/cogl/driver/gl/cogl-feature-functions.h | 326 ++++++++++++++++++
clutter/cogl/cogl/driver/gl/cogl-program.c | 89 +++--
clutter/cogl/cogl/driver/gl/cogl-shader.c | 27 +-
clutter/cogl/cogl/driver/gl/cogl.c | 369 ++-------------------
.../cogl/cogl/driver/gles/cogl-context-driver.c | 19 +-
.../cogl/cogl/driver/gles/cogl-context-driver.h | 25 +-
clutter/cogl/cogl/driver/gles/cogl-defines.h.in | 70 ----
.../cogl/cogl/driver/gles/cogl-feature-functions.h | 72 ++++
clutter/cogl/cogl/driver/gles/cogl.c | 82 ++---
17 files changed, 794 insertions(+), 1030 deletions(-)
commit 4734b7be418274cf00390c805b472b9493100157
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sat Nov 14 13:03:59 2009 +0000
docs: Detail the Clutter debugging flags
doc/reference/clutter/running-clutter.xml | 56 +++++++++++++++++++++++++++++++
1 file changed, 56 insertions(+)
commit 037192552ed126c35e430c11f030f16e984ac0b4
Author: Neil Roberts <neil@linux.intel.com>
Date: Fri Nov 13 17:23:13 2009 +0000
win32: Remove the check for GL 1.2
Since 568c29ba4 the GL version is now validated further up in
ClutterStage via Cogl so there is no need for the Win32 backend to do
it.
clutter/win32/clutter-stage-win32.c | 42 -------------------------------------
1 file changed, 42 deletions(-)
commit 62a37d8e538abc6d0c67bd69b4eb2a724668cce0
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Nov 11 16:42:53 2009 +0000
Use the GL_ARB_multitexture extension on GL 1.2
Cogl requires multi-texturing support. This is only available as an
extension in GL 1.2 so we should check for it before accepting the
driver.
http://bugzilla.openedhand.com/show_bug.cgi?id=1875
clutter/cogl/cogl/driver/gl/cogl.c | 46 ++++++++++++++++++++++++++++++++------
1 file changed, 39 insertions(+), 7 deletions(-)
commit 2e99b276a4d312d6123426e2c88adf621a427c86
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Nov 11 13:38:52 2009 +0000
cogl-material: Fallback to BlendFunc if BlendFuncSeparate is unavailable
glBlendFuncSeparate is only available in OpenGL 1.4. If we
conditionally check for this then Clutter will work with OpenGL 1.2.
http://bugzilla.openedhand.com/show_bug.cgi?id=1875
clutter/cogl/cogl/cogl-material.c | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
commit 568c29ba491e4a6b3bef426be528d7246110011c
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Nov 11 13:26:54 2009 +0000
Validate that the GL version is >= 1.2
There is a new internal Cogl function called _cogl_check_driver_valid
which looks at the value of the GL_VERSION string to determine whether
the driver is supported. Clutter now calls this after the stage is
realized. If it fails then the stage is marked as unrealized and a
warning is shown.
_cogl_features_init now also checks the version number before getting
the function pointers for glBlendFuncSeparate and
glBlendEquationSeparate. It is not safe to just check for the presence
of the functions because some drivers may define the function without
fully implementing the spec.
The GLES version of _cogl_check_driver_valid just always returns TRUE
because there are no version requirements yet.
Eventually the function could also check for mandatory extensions if
there were any.
http://bugzilla.openedhand.com/show_bug.cgi?id=1875
clutter/clutter-backend.c | 14 ++++--
clutter/clutter-private.h | 3 ++
clutter/clutter-stage.c | 22 ++++++++-
clutter/cogl/cogl/cogl.c | 5 +++
clutter/cogl/cogl/cogl.h.in | 9 ++++
clutter/cogl/cogl/driver/gl/cogl.c | 87 +++++++++++++++++++++++++++++++++---
clutter/cogl/cogl/driver/gles/cogl.c | 6 +++
7 files changed, 133 insertions(+), 13 deletions(-)
commit 677ff9fb30a99b850eb1b41c34f80e5e01f8e43e
Author: Samuel Degrande <Samuel.Degrande@lifl.fr>
Date: Tue Oct 27 11:18:49 2009 +0100
Can no more include clutter-stage.h inside clutter-win32.h
http://bugzilla.openedhand.com/show_bug.cgi?id=1847
Signed-off-by: Neil Roberts <neil@linux.intel.com>
clutter/win32/clutter-win32.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 26ce94eda071cc133ab2b469cae0b19aae727279
Author: Samuel Degrande <Samuel.Degrande@lifl.fr>
Date: Mon Oct 26 16:28:36 2009 +0100
Adapt win32 backend to the semantic change of StageWindow
http://bugzilla.openedhand.com/show_bug.cgi?id=1847
Signed-off-by: Neil Roberts <neil@linux.intel.com>
clutter/win32/clutter-backend-win32.c | 34 ++--
clutter/win32/clutter-stage-win32.c | 345 +++++++++++++++++-----------------
clutter/win32/clutter-stage-win32.h | 2 +
3 files changed, 194 insertions(+), 187 deletions(-)
commit b69ee0989b3ec4b588a1e80ea933b3b8997f6898
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Nov 13 15:27:18 2009 +0000
tests: Add instructions to test-box-layout
tests/interactive/test-box-layout.c | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)
commit 568ad044eba38198ecdb32f671047bffa27353a9
Author: Neil Roberts <neil@linux.intel.com>
Date: Fri Nov 13 13:39:24 2009 +0000
Clear pending events for a stage when it is destroyed
We can not process events for a stage that has been destroyed so we
should make sure that the events for the stage are removed from the
global event queue during dispose.
http://bugzilla.openedhand.com/show_bug.cgi?id=1882
clutter/clutter-stage.c | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
commit 49cd887aabf7ff8cbfb147ceacfc82e3c75c0c9b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Nov 13 14:43:57 2009 +0000
docs: Document the AnimationMode definition
Both ClutterAlpha:mode and ClutterAnimation:mode can be defined using:
• an integer id
• the "nick" field of the AnimationMode GEnumValue
• a custom, tweener-like string
All these methods should be documented.
clutter/clutter-alpha.c | 8 ++++--
clutter/clutter-animation.c | 61 +++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 67 insertions(+), 2 deletions(-)
commit c8d57037882729a7ea0117726f2e8e48b10416ac
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Nov 13 14:10:29 2009 +0000
tests: Add unit for Animation definitions
Verify that an Animation can be defined using ClutterScript.
No initial/final state of the animation, yet.
.gitignore | 1 +
tests/conform/test-conform-main.c | 1 +
tests/conform/test-script-parser.c | 22 ++++++++++++++++++++++
tests/data/test-script-animation.json | 14 ++++++++++++++
4 files changed, 38 insertions(+)
commit d54f4e944c8725c84a5534d519fb3f9de7b95430
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Nov 13 14:08:49 2009 +0000
Whitespace fixes
clutter/clutter-animation.c | 7 +++----
clutter/clutter-script-parser.c | 3 +--
2 files changed, 4 insertions(+), 6 deletions(-)
commit 95b55588ad6c57cbeb7cda50886e709aa1ae1c00
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Nov 13 14:07:25 2009 +0000
tests: Print out parser errors if present
If the conformance test for the Script parser throws an error
and we've enabled verbosity then we should print out the error
message before aborting.
tests/conform/test-script-parser.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
commit 9bae5535646b64e7c43f3a628942531d14e5a0f1
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Nov 13 13:21:47 2009 +0000
animation: Override parsing :mode
Like in ClutterAlpha, ClutterAnimation:mode must be overridden when
parsing a Script definition, as we accept both a numeric id and the
string id for easing modes.
clutter/clutter-animation.c | 51 ++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 50 insertions(+), 1 deletion(-)
commit dab1da20ae144afe56f48c0a3be5865d84245658
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Oct 5 13:37:11 2009 +0100
[cogl-primitives] Don't clear the whole stencil buffer
When _cogl_add_path_to_stencil_buffer is used to draw a path we don't
need to clear the entire stencil buffer. Instead it can clear just the
bounding box of the path. This adds an extra parameter called
'need_clear' which is only set if the stencil buffer is being used for
clipping.
http://bugzilla.openedhand.com/show_bug.cgi?id=1829
clutter/cogl/cogl/cogl-clip-stack.c | 6 ++++--
clutter/cogl/cogl/cogl-primitives.c | 37 ++++++++++++++++++++++++++++++-------
2 files changed, 34 insertions(+), 9 deletions(-)
commit bc8faf52f4a817d7d023f554dcd7ace0efac9942
Author: Neil Roberts <neil@linux.intel.com>
Date: Thu Nov 12 17:00:15 2009 +0000
Remove _cogl_flush_matrix_stacks from cogl-internal.h
The definition for this function was removed in f7d64e5abvoid so it
should be removed from the header too.
clutter/cogl/cogl/cogl-internal.h | 2 --
1 file changed, 2 deletions(-)
commit 9fa562ad216d516d1cd66f72aa39eaad0a5c40b9
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Nov 11 10:32:39 2009 +0000
cogl: Declare cogl_is_bitmap()
The function is automatically defined by the CoglHandle type
definition macro, but it still requires to be declared in the
header file to be used.
clutter/cogl/cogl/cogl-bitmap.h | 13 +++++++++++++
1 file changed, 13 insertions(+)
commit 482e4e8d111fa76194a20ccd120eac41afa277d8
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Nov 10 12:21:26 2009 +0000
tests: Display the index inside text-box-layout
Since the rectangles packed inside the BoxLayout interactive test
have random colors it's not easy to verify the ordering. By using
the CoglPango API to print out the index in the middle of each
rectangle.
tests/interactive/test-box-layout.c | 41 ++++++++++++++++++++++++++++++++++---
1 file changed, 38 insertions(+), 3 deletions(-)
commit 4bc3d02ebd928b4bc7c59811b9e90aae36750cfb
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Nov 10 12:20:14 2009 +0000
box-layout: Honour :text-direction
During size request and allocation a ClutterBoxLayout should honour
the ClutterActor:text-direction property, and change the order of
the children.
clutter/clutter-box-layout.c | 206 +++++++++++++++++++++++++++++--------------
1 file changed, 142 insertions(+), 64 deletions(-)
commit adab87b520699892e012d601821a5aee11410125
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Nov 10 12:18:32 2009 +0000
text: Dirty layout cache on text direction changes
When the text direction changes we should evict the cached layouts
to avoid stale entries in case the direction change produces a layout
with the same size.
clutter/clutter-text.c | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
commit f94f7692a6836ed4a5f039e4c2a44966b47c77fc
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Nov 6 16:55:46 2009 +0000
actor: Add :text-direction property
Every actor should have a property for retrieving (and setting) the
text direction.
The text direction is used to provide a consisten behaviour in both
left-to-right and right-to-left languages. For instance, ClutterText
should perform key navigation following text direction. Layout
managers should also take into account text direction to derive the
right packing order for their children.
clutter/clutter-actor.c | 116 +++++++++++++++++++++++++++++++++++++++++++++++-
clutter/clutter-actor.h | 4 ++
2 files changed, 119 insertions(+), 1 deletion(-)
commit 53a9d0c637ee1ef07e9251b77f86f0cd42ab611e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Nov 6 16:50:53 2009 +0000
Use the newly added ClutterTextDirection enumeration
Instead of using PangoDirection directly we should use the
ClutterTextDirection enumeration.
We also need a pair of accessor functions for setting and
getting the default text direction.
clutter/clutter-main.c | 43 +++++++++++++++++++++++++++++++++----------
clutter/clutter-main.h | 3 +++
2 files changed, 36 insertions(+), 10 deletions(-)
commit 3958df4ff9b3aa800df2e0f1695fd143439d870a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Nov 6 16:49:55 2009 +0000
Add ClutterTextDirection enumeration
The ClutterTextDirection is composed of three values:
DEFAULT: a flag for returning the default text direction
LTR: left to right
RTL: right to left
clutter/clutter-types.h | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
commit 2671c425894c89a4afd415b70e8ebbc4f057e02b
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Nov 9 12:12:27 2009 +0000
Revert changes to test-cogl-primitives.c from 272e227109
These changes caused the test to try to load redhand.png but this no
longer works since the TESTS_DATADIR changes in 0b4899ef23. The only
use of the hand is commented out anyway so it looks like the changes
were intended for temporary debugging.
tests/interactive/test-cogl-primitives.c | 14 --------------
1 file changed, 14 deletions(-)
commit ac9f65cb92196e2eafd4b1e25dabd9cb6a428db3
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Mon Nov 9 13:05:40 2009 +0000
build: Make the glib-mkenums generated files depend on their templates
With this, if one changes the underlying template files, we run
glib-mkenums again to generate updated glib_enum_[ch] files.
Reviewed-by: Emmanuele Bassi <ebassi@linux.intel.com>
build/autotools/Makefile.am.enums | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
commit 1be23c0cc9741cbe68a54cd84de772bd120254b6
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Nov 9 16:44:34 2009 +0000
build: Fix --with-imagebackend configure switch
An overeager search and replace broke the image backend command
line switch for the configure script.
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 1ce25ffbb2561ab5eb3f6b07b74ec49587f44d32
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Nov 9 11:50:16 2009 +0000
cogl: Add an initialiser for enable_flags in cogl_begin_gl
This fixes a warning about an uninitialised value. It could also
potentially fix some crashes for example if the enable_flags value
happened to include a bit for enabling a vertex array if no vertex
buffer pointer was set.
clutter/cogl/cogl/cogl.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 09c04d4c67ea8d3ebeb3ee5adfc3752562cae3cc
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Nov 9 11:07:27 2009 +0000
text: Add a NULL preedit string check
This commit avoids a critical warning introduced by commit
bc51b8ca47ac90e52ab6a27ff791ea97d53f4648
clutter/clutter-text.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
commit bc51b8ca47ac90e52ab6a27ff791ea97d53f4648
Author: Raymond Liu <raymond.liu@intel.com>
Date: Mon Nov 9 16:42:15 2009 +0800
Fix cursor position in preedit status
http://bugzilla.openedhand.com/show_bug.cgi?id=1871
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
clutter/clutter-text.c | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
commit 7e17822cfd860fd694735fbf550013f7f8b7a915
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Nov 6 15:06:39 2009 +0000
Clean up cogl.h template
The inclusion order is mostly random, and it should really be
in alphabetic order, just like clutter.h.
Also, cogl-vertex-buffer.h is included twice.
clutter/cogl/cogl/cogl.h.in | 17 +++++++++--------
1 file changed, 9 insertions(+), 8 deletions(-)
commit fcd8237ac5f5dc7bc485b8b5726824129215beea
Author: Tim Horton <hortont424@gmail.com>
Date: Fri Nov 6 11:57:43 2009 +0000
osx: CGBitmapContextCreate can't make 24bpp, alphaless offscreen pixmaps
While loading a JPEG from disk (with clutter_texture_new_from_file),
I got the following:
<Error>: CGBitmapContextCreate: unsupported parameter combination: 8
integer bits/component; 24 bits/pixel; 3-component colorspace;
kCGImageAlphaNone; 3072 bytes/row.
<Error>: CGContextDrawImage: invalid context
Looking around, I found that CGBitmapContextCreate can't make 24bpp
offscreen pixmaps without an alpha channel...
This fixes the bug, and seems to not break other things...
http://bugzilla.openedhand.com/show_bug.cgi?id=1159
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
clutter/cogl/cogl/cogl-bitmap-pixbuf.c | 18 +++---------------
1 file changed, 3 insertions(+), 15 deletions(-)
commit 5c67e8e0c09c83c470f999c86091181cc373d5b6
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Nov 6 14:07:46 2009 +0000
script: Coding style clean-ups
clutter/clutter-script.c | 38 +++++++++++++++++++-------------------
1 file changed, 19 insertions(+), 19 deletions(-)
commit 179a66c922f85fdfc8968f7f60a5b76154696ad4
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Nov 6 14:07:26 2009 +0000
script: Document private functions
clutter/clutter-script.c | 71 +++++++++++++++++++++++++++++++++++++++++++++---
1 file changed, 67 insertions(+), 4 deletions(-)
commit 30bc36082e2922b11b98907fde12f64fd4f7399d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Nov 6 14:04:36 2009 +0000
Do not pass flags to g_module_open(NULL)
The flags are ignored when opening the main module, so we
should pass 0 to avoid confusion when reading the source.
clutter/clutter-alpha.c | 2 +-
clutter/clutter-script-parser.c | 6 +++---
clutter/clutter-script.c | 2 +-
clutter/cogl/cogl/cogl.c | 4 ++--
4 files changed, 7 insertions(+), 7 deletions(-)
commit 4262f79f34c35a8eb620fb82eb0e36d5ac191600
Merge: b9e519c3b 031d4d620
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Nov 6 11:50:22 2009 +0000
Merge branch 'josh-osx-fixes'
* josh-osx-fixes:
osx: Fix a warning on Snow Leopard
docs: Fix OS X docs to install Ports in correct order
osx: Implement the updated ClutterStageWindow interface
commit b9e519c3b2bc5fc01743568a2a37029c61fdf6ef
Author: Joshua Lock <josh@linux.intel.com>
Date: Thu Nov 5 15:50:21 2009 +0000
tests: Remove a spurious #include
The test-backface-culling has what looks like a stray #include in which
stops the test compiling for backends without GdkPixbuf. Remove it.
http://bugzilla.openedhand.com/show_bug.cgi?id=1867
tests/conform/test-backface-culling.c | 2 --
1 file changed, 2 deletions(-)
commit 031d4d6203f007fea2b95ca883c7113d0160372d
Author: Joshua Lock <josh@linux.intel.com>
Date: Thu Nov 5 15:48:25 2009 +0000
osx: Fix a warning on Snow Leopard
Apple where nice and changed API between releases. This patch checks the
version of the compilation environment and tries to use the right parameter
type.
http://bugzilla.openedhand.com/show_bug.cgi?id=1866
clutter/osx/clutter-backend-osx.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
commit 58f1dfcf35626b8b1ea896dfbd27623b15779fce
Author: Joshua Lock <josh@linux.intel.com>
Date: Thu Nov 5 15:31:56 2009 +0000
docs: Fix OS X docs to install Ports in correct order
The order in which the MacPorts are installed is important otherwise we open
the user up to a world of pain.
This patch also tweaks the OS X docs to follow the formatting of the rest of
the docs and to discuss the option of GtkDoc.
http://bugzilla.openedhand.com/show_bug.cgi?id=1865
doc/reference/clutter/building-clutter.xml | 67 +++++++++++++++++-------------
1 file changed, 37 insertions(+), 30 deletions(-)
commit 4533e37744f8751e254741104d27b7b37e2fdfd7
Author: Joshua Lock <josh@linux.intel.com>
Date: Thu Nov 5 15:44:32 2009 +0000
osx: Implement the updated ClutterStageWindow interface
In the new Clutter world backend stage implementations should be lightweight
objects implementing the ClutterStageWindow interface and not ClutterActor
subclasses.
This patch performs various cut-n-pastes to acheive that for the OSX backend
http://bugzilla.openedhand.com/show_bug.cgi?id=1864
clutter/osx/clutter-backend-osx.c | 4 +-
clutter/osx/clutter-stage-osx.c | 196 ++++++++++++++++----------------------
clutter/osx/clutter-stage-osx.h | 8 +-
3 files changed, 89 insertions(+), 119 deletions(-)
commit cb60c038acb0de9178d0aee22e3a9847653c9627
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Nov 6 11:33:32 2009 +0000
behaviour: Implement the implicit alpha parsing
ClutterBehaviour should implement the Scriptable interface
and parse ClutterAlpha when implicitly defined, instead of
having this ad hoc code inside ClutterScriptParser itself.
After all, only ClutterBehaviour supports Alpha defined
implicitly.
clutter/clutter-behaviour.c | 46 +++++++++++++++++++++++++++++++++++-----
clutter/clutter-script-parser.c | 19 ++---------------
clutter/clutter-script-private.h | 4 ++--
3 files changed, 45 insertions(+), 24 deletions(-)
commit f1ed8be066a7c5f16e2e876cc76ef1f5348bc14e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Nov 6 11:32:28 2009 +0000
conform: Add unit for properties holding objects
Exercise the definition of GObjects for properties defined using
GParamSpecObject.
.gitignore | 1 +
tests/conform/test-conform-main.c | 1 +
tests/conform/test-script-parser.c | 25 +++++++++++++++++++++++++
tests/data/test-script-object-property.json | 13 +++++++++++++
4 files changed, 40 insertions(+)
commit 7279afd28c1bc47e1b47f0c2f8d53e5ea75df832
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Nov 6 11:17:42 2009 +0000
script: Generic assignment of properties requiring objects
The ClutterScriptParser should do most of the heavy-lifting for
parsing a JSON object member defining another JSON object into
a GObject property defined using a GParamSpecObject.
clutter/clutter-script-parser.c | 62 ++++++++++++++++++++++++++++++++++-------
1 file changed, 52 insertions(+), 10 deletions(-)
commit 185107c6cfe174ed829ce26241bf0e2f532a4394
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Nov 6 10:53:43 2009 +0000
conformance: Add unit on the implicit alpha definition
Exercise the implicit alpha and timeline definition to catch
regressions in the ClutterScript parser code.
.gitignore | 1 +
tests/conform/test-conform-main.c | 1 +
tests/conform/test-script-parser.c | 32 ++++++++++++++++++++++++++++++
tests/data/test-script-implicit-alpha.json | 8 ++++++++
4 files changed, 42 insertions(+)
commit f9581ca5ce87437df40e27bc0228fdb6c6897619
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Nov 6 10:17:30 2009 +0000
script: Apply properties when constructing implicit timelines
The object construction is done in two passes, now, so we must do both
passes when parsing implicit timelines from a fake ObjectInfo.
clutter/clutter-script-parser.c | 1 +
1 file changed, 1 insertion(+)
commit abae6013e10e08cc67be53d5d067ca5ed4ad7ee3
Author: Robert Bragg <robert@linux.intel.com>
Date: Thu Nov 5 16:50:24 2009 +0000
Remove all internal use of deprecated cogl_clip_* API
cogl_clip_push, and cogl_clip_push_window_rect which are now deprecated were
used in various places internally so this just switches to using the
replacement functions.
clutter/clutter-actor.c | 10 +++++-----
clutter/clutter-main.c | 2 +-
clutter/clutter-text.c | 6 +++---
tests/conform/test-cogl-viewport.c | 10 ++++++----
tests/interactive/test-clip.c | 8 ++++----
5 files changed, 19 insertions(+), 17 deletions(-)
commit c1d9e09d38bcf61eb7e6f88f5a052870d8abdc5e
Author: Robert Bragg <robert@linux.intel.com>
Date: Thu Nov 5 10:56:24 2009 +0000
[clip-stack] stop using deprecated cogl_clip_push_window_rect API
try_pushing_rect_as_window_rect now uses the new
cogl_clip_push_window_rectangle API.
clutter/cogl/cogl/cogl-clip-stack.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 272e227109387c9287081e9dad467290e4e93faf
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Nov 4 19:31:43 2009 +0000
[cogl-clip] deprecate parts and cleanup the API
cogl_clip_push() which accepts a rectangle in model space shouldn't have
been defined to take x,y,width,height arguments because this isn't consistant
with other Cogl API dealing with model space rectangles. If you are using a
coordinate system with the origin at the center and the y+ extending up,
then x,y,width,height isn't as natural as (x0,y0)(x1,y1). This API has
now been replace with cogl_clip_push_rectangle()
(As a general note: the Cogl API should only use the x,y,width,height style
when the appropriate coordinate space is defined by Cogl to have a top left
origin. E.g. window coordinates, or potentially texture coordinates)
cogl_clip_push_window_rect() shouldn't have been defined to take float
arguments since we only clip with integral pixel precision. We also
shouldn't have abbreviated "rectangle". This API has been replaced with
cogl_clip_push_window_rectangle()
cogl_clip_ensure() wasn't documented at all in Clutter 1.0 and probably
no one even knew it existed. This API isn't useful, and so it's now
deprecated. If no one complains we may remove the API altogether for
Clutter 1.2.
cogl_clip_stack_save() and cogl_clip_stack_restore() were originally added
to allow us to save/restore the clip when switching to/from offscreen
rendering. Now that offscreen draw buffers are defined to own their clip
state and the state will be automatically saved and restored this API is now
redundant and so deprecated.
README | 13 +++++
clutter/cogl/cogl/cogl-clip-stack.c | 44 ++++++++-------
clutter/cogl/cogl/cogl.h.in | 92 ++++++++++++++++++++++++++++++--
doc/reference/cogl/cogl-sections.txt | 9 ++--
tests/interactive/test-cogl-primitives.c | 14 +++++
5 files changed, 144 insertions(+), 28 deletions(-)
commit 6cd49fdd40bd20716365e399c3dfa039e3b6f377
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Nov 4 20:17:56 2009 +0000
[clip-stack] Internally track model space clip rects as (x0,y0)(x1,y1) pairs
Don't track the rectangles as x0,y0,width,height. This is in preparation
for some API tidy up.
clutter/cogl/cogl/cogl-clip-stack.c | 113 +++++++++++++++++++-----------------
1 file changed, 59 insertions(+), 54 deletions(-)
commit 7752ed98f1eafa9bd65fbdd2e018b0026430b579
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Nov 4 19:42:17 2009 +0000
[clip-stack] move lots of supporting code from cogl.c to cogl-clip-stack.c
There was quite a bit of code in cogl.c that was only used to support
cogl-clip-stack.c, so this has now been moved to cogl-clip-stack.c
clutter/cogl/cogl/cogl-clip-stack.c | 277 ++++++++++++++++++++++++++++++++----
clutter/cogl/cogl/cogl.c | 237 ------------------------------
2 files changed, 250 insertions(+), 264 deletions(-)
commit 864e12df056ccbd116eb0a0992a82e5194c26787
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Nov 4 16:55:18 2009 +0000
[debug] Adds a COGL_DEBUG=force-scanline-paths
For a long time now the GLES driver for Cogl has supported a fallback
scanline rasterizer for filling paths when no stencil buffer is available,
but now that we build the same cogl-primitives code for GL and GLES I
thought it may sometimes be useful for debugging to force Cogl to use the
scanline rasterizer instead of the current stencil buffer approach.
clutter/cogl/cogl/cogl-debug.c | 3 ++-
clutter/cogl/cogl/cogl-debug.h | 3 ++-
clutter/cogl/cogl/cogl-primitives.c | 3 ++-
3 files changed, 6 insertions(+), 3 deletions(-)
commit 0b4899ef23e4979326439613dfba814bd49aeb2e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Nov 5 17:30:33 2009 +0000
tests: Clean up interactive test build
The build for interactive tests creates symbolic links for the data
under tests/data; it also uses symbolic links for creating "binaries"
for each interactive test. This is less than ideal, though.
Instead, the tests should build a path to the data files by using
a pre-processor define like TESTS_DATADIR; both g_build_filename() and
pre-processor string concatenation can be used to generate a valid
file name with the full path to the files.
The build system should also create wrapper scripts, just like we
do inside the conformance test suite, to be able to launch single
tests.
.gitignore | 1 +
tests/interactive/Makefile.am | 59 ++++++++++++---------
tests/interactive/test-actor-clone.c | 27 +++++-----
tests/interactive/test-actors.c | 11 ++--
tests/interactive/test-behave.c | 14 ++---
tests/interactive/test-bin-layout.c | 6 ++-
tests/interactive/test-clip.c | 5 +-
tests/interactive/test-cogl-multitexture.c | 15 ++++--
tests/interactive/test-cogl-offscreen.c | 6 ++-
tests/interactive/test-cogl-tex-convert.c | 28 ++++++----
tests/interactive/test-cogl-tex-getset.c | 12 +++--
tests/interactive/test-cogl-tex-polygon.c | 9 +++-
tests/interactive/test-cogl-tex-tile.c | 6 ++-
tests/interactive/test-depth.c | 5 +-
tests/interactive/test-devices.c | 5 +-
tests/interactive/test-fbo.c | 11 ++--
tests/interactive/test-layout.c | 5 +-
tests/interactive/test-multistage.c | 5 +-
tests/interactive/test-paint-wrapper.c | 5 +-
tests/interactive/test-pixmap.c | 2 +-
tests/interactive/test-rotate.c | 8 ++-
tests/interactive/test-script.c | 9 +++-
tests/interactive/test-shader.c | 84 ++++++++++++++++--------------
tests/interactive/test-texture-async.c | 57 +++++++++-----------
tests/interactive/test-texture-quality.c | 15 ++++--
tests/interactive/test-viewport.c | 8 ++-
tests/interactive/wrapper.sh | 4 +-
27 files changed, 260 insertions(+), 162 deletions(-)
commit c3368c0d157c5fa28a4e29e6caaed4323e82990d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Nov 5 12:24:37 2009 +0000
layout: Add layout properties introspection
In order to know if a layout property exists and retrieve its
description in form of a GParamSpec, we need a wrapper API inside
ClutterLayoutManager. This allows introspecting a LayoutManager
sub-class and eventually serialize and deserialize it.
clutter/clutter-layout-manager.c | 76 +++++++++++++++++++++++++++++
clutter/clutter-layout-manager.h | 103 ++++++++++++++++++++-------------------
2 files changed, 130 insertions(+), 49 deletions(-)
commit b0c9de273096d8949c8eafa3d5da017bb551e3f0
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Nov 5 12:23:49 2009 +0000
box-layout: Add get_child_meta_type() override
Return the GType of ClutterBoxChild.
clutter/clutter-box-layout.c | 8 ++++++++
1 file changed, 8 insertions(+)
commit eea00d280549641403dbaae27e370e16fe9f975b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Nov 5 12:23:22 2009 +0000
bin-layout: Add get_child_meta_type() override
Return the GType of ClutterBinLayer.
clutter/clutter-bin-layout.c | 8 ++++++++
1 file changed, 8 insertions(+)
commit e6dff59b27d7eb6d9fca51f6ddf74fcb7d8253e3
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Nov 5 11:57:06 2009 +0000
layout: Add LayoutManager::get_child_meta_type()
In order to inspect a LayoutManager using LayoutMeta we need a
virtual function that returns the GType of the LayoutMeta used.
clutter/clutter-layout-manager.c | 7 +++++++
clutter/clutter-layout-manager.h | 3 +++
2 files changed, 10 insertions(+)
commit 95d78acb4ca72951fc9552c9fcffa645b1be739a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Nov 4 16:45:44 2009 +0000
script: Allow parsing child properties
The ClutterScript parser needs to be extended to parse child properties
and apply them after an actor has been added to a container. In order to
distinguish child properties from regular GObject properties we can use
the "child::" prefix, e.g.:
{
"type" : "ClutterRectangle",
"id" : "child-01",
"child::has-focus" : true,
...
}
Parsing child properties can be deferred to the ClutterScriptable
interface, just like regular properties.
.gitignore | 1 +
clutter/clutter-script-parser.c | 115 ++++++++++++++++++++++++++-
clutter/clutter-script-private.h | 2 +
tests/conform/Makefile.am | 2 +
tests/conform/test-conform-main.c | 1 +
tests/conform/test-script-parser.c | 156 +++++++++++++++++++++++++++++++++++++
tests/data/test-script-child.json | 21 +++++
7 files changed, 297 insertions(+), 1 deletion(-)
commit c52d8780325a0077f7fc6e898d902462ffbe3c8c
Author: Robert Bragg <robert@linux.intel.com>
Date: Sat Oct 17 04:06:56 2009 +0100
[cogl-primitives] Get rid of driver specific cogl-primitives code
These files were practically identical, except the gles code had additional
support for filling paths without a stencil buffer. All the driver code has
now been moved into cogl/cogl-primitives.c
clutter/cogl/cogl/cogl-primitives.c | 488 +++++++++++++++++++++-
clutter/cogl/cogl/driver/gl/Makefile.am | 1 -
clutter/cogl/cogl/driver/gl/cogl-primitives.c | 313 --------------
clutter/cogl/cogl/driver/gles/Makefile.am | 1 -
clutter/cogl/cogl/driver/gles/cogl-primitives.c | 516 ------------------------
5 files changed, 482 insertions(+), 837 deletions(-)
commit 8ba13d6495d00885380db3a23f552633c5c43c0a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Nov 4 15:21:03 2009 +0000
script: Clean up Color parsing rules
All the ClutterColor parsing rules should be coalesced inside
clutter_script_parse_color(): object, array and string notations
are the canonical ways of defining a ClutterColor inside a
ClutterScript definition. Having a single function in charge of
the parsing cleans up the code.
clutter/clutter-script-parser.c | 17 +++++++----------
tests/conform/test-script-parser.c | 6 ++++++
2 files changed, 13 insertions(+), 10 deletions(-)
commit 3e815de32b2aa525365b80fb7d2f5d5dc9d2fb72
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Nov 4 15:20:12 2009 +0000
script: Simplify boxed types parsing
We should use the typed accessors for complex JSON types, and
be more liberal in what we accept.
clutter/clutter-script-parser.c | 147 ++++++++++++++++------------------------
1 file changed, 57 insertions(+), 90 deletions(-)
commit 4df59d330ca4ba7ffcff830001ddbc4fe64167ee
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Nov 4 14:05:13 2009 +0000
script: Separate construction from properties application
Currently, ClutterScriptParser will construct the object (using the
construct-only and construct parameters), apply the properties from
the ClutterScript definition, and eventuall will add children and
behaviours.
The construction phase should be more compartimentalized: the objects
should be constructed first and eventual children and behaviours
added. Then, once an object is requested or when the parsing process
has terminated, all the properties should be applied.
This change allows us to set up the actors before setting their
non-construct properties.
clutter/clutter-script-parser.c | 137 +++++++++++++++++++--------------------
clutter/clutter-script-private.h | 8 ++-
clutter/clutter-script.c | 22 +++++--
3 files changed, 88 insertions(+), 79 deletions(-)
commit 31e5dadb68cf285d57935573e16713201f24503e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Nov 4 13:32:26 2009 +0000
script: Move all parser code inside ClutterScriptParser
ClutterScript is currently a mix of parser-related code and
the ClutterScript object. All the parser-related code should
be moved inside a private class, ClutterScriptParser, inheriting
from JsonParser.
clutter/clutter-script-parser.c | 1288 ++++++++++++++++++++++++++++++++-
clutter/clutter-script-private.h | 38 +-
clutter/clutter-script.c | 1485 +++-----------------------------------
3 files changed, 1438 insertions(+), 1373 deletions(-)
commit d7cfa158513263a5f75934a8f9ddceea9a6b8800
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Nov 4 11:50:45 2009 +0000
conform: Add the beginnings of a ClutterScript test suite
ClutterScript is a very complicated piece of machinery, with a
parser that has custom variations on top of the basic JSON
format; it could also be extended in the future, so if we don't
want to introduce regressions or break existing ClutterScript
definitions, we'd better have a conformance test suite.
.gitignore | 1 +
tests/conform/Makefile.am | 1 +
tests/conform/test-conform-main.c | 2 ++
tests/conform/test-script-parser.c | 33 +++++++++++++++++++++++++++++++++
tests/data/Makefile.am | 13 ++++++++-----
tests/data/test-script-single.json | 10 ++++++++++
6 files changed, 55 insertions(+), 5 deletions(-)
commit 7d891d9dd4acbaedc5b2a2f95445a1e93fd1529f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Nov 4 11:47:09 2009 +0000
tests: Allow getting data files from the tests/data directory
The units under the conformance test suite should be able to use
external files. Linking the files in tests/conform like the
interactive tests do seems like a hack piled on top of a hack, so
instead we should provide a programmatic way for a conformance
test unit to get the full path of a file, regardless of where the
tests/data directory is.
We can use a define to get the full path of tests/data and then
a function using g_build_filename() to construct the path to the
file we want.
tests/conform/Makefile.am | 14 +++++++++-----
tests/conform/test-conform-common.h | 1 +
tests/conform/test-conform-main.c | 6 ++++++
3 files changed, 16 insertions(+), 5 deletions(-)
commit 3e20468c6bd982eb8be0e3cbf9c9b72df38eaeeb
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Nov 4 11:05:25 2009 +0000
Add new conformance tests to the ignore list
.gitignore | 3 +++
1 file changed, 3 insertions(+)
commit 6e571928a49641f353f31e1f69328e1466b6ac66
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Nov 3 18:30:28 2009 +0000
script: Take a copy of property nodes
Instead of counting on a JsonNode pointer to survive we should take
a copy. This allows keeping unresolved properties across different
ClutterScript passes.
clutter/clutter-script.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
commit 4ad57aa3e4caedd89e9c60c60aadbc239290cfe3
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Nov 3 18:29:52 2009 +0000
script: Use JsonObject direct accessors
Instead of getting the JsonNode for a member of which we mandate
the type we can use the typed accessors of JsonObject.
clutter/clutter-script.c | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)
commit 0ff420fab59221fccf711893c363145607b40898
Merge: f6e0e48ac 4258214e5
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Nov 4 03:46:45 2009 +0000
Merge commit 'cogl-reorg-draw-buffers'
* cogl-reorg-draw-buffers: (38 commits)
[test-fbo] greatly simplify the test
[tests] test-backface-culling: test culling with offscreen rendering
[tests] Adds test-cogl-readpixels.c for very basic cogl_read_pixels testing
[tests] Adds test-cogl-offscreen to validate offscreen draw buffer
[tests] test-cogl-viewport tests semantics of over/under size viewports
[test-texture-fbo] comment the colors defined in corner_colors
Add a conformance test for clutter_texture_new_from_actor
[cogl-texture-2d-sliced] allow COGL_FORMAT_ANY with _new_with_size()
[texture] fix rounding when calculating update_fbo viewport offset
[texture] switch to a new design for handling offscreen rendering
[texture] split out fbo update code from cluter_texture_paint
[texture] push/pop draw buffer when painting actors to a texture
[texture] Avoid redundant use of cogl_clip_stack_save when drawing offscreen
[cogl-draw-buffer] fix Cogl -> GL viewport coord conversion
[cogl_clip_push_window_rect] fix Cogl -> GL coordinate conversion
[matrix] Adds cogl_matrix_get_inverse API
[debug] Adds a COGL_DEBUG=matrices debug option
[cogl-matrix] Import Mesa's matrix manipulation code
[cogl] avoid any state changes when cogl_set_backface_culling_enable is a nop
[cogl] Use clockwise face winding for offscreen buffers with culling enabled
...
commit 4258214e509edbc4ff82de418ffc9662088fa835
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Oct 7 10:40:15 2009 +0100
[test-fbo] greatly simplify the test
This test tried to do too much, and I can't remember the last time I saw this
test work.
It no longer tries to create a texture from an offscreen actor and it no
longer tries to use shaders.
It does though show that chaining of clutter_texture_new_from_actor now
works, and that animating the source actor is reflected in textures created
from it.
When run you should see three actors:
- on the left is the pristine source actor rotating around the y-axis
- in the middle is the first texture created from the source actor
- and on the right a texture created from the middle actor
Note: the somewhat strange bobbing of the middle and right textures is
actually correct given how it was decided long ago to map the transformed
(to screen space) allocation of the source actor to the texture. When the
hand spins around the perspective projection of the top of the hand results
in the origin of the texture bobbing up to a higher stage position, but the
position of the textures is fixed. This design also means we end up
reallocating our offscreen draw buffer every frame that the actors
transformed size changes, which isn't ideal.
tests/interactive/test-fbo.c | 192 ++++++++-----------------------------------
1 file changed, 34 insertions(+), 158 deletions(-)
commit ffb592de5908d844b527cb4fe75b7195eb0dc55d
Author: Robert Bragg <robert@linux.intel.com>
Date: Thu Oct 22 19:01:27 2009 +0100
[tests] test-backface-culling: test culling with offscreen rendering
Since offscreen rendering is internally forced to be upside down Cogl
needs to reverse the glFrontFace winding order so as not to interfere
with the use of cogl_set_backface_culling_enabled()
This ensures we test that mechanism.
tests/conform/test-backface-culling.c | 172 ++++++++++++++++++++++------------
1 file changed, 111 insertions(+), 61 deletions(-)
commit 60b642f5d6aada0d237cfb7d81f6b78299c29e73
Author: Robert Bragg <robert@linux.intel.com>
Date: Thu Oct 22 16:56:01 2009 +0100
[tests] Adds test-cogl-readpixels.c for very basic cogl_read_pixels testing
Mostly this was written to verify that we don't flip the data read back from
an offscreen draw buffer. (since all offscreen rendering is done upside
down)
tests/conform/Makefile.am | 1 +
tests/conform/test-cogl-readpixels.c | 153 +++++++++++++++++++++++++++++++++++
tests/conform/test-conform-main.c | 1 +
3 files changed, 155 insertions(+)
commit 2ff7f2d287f8dc80f0e6e02bdc388d4fee99d878
Author: Robert Bragg <robert@linux.intel.com>
Date: Thu Oct 22 12:36:17 2009 +0100
[tests] Adds test-cogl-offscreen to validate offscreen draw buffer
This adds a basic test to check that rendering a few colored rectangles
offscreen works and that the modelview gets restored when switching back to
the previous buffer.
tests/conform/Makefile.am | 1 +
tests/conform/test-cogl-offscreen.c | 169 ++++++++++++++++++++++++++++++++++++
tests/conform/test-conform-main.c | 1 +
3 files changed, 171 insertions(+)
commit 369e68630daf7f833da986a19ad17043b43d61e3
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Oct 21 16:06:43 2009 +0100
[tests] test-cogl-viewport tests semantics of over/under size viewports
Unlike OpenGL Cogl puts the origin of windows/viewports at the top left
instead of bottom left. This test verifies that we correctly translate Cogl
viewports to OpenGL viewports for the awkward cases where the given viewport
has an offset and/or the viewport has a different size to the current draw
buffer.
tests/conform/Makefile.am | 1 +
tests/conform/test-cogl-viewport.c | 417 +++++++++++++++++++++++++++++++++++++
tests/conform/test-conform-main.c | 2 +
3 files changed, 420 insertions(+)
commit bc24190b9ac32405d4be24d84968357921c7f7e2
Author: Robert Bragg <robert@linux.intel.com>
Date: Mon Nov 2 01:23:25 2009 +0000
[test-texture-fbo] comment the colors defined in corner_colors
It helps to be able to quickly glance at the definition to see which
quadrant of the test actor should be which color, so when debugging a
problem and looking at the visual output you can easily verify if it's being
flipped upside down/left to right.
tests/conform/test-texture-fbo.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
commit b41a81fb0868e51bf03d25446f8cc9748fcd6bc7
Author: Neil Roberts <neil@linux.intel.com>
Date: Thu Sep 17 14:25:29 2009 +0100
Add a conformance test for clutter_texture_new_from_actor
This contains four tests :-
- A regular onscreen source with a clone next to it
- An offscreen source with a clone. This is currently commented out
because it no longer works.
- An onscreen source with a rectangular clip and a clone.
- An onscreen source with a clip from a path and a clone.
The sources are all a 2x2 grid of colors. Each clone is tested that it
either contains the color that should be at that grid position or that
the stage color is showing through if the source is clipped.
tests/conform/Makefile.am | 1 +
tests/conform/test-conform-main.c | 1 +
tests/conform/test-texture-fbo.c | 255 ++++++++++++++++++++++++++++++++++++++
3 files changed, 257 insertions(+)
commit fec13f6202067f0700514db6676d3984b78a26df
Author: Robert Bragg <robert@linux.intel.com>
Date: Sat Oct 31 00:01:44 2009 +0000
[cogl-texture-2d-sliced] allow COGL_FORMAT_ANY with _new_with_size()
It's useful when initialzing offscreen draw buffers to be able to ask
Cogl to create a texture of a given size and with the default internal
pixel format.
clutter/cogl/cogl/cogl-texture-2d-sliced.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit ae57c30e937d90eb1e541edd36ae9f81aedc2854
Author: Robert Bragg <robert@linux.intel.com>
Date: Sun Nov 1 23:56:03 2009 +0000
[texture] fix rounding when calculating update_fbo viewport offset
When rendering to an fbo for supporting clutter_texture_new_from_actor we
render to an fbo with the same size as the source actor, but with a viewport
the same size as the stage. We offset the viewport so when we render the
source actor in its normal transformed stage position it lands on the fbo.
Previously we were rounding the transformed position given as a float by
truncating the fraction (just using a C cast) but that resulted in an
incorrect pixel offset when rendering offscreen depending on the source
position.
We now simply + 0.5 before casting (or -0.5 for negative numbers)
clutter/clutter-texture.c | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
commit 309f852efbde6a3e025225d01293509c28989d0c
Author: Robert Bragg <robert@linux.intel.com>
Date: Mon Nov 2 01:14:50 2009 +0000
[texture] switch to a new design for handling offscreen rendering
For supporting clutter_texture_new_from_actor(): when updating a
ClutterTexture's fbo we previously set up an offset frustum in the
perspective matrix before rendering source actors to an offscreen draw
buffer so as to give a perspective as if it were being drawn at its
original stage location.
Now that Cogl supports offset viewports there is a simpler way...
When we come to render the source actor to our offscreen draw buffer we
now copy the projection matrix from the stage; we create a viewport
that's also the same size as the stage (though larger than the offscreen
draw buffer) and as before we apply the modelview transformations of
the source actors ancestry before painting it.
The only trick we need now is to offset the viewport according to the
transformed (to screen space) allocation of the source actor (something we
required previously too). We negatively offset the stage sized viewport
such that the smaller offscreen draw buffer is positioned to sit underneath
the source actor in stage coordinates.
clutter/clutter-texture.c | 100 ++++++++++++++++------------------------------
1 file changed, 35 insertions(+), 65 deletions(-)
commit 94a6028358caed32dba7ba37db9784c95d4690f2
Author: Robert Bragg <robert@linux.intel.com>
Date: Thu Sep 24 14:34:09 2009 +0100
[texture] split out fbo update code from cluter_texture_paint
To help keep clutter_texture_paint maintainable this splits out a big
chunk of standalone code that's responsible for updating the fbo when
clutter_texture_new_from_actor has been used.
clutter/clutter-texture.c | 156 ++++++++++++++++++++++++----------------------
1 file changed, 81 insertions(+), 75 deletions(-)
commit 2762e6d9b90731fd05b46aac407cebd3ba372027
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Oct 13 22:22:39 2009 +0100
[texture] push/pop draw buffer when painting actors to a texture
When updating the FBO for a source actor (to support
clutter_texture_new_from_actor()) we used to simply set an offscreen draw
buffer to be current, paint the source actor and then explicitly set the
window to be current again. This precluded chaining texture_new_from_actor
though because updating another FBO associated with a source actor would end
up restoring the window as the current buffer instead of the previous
offscreen buffer. Now that we use Cogl's draw buffer stack; chaining
clutter_texture_new_from_actor() should be possible.
clutter/clutter-texture.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
commit c7d229585f2e8dec30162cbad955230c25e16718
Author: Robert Bragg <robert@linux.intel.com>
Date: Fri Oct 23 00:16:30 2009 +0100
[texture] Avoid redundant use of cogl_clip_stack_save when drawing offscreen
Since cogl draw buffers now own their clip state the stage's clip state will
automatically be saved and restored via the cogl_set_draw_buffer API.
clutter/clutter-texture.c | 6 ------
1 file changed, 6 deletions(-)
commit 90dbae5aa9a31688f2dd73b75df67607795fa60e
Author: Robert Bragg <robert@linux.intel.com>
Date: Sat Oct 31 00:00:33 2009 +0000
[cogl-draw-buffer] fix Cogl -> GL viewport coord conversion
Before we call glViewport we need to convert Cogl viewport coordinates
(where the origin is defined to be top left) to OpenGL coordinates
(where the origin is defined to be bottom left)
We weren't considering that offscreen rendering is always upside down
and in this case Cogl coordinates == OpenGL coordinates.
clutter/cogl/cogl/cogl-draw-buffer.c | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)
commit 149e3e168a14049bb496a6438b711caa1fbe8129
Author: Robert Bragg <robert@linux.intel.com>
Date: Fri Oct 30 23:57:56 2009 +0000
[cogl_clip_push_window_rect] fix Cogl -> GL coordinate conversion
Firstly this now uses the draw buffer height not the viewport height
when we need to perform a y = height - y conversion, since (as the
name suggests) we are dealing with window coordinates not viewport
coordinates.
Secondly this skips any conversion when the current draw buffer is an
offscreen draw buffer since offscreen rendering is always forced to be
upside down and in this case Cogl window coordinates == GL window
coordinates.
clutter/cogl/cogl/cogl-clip-stack.c | 32 ++++++++++++++++++++++++++------
1 file changed, 26 insertions(+), 6 deletions(-)
commit 0369a1b84d725c6dbd90f9a9dd1753bea1f9c3e1
Author: Robert Bragg <robert@linux.intel.com>
Date: Mon Oct 26 17:51:34 2009 +0000
[matrix] Adds cogl_matrix_get_inverse API
This new API takes advantage of the recently imported Mesa code to support
inverse matrix calculation. The matrix code keeps track (via internal
flags) of the transformations a matrix represents so that it can select an
optimized inversion function.
Note: although other aspects of the Cogl matrix API have followed a similar
style to Cairo's matrix API we haven't added a cogl_matrix_invert API
because the inverse of a CoglMatrix is actually cached as part of the
CoglMatrix structure meaning a destructive API like cogl_matrix_invert
doesn't let users take advantage of this caching design.
clutter/cogl/cogl/cogl-context.h | 3 ---
clutter/cogl/cogl/cogl-matrix-stack.c | 11 ++++++++
clutter/cogl/cogl/cogl-matrix-stack.h | 3 +++
clutter/cogl/cogl/cogl-matrix.c | 33 +++++++++++++++---------
clutter/cogl/cogl/cogl-matrix.h | 21 ++++++++++++++++
clutter/cogl/cogl/cogl.c | 47 +++++++----------------------------
6 files changed, 65 insertions(+), 53 deletions(-)
commit 8051596e96a296cf30887f6e522a288895b628f8
Author: Robert Bragg <robert@linux.intel.com>
Date: Mon Oct 26 11:01:33 2009 +0000
[debug] Adds a COGL_DEBUG=matrices debug option
This adds a COGL_DEBUG=matrices debug option that can be used to trace all
matrix manipulation done using the Cogl API. This can be handy when you
break something in such a way that a trace is still comparable with a
previous working version since you can simply diff a log of the broken
version vs the working version to home in on the bug.
clutter/cogl/cogl/cogl-debug.c | 3 ++-
clutter/cogl/cogl/cogl-debug.h | 3 ++-
clutter/cogl/cogl/cogl-matrix-private.h | 47 +++++++++++++++++++++++++++++++++
clutter/cogl/cogl/cogl-matrix.c | 20 ++++++++++++++
clutter/cogl/cogl/cogl.c | 5 ++++
5 files changed, 76 insertions(+), 2 deletions(-)
commit eb438dd499c002a7d770d5e3d0c1fb1c84da933e
Author: Robert Bragg <robert@linux.intel.com>
Date: Mon Oct 26 08:23:21 2009 +0000
[cogl-matrix] Import Mesa's matrix manipulation code
This pulls in code from Mesa to improve our matrix manipulation support. It
includes support for calculating the inverse of matrices based on top of a
matrix categorizing system that allows optimizing certain matrix types.
(the main thing we were after) but also adds some optimisations for
rotations.
Changes compared to the original code from Mesa:
- Coding style is consistent with the rest of Cogl
- Instead of allocating matrix->m and matrix->inv using malloc, our public
CoglMatrix typedef is large enough to directly contain the matrix, its
inverse, a type and a set of flags.
- Instead of having a _math_matrix_analyse which updates the type, flags and
inverse, we have _math_matrix_update_inverse which essentially does the
same thing (internally making use of _math_matrix_update_type_and_flags())
but with additional guards in place to bail out when the inverse matrix is
still valid.
- When initializing a matrix with the identity matrix we don't immediately
initialize the inverse matrix; rather we just set the dirty flag for the
inverse (since it's likely the user won't request the inverse of the
identity matrix)
clutter/cogl/cogl/Makefile.am | 2 +
clutter/cogl/cogl/cogl-matrix-mesa.c | 1698 ++++++++++++++++++++++++++++++++++
clutter/cogl/cogl/cogl-matrix-mesa.h | 226 +++++
clutter/cogl/cogl/cogl-matrix.c | 39 +-
clutter/cogl/cogl/cogl-matrix.h | 6 +-
5 files changed, 1967 insertions(+), 4 deletions(-)
commit d38d888f786f3be03778bcc10f20389e6c7ff1ff
Author: Robert Bragg <robert@linux.intel.com>
Date: Thu Oct 22 19:09:20 2009 +0100
[cogl] avoid any state changes when cogl_set_backface_culling_enable is a nop
This is a simple optimization to bail out of cogl_set_backface_culling_enable
if it's not resulting in a change of state.
clutter/cogl/cogl/cogl.c | 3 +++
1 file changed, 3 insertions(+)
commit 764cca75b4ee6bb269097445cb5220f0e044a57c
Author: Robert Bragg <robert@linux.intel.com>
Date: Thu Oct 22 19:01:52 2009 +0100
[cogl] Use clockwise face winding for offscreen buffers with culling enabled
Because Cogl defines the origin for texture as top left and offscreen draw
buffers can be used to render to textures, we (internally) force all
offscreen rendering to be upside down. (because OpenGL defines the origin
to be bottom left)
By forcing the users scene to be rendered upside down though we also reverse
the winding order of all the drawn triangles which may interfere with the
users use of backface culling. This patch ensures that we reverse the
winding order for a front face (if culling is in use) while rendering
offscreen so we don't conflict with the users back face culling.
clutter/cogl/cogl/cogl-context.c | 2 ++
clutter/cogl/cogl/cogl-context.h | 1 +
clutter/cogl/cogl/cogl-internal.h | 9 +++++++++
clutter/cogl/cogl/cogl-journal.c | 1 +
clutter/cogl/cogl/cogl-primitives.c | 1 +
clutter/cogl/cogl/cogl-vertex-buffer.c | 1 +
clutter/cogl/cogl/cogl.c | 33 +++++++++++++++++++++++++++++++++
7 files changed, 48 insertions(+)
commit b2ebb7db485d0a58bcb642fe9e4584c85ac9a503
Author: Robert Bragg <robert@linux.intel.com>
Date: Fri Oct 30 23:54:13 2009 +0000
[main] Use cogl_read_pixels not glReadPixels in clutter-main.c
The debugging function read_pixels_to_file() and _clutter_do_pick were both
directly calling glReadPixels, but we don't wan't Clutter making direct
OpenGL calls and Cogl provides a suitable alternative. It also means
read_pixels_to_file() doesn't need to manually flip the data read due to
differences in Clutter/Cogl coordinate systems.
clutter/clutter-main.c | 31 +++++++++++++++----------------
1 file changed, 15 insertions(+), 16 deletions(-)
commit 40b8399d49f6b0383b9eebcdf1ca501b5edb4f39
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Nov 3 12:54:45 2009 +0000
[cogl_read_pixels] don't force a 4 byte pack alignment
Technically this change shouldn't make a difference since we are
calling glReadPixels with GL_RGBA GL_UNSIGNED_BYTE which is a 4
byte format and it should always result in the same value according
to how OpenGL calculates the location of sequential rows.
i.e. k = a/s * ceil(snl/a) where:
a = alignment
s = component size (1)
n = number of components per pixel (4)
l = number of pixels in a row
gives:
k = 4/1 * ceil(4l/4) and k = 1/1 * ceil(4l/1) which are equivalent
I'm changing it because I've seen i915 driver code that bails out of
hardware accelerated paths if the alignment isn't 1, and because
conceptually we have no alignment constraints here so even if the current
value has no effect, when we start reading back other formats it may upset
things.
clutter/cogl/cogl/cogl.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
commit a222ee22f9dd35c5e0671914206759699e63750d
Author: Robert Bragg <robert@linux.intel.com>
Date: Mon Nov 2 01:11:21 2009 +0000
[cogl_read_pixels] call cogl_flush() before changing glPixelStore state
We were previously calling cogl_flush() after setting up the glPixelStore
state for calling glReadPixels, but flushing the journal could itself
change the glPixelStore state.
clutter/cogl/cogl/cogl.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
commit ed431a3c65507b3e3da4760eae6e2b22be1f27f5
Author: Robert Bragg <robert@linux.intel.com>
Date: Mon Nov 2 01:10:02 2009 +0000
[cogl_read_pixels] ensure we flush the current draw buffer state before reading
Make sure we call _cogl_draw_buffer_flush_state() before glReadPixels() to
be sure we have bound the correct framebuffer.
clutter/cogl/cogl/cogl.c | 3 +++
1 file changed, 3 insertions(+)
commit b47404c91d6fac264840a0dafb5dd2dd5567c6a9
Author: Robert Bragg <robert@linux.intel.com>
Date: Mon Nov 2 01:12:10 2009 +0000
[cogl_read_pixels] fixes for calculating the y offset when rendering offscreen
Since offscreen rendering is forced to be upside down we don't need to do
any conversion of the users coordinates to go from Cogl window coordinates
to OpenGL window coordinates.
clutter/cogl/cogl/cogl.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
commit 426197f51da9c4351b36812276f0caee06965cb1
Author: Robert Bragg <robert@linux.intel.com>
Date: Thu Oct 22 16:55:07 2009 +0100
[read-pixels] don't flip data when reading from offscreen draw buffers
Since we do all offscreen rendering upside down (so that we can have the
origin for texture coordinates be the top left of textures for the cases
where offscreen draw buffers are bound to textures) we don't need to flip
data read back from an offscreen framebuffer before we we return it to the
user.
clutter/cogl/cogl/cogl.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
commit 21322848e0094a025dc0b5461eff30e0d66542da
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Oct 21 23:22:45 2009 +0100
[clip-stack] tidy up transform_point() code
I was originally expecting the code not to handle offset viewports or
viewports with a different size to the framebuffer, but it turns out the
code worked fine. In the process though I think I made the code slightly
more readable.
clutter/cogl/cogl/cogl-clip-stack.c | 32 +++++++++++++++++++++-----------
1 file changed, 21 insertions(+), 11 deletions(-)
commit 8c3a132ecb3ce805c45dad70c05417713ed9d05d
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Nov 3 13:26:58 2009 +0000
[cogl] deprecate cogl_viewport() in favour of cogl_set_viewport()
cogl_viewport only accepted a viewport width and height, but there are times
when it's also desireable to have a viewport offset so that a scene can be
translated after projection but before hitting the framebuffer.
README | 6 ++++++
clutter/clutter-texture.c | 2 +-
clutter/cogl/cogl/cogl.c | 12 ++++++------
clutter/cogl/cogl/cogl.h.in | 22 +++++++++++++++++++++-
4 files changed, 34 insertions(+), 8 deletions(-)
commit 1e2d88e7891a02b26d0143e28788072e8731be6b
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Oct 21 23:24:28 2009 +0100
[cogl_read_pixels] use buffer not viewport height to calculate y offset
glReadPixel takes window coordinates not viewport coordinates so we
shouldn't have been assuming that the viewport height == window height.
clutter/cogl/cogl/cogl.c | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
commit e1630be35a912125b1f493c7d1007b65eaecd048
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Oct 21 23:20:44 2009 +0100
[draw-buffer] Adds cogl_draw_buffer_get_{width,height} API
Simply adds missing API to query the width and height of any Cogl draw buffer.
clutter/cogl/cogl/cogl-draw-buffer-private.h | 4 ++++
clutter/cogl/cogl/cogl-draw-buffer.c | 14 ++++++++++++++
2 files changed, 18 insertions(+)
commit 12af2751392ea53959fa41dd7cb19e07358655f2
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Oct 21 23:24:49 2009 +0100
[cogl] Make sure Cogl always knows the current window geometry
Because Cogl defines the origin of viewport and window coordinates to be
top-left it always needs to know the size of the current window so that Cogl
window/viewport coordinates can be transformed into OpenGL coordinates.
This also fixes cogl_read_pixels to use the current draw buffer height
instead of the viewport height to determine the OpenGL y coordinate to use
for glReadPixels.
clutter/clutter-backend.c | 19 ++++++++++++++++++-
clutter/clutter-stage.c | 8 ++++++++
clutter/cogl/cogl/cogl-context.c | 2 +-
clutter/cogl/cogl/cogl-context.h | 2 +-
clutter/cogl/cogl/cogl-draw-buffer.c | 36 +++++++++++++++++++++++++++++++-----
clutter/cogl/cogl/cogl.h.in | 3 +++
6 files changed, 62 insertions(+), 8 deletions(-)
commit e3391b0173479b9ba3b01321ab606d83999bee1a
Author: Robert Bragg <robert@linux.intel.com>
Date: Thu Oct 22 16:13:01 2009 +0100
[cogl] Make sure we draw upside down to offscreen draw buffers
First a few notes about Cogl coordinate systems:
- Cogl defines the window origin, viewport origin and texture coordinates
origin to be top left unlike OpenGL which defines them as bottom left.
- Cogl defines the modelview and projection identity matrices in exactly the
same way as OpenGL.
- I.e. we believe that for 2D centric constructs: windows/framebuffers,
viewports and textures developers are more used to dealing with a top left
origin, but when modeling objects in 3D; an origin at the center with y
going up is quite natural.
The way Cogl handles textures is by uploading data upside down in OpenGL
terms so that bottom left becomes top left. (Note: This also has the
benefit that we don't need to flip the data we get from image decoding
libraries since they typically also consider top left to be the image
origin.)
The viewport and window coords are mostly handled with various y =
height - y tweaks before we pass y coordinates to OpenGL.
Generally speaking though the handling of coordinate spaces in Cogl is a bit
fragile. I guess partly because none of it was design to be, it just
evolved from how Clutter defines its coordinates without much consideration
or testing. I hope to improve this over a number of commits; starting here.
This commit deals with the fact that offscreen draw buffers may be bound to
textures but we don't "upload" the texture data upside down, and so if you
texture from an offscreen draw buffer you need to manually flip the texture
coordinates to get it the right way around. We now force offscreen
rendering to be flipped upside down by tweaking the projection matrix right
before we submit it to OpenGL to scale y by -1. The tweak is entirely
hidden from the user such that if you call cogl_get_projection you will not
see this scale.
clutter/cogl/cogl/cogl-context.c | 4 ++++
clutter/cogl/cogl/cogl-context.h | 4 ++++
clutter/cogl/cogl/cogl-draw-buffer-private.h | 3 +++
clutter/cogl/cogl/cogl-matrix-stack.c | 36 ++++++++++++++++++++--------
4 files changed, 37 insertions(+), 10 deletions(-)
commit 8b4c496f2a0291eb202d775e210b5901b6b73940
Author: Robert Bragg <robert@linux.intel.com>
Date: Thu Oct 22 12:35:33 2009 +0100
[cogl] Ensure features are initialized first in cogl_create_context
Previously some context initializing was being done without valid feature
flags.
clutter/cogl/cogl/cogl-context.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
commit 419db4dcfbef74475e155f8dd060bc1c526d5643
Author: Robert Bragg <robert@linux.intel.com>
Date: Sat Oct 17 00:31:26 2009 +0100
[clip-stack] Handle flipped rectangles in try_pushing_rect_as_window_rect()
We were ignoring the possibility that the current modelview matrix may flip
the incoming rectangle in which case we didn't calculate a valid scissor
rectangle for clipping.
This fixes: http://bugzilla.o-hand.com/show_bug.cgi?id=1809
(Clipping doesn't work within an FBO)
clutter/cogl/cogl/cogl-clip-stack.c | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
commit f7d64e5abd5717bb522d28b7565ecccae63271fc
Author: Robert Bragg <robert@linux.intel.com>
Date: Fri Sep 25 14:34:34 2009 +0100
[draw-buffers] First pass at overhauling Cogl's framebuffer management
Cogl's support for offscreen rendering was originally written just to support
the clutter_texture_new_from_actor API and due to lack of documentation and
several confusing - non orthogonal - side effects of using the API it wasn't
really possible to use directly.
This commit does a number of things:
- It removes {gl,gles}/cogl-fbo.{c,h} and adds shared cogl-draw-buffer.{c,h}
files instead which should be easier to maintain.
- internally CoglFbo objects are now called CoglDrawBuffers. A
CoglDrawBuffer is an abstract base class that is inherited from to
implement CoglOnscreen and CoglOffscreen draw buffers. CoglOffscreen draw
buffers will initially be used to support the
cogl_offscreen_new_to_texture API, and CoglOnscreen draw buffers will
start to be used internally to represent windows as we aim to migrate some
of Clutter's backend code to Cogl.
- It makes draw buffer objects the owners of the following state:
- viewport
- projection matrix stack
- modelview matrix stack
- clip state
(This means when you switch between draw buffers you will automatically be
switching to their associated viewport, matrix and clip state)
Aside from hopefully making cogl_offscreen_new_to_texture be more useful
short term by having simpler and well defined semantics for
cogl_set_draw_buffer, as mentioned above this is the first step for a couple
of other things:
- Its a step toward moving ownership for windows down from Clutter backends
into Cogl, by (internally at least) introducing the CoglOnscreen draw
buffer. Note: the plan is that cogl_set_draw_buffer will accept on or
offscreen draw buffer handles, and the "target" argument will become
redundant since we will instead query the type of the given draw buffer
handle.
- Because we have a common type for on and offscreen framebuffers we can
provide a unified API for framebuffer management. Things like:
- blitting between buffers
- managing ancillary buffers (e.g. attaching depth and stencil buffers)
- size requisition
- clearing
clutter/clutter-main.c | 5 +-
clutter/cogl/cogl/Makefile.am | 2 +
clutter/cogl/cogl/cogl-clip-stack.c | 199 ++++++--
clutter/cogl/cogl/cogl-clip-stack.h | 9 +-
clutter/cogl/cogl/cogl-context.c | 34 +-
clutter/cogl/cogl/cogl-context.h | 20 +-
clutter/cogl/cogl/cogl-draw-buffer-private.h | 126 +++++
clutter/cogl/cogl/cogl-draw-buffer.c | 555 +++++++++++++++++++++
clutter/cogl/cogl/cogl-journal.c | 33 +-
clutter/cogl/cogl/cogl-primitives.c | 19 +-
clutter/cogl/cogl/cogl-texture.c | 19 +-
clutter/cogl/cogl/cogl-vertex-buffer.c | 14 +-
clutter/cogl/cogl/cogl.c | 220 +++++---
clutter/cogl/cogl/cogl.h.in | 1 +
clutter/cogl/cogl/driver/gl/Makefile.am | 2 -
clutter/cogl/cogl/driver/gl/cogl-context-driver.c | 19 +-
clutter/cogl/cogl/driver/gl/cogl-context-driver.h | 23 +-
clutter/cogl/cogl/driver/gl/cogl-defines.h.in | 28 +-
clutter/cogl/cogl/driver/gl/cogl-fbo.c | 315 ------------
clutter/cogl/cogl/driver/gl/cogl-fbo.h | 39 --
clutter/cogl/cogl/driver/gl/cogl-primitives.c | 99 ++--
clutter/cogl/cogl/driver/gl/cogl-texture-driver.c | 2 +-
clutter/cogl/cogl/driver/gl/cogl.c | 114 ++---
clutter/cogl/cogl/driver/gles/Makefile.am | 2 -
.../cogl/cogl/driver/gles/cogl-context-driver.c | 10 +
.../cogl/cogl/driver/gles/cogl-context-driver.h | 17 +-
clutter/cogl/cogl/driver/gles/cogl-defines.h.in | 70 +++
clutter/cogl/cogl/driver/gles/cogl-fbo.c | 328 ------------
clutter/cogl/cogl/driver/gles/cogl-fbo.h | 39 --
clutter/cogl/cogl/driver/gles/cogl-primitives.c | 121 ++++-
clutter/cogl/cogl/driver/gles/cogl.c | 75 +++
31 files changed, 1471 insertions(+), 1088 deletions(-)
commit f8f8873714043efbcbf92718493a94ac9ddf303f
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Oct 20 16:55:10 2009 +0100
[stage-x11] Ensure viewport is initialized before first stage paint
This ensures that glViewport is called before the first stage paint.
Previously _clutter_stage_maybe_setup_viewport (which is done before we
start painting) was bailing out without calling cogl_setup_viewport because
the CLUTTER_STAGE_IN_RESIZE flag may be set if the stage was resized before
the first paint. (NB: The CLUTTER_STAGE_IN_RESIZE flag isn't removed until
we get an explicit event back from the X server since the window manager may
choose to deny/alter the resize.)
We now special case the first resize - where the viewport hasn't previously
been initialized and use the requested geometry to initialize the
glViewport without waiting for a reply from the server.
clutter/x11/clutter-stage-x11.c | 18 ++++++++++++++++++
clutter/x11/clutter-stage-x11.h | 7 ++++---
2 files changed, 22 insertions(+), 3 deletions(-)
commit ad98e96d977e43a882b8a2f680e59ed281c90baf
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Sep 15 22:19:01 2009 +0100
[cogl-fbo] Bring the gles code more in line with gl code
Over time the two cogl-fbo.c files have needlessly diverged as bug fixes or
cleanups went into one version but not the other. This tries to bring them
back in line with each other. It should actually be simple enough to move
cogl-fbo.c to be a common file, and simply not build it for GLES 1.1, so
maybe I'll follow up with such a patch soon.
clutter/cogl/cogl/driver/gles/cogl-fbo.c | 8 ++++++++
1 file changed, 8 insertions(+)
commit 613977f7108efb8897bffb2e47bfcf29bce29ddc
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Sep 15 22:15:03 2009 +0100
[cogl-fbo] Remove poorly documented workaround for unknown driver/hardware
The comment just said: "Some implementation require a clear before drawing
to an fbo. Luckily it is affected by scissor test." and did a scissored
clear, which is clearly a driver bug workaround, but for what driver? The
fact that it was copied into the gles backend (or vica versa is also
suspicious since it seems unlikely that the workaround is necessary for both
backends.)
We can easily restore the workaround with a better comment if this problem
really still exists on current drivers, but for now I'd rather minimize
hand-wavey workaround code that can't be tested.
clutter/cogl/cogl/driver/gl/cogl-fbo.c | 10 ----------
clutter/cogl/cogl/driver/gles/cogl-fbo.c | 19 -------------------
2 files changed, 29 deletions(-)
commit 0599d12ec94344174c947310bddb5658f1b9db58
Author: Damien Lespiau <damien.lespiau@gmail.com>
Date: Sun Nov 1 14:36:05 2009 +0000
texture: Don't compare fbo_source with COGL_INVALID_HANDLE
fbo_source is a ClutterActor, it should be compared to NULL instead of
COGL_INVALID_HANDLE.
clutter/clutter-texture.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit f6e0e48ac613d10d02d27182ebd48be1aeb8b474
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Oct 30 12:11:19 2009 +0000
build: Add missing gles/cogl-context-driver.h to dist
The gles/cogl-context-driver.h header file is missing from the
dist target, which means it's not in the tarballs.
clutter/cogl/cogl/driver/gles/Makefile.am | 1 +
1 file changed, 1 insertion(+)
commit f551cbfb61adb1c454fa36477ad5847b6238e17b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Oct 30 11:02:35 2009 +0000
Add run-time version checks
Just like CLUTTER_CHECK_VERSION does version checking at compile
time, we need a way to verify the version of the library that we
are linking against. This is mostly needed for language bindings
and for run-time loadable modules -- when we'll get those.
clutter/clutter-main.c | 34 ++++++++++++++++++++++++++++++
clutter/clutter-version.h.in | 15 ++++++++++++-
doc/reference/clutter/clutter-sections.txt | 7 ++++++
3 files changed, 55 insertions(+), 1 deletion(-)
commit f8e6727e74c80b80bba3ccb9201e1afd23349c35
Author: Neil Roberts <neil@linux.intel.com>
Date: Tue Oct 27 13:18:51 2009 +0000
[cogl_polygon] Enable COGL_ENABLE_BLEND when use_color is set
Otherwise you can't use the alpha channel of the vertex colors unless
the material has a texture with alpha or the material's color has
alpha less than 255.
clutter/cogl/cogl/cogl-primitives.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 0c32573ffa980fffc966cf35768233a3ff1ed076
Author: Neil Roberts <neil@linux.intel.com>
Date: Tue Oct 27 12:38:10 2009 +0000
build: Add $(top_buiddir)/clutter/cogl to the include path in clutter/cogl/cogl
Some files try to include "cogl/cogl-defines-gl.h" so
$(top_builddir)/clutter/cogl needs to be in the include path for out of
tree builds to work.
clutter/cogl/cogl/Makefile.am | 1 +
1 file changed, 1 insertion(+)
commit c387513a5fd5293cb8cf60e9c1334ceeff905852
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Oct 26 16:29:31 2009 +0000
color: Fix HLS-to-RGB conversion
Apparently, on 64bit systems the floating point noise is enough
to screw up the float-to-int truncation.
The solution is to round up by 0.5 and then use floorf(). This
gives predictable and correct results on both 32bit and 64bit
systems.
clutter/clutter-color.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
commit 5a14db50891196a9d17a0df49bf0858551e5a0af
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Oct 26 16:02:06 2009 +0000
layout: Do not create a LayoutMeta on remove
When calling remove_child_meta() we check if there is a LayoutMeta
already attached to the Actor, and if that LayoutMeta matches the
(manager, container, actor) tuple. If the LayoutMeta does not match,
though, we create a new LayoutMeta instance -- in order to remove it
right afterwards.
Instead of doing this, we can simply check for a matching LayoutMeta
and if present, remove it.
In case of an existing, non-matching LayoutMeta, we're left with a
dangling instance, but it does not matter: the removal happens in the
unparenting phase of a ClutterContainer, so either the Actor will be
destroyed and thus the LayoutMeta will be disposed along with it; or
it will be parented to another container, and thus the LayoutMeta
will be replaced.
clutter/clutter-layout-manager.c | 23 ++++++++++++++++++++++-
1 file changed, 22 insertions(+), 1 deletion(-)
commit 5a63e8af8f715c3fe6ded8a9432c999aab73311a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Oct 26 15:10:20 2009 +0000
tests: Use the right key symbol for adding children
The test-box-layout should be using CLUTTER_plus instead of a
literal '+'.
tests/interactive/test-box-layout.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit a5a0171cb02dcbd67efbf87480aa5cea215c128d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Oct 26 15:09:07 2009 +0000
box: Depth level changes should queue a relayout
ClutterBox is not ClutterGroup: a change in the level of an actor
through raise, lower or depth sorting must trigger a relayout.
clutter/clutter-box.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
commit 2cad7e24f00e2f8fccfdc75086dd9e1071d71c18
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Oct 26 15:08:03 2009 +0000
box: Check before using the LayoutManager instance
A ClutterBox might not have a ClutterLayoutManager instance
associated -- for instance, during destruction. We should check
for one before calling methods on it.
clutter/clutter-box.c | 23 +++++++++++++----------
1 file changed, 13 insertions(+), 10 deletions(-)
commit 81c8cf3e6d839b13e106ab346feaccf1f2f9d3fd
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Oct 26 11:51:30 2009 +0000
texture: Error handling fix
When cogl_texture_new_from_data() fails in clutter_texture_set_from_data()
and no GError is provided, the clutter app will segfault when dereferencing
the GError ** and emitting LOAD_FINISHED signal.
Based on a patch by: Haakon Sporsheim <haakon.sporsheim@gmail.com>
http://bugzilla.openedhand.com/show_bug.cgi?id=1806
clutter/clutter-texture.c | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
commit 00748f66560f3105ff9c636cd01428d8b5e30e9e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Oct 26 11:42:16 2009 +0000
tests: Print out the captured event type
The ::captured-event signal on the Stage is not printing out the
event type.
tests/interactive/test-events.c | 31 ++++++++++++++++++++++++++++++-
1 file changed, 30 insertions(+), 1 deletion(-)
commit f0b434918bcdb0d77467d66d28448672940f6a90
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Oct 23 17:32:18 2009 +0100
docs: Add images for layout managers
It's easier to show the layout manager policy with a simple
screen shot coming from our interactive tests.
clutter/clutter-bin-layout.c | 10 ++++++++++
clutter/clutter-box-layout.c | 7 +++++++
clutter/clutter-flow-layout.c | 16 ++++++++++++++++
doc/reference/clutter/Makefile.am | 8 ++++++++
doc/reference/clutter/bin-layout.png | Bin 0 -> 12890 bytes
doc/reference/clutter/box-layout.png | Bin 0 -> 5119 bytes
doc/reference/clutter/flow-layout-horizontal.png | Bin 0 -> 5888 bytes
doc/reference/clutter/flow-layout-vertical.png | Bin 0 -> 5333 bytes
8 files changed, 41 insertions(+)
commit 924780ce3511ba9bc9e2a6b955836eaaa4d0a216
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Oct 23 16:44:28 2009 +0100
cogl: Avoid C99-isms
Do not declare variables after statements.
clutter/cogl/cogl/cogl.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
commit b56b26cc62a851ee4a851a27ce0d6b76936afc6a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Oct 23 15:46:25 2009 +0100
cogl: Remove cogl-current-matrix.c
The cogl-current-matrix.c file is unused since commit
5e5d94dfbed18bf2b4c8c7a7ff9847952b2c4ae2 and it's not compiled
or distributed anymore.
clutter/cogl/cogl/cogl-current-matrix.c | 409 --------------------------------
1 file changed, 409 deletions(-)
commit 1c43c195098b4705b59891b6b98bc24407cb3264
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Oct 23 14:30:15 2009 +0100
Update Git ignore rules
.gitignore | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
commit 0d5af4c24932b5e468fa21e8ddd1c85d9c807320
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Oct 23 13:55:50 2009 +0100
Post-release bump to 1.1.3
configure.ac | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
commit dec06979b911ca410cc289f12e053a2d49c49abb
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Oct 23 13:38:28 2009 +0100
Release 1.1.2 developers snapshot
.gitignore | 2 +-
NEWS | 95 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
README | 8 +++++
configure.ac | 2 +-
4 files changed, 105 insertions(+), 2 deletions(-)
commit 24594bcde40cc282efa94f9076a1b687c9e9827e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Oct 23 12:15:25 2009 +0100
build: Make COGL pass distcheck
Some changes to make COGL pass distcheck with Automake 1.11 and
anal-retentiveness turned up to 11.
The "major" change is the flattening of the winsys/ part of COGL,
which is built directly inside libclutter-cogl.la instead of an
intermediate libclutter-cogl-winsys.la object.
Ideally, the whole COGL should be flattened out using a
quasi-non-recursive Automake layout; unfortunately, the driver/
sub-section ships with identical targets and Automake cannot
distinguish GL and GLES objects.
clutter/cogl/cogl/Makefile.am | 196 +++++++++++++++++------------------
clutter/cogl/cogl/winsys/Makefile.am | 43 --------
configure.ac | 1 -
3 files changed, 98 insertions(+), 142 deletions(-)
commit c882893e91b1b3ec42be8d790a8210c17de58666
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Oct 23 10:17:40 2009 +0100
actor: Identify allocation cycles
If an actor calls directly or indirectly clutter_actor_queue_relayout()
on itself from within the allocate() implementation it will cause a
relayout cycle. This is usually a condition that should be checked by
ClutterActor and we should emit a warning if it is verified.
clutter/clutter-actor.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
commit ca15143d1fbb09d5dbe0daeb09d7765b7cf0dfe3
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Oct 23 10:08:02 2009 +0100
actor: Add checks for IN_DESTRUCTION flag
ClutterActor should check whether the current instance is being
destroyed and avoid performing operations like:
• queueing redraws
• queueing relayouts
It should also warn if the actor is being parented to an actor
currently being destroyed.
clutter/clutter-actor.c | 28 ++++++++++++++++++++++++----
1 file changed, 24 insertions(+), 4 deletions(-)
commit 7de47e74bda68c5d4dde82f2cbba6782fcf69d27
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Oct 23 09:48:35 2009 +0100
actor: Show actor name or type in the state checks warnings
When showing a warning in the state checks we perform to verify that
the invariants are maintained when showing, mapping and realizing, we
should also print out the name of the actor failing the checks. If the
actor has no name, the GType name should be used as a fallback.
clutter/clutter-actor.c | 69 +++++++++++++++++++++++++++++++++----------------
1 file changed, 47 insertions(+), 22 deletions(-)
commit f02874470682f819766055f3976a2d6c74988dc7
Author: Neil Roberts <neil@linux.intel.com>
Date: Thu Oct 22 16:55:29 2009 +0100
Fix some compilation errors in cogl-gles2-wrapper.c
The changes in 74f2122b6 introduced some syntax errors which were
preventing the GLES2 backend from compiling.
clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.c | 27 ++++++++++------------
1 file changed, 12 insertions(+), 15 deletions(-)
commit 8727c3127cc049bf22e3b7cb89041b104ae4fea7
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Oct 22 13:48:49 2009 +0100
clone: Set :source as CONSTRUCT
The :source property for ClutterClone is a constructor property, but
it most definitely is not a constructor-only one.
clutter/clutter-clone.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit b82f874b464b252c5f3bbb5e903197a048034430
Author: Neil Roberts <neil@linux.intel.com>
Date: Thu Oct 22 15:39:30 2009 +0100
Remove cogl/{gl,gles}/Makefile.am
These are no longer used anywhere.
clutter/cogl/gl/Makefile.am | 62 ------------------------------
clutter/cogl/gles/Makefile.am | 88 -------------------------------------------
2 files changed, 150 deletions(-)
commit bd809f690a447c813bba02d83ba3c8b22a825b38
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Oct 21 17:44:44 2009 +0100
docs: Close the right tag to avoid XML errors
clutter/clutter-alpha.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 4996b2224a54efeddce776cade725ec1cd7fca69
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Oct 21 17:43:34 2009 +0100
docs: Rename the Shader and StageManager sections
doc/reference/clutter/clutter-sections.txt | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
commit 673199b6e0399e8f1fcd52662429287f92cb95e9
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Oct 21 16:15:18 2009 +0100
tests: Update test-script
Use explicit alpha definition and custom alpha functions.
tests/interactive/test-script.c | 41 +++++++++++++++++++++++++++++++++++------
1 file changed, 35 insertions(+), 6 deletions(-)
commit 7a52fddcd673c4aa14faf2396a0a74db644ba64d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Oct 21 16:04:12 2009 +0100
alpha: Manually parse the :mode property in ClutterScript
The :mode property for a ClutterAlpha can either be an integer, for
an easing mode logical id, or a string for the easing mode "nickname".
clutter/clutter-alpha.c | 33 ++++++++++++++++++++++++++++++++-
clutter/clutter-script-private.h | 2 ++
clutter/clutter-script.c | 12 +++++++++---
3 files changed, 43 insertions(+), 4 deletions(-)
commit 01bc3fa2c80e9c965222b88ad20b470ae00028ec
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Oct 21 15:43:01 2009 +0100
script, docs: Update documentation for alphas
It is now possible to have Alpha instances defined explicitly for
behaviours, so we need to fix the documentation.
clutter/clutter-script.c | 40 +++++++++++++++++++++++++++++++---------
1 file changed, 31 insertions(+), 9 deletions(-)
commit f0ed71c77dd94e6bf644aba84f2e1cdc2d874fc1
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Oct 21 15:29:25 2009 +0100
alpha: Allow setting the function in ClutterScript
When defining an Alpha in ClutterScript we should allow setting
the alpha function by using a custom property. This makes it
possible to have both:
{
"id" : "behaviour-1",
"type" : "ClutterBehaviourDepth",
"alpha" : { "timeline" : "timeline-1", "function" : "alpha_func" },
...
}
And:
{
"id" : "alpha-1",
"type" : "ClutterAlpha",
"timeline" : "timeline-1",
"function" : "alpha_func"
},
{
"id" : "behaviour-1",
"type" : "ClutterBehaviourDepth",
"alpha" : "alpha-1",
...
}
The latter allows defining a single alpha function for multiple
behaviours.
clutter/clutter-alpha.c | 102 +++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 101 insertions(+), 1 deletion(-)
commit 50aec3c540d6609d9980fab6a26ba14869982c8b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Oct 21 15:17:50 2009 +0100
script: Always allow setting object properties by id reference
The block that allows setting a GObject property holding an object
instance is conditionally depending on the USE_PIXBUF define. This
makes it impossible to reference an object inside ClutterScript on
platforms not using GdkPixbuf.
clutter/clutter-script.c | 25 +++++++++++++++----------
1 file changed, 15 insertions(+), 10 deletions(-)
commit ef8ae7d72f752e10552e254c1ff9e76d19430aac
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Oct 21 15:16:43 2009 +0100
behaviour: Notify changes of the :alpha property
The set_alpha() setter of ClutterBehaviour is not emitting notifications
for the alpha property.
clutter/clutter-behaviour.c | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
commit c13701052497b4cdb009f95ad8ccce9f4a7d825e
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date: Mon Oct 5 23:20:07 2009 -0400
Force a relayout when showing an actor
When an actor is hidden, the parent actor is not required to
size request or allocate it. (ClutterGroup does, but, for example,
NbtkBoxLayout doesn't.) This means that the
needs_width_request/needs_height_request/needs_allocate can be
stale when we go to show it again - they are set for the actor
but not the parent. Explicitly setting them to FALSE avoids
clutter_actor_relayout() improperly short-circuiting.
http://bugzilla.openedhand.com/show_bug.cgi?id=1831
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
clutter/clutter-actor.c | 9 +++++++++
1 file changed, 9 insertions(+)
commit 571df43b6d2348fd4db4b0275c8ed55e760ab353
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Oct 20 22:05:04 2009 +0100
text: Invalidate caches and sizes in set_text_internal()
The change in commit 3bbc96e17e5a03ba931c86a5cd2a0ecaa2a3b77b moved the
:text property setter to use set_text_internal(); this function does not
invalidate the Layout cache and does not queue a relayout, thus breaking
the behaviour of ClutterText when setting the contents of the actor using
the property.
http://bugzilla.openedhand.com/show_bug.cgi?id=1851
clutter/clutter-text.c | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
commit 91c38f877fe0a6224c648ec9f6ecbab8190b536e
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Oct 20 14:57:40 2009 +0100
[group] Fix copy & paste error from 857b0239e (Use FixedLayout inside Group)
clutter_group_get_preferred_height was calling
clutter_layout_manager_get_preferred_width which e.g. broke
test-actor-clone.
clutter/clutter-group.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
commit 74f2122b68547ac6228c1a8d49765aa71638fa1b
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Sep 29 02:56:23 2009 +0100
[gles2] remove lots of redundant matrix stack code
Since we no longer depend on the GL matrix API in Cogl we can remove a lot
of wrapper code from the GLES 2 backend. This is particularly nice given
that there was no code shared between the cogl-matrix-stack API and gles2
wrappers so we had a lot of duplicated logic.
clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.c | 287 +++------------------
clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.h | 9 +-
2 files changed, 34 insertions(+), 262 deletions(-)
commit 5e5d94dfbed18bf2b4c8c7a7ff9847952b2c4ae2
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Oct 13 23:09:42 2009 +0100
[cogl] Removes the cogl-current-matrix abstraction
The indirection through this API isn't necessary since we no longer
arbitrate between the OpenGL matrix API and Cogl's client side API. Also it
doesn't help to maintain an OpenGL style matrix mode API for internal use
since it's awkward to keep restoring the MODELVIEW mode and easy enough to
directly work with the matrix stacks of interest.
This replaces use of the _cogl_current_matrix API with direct use of the
_cogl_matrix_stack API. All the unused cogl_current_matrix API is removed
and the matrix utility code left in cogl-current-matrix.c was moved to
cogl.c.
clutter/cogl/cogl/Makefile.am | 2 -
clutter/cogl/cogl/cogl-clip-stack.c | 15 +-
clutter/cogl/cogl/cogl-context.c | 8 +-
clutter/cogl/cogl/cogl-context.h | 4 +-
clutter/cogl/cogl/cogl-current-matrix.h | 95 ----------
clutter/cogl/cogl/cogl-internal.h | 14 +-
clutter/cogl/cogl/cogl-material.c | 2 +
clutter/cogl/cogl/cogl-texture.c | 28 ++-
clutter/cogl/cogl/cogl-util.c | 1 -
clutter/cogl/cogl/cogl.c | 228 ++++++++++++++++++++----
clutter/cogl/cogl/driver/gl/cogl-fbo.c | 26 ++-
clutter/cogl/cogl/driver/gl/cogl-primitives.c | 24 +--
clutter/cogl/cogl/driver/gles/cogl-fbo.c | 27 ++-
clutter/cogl/cogl/driver/gles/cogl-primitives.c | 24 +--
doc/reference/cogl/Makefile.am | 1 -
15 files changed, 271 insertions(+), 228 deletions(-)
commit 9f7bf9fb4d234a25aba03266a286bc8c2d41f3fd
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Oct 14 10:53:48 2009 +0100
[matrix-stack] Adds ctx->flushed_matrix_mode to cache the gl matrix mode
This cache of the gl matrix mode lets us avoid repeat calls to glMatrixMode
in _cogl_matrix_stack_flush_to_gl when we have lots of sequential modelview
matrix modifications.
clutter/cogl/cogl/cogl-context.c | 1 +
clutter/cogl/cogl/cogl-context.h | 1 +
clutter/cogl/cogl/cogl-matrix-stack.c | 30 ++++++++++++++++++------------
3 files changed, 20 insertions(+), 12 deletions(-)
commit b1f9f0a97d1abd4465ed7c7bed1da4ed366491ad
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Oct 6 12:36:32 2009 +0100
matrix-stack: more optimization for load_identity case
This goes a bit further than the previous patch, and as a special case
we now simply represent identity matrices using a boolean, and only
lazily initialize them when they need to be modified.
clutter/cogl/cogl/cogl-matrix-stack.c | 82 ++++++++++++++++++++++++++++++-----
1 file changed, 71 insertions(+), 11 deletions(-)
commit 460025d60348e3346cfd864b81d9867ea8474eee
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Oct 6 10:52:07 2009 +0100
[matrix-stack] avoid redundant clearing of matrix when using load_identity
The journal always uses an identity matrix since it uses software
transformation. Currently it manually uses glLoadMatrix since previous
experimentation showed that the cogl-matrix-stack gave bad performance, but
it would be nice to fix performance so we only have to care about one path
for loading matrices.
For the common case where we do:
cogl_matrix_stack_push()
cogl_matrix_stack_load_identity()
we were effectively initializing the matrix 3 times. Once due to use of
g_slice_new0, then we had a cogl_matrix_init_identity in
_cogl_matrix_state_new for good measure, and then finally in
cogl_matrix_stack_load_identity we did another cogl_matrix_init_identity.
We don't use g_slice_new0 anymore, _cogl_matrix_state_new is documented as
not initializing the matrix (instead _cogl_matrix_stack_top_mutable now
takes a boolean to choose if new stack entries should be initialised) and so
we now only initialize once in cogl_matrix_stack_load_identity.
clutter/cogl/cogl/cogl-matrix-stack.c | 54 +++++++++++++++++------------------
1 file changed, 26 insertions(+), 28 deletions(-)
commit 2656b569b9911b8aa427a5a02c8b1f4095de6ed7
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Sep 29 02:58:27 2009 +0100
[current-matrix] Adds texture matrix stacks + removes GL matrix API usage
This relates back to an earlier commitment to stop using the OpenGL matrix
API which is considered deprecated. (ref 54159f5a1d029db)
The new texture matrix stacks are hung from a list of (internal only)
CoglTextureUnit structures which the CoglMaterial code internally references
via _cogl_get_texure_unit ().
So we would be left with only the cogl-matrix-stack code being responsible
for glMatrixMode, glLoadMatrix and glLoadIdentity this commit updates the
journal code so it now uses the matrix-stack API instead of GL directly.
clutter/cogl/cogl/cogl-context.c | 4 +
clutter/cogl/cogl/cogl-context.h | 5 +-
clutter/cogl/cogl/cogl-current-matrix.c | 236 +++++++-------------------------
clutter/cogl/cogl/cogl-internal.h | 12 ++
clutter/cogl/cogl/cogl-journal.c | 33 +++--
clutter/cogl/cogl/cogl-material.c | 22 +--
clutter/cogl/cogl/cogl-matrix-stack.c | 15 +-
clutter/cogl/cogl/cogl.c | 59 ++++++++
8 files changed, 174 insertions(+), 212 deletions(-)
commit 473f7ee31ebd6d52126978ba4e155a3bebc4cac1
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Oct 19 15:31:29 2009 +0100
text: Take pre-edit cursor position into account
When determining the cursor position we also need to take into account
the pre-edit cursor position as set by the set_preedit_string()
function.
clutter/clutter-text.c | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
commit 23cd0b79254acd2b97467a62010244328e210a87
Author: Emmanuele Bassi <ebassi@gnome.org>
Date: Mon Oct 19 12:01:38 2009 +0100
docs: Documentation fixes
• Fix list_stages() and peek_stages() documentation
• Fix clutter_text_set_preedit_string() arguments in the header
to match source and documentation
• Add clutter_units_cm() to the private section for Units
• Rename the LayoutManager section
• Add FlowLayout:homogeneous accessors
clutter/clutter-stage-manager.c | 4 ++--
clutter/clutter-text.h | 4 ++--
doc/reference/clutter/clutter-sections.txt | 9 ++++++---
3 files changed, 10 insertions(+), 7 deletions(-)
commit ba25571c8e34593f99ba302edf381a0151c98bbb
Merge: 936779fd9 8ce8b9138
Author: Emmanuele Bassi <ebassi@gnome.org>
Date: Mon Oct 19 11:45:15 2009 +0100
Merge branch 'layout-manager'
* layout-manager: (50 commits)
docs: Reword a link
layout, docs: Add more documentation to LayoutManager
layout, docs: Fix description of Bin properties
layout, bin: Use ceilf() instead of casting to int
layout, docs: Add long description for FlowLayout
layout, box: Clean up
layout, box: Write long description for Box
layout, docs: Remove unused functions
layout: Document BoxLayout
layout: Add BoxLayout, a single line layout manager
layout: Report the correct size of FlowLayout
layout: Resizing the stage resizes the FlowLayout box
layout: Use the get_request_mode() getter in BinLayout
layout: Change the request-mode along with the orientation
actor: Add set_request_mode() method
[layout] Remove FlowLayout:wrap
[layout] Rename BinLayout and FlowLayout interactive tests
[layout] Skip invisible children in FlowLayout
[layout] Clean up and document FlowLayout
[layout] Snap children of FlowLayout to column/row
...
commit 8ce8b91383390482efe56d982d945a384766ca8c
Author: Emmanuele Bassi <ebassi@gnome.org>
Date: Mon Oct 19 11:44:29 2009 +0100
docs: Reword a link
clutter/clutter-layout-manager.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
commit cd3c85f7ba9094a250ec03f0380428fadafef0df
Author: Emmanuele Bassi <ebassi@gnome.org>
Date: Mon Oct 19 11:00:23 2009 +0100
layout, docs: Add more documentation to LayoutManager
The layout manager reference should have some documentation on how
to use a LayoutManager object inside a container and how to implement
a LayoutManager sub-class correctly.
clutter/clutter-layout-manager.c | 41 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 41 insertions(+)
commit 936779fd96cc0d8d6713c5cb4c5dc9240cc04d97
Author: Emmanuele Bassi <ebassi@gnome.org>
Date: Sun Oct 18 17:49:00 2009 +0100
build: Add back QUIET_GEN to the GIR generation
clutter/Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit bc8a7bd5b4c70247e4bc8cccc194c12e5b6a9a2f
Author: Emmanuele Bassi <ebassi@gnome.org>
Date: Sun Oct 18 17:15:04 2009 +0100
Update ignore file
.gitignore | 13 ++++++-------
1 file changed, 6 insertions(+), 7 deletions(-)
commit ab376d961fee066f809169f32946a32700ea0e53
Author: Emmanuele Bassi <ebassi@gnome.org>
Date: Sun Oct 18 17:12:12 2009 +0100
build: De-nest the JSON from the introspection rules
The JSON conditional rules can be moved outside the introspection
conditional ones to avoid a nested check, as all the JSON rules do
is setting up variables that may or may not be used.
clutter/Makefile.am | 26 ++++++++++++--------------
1 file changed, 12 insertions(+), 14 deletions(-)
commit 5c162d904bbbbd5ae0f66885497dd0658d27e87f
Author: Emmanuele Bassi <ebassi@gnome.org>
Date: Sun Oct 18 17:11:42 2009 +0100
build: Use QUIET_GEN when building ClutterJson GIR
clutter/json/Makefile.am | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
commit 8f11b3ca48fde34f5bc214f1ff122e5ed6298eac
Author: Emmanuele Bassi <ebassi@gnome.org>
Date: Sun Oct 18 17:00:24 2009 +0100
build: Fix up the GIR generation rules
The rules for generating Clutter's introspection data are
still referencing the old COGL layout.
clutter/Makefile.am | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
commit ad5c0af6399353ad49663954c6abd7305ecc9ad6
Author: Emmanuele Bassi <ebassi@gnome.org>
Date: Sat Oct 17 00:30:37 2009 +0100
build: Add CPPFLAGS for the g-ir-scanner command line
When I moved all CPP flags to AM_CPPFLAGS from the INCLUDES directive
I forgot that g-ir-scanner needs those defines as well.
clutter/Makefile.am | 1 +
1 file changed, 1 insertion(+)
commit ef9ea9e2377f63e8bbf22f4829b8a51953a434ef
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Sep 16 14:01:57 2009 +0100
[cogl-primitives] Split the journal out from cogl-primitives.c
The Journal can be considered a standalone component, so even though
it's currently only used to log quads, it seems better to split it
out into its own file.
clutter/cogl/cogl/Makefile.am | 2 +
clutter/cogl/cogl/cogl-context.c | 1 +
clutter/cogl/cogl/cogl-journal-private.h | 57 +++
clutter/cogl/cogl/cogl-journal.c | 744 +++++++++++++++++++++++++++++++
clutter/cogl/cogl/cogl-primitives.c | 705 +----------------------------
clutter/cogl/cogl/cogl-texture-private.h | 14 -
6 files changed, 805 insertions(+), 718 deletions(-)
commit 8790306629f8186bba7998b5567c2a45aafb87d9
Author: Robert Bragg <robert@linux.intel.com>
Date: Sun Sep 6 21:47:46 2009 +0100
[test-backface-culling] Check that inverted tex coords don't affect culling
The additional check draws another front facing rectangle but this time with
the texture coords flipped on the x axis. The code that handles sliced
textures in cogl-primitives.c makes some suspicious changes to the geometry
when the texture coords are inverted.
tests/conform/test-backface-culling.c | 28 ++++++++++++++++++++--------
1 file changed, 20 insertions(+), 8 deletions(-)
commit 2f628b1a8a405d2e4c08f2b2d125002ded0d8981
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Sep 23 15:11:55 2009 +0100
[cogl-spans] split out cogl-spans code from cogl-texture-2d-sliced
When we implement atlas textures we will probably want to use the spans API
to handle texture repeating so it doesn't make sense to leave the code in
cogl-texture-2d-sliced.c. Since it's a standalone set of data structures
and algorithms it also seems reasonable to split out from cogl-texture.
clutter/cogl/cogl/Makefile.am | 2 +
clutter/cogl/cogl/cogl-spans.c | 132 ++++++++++++++
clutter/cogl/cogl/cogl-spans.h | 70 ++++++++
clutter/cogl/cogl/cogl-texture-2d-sliced-private.h | 27 ---
clutter/cogl/cogl/cogl-texture-2d-sliced.c | 195 +++++----------------
5 files changed, 248 insertions(+), 178 deletions(-)
commit 568d6841871bdfea5d49d2a8143a49a0a7664a7b
Author: Vladimir Nadvornik <nadvornik@suse.cz>
Date: Sun Aug 30 12:36:11 2009 +0200
[cogl-texture] Split CoglTexture into an abstract class + CoglTexture2dSliced
cogl-texture-2d-sliced provides an implementation of CoglTexture and this
seperation lays the foundation for potentially supporting atlas textures,
pixmap textures (as in GLX_EXT_texture_from_pixmap) and fast-path
GL_TEXTURE_{1D,2D,3D,RECTANGLE} textures in a maintainable fashion.
clutter/cogl/cogl/Makefile.am | 2 +
clutter/cogl/cogl/cogl-context.c | 2 +
clutter/cogl/cogl/cogl-context.h | 2 +
clutter/cogl/cogl/cogl-handle.h | 4 +-
clutter/cogl/cogl/cogl-texture-2d-sliced-private.h | 191 ++
clutter/cogl/cogl/cogl-texture-2d-sliced.c | 1871 +++++++++++++++++++
clutter/cogl/cogl/cogl-texture-driver.h | 12 +
clutter/cogl/cogl/cogl-texture-private.h | 80 +-
clutter/cogl/cogl/cogl-texture.c | 1926 +++++---------------
clutter/cogl/cogl/driver/gl/cogl-texture-driver.c | 97 +-
.../cogl/cogl/driver/gles/cogl-context-driver.c | 2 -
.../cogl/cogl/driver/gles/cogl-context-driver.h | 2 -
.../cogl/cogl/driver/gles/cogl-texture-driver.c | 217 +--
13 files changed, 2551 insertions(+), 1857 deletions(-)
commit 9da26fc1ca820d12d325df400e6e02d7cd25423a
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Sep 16 11:56:17 2009 +0100
[cogl-texture] Seal CoglTexture internals from cogl-primitives.c
cogl-primitives.c was previously digging right into CoglTextures so it could
manually iterate the texture slices for texturing quads and polygons and
because we were missing some state getters we were lazily just poking into
the structures directly.
This adds some extra state getter functions, and adds a higher level
_cogl_texture_foreach_slice () API that hopefully simplifies the way in
which sliced textures may be used to render primitives. This lets you
specify a rectangle in "virtual" texture coords and it will call a given
callback for each slice that intersects that rectangle giving the virtual
coords of the current slice and corresponding "real" texture coordinates for
the underlying gl texture.
At the same time a noteable bug in how we previously iterated sliced
textures was fixed, whereby we weren't correctly handling inverted texture
coordinates. E.g. with the previous code if you supplied texture coords of
tx1=100,ty1=0,tx2=0,ty2=100 (inverted along y axis) that would result in a
back-facing quad, which could be discarded if using back-face culling.
clutter/cogl/cogl/cogl-material.c | 9 +-
clutter/cogl/cogl/cogl-primitives.c | 736 +++++++++++++++----------------
clutter/cogl/cogl/cogl-texture-private.h | 47 +-
clutter/cogl/cogl/cogl-texture.c | 239 +++++++++-
clutter/cogl/cogl/cogl-vertex-buffer.c | 6 +-
clutter/cogl/cogl/driver/gl/cogl-fbo.c | 29 +-
clutter/cogl/cogl/driver/gles/cogl-fbo.c | 29 +-
7 files changed, 640 insertions(+), 455 deletions(-)
commit 52cecd50ec87b617cc20dbc3ba4f843340fb5d63
Author: Robert Bragg <robert@linux.intel.com>
Date: Thu Jul 30 12:06:02 2009 +0100
[docs] switch gl_handle+gl_target docs for cogl_texture_new_from_foreign
The descriptions for gl_handle and gl_target were inverted.
Thanks to Young-Ho Cha for spotting that.
Signed-off-by: Robert Bragg <robert@linux.intel.com>
clutter/cogl/cogl/cogl-texture.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
commit 95a869dab1b893f74c5b880e7be43e134eeb706f
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Jul 29 17:21:07 2009 +0100
[cogl] move clutter/pango to clutter/cogl/pango
As part of the re-organisation of Cogl; move clutter/pango to be part of the
cogl sub-project.
clutter/Makefile.am | 22 +++++++++++-----------
clutter/cogl/Makefile.am | 2 +-
clutter/{ => cogl}/pango/Makefile.am | 0
clutter/{ => cogl}/pango/cogl-pango-display-list.c | 0
clutter/{ => cogl}/pango/cogl-pango-display-list.h | 0
clutter/{ => cogl}/pango/cogl-pango-fontmap.c | 0
clutter/{ => cogl}/pango/cogl-pango-glyph-cache.c | 0
clutter/{ => cogl}/pango/cogl-pango-glyph-cache.h | 0
clutter/{ => cogl}/pango/cogl-pango-private.h | 0
clutter/{ => cogl}/pango/cogl-pango-render.c | 0
clutter/{ => cogl}/pango/cogl-pango.h | 0
configure.ac | 2 +-
12 files changed, 13 insertions(+), 13 deletions(-)
commit 43efab46bcf88c14cc429c6c7b659bdbc84f1f71
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Jul 28 02:02:02 2009 +0100
Intial Re-layout of the Cogl source code and introduction of a Cogl Winsys
As part of an incremental process to have Cogl be a standalone project we
want to re-consider how we organise the Cogl source code.
Currently this is the structure I'm aiming for:
cogl/
cogl/
<put common source here>
winsys/
cogl-glx.c
cogl-wgl.c
driver/
gl/
gles/
os/ ?
utils/
cogl-fixed
cogl-matrix-stack?
cogl-journal?
cogl-primitives?
pango/
The new winsys component is a starting point for migrating window system
code (i.e. x11,glx,wgl,osx,egl etc) from Clutter to Cogl.
The utils/ and pango/ directories aren't added by this commit, but they are
noted because I plan to add them soon.
Overview of the planned structure:
* The winsys/ API is the API that binds OpenGL to a specific window system,
be that X11 or win32 etc. Example are glx, wgl and egl. Much of the logic
under clutter/{glx,osx,win32 etc} should migrate here.
* Note there is also the idea of a winsys-base that may represent a window
system for which there are multiple winsys APIs. An example of this is
x11, since glx and egl may both be used with x11. (currently only Clutter
has the idea of a winsys-base)
* The driver/ represents a specific varient of OpenGL. Currently we have "gl"
representing OpenGL 1.4-2.1 (mostly fixed function) and "gles" representing
GLES 1.1 (fixed funciton) and 2.0 (fully shader based)
* Everything under cogl/ should fundamentally be supporting access to the
GPU. Essentially Cogl's most basic requirement is to provide a nice GPU
Graphics API and drawing a line between this and the utility functionality
we add to support Clutter should help keep this lean and maintainable.
* Code under utils/ as suggested builds on cogl/ adding more convenient
APIs or mechanism to optimize special cases. Broadly speaking you can
compare cogl/ to OpenGL and utils/ to GLU.
* clutter/pango will be moved to clutter/cogl/pango
How some of the internal configure.ac/pkg-config terminology has changed:
backendextra -> CLUTTER_WINSYS_BASE # e.g. "x11"
backendextralib -> CLUTTER_WINSYS_BASE_LIB # e.g. "x11/libclutter-x11.la"
clutterbackend -> {CLUTTER,COGL}_WINSYS # e.g. "glx"
CLUTTER_FLAVOUR -> {CLUTTER,COGL}_WINSYS
clutterbackendlib -> CLUTTER_WINSYS_LIB
CLUTTER_COGL -> COGL_DRIVER # e.g. "gl"
Note: The CLUTTER_FLAVOUR and CLUTTER_COGL defines are kept for apps
As the first thing to take advantage of the new winsys component in Cogl;
cogl_get_proc_address() has been moved from cogl/{gl,gles}/cogl.c into
cogl/common/cogl.c and this common implementation first trys
_cogl_winsys_get_proc_address() but if that fails then it falls back to
gmodule.
Makefile.am | 8 +-
clutter.pc.in | 10 +-
clutter/Makefile.am | 38 ++---
clutter/cogl/Makefile.am | 89 +-----------
clutter/cogl/TODO | 25 ----
clutter/cogl/cogl.pc.in | 15 --
clutter/cogl/cogl/Makefile.am | 161 +++++++++++++++++++++
.../cogl/{common => cogl}/cogl-bitmap-fallback.c | 0
clutter/cogl/{common => cogl}/cogl-bitmap-pixbuf.c | 0
.../cogl/{common => cogl}/cogl-bitmap-private.h | 0
clutter/cogl/{common => cogl}/cogl-bitmap.c | 0
clutter/cogl/{ => cogl}/cogl-bitmap.h | 0
clutter/cogl/{common => cogl}/cogl-blend-string.c | 0
clutter/cogl/{common => cogl}/cogl-blend-string.h | 0
clutter/cogl/{common => cogl}/cogl-clip-stack.c | 0
clutter/cogl/{common => cogl}/cogl-clip-stack.h | 0
clutter/cogl/{common => cogl}/cogl-color.c | 0
clutter/cogl/{ => cogl}/cogl-color.h | 0
clutter/cogl/{common => cogl}/cogl-context.c | 0
clutter/cogl/{common => cogl}/cogl-context.h | 0
.../cogl/{common => cogl}/cogl-current-matrix.c | 0
.../cogl/{common => cogl}/cogl-current-matrix.h | 0
clutter/cogl/{common => cogl}/cogl-debug.c | 0
clutter/cogl/{ => cogl}/cogl-debug.h | 0
clutter/cogl/{ => cogl}/cogl-deprecated.h | 0
clutter/cogl/{common => cogl}/cogl-enum-types.c.in | 0
clutter/cogl/{common => cogl}/cogl-enum-types.h.in | 0
clutter/cogl/{common => cogl}/cogl-fixed.c | 0
clutter/cogl/{ => cogl}/cogl-fixed.h | 0
clutter/cogl/{common => cogl}/cogl-handle.h | 0
clutter/cogl/{common => cogl}/cogl-internal.h | 0
.../cogl/{common => cogl}/cogl-material-private.h | 0
clutter/cogl/{common => cogl}/cogl-material.c | 0
clutter/cogl/{ => cogl}/cogl-material.h | 0
clutter/cogl/{common => cogl}/cogl-matrix-stack.c | 0
clutter/cogl/{common => cogl}/cogl-matrix-stack.h | 3 +-
clutter/cogl/{common => cogl}/cogl-matrix.c | 0
clutter/cogl/{ => cogl}/cogl-matrix.h | 0
clutter/cogl/{ => cogl}/cogl-offscreen.h | 0
clutter/cogl/{ => cogl}/cogl-path.h | 0
clutter/cogl/{common => cogl}/cogl-primitives.c | 0
clutter/cogl/{common => cogl}/cogl-primitives.h | 6 +-
clutter/cogl/{ => cogl}/cogl-shader.h | 0
.../cogl/{common => cogl}/cogl-texture-driver.h | 0
.../cogl/{common => cogl}/cogl-texture-private.h | 0
clutter/cogl/{common => cogl}/cogl-texture.c | 0
clutter/cogl/{ => cogl}/cogl-texture.h | 0
clutter/cogl/{ => cogl}/cogl-types.h | 0
clutter/cogl/{common => cogl}/cogl-util.c | 0
clutter/cogl/{common => cogl}/cogl-util.h | 0
.../{common => cogl}/cogl-vertex-buffer-private.h | 0
clutter/cogl/{common => cogl}/cogl-vertex-buffer.c | 0
clutter/cogl/{ => cogl}/cogl-vertex-buffer.h | 0
clutter/cogl/{common => cogl}/cogl.c | 35 ++++-
clutter/cogl/{ => cogl}/cogl.h.in | 2 +-
clutter/cogl/cogl/cogl.pc.in | 17 +++
clutter/cogl/cogl/driver/Makefile.am | 7 +
clutter/cogl/cogl/driver/gl/Makefile.am | 39 +++++
.../{ => cogl/driver}/gl/cogl-context-driver.c | 0
.../{ => cogl/driver}/gl/cogl-context-driver.h | 0
.../cogl/{ => cogl/driver}/gl/cogl-defines.h.in | 0
clutter/cogl/{ => cogl/driver}/gl/cogl-fbo.c | 0
clutter/cogl/{ => cogl/driver}/gl/cogl-fbo.h | 0
.../cogl/{ => cogl/driver}/gl/cogl-primitives.c | 0
clutter/cogl/{ => cogl/driver}/gl/cogl-program.c | 0
clutter/cogl/{ => cogl/driver}/gl/cogl-program.h | 0
.../{ => cogl/driver}/gl/cogl-shader-private.h | 0
clutter/cogl/{ => cogl/driver}/gl/cogl-shader.c | 0
.../{ => cogl/driver}/gl/cogl-texture-driver.c | 0
clutter/cogl/{ => cogl/driver}/gl/cogl.c | 72 ---------
clutter/cogl/cogl/driver/gles/Makefile.am | 62 ++++++++
.../{ => cogl/driver}/gles/cogl-context-driver.c | 0
.../{ => cogl/driver}/gles/cogl-context-driver.h | 0
.../cogl/{ => cogl/driver}/gles/cogl-defines.h.in | 0
clutter/cogl/{ => cogl/driver}/gles/cogl-fbo.c | 0
clutter/cogl/{ => cogl/driver}/gles/cogl-fbo.h | 0
.../driver}/gles/cogl-fixed-fragment-shader.glsl | 0
.../driver}/gles/cogl-fixed-vertex-shader.glsl | 0
.../{ => cogl/driver}/gles/cogl-gles2-wrapper.c | 0
.../{ => cogl/driver}/gles/cogl-gles2-wrapper.h | 0
.../cogl/{ => cogl/driver}/gles/cogl-primitives.c | 0
clutter/cogl/{ => cogl/driver}/gles/cogl-program.c | 0
clutter/cogl/{ => cogl/driver}/gles/cogl-program.h | 0
.../{ => cogl/driver}/gles/cogl-shader-private.h | 0
clutter/cogl/{ => cogl/driver}/gles/cogl-shader.c | 0
.../{ => cogl/driver}/gles/cogl-texture-driver.c | 0
clutter/cogl/{ => cogl/driver}/gles/cogl-util.c | 0
clutter/cogl/{ => cogl/driver}/gles/cogl-util.h | 0
clutter/cogl/{ => cogl/driver}/gles/cogl.c | 10 --
clutter/cogl/{ => cogl/driver}/gles/stringify.sh | 0
clutter/cogl/{common => cogl}/stb_image.c | 0
clutter/cogl/cogl/winsys/Makefile.am | 43 ++++++
clutter/cogl/cogl/winsys/cogl-eglnative.c | 35 +++++
clutter/cogl/cogl/winsys/cogl-eglx.c | 35 +++++
clutter/cogl/cogl/winsys/cogl-fruity.c | 35 +++++
clutter/cogl/cogl/winsys/cogl-glx.c | 78 ++++++++++
clutter/cogl/cogl/winsys/cogl-osx.c | 35 +++++
clutter/cogl/cogl/winsys/cogl-sdl.c | 35 +++++
clutter/cogl/cogl/winsys/cogl-win32.c | 35 +++++
clutter/cogl/cogl/winsys/cogl-winsys.h | 30 ++++
clutter/cogl/common/Makefile.am | 96 ------------
clutter/eglnative/Makefile.am | 12 +-
clutter/eglx/Makefile.am | 2 +
clutter/fruity/Makefile.am | 8 +-
clutter/glx/Makefile.am | 2 +
clutter/osx/Makefile.am | 6 +-
clutter/sdl/Makefile.am | 2 +
clutter/win32/Makefile.am | 2 +
clutter/win32/clutter-win32.pc.in | 8 +-
clutter/x11/Makefile.am | 2 +
clutter/x11/clutter-x11.pc.in | 10 +-
configure.ac | 119 ++++++++-------
doc/reference/clutter/Makefile.am | 6 +-
doc/reference/cogl/Makefile.am | 11 +-
tests/conform/Makefile.am | 4 +-
tests/interactive/Makefile.am | 4 +-
tests/micro-bench/Makefile.am | 9 +-
tests/tools/Makefile.am | 2 +
118 files changed, 834 insertions(+), 431 deletions(-)
commit 2eea83de75cec3dbc334feecd004a180a7f5b1e5
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Jul 28 01:34:33 2009 +0100
Make the CoglContext structure a bit more maintainable
This moves most of cogl-context.{c.h} to cogl/common with some driver
specific members now living in a CoglContextDriver struct. Driver specific
context initialization and typedefs now live in
cogl/{gl,gles}/cogl-context-driver.{c,h}
Driver specific members can be found under ctx->drv.stuff
clutter/cogl/common/Makefile.am | 2 +
clutter/cogl/common/cogl-blend-string.c | 2 +-
clutter/cogl/{gles => common}/cogl-context.c | 45 ++--
clutter/cogl/{gles => common}/cogl-context.h | 23 +-
clutter/cogl/common/cogl-material.c | 14 +-
clutter/cogl/common/cogl-primitives.c | 12 +-
clutter/cogl/common/cogl-vertex-buffer.c | 26 +--
clutter/cogl/common/cogl.c | 2 +-
clutter/cogl/gl/Makefile.am | 2 +-
clutter/cogl/gl/cogl-context-driver.c | 84 +++++++
.../gl/{cogl-context.h => cogl-context-driver.h} | 106 +--------
clutter/cogl/gl/cogl-context.c | 259 ---------------------
clutter/cogl/gl/cogl-fbo.c | 24 +-
clutter/cogl/gl/cogl-primitives.c | 2 +-
clutter/cogl/gl/cogl-program.c | 50 ++--
clutter/cogl/gl/cogl-shader.c | 12 +-
clutter/cogl/gl/cogl-texture-driver.c | 2 +-
clutter/cogl/gl/cogl.c | 224 +++++++++---------
clutter/cogl/gles/Makefile.am | 2 +-
clutter/cogl/gles/cogl-context-driver.c | 41 ++++
clutter/cogl/gles/cogl-context-driver.h | 44 ++++
clutter/cogl/gles/cogl-fbo.c | 8 +-
clutter/cogl/gles/cogl-gles2-wrapper.c | 2 +-
clutter/cogl/gles/cogl-program.c | 16 +-
clutter/cogl/gles/cogl-texture-driver.c | 14 +-
25 files changed, 417 insertions(+), 601 deletions(-)
commit 157eb437bac38d7a61991f47bd943cb9f6d84ad7
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Jul 28 00:37:11 2009 +0100
Improve cogl-texture maintainability by moving 90% into cogl/common
This splits the limited components that differed between
cogl/{gl,gles}/cogl-texture.c into new {gl,gles}/cogl-texture-driver.c files
and the rest that can now be shared into cogl/common/cogl-texture.c
clutter/cogl/common/Makefile.am | 3 +
clutter/cogl/common/cogl-internal.h | 1 +
clutter/cogl/common/cogl-texture-driver.h | 157 ++
clutter/cogl/{gl => common}/cogl-texture-private.h | 12 +-
clutter/cogl/{gl => common}/cogl-texture.c | 474 +----
clutter/cogl/gl/Makefile.am | 3 +-
clutter/cogl/gl/cogl-texture-driver.c | 454 +++++
clutter/cogl/gles/Makefile.am | 3 +-
clutter/cogl/gles/cogl-gles2-wrapper.h | 1 +
clutter/cogl/gles/cogl-texture-driver.c | 481 +++++
clutter/cogl/gles/cogl-texture-private.h | 144 --
clutter/cogl/gles/cogl-texture.c | 2066 --------------------
12 files changed, 1188 insertions(+), 2611 deletions(-)
commit fe01ec6323967614c6404bc193503adb5bda1624
Author: Robert Bragg <robert@linux.intel.com>
Date: Thu Aug 20 11:54:41 2009 +0100
[stage-egl] support fallbacks in clutter_stage_egl_realize
Most of clutter_stage_egl_realize was renamed to
_clutter_stage_egl_try_realize which now takes a cookie indicating which
fallback number should tried next. clutter_stage_egl_realize now keeps
trying to realize with successive fallback numbers until it succeeds or runs
out of fallbacks.
The only fallback supported for now is for hardware with no stencil buffer
support.
clutter/eglx/clutter-stage-egl.c | 112 ++++++++++++++++++++++++++++-----------
1 file changed, 82 insertions(+), 30 deletions(-)
commit 3187e1964279b3fb93703fe6c67df5b6025729c9
Author: Robert Bragg <robert@linux.intel.com>
Date: Mon Aug 3 14:50:10 2009 +0100
[x11 backend] remove data duplicated between backends and stages
Make backends the canonical point of reference for the xdisplay, the xscreen
number, the x root window and the xvisinfo for creating foreign stages.
clutter/eglx/clutter-backend-egl.c | 10 +--
clutter/eglx/clutter-stage-egl.c | 18 ++--
clutter/glx/clutter-backend-glx.c | 59 +++++++------
clutter/glx/clutter-backend-glx.h | 6 ++
clutter/glx/clutter-stage-glx.c | 58 ++++++------
clutter/x11/clutter-backend-x11.c | 1 +
clutter/x11/clutter-backend-x11.h | 5 ++
clutter/x11/clutter-stage-x11.c | 177 +++++++++++++++++++++++--------------
clutter/x11/clutter-stage-x11.h | 8 +-
9 files changed, 200 insertions(+), 142 deletions(-)
commit 63414ab233522b0da8462b32c4e36e74be891475
Author: Robert Bragg <robert@linux.intel.com>
Date: Fri Jul 31 20:39:28 2009 +0100
[glx backend] white space fixes
Simply removes lots of trailing white spaces
clutter/glx/clutter-backend-glx.c | 40 +++++++++++++++++++--------------------
1 file changed, 20 insertions(+), 20 deletions(-)
commit 45a668bef855b8564236a3153bf07e1ea0148d16
Author: Robert Bragg <robert@linux.intel.com>
Date: Fri Jul 31 17:07:10 2009 +0100
[glx backend] use FBConfigs instead of Visuals for GL context creation
This replaces calls to the old (glx 1.2) functions glXChooseVisual,
glXCreateContext, glXMakeCurrent with the 1.3+ fbconfig varients
glXChooseFBConfig, glXCreateNewContext, glXMakeContextCurrent.
clutter/glx/clutter-backend-glx.c | 122 +++++++++++++++++++++++---------------
1 file changed, 75 insertions(+), 47 deletions(-)
commit 15d7a86621f3fc80d3d50e7f5a3a141412163e7f
Author: Robert Bragg <robert@linux.intel.com>
Date: Fri Jul 31 18:34:51 2009 +0100
[backends] Remove the idea of offscreen stages from all backends
The only backend that tried to implement offscreen stages was the GLX backend
and even this has apparently be broken for some time without anyone noticing.
The property still remains and since the property already clearly states that
it may not work I don't expect anyone to notice.
This simplifies quite a bit of the GLX code which is very desireable from the
POV that we want to start migrating window system code down to Cogl and the
simpler the code is the more straight forward this work will be.
In the future when Cogl has a nicely designed API for framebuffer objects then
re-implementing offscreen stages cleanly for *all* backends should be quite
straightforward.
clutter/clutter-backend.c | 3 +-
clutter/clutter-backend.h | 1 -
clutter/clutter-private.h | 1 -
clutter/clutter-stage.c | 33 +---
clutter/eglnative/clutter-stage-egl.c | 217 +++++++++++-------------
clutter/eglx/clutter-backend-egl.c | 3 +-
clutter/eglx/clutter-stage-egl.c | 307 +++++++++++++++-------------------
clutter/fruity/clutter-stage-fruity.c | 175 +++++++++----------
clutter/glx/clutter-backend-glx.c | 59 ++-----
clutter/glx/clutter-stage-glx.c | 224 ++++++++-----------------
clutter/osx/clutter-stage-osx.c | 10 --
clutter/sdl/clutter-stage-sdl.c | 39 ++---
clutter/x11/clutter-backend-x11.c | 5 +-
clutter/x11/clutter-backend-x11.h | 8 +-
clutter/x11/clutter-stage-x11.c | 5 +-
15 files changed, 435 insertions(+), 655 deletions(-)
commit 35f11d863c4ac66136df9846c898ed88ff8ffb34
Author: Robert Bragg <robert@linux.intel.com>
Date: Fri Oct 16 17:15:47 2009 +0100
[build] more Makefile.am.{enums,marshal} fixes for out of tree builds
for the marshal files $(srcdir) was getting prefixed twice since my last
commit (2cc88f1140) since it was already being prefixed including
Makefile.am. The problem with prefixing it in the includer file though is
that the Make variable substitutions like :.list=.h mean we end up
generating into the $(srcdir). This removes the prefix added in
clutter/Makefile.am
We were also missing a $(srcdir) prefix when setting EXTRA_DIST
build/autotools/Makefile.am.enums | 2 +-
build/autotools/Makefile.am.marshal | 3 ++-
clutter/Makefile.am | 2 +-
3 files changed, 4 insertions(+), 3 deletions(-)
commit f1acc91f3704bfff45652aea4f14355485f34df0
Author: Emmanuele Bassi <ebassi@gnome.org>
Date: Fri Oct 16 15:57:21 2009 +0100
Simple coding style fix for commit c5551184
clutter/clutter-interval.c | 2 ++
1 file changed, 2 insertions(+)
commit a9d2c0f6903fff5a5b445265040f8bb689c10750
Merge: b5adbf89b 70c812845
Author: Emmanuele Bassi <ebassi@gnome.org>
Date: Fri Oct 16 15:55:05 2009 +0100
Merge branch 'bug-1846'
* bug-1846:
Fix warning message in the ParamSpec validation
commit b5adbf89b851baa9fb833b00ad6137cc5e6547cb
Merge: ee9f8c3bd c5551184b
Author: Emmanuele Bassi <ebassi@gnome.org>
Date: Fri Oct 16 15:55:04 2009 +0100
Merge branch 'bug-1845'
* bug-1845:
Add a warning when ClutterInterval can't compute progress
commit 70c8128457d49bf9dde0838470f1b4b363f9aafb
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Mon Oct 12 17:05:05 2009 +0100
Fix warning message in the ParamSpec validation
When validating a new GValue against the ClutterParamSpecUnits, we issue
a warning when the units do not match with both the new value and the
unit we expect to have. Unfortunately we were printing the unit of the
new value twice and not the unit of the ParamSpec.
http://bugzilla.openedhand.com/show_bug.cgi?id=1846
clutter/clutter-units.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit c5551184b0337ea8a990b14e52eb15e855a27ca9
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Mon Oct 12 16:45:39 2009 +0100
Add a warning when ClutterInterval can't compute progress
This is really useful when trying to animate GTypes that haven't
registered any progress function. Instead of silently not working it
will warn the developer.
http://bugzilla.openedhand.com/show_bug.cgi?id=1845
clutter/clutter-interval.c | 9 +++++++++
1 file changed, 9 insertions(+)
commit ee9f8c3bdf9672e0d79598eed8f73569190888dc
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Mon Oct 12 16:28:10 2009 +0100
Add ClutterInterval integration
To be able to animate CLUTTER_TYPE_UNITS properties we need to register
the GType and its progress function against the ClutterInterval code.
The two ClutterUnits defining the interval can use different units, the
resulting unit will always be in pixels, so calculating a progress
between 10px and 4cm is valid.
http://bugzilla.openedhand.com/show_bug.cgi?id=1844
clutter/clutter-units.c | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)
commit 83b4ec7a12ea279b59a80f6008e1bece25de3a8c
Author: Emmanuele Bassi <ebassi@gnome.org>
Date: Fri Oct 16 15:25:37 2009 +0100
units: Cache the pixels value inside Units
When computing the pixels value of a ClutterUnits value we should
be caching the value to avoid recomputing for every call of
clutter_units_to_pixels(). We already have a flag telling us to
return the cached value, but we miss the mechanism to evict the
cache whenever the Backend settings affecting the conversion, that
is default font and resolution, change.
In order to implement the eviction we can use a "serial"; the
Backend will have an internal serial field which we retrieve and
put inside the ClutterUnits structure (we split one of the two
64 bit padding fields into two 32 bit fields to maintain ABI); every
time we call clutter_units_to_pixels() we compare the units serial
with that of the Backend; if they match and pixels_set is set to
TRUE then we just return the stored pixels value. If the serials
do not match then we unset the pixels_set flag and recompute the
pixels value.
We can verify this by adding a simple test unit checking that
by changing the resolution of ClutterBackend we get different
pixel values for 1 em.
http://bugzilla.openedhand.com/show_bug.cgi?id=1843
.gitignore | 1 +
clutter/clutter-backend.c | 21 ++++++++++++++++--
clutter/clutter-private.h | 2 ++
clutter/clutter-units.c | 45 ++++++++++++++++++++++++++++++++++++++
clutter/clutter-units.h | 9 +++++++-
tests/conform/test-clutter-units.c | 23 +++++++++++++++++++
tests/conform/test-conform-main.c | 1 +
7 files changed, 99 insertions(+), 3 deletions(-)
commit 2ff31dfbaaad3056265b05efe57eac63f8e3ce61
Author: Emmanuele Bassi <ebassi@gnome.org>
Date: Fri Oct 16 14:22:15 2009 +0100
text: Notify :position when it changes
The :position property is not notified when changed.
http://bugzilla.openedhand.com/show_bug.cgi?id=1830
clutter/clutter-text.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
commit bc424fb56c3a75a822b22c0e5b284b5775f76abe
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sat Sep 19 09:19:06 2009 +0100
[text] NULL-ify strings to avoid double-frees
clutter/clutter-text.c | 1 +
1 file changed, 1 insertion(+)
commit 6f43f4b805387e0cac054d7b002634da3b00b106
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sat Sep 19 09:18:06 2009 +0100
[text] Do not apply unset preedit attributes
The pre-edit attributes are optional and thus should only be applied
if they have been set to avoid assertion failures.
clutter/clutter-text.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
commit 28837283877c11f26565d79e6bcd4b171203a9b0
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Sep 9 12:15:23 2009 +0100
[text] Add pre-edit string to ClutterText
Input Methods require to be able to set a "pre-edit string", that is
a string that it's just displayed into the Text actor without being
committed to the actor's buffer. The string might require custom Pango
attributes, and an update of the cursor position.
clutter/clutter-text.c | 193 ++++++++++++++++++++++++-----
clutter/clutter-text.h | 5 +
doc/reference/clutter/clutter-sections.txt | 1 +
tests/interactive/test-text-field.c | 179 ++++++++++++++++++++++++++
4 files changed, 346 insertions(+), 32 deletions(-)
commit 2cc88f1140ffa774371b877d723dfaf9e33a6ce5
Author: Robert Bragg <robert@linux.intel.com>
Date: Thu Oct 15 19:12:34 2009 +0100
[build] fix Makefile.am.{enums,marshal} to support out of tree builds
Out of tree builds were broken in commit 46b736f42e1165 since we didn't
explicitly use $(srcdir) to find the input files for glib-mkenums and
glib-genmarshal.
build/autotools/Makefile.am.enums | 4 ++--
build/autotools/Makefile.am.marshal | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
commit 87f0b94df7524400b233cd1acca871fa6f8f0a02
Author: Emmanuele Bassi <ebassi@gnome.org>
Date: Thu Oct 15 14:20:44 2009 +0100
layout, docs: Fix description of Bin properties
The BinLayer and BinLayout properties name and blurb for introspection
should be slightly more descriptive.
clutter/clutter-bin-layout.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
commit 852abbb138898467fb6497508e99fb1a92203c78
Author: Emmanuele Bassi <ebassi@gnome.org>
Date: Thu Oct 15 14:12:37 2009 +0100
layout, bin: Use ceilf() instead of casting to int
Casting a float to int to truncate it before assigning the value
to a float again is wrong. We should use ceilf() instead which
does what we want to achieve (rounding up the size to avoid
sub-pixel positioning of children).
clutter/clutter-bin-layout.c | 26 ++++++++++++++------------
1 file changed, 14 insertions(+), 12 deletions(-)
commit 308c930f37c7c00eb6791d53fced7d1c2ac9600e
Author: Emmanuele Bassi <ebassi@gnome.org>
Date: Thu Oct 15 14:11:36 2009 +0100
layout, docs: Add long description for FlowLayout
Add the full description of the layout policy
clutter/clutter-flow-layout.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
commit 4d153e4507fdd8fc135998f771e1826a9b02e658
Author: Emmanuele Bassi <ebassi@gnome.org>
Date: Thu Oct 15 12:15:49 2009 +0100
layout, box: Clean up
* Use g_list_foreach() instead of iterating over the list inside
the destruction sequence, since we are causing the widgets to be
implicitly removed from the list via the destroy() call.
* Use g_signal_connect_swapped() and spare us from a callback.
clutter/clutter-box.c | 20 ++++++--------------
1 file changed, 6 insertions(+), 14 deletions(-)
commit adca939101e3a25309c29e6a263c1c7ac7b0d877
Author: Emmanuele Bassi <ebassi@gnome.org>
Date: Thu Oct 15 12:04:50 2009 +0100
layout, box: Write long description for Box
Also have an example of how to create a Box with a layout manager
and how to use the pack() method.
clutter/clutter-box.c | 45 ++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 44 insertions(+), 1 deletion(-)
commit 9f06f726d409d0ac948179b9771350147c5e699b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Oct 13 16:52:57 2009 +0100
layout, docs: Remove unused functions
The :wrap property and its accessor functions were removed from
ClutterFlowLayout.
doc/reference/clutter/clutter-sections.txt | 2 --
1 file changed, 2 deletions(-)
commit cd3dce1d5d957046934062780d21558e182ceb1a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Oct 13 12:15:25 2009 +0100
layout: Document BoxLayout
Add BoxLayout to the API reference.
doc/reference/clutter/clutter-docs.xml.in | 1 +
doc/reference/clutter/clutter-sections.txt | 38 ++++++++++++++++++++++++++++++
doc/reference/clutter/clutter.types | 1 +
3 files changed, 40 insertions(+)
commit b526b765931bcf4e44feac4ab1b72763eb68f264
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Oct 13 12:14:05 2009 +0100
layout: Add BoxLayout, a single line layout manager
The BoxLayout layout manager implements a layout policy for arranging
children on a single line, either alongside the X axis or alongside the
Y axis.
.gitignore | 1 +
clutter/Makefile.am | 2 +
clutter/clutter-box-layout.c | 1496 +++++++++++++++++++++++++++++++++++
clutter/clutter-box-layout.h | 143 ++++
clutter/clutter.h | 1 +
tests/interactive/Makefile.am | 3 +-
tests/interactive/test-box-layout.c | 207 +++++
7 files changed, 1852 insertions(+), 1 deletion(-)
commit c4b2d4ce797b5ac4c61865d4249badcfb85657f0
Author: Emmanuele Bassi <ebassi@gnome.org>
Date: Thu Oct 8 15:45:29 2009 +0100
layout: Report the correct size of FlowLayout
FlowLayout should compute the correct height for the assigned width when
in horizontal flow, and the correct width for the assigned height when
in vertical flow. This means pre-computing the number of lines inside
the get_preferred_width() and get_preferred_height(). We can then cache
the computed column width and row height, cache them inside the layout
and then use them when allocating the children.
clutter/clutter-flow-layout.c | 457 ++++++++++++++++++++++++++++-------
tests/interactive/test-flow-layout.c | 4 +-
2 files changed, 369 insertions(+), 92 deletions(-)
commit 6f19666b13ac9bde44996620df714484dbe4bd67
Author: Emmanuele Bassi <ebassi@gnome.org>
Date: Wed Oct 7 15:30:29 2009 +0100
layout: Resizing the stage resizes the FlowLayout box
Add some user interaction to verify the dynamic reflowing.
tests/interactive/test-flow-layout.c | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
commit 0876575a9549acd54fbc3c70b4e7178e9e4e1e65
Author: Emmanuele Bassi <ebassi@gnome.org>
Date: Wed Oct 7 15:29:47 2009 +0100
layout: Use the get_request_mode() getter in BinLayout
Instead of using g_object_get(child, "request-mode", ...).
clutter/clutter-bin-layout.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
commit eb40e856e1a687c27d047ee6069b6ec84e1e1237
Author: Emmanuele Bassi <ebassi@gnome.org>
Date: Wed Oct 7 15:28:01 2009 +0100
layout: Change the request-mode along with the orientation
When changing the orientation of a FlowLayout, the associated
container should also change its request mode. A horizontally
flowing layout has a height depending on the width, since it
will reflow vertically; similarly, a vertically reflowing layout
will have a width depending on the height.
clutter/clutter-flow-layout.c | 30 ++++++++++++++++++++++++++++--
1 file changed, 28 insertions(+), 2 deletions(-)
commit b5895335ab2d6975665426693fb1b96d7ca86f74
Author: Emmanuele Bassi <ebassi@gnome.org>
Date: Wed Oct 7 15:15:02 2009 +0100
actor: Add set_request_mode() method
We should not require the use g_object_set()/_get() for accessing
the :request-mode property. A proper accessors pair should be
preferred.
clutter/clutter-actor.c | 48 +++++++++++++++++++++++++-----
clutter/clutter-actor.h | 3 ++
doc/reference/clutter/clutter-sections.txt | 2 ++
3 files changed, 46 insertions(+), 7 deletions(-)
commit 19317520b57461b505751411cf9d9f39bbf12ad5
Author: Emmanuele Bassi <ebassi@gnome.org>
Date: Wed Oct 7 12:35:39 2009 +0100
[layout] Remove FlowLayout:wrap
The :wrap property is not implemented, and mostly useless: the
FlowLayout is a reflowing grid. This means that if it receives
less than the preferred width or height in the flow direction
then it should always reflow.
clutter/clutter-flow-layout.c | 107 ++++--------------------------------------
clutter/clutter-flow-layout.h | 3 --
2 files changed, 8 insertions(+), 102 deletions(-)
commit 6d954ec0742bad823c8c474873a21ab990a56c7f
Author: Emmanuele Bassi <ebassi@gnome.org>
Date: Wed Oct 7 11:42:09 2009 +0100
[layout] Rename BinLayout and FlowLayout interactive tests
The BinLayout and FlowLayout interactive tests should be named more
explicitly.
.gitignore | 4 ++--
tests/interactive/Makefile.am | 4 ++--
tests/interactive/{test-box.c => test-bin-layout.c} | 2 +-
tests/interactive/{test-flow.c => test-flow-layout.c} | 2 +-
4 files changed, 6 insertions(+), 6 deletions(-)
commit 4ea57bc685abeea9273b2b8427a9199980cc2f40
Author: Emmanuele Bassi <ebassi@gnome.org>
Date: Wed Oct 7 11:39:18 2009 +0100
[layout] Skip invisible children in FlowLayout
Skip hidden actors when computing the preferred size and when
allocating.
clutter/clutter-flow-layout.c | 9 +++++++++
1 file changed, 9 insertions(+)
commit b1bae4d66afc8420209f72dabcbf2fe81b461ff3
Author: Emmanuele Bassi <ebassi@gnome.org>
Date: Wed Oct 7 11:08:51 2009 +0100
[layout] Clean up and document FlowLayout
clutter/clutter-flow-layout.c | 177 +++++++++++++++++++++++++++++++++++++++---
1 file changed, 168 insertions(+), 9 deletions(-)
commit db3ef971705485b1000def688635daaac99f79cd
Author: Emmanuele Bassi <ebassi@gnome.org>
Date: Tue Oct 6 17:30:49 2009 +0100
[layout] Snap children of FlowLayout to column/row
Use the column and row size to align each child; with :homogeneous
set to TRUE, or with children with the same size, the FlowLayout
will behave like a reflowing grid.
clutter/clutter-flow-layout.c | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
commit e5a074fd9e487444db9114c2970a4d83c1661c7f
Author: Emmanuele Bassi <ebassi@gnome.org>
Date: Tue Oct 6 16:17:16 2009 +0100
[layout] Add :homogeneous to FlowLayout
clutter/clutter-flow-layout.c | 90 +++++++++++++++++++++++++++++++++++++------
clutter/clutter-flow-layout.h | 3 ++
tests/interactive/test-flow.c | 37 ++++++++++++++++--
3 files changed, 115 insertions(+), 15 deletions(-)
commit 5737cf869f162f5539ae00f86db7923502c38dab
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Sep 18 17:28:02 2009 +0100
[layout] Initial implementation of FlowLayout
FlowLayout is a layout manager that arranges its children in a
reflowing line; the orientation controls the major axis for the
layout: horizontal, for reflow on the Y axis, and vertical, for
reflow on the X axis.
.gitignore | 1 +
clutter/Makefile.am | 2 +
clutter/clutter-flow-layout.c | 855 +++++++++++++++++++++++++++++
clutter/clutter-flow-layout.h | 127 +++++
clutter/clutter.h | 1 +
doc/reference/clutter/clutter-docs.xml.in | 1 +
doc/reference/clutter/clutter-sections.txt | 34 ++
doc/reference/clutter/clutter.types | 1 +
tests/interactive/Makefile.am | 3 +-
tests/interactive/test-flow.c | 117 ++++
10 files changed, 1141 insertions(+), 1 deletion(-)
commit 857b0239e906b0e5eb1a2fec8703eb675a70675f
Author: Emmanuele Bassi <ebassi@gnome.org>
Date: Mon Oct 5 17:21:41 2009 +0100
[layout] Use FixedLayout inside Group
The Group actor should use the FixedLayout layout manager object
to avoid duplicating code.
clutter/clutter-group.c | 138 ++++++++++--------------------------------------
1 file changed, 29 insertions(+), 109 deletions(-)
commit 62db72cf4106f498a041d02d67de72460130acdd
Author: Emmanuele Bassi <ebassi@gnome.org>
Date: Mon Oct 5 17:09:04 2009 +0100
[layout] Update FixedLayout
The behaviour of ClutterGroup has been fixed with regards to the
preferred size request; the fixed layout manager should use the
same behaviour.
clutter/clutter-fixed-layout.c | 116 +++++++----------------------------------
1 file changed, 20 insertions(+), 96 deletions(-)
commit 4663552a0017f85c818a664b3528fab617e6e15c
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Sep 18 15:29:09 2009 +0100
[layout] Typo and whitespace fixes
clutter/clutter-box.c | 2 +-
clutter/clutter-box.h | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
commit c98388bb0166fedd4e72bca42b99782a9b2fb52c
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Sep 17 18:21:51 2009 +0100
[layout, box] Add Box:color
Allow setting the background color of a ClutterBox
clutter/clutter-box.c | 136 ++++++++++++++++++++++++++++-
clutter/clutter-box.h | 5 ++
doc/reference/clutter/clutter-sections.txt | 4 +
3 files changed, 144 insertions(+), 1 deletion(-)
commit df6ca3d171a6a8d1a18cbf0fe70f4e4572e54479
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Sep 17 11:38:43 2009 +0100
[layout, docs] Clean up BinLayout documentation
Documentation and code style fixes for BinLayout.
clutter/clutter-bin-layout.c | 120 +++++++++++++++++++++++++++++++------------
clutter/clutter-bin-layout.h | 24 +++++++++
2 files changed, 112 insertions(+), 32 deletions(-)
commit 8b2088a91787562c01d5b8184f1f2b2f1d225371
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Sep 16 15:55:30 2009 +0100
[layout, tests] Use variants for child packing in Box
There are three potential variants to add a child inside a Box
with a BinLayout:
- clutter_box_pack(), a variadic argument function which
allows passing arbitrary LayoutMeta properties and values;
- clutter_bin_layout_add(), which uses the backpointer to
the container from the LayoutManager and sets the layout
properties directly without GValue (de)marshalling
- clutter_container_add_actor() and
clutter_bin_layout_set_alignment(), similar to the
clutter_bin_layout_add() function above, but split in two
The test-box interactive test should exercise all three variants.
tests/interactive/test-box.c | 24 ++++++++++++++++--------
1 file changed, 16 insertions(+), 8 deletions(-)
commit 431a63d04adc40dfd719563c4f9978324f618b4e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Sep 16 15:51:13 2009 +0100
[layout] Store and use the container inside BinLayout
The BinLayout should store a pointer to the Container that it is
using it as the layout manager.
This allows us to fix the API and drop the additional Container
arguments from set_alignment() and get_alignment().
This also allows us to add a ClutterBinLayout::add() method which
adds an actor and sets the alignment policies without dealing with
variadic arguments functions and GValue (de)marshalling.
clutter/clutter-bin-layout.c | 120 ++++++++++++++++++++++++++---
clutter/clutter-bin-layout.h | 7 +-
doc/reference/clutter/clutter-sections.txt | 1 +
3 files changed, 114 insertions(+), 14 deletions(-)
commit 755896664f7efc4bbfce0bfb6ea3249b6c526a59
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Sep 16 15:48:28 2009 +0100
[layout] Set a back pointer to Box inside the layout
Use the LayoutManager API to set a back pointer to the Box actor
inside the LayoutManager used by the box.
This also allows us to replace the LayoutManager on a Box, since
the LayoutManager will be able to replace all the metadata if
needed.
clutter/clutter-box.c | 37 ++++++++++++++++++++++++++++--
clutter/clutter-box.h | 2 ++
doc/reference/clutter/clutter-sections.txt | 1 +
3 files changed, 38 insertions(+), 2 deletions(-)
commit 22bb243ec24821cd18e7dba791e793884ffe2a63
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Sep 16 15:47:26 2009 +0100
[layout] Replace stale LayoutMeta
If a LayoutMeta references a different container and/or layout manager
then we should simply replace it and discard the previous one.
clutter/clutter-layout-manager.c | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)
commit 9117ee205691a5bb1a3bb65e1963ed5b8826b79f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Sep 16 14:58:30 2009 +0100
[layout] Allow taking a back pointer to the Container
The LayoutManager implementation might opt to take a back pointer
to the Container that is using the layout instance; this allows
direct access to the container itself from within the implementation.
clutter/clutter-layout-manager.c | 28 ++++++++++++++++++++++++++++
clutter/clutter-layout-manager.h | 12 ++++++++++++
doc/reference/clutter/clutter-sections.txt | 1 +
3 files changed, 41 insertions(+)
commit f58bdbad15206f4369589f50789b9db9585f6e03
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Sep 16 11:10:45 2009 +0100
[layout] Rename Box::add to Box::pack
Since ClutterBox is a ClutterContainer we should avoid naming
collisions between methods.
clutter/clutter-box.c | 24 ++++++++++++------------
clutter/clutter-box.h | 4 ++--
doc/reference/clutter/clutter-sections.txt | 4 ++--
tests/interactive/test-box.c | 24 ++++++++++++------------
4 files changed, 28 insertions(+), 28 deletions(-)
commit c6f67bf872ec2b51951a554e0351e6d7615d28ce
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Sep 16 11:10:38 2009 +0100
[layout, docs] Document FixedLayout
clutter/clutter-fixed-layout.c | 45 ++++++++++++++++++++++++++++++++++++++++++
clutter/clutter-fixed-layout.h | 42 +++++++++++++++++++++++++++++++++++++++
2 files changed, 87 insertions(+)
commit aaae60e17837d6f0b330c04345f1e2c2be9f24b9
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Sep 15 23:20:51 2009 +0100
[layout] Implement ClutterBox::add
The ClutterBox::add method is a simple wrapper around the Container
add_actor() method and the LayoutManager layout properties API. It
allows adding an actor to a Box and setting the layout properties in
one call.
If the LayoutManager used by the Box does not support layout properties
then the add() method short-circuits out.
Along with the varargs version of the method there's also a vector-based
variant, for language bindings to use.
clutter/clutter-box.c | 186 +++++++++++++++++++++++++++++
clutter/clutter-box.h | 10 ++
doc/reference/clutter/clutter-sections.txt | 2 +
tests/interactive/test-box.c | 31 ++---
4 files changed, 210 insertions(+), 19 deletions(-)
commit a2086f1178fa3aed7fdc6f94d09efbc0e1bc2c11
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Sep 15 17:37:11 2009 +0100
[layout] Add LayoutMeta
Instead of overloading ClutterChildMeta with both container and layout
metadata and delegate to every LayoutManager implementation to keep a
backpointer to the layout manager instance, we can simply subclass
ChildMeta into LayoutMeta and presto! everything works out pretty well
for everyone.
clutter/Makefile.am | 2 +
clutter/clutter-bin-layout.c | 35 ++++---
clutter/clutter-layout-manager.c | 58 ++++++------
clutter/clutter-layout-manager.h | 133 +++++++++++++--------------
clutter/clutter-layout-meta.c | 142 +++++++++++++++++++++++++++++
clutter/clutter-layout-meta.h | 85 +++++++++++++++++
clutter/clutter-types.h | 1 +
clutter/clutter.h | 1 +
doc/reference/clutter/clutter-docs.xml.in | 5 +-
doc/reference/clutter/clutter-sections.txt | 19 ++++
doc/reference/clutter/clutter.types | 1 +
11 files changed, 369 insertions(+), 113 deletions(-)
commit 899db6f226864614350d6aa07d8313dccf7d652f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Sep 15 16:24:47 2009 +0100
[layout, docs] Add layout managers sections
Add LayoutManager and its subclasses, and the Box actor to the
gtk-doc machinery needed to generate the API reference.
clutter/clutter-bin-layout.c | 6 +-
clutter/clutter-bin-layout.h | 4 +-
clutter/clutter-layout-manager.c | 145 ++++++++++++++++++++++++++++-
clutter/clutter-layout-manager.h | 16 +++-
doc/reference/clutter/clutter-docs.xml.in | 9 ++
doc/reference/clutter/clutter-sections.txt | 94 +++++++++++++++++++
doc/reference/clutter/clutter.types | 4 +
7 files changed, 269 insertions(+), 9 deletions(-)
commit 9cccff504a40706e70b11878572d7e7db7430792
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Sep 14 21:51:49 2009 +0100
[layout] Add layers to BinLayout
Each actor managed by a BinLayout policy should reside inside its
own "layer", with horizontal and vertical alignment. The :x-align
and :y-align properties of the BinLayout are the default alignment
policies, which are copied to each new "layer" when it is created.
The set_alignment() and get_alignment() methods of BinLayout can
be changed to operate on a specific "layer".
The whole machinery uses the new ChildMeta support inside the
LayoutManager base abstract class.
clutter/clutter-bin-layout.c | 265 ++++++++++++++++++++++++++++++++++++++-----
clutter/clutter-bin-layout.h | 4 +
tests/interactive/test-box.c | 147 +++++++++++++++++++++++-
3 files changed, 385 insertions(+), 31 deletions(-)
commit 98474076a1310494fec252fb6bfce8001bca78da
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Sep 14 21:50:20 2009 +0100
[layout] Bind the layout ChildMeta inside Box
The ClutterBox container actor should add and remove ChildMeta to
each actor that has been added and removed to the list of children,
respectively.
clutter/clutter-box.c | 9 +++++++++
1 file changed, 9 insertions(+)
commit 7051fe275d9d052ce42e8237080844aa18ee927c
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Sep 14 21:48:06 2009 +0100
[layout] Bind ChildMeta to LayoutManager
The ChildMeta object is a storage for child-container properties,
that is properties that exist only when an actor is inside a specific
container. The LayoutManager delegate class should also have
layout-specific properties -- so, for this job, we can "recycle"
ChildMeta as the storage.
clutter/clutter-layout-manager.c | 372 +++++++++++++++++++++++++++++++++++++++
clutter/clutter-layout-manager.h | 92 ++++++----
2 files changed, 432 insertions(+), 32 deletions(-)
commit 83a4e9626772453804c61d7aa022eacf540bf0ce
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Sep 14 12:04:42 2009 +0100
[layout] Document BinLayout
clutter/clutter-bin-layout.c | 93 ++++++++++++++++++++++++++++++++++++++++++++
clutter/clutter-bin-layout.h | 46 +++++++++++++++++++++-
2 files changed, 137 insertions(+), 2 deletions(-)
commit b06a3293fe3d065369d9f97ad8bfa77051414fec
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Sep 14 12:03:38 2009 +0100
[layout] Notify of alignment changes in BinLayout
Emit the ::layout-changed when the BinLayout alignment policies change.
This will result in a queue_relayout() on the containers using the
BinLayout layout manager.
clutter/clutter-bin-layout.c | 10 ++++++++++
1 file changed, 10 insertions(+)
commit 4e8d8bbc15f26e95adfd59469306b7098f9fd491
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Sep 14 11:28:34 2009 +0100
[layout] Update Box
* Use ::layout-changed to queue a relayout when the layout changes
* Destroy the Box children when destroying the Box
* Allow getting the layout manager from the Box
clutter/clutter-box.c | 72 +++++++++++++++++++++++++++++++++++++++++++++++----
clutter/clutter-box.h | 4 ++-
2 files changed, 70 insertions(+), 6 deletions(-)
commit d096a3c791ab5b105d55a19ab316cd8b2fff878b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Sep 14 11:04:11 2009 +0100
[layout] Add LayoutManager::layout-changed signal
If a sub-class of LayoutManager wishes to implement a parametrized
layout policy it also needs a way to notify the container using the
layout manager that the layout has changed. We cannot do it directly
and automatically from the LayoutManager because a) it has no back
link to the actor that it is using it and b) it can be attached to
multiple actors.
This is a job for <cue raising dramatic music> signals!
By adding ClutterLayoutManager::layout-changed (and its relative
emitted function) we can notify actors using the layout manager that
the layout parameters have been changed, and thus they should queue
a relayout.
clutter/clutter-layout-manager.c | 103 ++++++++++++++++++++++++++++++++++++++-
clutter/clutter-layout-manager.h | 44 +++++++++++++++++
2 files changed, 146 insertions(+), 1 deletion(-)
commit a1853892bae7c54d28a86e253e04c3753d65e159
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Sep 11 15:34:13 2009 +0100
[tests] Add a Box interactive test
.gitignore | 1 +
tests/interactive/Makefile.am | 3 ++-
tests/interactive/test-box.c | 47 +++++++++++++++++++++++++++++++++++++++++++
3 files changed, 50 insertions(+), 1 deletion(-)
commit 1061ebeac90a5b03a172aa649aa5a8b8cfb5b293
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Sep 11 13:51:23 2009 +0100
[layout] Add BinLayout
A BinLayout is a simple layout manager that allocates a single cell,
providing alignment on both the horizontal and vertical axis.
If the container associated to the BinLayout has more than one child,
the preferred size returned by the layout manager will be as big as
the maximum of the children preferred sizes; the allocation will be
applied to all children - but it will still depend on each child
preferred size and the BinLayout horizontal and vertical alignment
properties.
The supported alignment properties are:
* center: align the child by centering it
* start: align the child at the top or left border of the layout
* end: align the child at the bottom or right border of the layout
* fill: expand the child to fill the size of the layout
* fixed: let the child position itself
clutter/Makefile.am | 2 +
clutter/clutter-bin-layout.c | 397 +++++++++++++++++++++++++++++++++++++++++++
clutter/clutter-bin-layout.h | 50 ++++++
clutter/clutter.h | 1 +
4 files changed, 450 insertions(+)
commit 6d4cc13f7c7047a609dd8055ce63048da294af39
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Sep 2 12:37:16 2009 +0100
[layout] Add Fixed layout manager
The FixedLayout layout manager object implements the same layout
policy of ClutterGroup.
clutter/Makefile.am | 2 +
clutter/clutter-fixed-layout.c | 217 +++++++++++++++++++++++++++++++++++++++++
clutter/clutter-fixed-layout.h | 38 ++++++++
clutter/clutter.h | 1 +
4 files changed, 258 insertions(+)
commit 141a1556908749236c90e69fc2388f4fc40c6d8f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Sep 2 11:55:22 2009 +0100
[layout] Make LayoutManager a floating object
A layout manager instance makes only sense if it's owned by a
container. For this reason, it should have a floating reference
instead of a full reference on construction; this allows constructing
Boxes like:
box = clutter_box_new (clutter_fixed_layout_new ());
without leaking the layout manager instance.
clutter/clutter-box.c | 3 ++-
clutter/clutter-layout-manager.c | 4 +++-
clutter/clutter-layout-manager.h | 4 ++--
3 files changed, 7 insertions(+), 4 deletions(-)
commit 0340f656346d80696305218897720e28c88f367a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Sep 1 17:42:50 2009 +0100
[box] Add ClutterBox
ClutterBox is an actor with no layout management. It relies on
a ClutterLayoutManager to perform size requisition and allocation
of its children.
clutter/Makefile.am | 2 +
clutter/clutter-box.c | 368 ++++++++++++++++++++++++++++++++++++++++++++++++++
clutter/clutter-box.h | 43 ++++++
clutter/clutter.h | 1 +
4 files changed, 414 insertions(+)
commit d6183e95e51d1e3807ed5150768de2426b6b8e65
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Sep 1 16:34:28 2009 +0100
[layout] Add initial implementation of LayoutManager
The LayoutManager class is an abstract proxy for the size requesition
and size allocation process in ClutterActor.
A ClutterLayoutManager sub-class must implement get_preferred_width(),
get_preferred_height() and allocate(); a ClutterContainer using the
LayoutManager API will then proxy the corresponding Actor virtual
functions to the LayoutManager instance. This allows having a generic
"blank" ClutterActor sub-class, implementing the ClutterContainer
interface, which leaves only the layout management implementation to
the application developers.
clutter/Makefile.am | 2 +
clutter/clutter-layout-manager.c | 180 +++++++++++++++++++++++++++++++++++++++
clutter/clutter-layout-manager.h | 92 ++++++++++++++++++++
clutter/clutter.h | 1 +
4 files changed, 275 insertions(+)
commit 4f2bfc003ad0f5b0b9d69693eed1bdbc9655f947
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Oct 13 19:27:03 2009 +0100
build: Clean up main Makefile.am
clutter/Makefile.am | 55 ++++++++++++++++++++++++++++-------------------------
1 file changed, 29 insertions(+), 26 deletions(-)
commit 46b736f42e1165420796ed2afe4fc791d82381da
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Oct 13 17:27:19 2009 +0100
build: Move marshallers and enum types rules out
The rules to create signal marshallers and enumeration GTypes are
usually copied and pasted all over different projects, though they
are pretty generic and, given a little bit of parametrization, can
be put in separate Makefile.am files and included whenever needed.
build/autotools/Makefile.am | 2 +
build/autotools/Makefile.am.enums | 43 +++++++++++++++++++++
build/autotools/Makefile.am.marshal | 44 ++++++++++++++++++++++
clutter/Makefile.am | 75 +++++++++----------------------------
4 files changed, 107 insertions(+), 57 deletions(-)
commit 0e33c10048dd3cba33644fd51ae3e1ea18dcc357
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Oct 13 17:00:15 2009 +0100
docs: Allow XInclude fallback for the annotation glossary
doc/reference/clutter/clutter-docs.xml.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit a99f693c85cee6e389892b271f8aa25532bd7a6f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sat Oct 10 13:52:46 2009 +0100
docs: Make StageManager a public class
The StageManager API is useful to track the stages of an application.
It will also be useful when we land the modules API.
doc/reference/clutter/Makefile.am | 1 -
doc/reference/clutter/clutter-docs.xml.in | 1 +
doc/reference/clutter/clutter-sections.txt | 23 +++++++++++++++++++++++
doc/reference/clutter/clutter.types | 2 ++
4 files changed, 26 insertions(+), 1 deletion(-)
commit c3d056533c8733160227b790388723a4c8a16123
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sat Oct 10 13:51:47 2009 +0100
stage/manager: Set :default-stage as read-only
The StageManager:default-stage property should be read-only, since
the default stage is owned by Clutter itself.
clutter/clutter-stage-manager.c | 23 ++---------------------
1 file changed, 2 insertions(+), 21 deletions(-)
commit 74eaa2941327d3ee7762a93136b647979b6e094a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sat Oct 10 13:50:25 2009 +0100
stage/manager: Deprecate set_default_stage()
The set_default_stage() method of StageManager should not be used
by application code; technically, nothing in Clutter uses it, and
StageManager's API is not considered public anyway.
clutter/clutter-stage-manager.c | 52 ++++++++++++++++++++++++++++++++---------
clutter/clutter-stage-manager.h | 23 ++++++++++++++----
2 files changed, 60 insertions(+), 15 deletions(-)
commit a7ff5385a5071824e996eae6b92486ef07bd143e
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Fri Oct 9 17:18:34 2009 +0100
[actor] Unset the IN_DESTRUCTION flag when leaving ::destroy()
The IN_DESTRUCTION flag is set around the unrealization and disposal of
the actor in clutter_actor_destroy() but is never unset (it's set twice
instead).
Reviewed-by: Emmanuele Bassi <ebassi@linux.intel.com>
clutter/clutter-actor.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 3bbc96e17e5a03ba931c86a5cd2a0ecaa2a3b77b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Oct 7 21:44:17 2009 +0100
text: Make the :text property not set the :use-markup one
Currently, setting the :text property has the side-effect of
setting the :use-markup property to FALSE. This prevents
constructing a Text actor, or setting its properties, like:
g_object_set (text,
"use-markup", TRUE,
"text", some_string,
NULL);
as the ordering becomes important. Unfortunately, the ordering
of the properties cannot be enforced with ClutterScript or
with language bindings.
The documentation of the clutter_text_set_text() method should
be expanded to properly specify that the set_text() method will
change the :use-markup property to FALSE as a side effect.
clutter/clutter-text.c | 283 +++++++++++++++++++++++++------------------------
1 file changed, 144 insertions(+), 139 deletions(-)
commit 1f207c00d96e08141f6b998269732d9e65d4cf14
Author: Emmanuele Bassi <ebassi@gnome.org>
Date: Wed Oct 7 17:35:11 2009 +0100
docs: Add the "clipping" section to the COGL API reference
All the clip-related API in COGL is missing from the API reference
because the cogl-clipping section is not included inside the main
index file.
doc/reference/cogl/cogl-docs.xml.in | 1 +
doc/reference/cogl/cogl-sections.txt | 3 ++-
2 files changed, 3 insertions(+), 1 deletion(-)
commit 80b3a8d3283fcc8af89bc83b2266ccd894cc50a6
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Wed Oct 7 17:09:41 2009 +0100
[units] Ensure we don't have ponies
The documentation states we should not parse ponies. Even with those
with exclamation marks.
Reviewed-by: Emmanuele Bassi <ebassi@linux.intel.com>
tests/conform/test-clutter-units.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 19c68799608910635b70c9befb92c1a6a21c15f3
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Tue Oct 6 00:49:40 2009 +0100
[path] Add GValue transform functions from and to G_TYPE_STRING
Transform functions allow the use of g_value_transform() to cast
GValues. It's very handy to have casts to and from G_TYPE_STRING as it
allows generic serialization and parsing of GTypes.
Reviewed-by: Emmanuele Bassi <ebassi@linux.intel.com>
clutter/clutter-path.c | 36 +++++++++++++++++++++++++++++++++++-
1 file changed, 35 insertions(+), 1 deletion(-)
commit 8605073edb7a1e830696632a6de5ad694f1af98d
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Tue Oct 6 17:47:34 2009 +0100
[units] Add support for centimeters
The only tricky part of the patch is to remember that 1cm is 10mm.
Reviewed-by: Emmanuele Bassi <ebassi@linux.intel.com>
clutter/clutter-units.c | 48 ++++++++++++++++++++++++++++--
clutter/clutter-units.h | 7 ++++-
doc/reference/clutter/clutter-sections.txt | 1 +
tests/conform/test-clutter-units.c | 17 +++++++++--
4 files changed, 67 insertions(+), 6 deletions(-)
commit 96859959bd24d99f51d5dea3b5ec7bc4bf7071f3
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Tue Oct 6 12:02:15 2009 +0100
[units] Be more strict in the grammar we are parsing
Current parsing of units has a number of shortcomings:
* a number followed by trailing space (without any unit specified) was
not recognized,
* "5 emeralds" was parsed as 5em,
* the way we parse the digits after the separator makes us lose
precision for no good reason (5.0 is parsed as 5.00010014...f which
makes g_assert_cmpfloat() fail)
Let's define a stricter grammar we can recognize and try to do so. The
description is in EBNF form, removing the optional <> which is a pain
when having to write DocBook, and using '' for the terminal symbols.
Last step, add more ClutterUnits unit test to get a better coverage of
the grammar we want to parse.
Reviewed-by: Emmanuele Bassi <ebassi@linux.intel.com>
clutter/clutter-units.c | 76 ++++++++++++++++++++++++--------------
tests/conform/test-clutter-units.c | 22 +++++++++++
2 files changed, 70 insertions(+), 28 deletions(-)
commit 4d481e03f3534cb703a276cd430056d3ec27fcb0
Author: Emmanuele Bassi <ebassi@gnome.org>
Date: Wed Oct 7 13:00:57 2009 +0100
color: Measure the string just once when parsing
Instead of measuring the color hexadecimal string for each case, just
measure it once and then use a switch() to go to the right case.
clutter/clutter-color.c | 40 ++++++++++++++++++++++------------------
1 file changed, 22 insertions(+), 18 deletions(-)
commit c7d50083ec1d1209dd8653bc30ba4f3bec09e976
Author: Thomas Wood <thomas.wood@intel.com>
Date: Wed Oct 7 12:27:38 2009 +0100
[color] allow alpha to be omitted when converting to color from string
Parse #rgb and #rrggbb in addition to forms with the alpha channel
specified. This allows conversion of colour strings from documents such as
CSS where the alpha channel is not specified when using '#' notation.
This patch also adds the relevant conformance test.
clutter/clutter-color.c | 22 ++++++++++++++++++++++
tests/conform/test-color.c | 28 ++++++++++++++++++++++++++++
2 files changed, 50 insertions(+)
commit 13ac1fe75bec418f4e37e04540e6d16af55413f5
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Oct 7 11:31:44 2009 +0100
[clutter-id-pool] Also warn if the ID refers to a deleted actor
We should also warn if the glReadPixels happens to generate an ID that
is within the range of the ID array but no longer points to an
existing actor.
clutter/clutter-id-pool.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
commit a4ff4d37a40b60ce7f7029c6fe12181c0e1e89e5
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Oct 7 12:46:43 2009 +0100
[clutter-id-pool] Fix the check for out-of-range IDs
If id == the length of the array then it is also invalid and could
cause a crash.
clutter/clutter-id-pool.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 142f8865181e92fb405ae0d2b2bc65468a9d2262
Author: Thomas Wood <thomas.wood@intel.com>
Date: Wed Oct 7 12:15:26 2009 +0100
Revert "[color] allow alpha to omitted when converting from strings"
This reverts commit eb8daac4b0726c1d9925bbbaeed7a8f39007da21.
The original commit was incorrect and pushed accidentally.
clutter/clutter-color.c | 22 ----------------------
1 file changed, 22 deletions(-)
commit bdf7499207d3fdba440228832445b71b9f64d300
Author: Thomas Wood <thomas.wood@intel.com>
Date: Wed Oct 7 11:40:41 2009 +0100
[color] add a note to the documentation to specify the values of the alpha
The alpha channel is fully opaque at 255 and fully transparent at 0.
clutter/clutter-color.c | 2 ++
1 file changed, 2 insertions(+)
commit eb8daac4b0726c1d9925bbbaeed7a8f39007da21
Author: Thomas Wood <thomas.wood@intel.com>
Date: Wed Oct 7 11:38:08 2009 +0100
[color] allow alpha to omitted when converting from strings
Parse #rgb and #rrggbb in addition to forms with the alpha channel
specified. This allows conversion of colour strings from documents such as
CSS where the alpha channel is not specified when using '#' notation.
clutter/clutter-color.c | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
commit 9e03d9231696160ef7d4d98cf6c1d2f2214c7172
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Tue Oct 6 01:04:50 2009 +0100
[path] MOVE_TO and LINE_TO only use a pair of coordinates
The documentation of ClutterPathNode had a small typo and stated that
they use 2 pairs of coordinates.
clutter/clutter-path.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
commit dd8e4dcd62979bf8b7c8ad0e8898888a065ba445
Author: Robert Bragg <robert@linux.intel.com>
Date: Mon Oct 5 16:46:24 2009 +0100
[debug] Guard the use of gdk_pixbuf for pick debugging by #ifdef USE_GDKPIXBUF
gdk is an optional clutter dependency, so the pick buffer debugging option
needs some guards so we don't break, for example, the OSX builds. This also
adds a comment for the bit fiddling done on the pick colors used to ensure
the pick colors are more distinguished while debugging. (we swap the
nibbles of each color component so that pick buffers don't just look black.)
clutter/clutter-main.c | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
commit f7c02642453420cf5866f9759d5f266d8ada40a5
Author: Emmanuele Bassi <ebassi@gnome.org>
Date: Mon Oct 5 15:51:28 2009 +0100
[sdl] Update the SDL backend to the new StageWindow API
The SDL backend remains experimental and not meant for public
consumption, but at least it compiles and runs successfully.
clutter/sdl/clutter-backend-sdl.c | 8 +--
clutter/sdl/clutter-stage-sdl.c | 130 ++++++++++++++++----------------------
2 files changed, 57 insertions(+), 81 deletions(-)
commit 3fee43560d8108f9508cbb24ee98228e50b79e5d
Author: Emmanuele Bassi <ebassi@gnome.org>
Date: Mon Oct 5 15:53:06 2009 +0100
[eglx] Create a StageWindow, not an Actor
The Backend should create a StageWindow instance, not an Actor.
clutter/eglx/clutter-backend-egl.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
commit 40222e891bec62e4e7187a3e66bdf7866a60bd38
Author: Neil Roberts <neil@linux.intel.com>
Date: Tue Sep 29 12:11:55 2009 +0100
[ClutterGroup] Don't take into account the left edges when calculating the size
ClutterGroup previously calculated the size as the distance from the
left edge of the leftmost child to the right edge of the rightmost
child except if there were any chidren left of the origin then the
left edge would be zero.
However the group is always allocated its size relative to its
origin so if all of the children are to the right of the origin then
the preferred size would not be large enough to reach the rightmost
child.
origin
┼──────────┐
│Group │
│ ┌────────┼─┐
│ │Child │ │
│ │ │ │
└─┼────────┘ │
│ │
└──────────┘
group size
╟──────────╢
This patch makes it so the size is always just the rightmost edge.
origin
┼────────────┐
│Group │
│ ┌──────────┤
│ │Child │
│ │ │
│ │ │
│ │ │
└─┴──────────┘
group size
╟────────────╢
Fixes bug:
http://bugzilla.openedhand.com/show_bug.cgi?id=1825
clutter/clutter-group.c | 122 +++++++++++-------------------------------------
1 file changed, 26 insertions(+), 96 deletions(-)
commit 14e12ae4fd9320eeb970ff8aa7dfcd43dcfd5975
Author: Emmanuele Bassi <ebassi@gnome.org>
Date: Mon Oct 5 14:58:08 2009 +0100
[eglx] Update the EGLX Stage to the new StageWindow API
Move the ::realize and ::unrealize implementations over to the
StageWindow instead of using Actor.
clutter/eglx/clutter-stage-egl.c | 120 +++++++++++++++++++--------------------
1 file changed, 60 insertions(+), 60 deletions(-)
commit a799f6ccec0ea755c7677c5fe20c1bd52b321c05
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Sat Oct 3 14:08:33 2009 +0100
Fix string parsing when no unit is given
The check should really be on the character pointed by str. Added the
corresponding test case.
clutter/clutter-units.c | 2 +-
tests/conform/test-clutter-units.c | 4 ++++
2 files changed, 5 insertions(+), 1 deletion(-)
commit 4d7b8c9d4290c91ea69d992bad396d067e84b15b
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Sat Oct 3 12:15:13 2009 +0100
clutter_value_get_unit() has not be renamed
Since the Great Rework of ClutterUnits, functions have been using
'units' not 'unit' in their name. clutter_value_get_unit() is a left
over from a dark age, its declaration and documentation have been
updated but not the symbol itself.
clutter/clutter-units.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 72243081b5b0bf0518951f9f5f3ae91a7d4c640f
Merge: ad83caaed 111512a2a
Author: Emmanuele Bassi <ebassi@gnome.org>
Date: Mon Oct 5 12:37:08 2009 +0100
Merge branch 'stage-window-object'
* stage-window-object:
[x11] Fix Stage user-initiated resize
[x11] Remove a useless forced paint
[stage] Rework the Stage implementation class
commit ad83caaed16a36aea0fafd4ed87cc283c30c413b
Author: Emmanuele Bassi <ebassi@gnome.org>
Date: Mon Oct 5 12:34:48 2009 +0100
Clarify the IdPool warning
Instead of having an assertion failure with a message of dubious
usefulness, we should probably use a more verbose warning explaining
what is the problem and what might be the cause.
clutter/clutter-id-pool.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
commit 111512a2a05243a7fc6f999f18805eae9bd6bfce
Author: Emmanuele Bassi <ebassi@gnome.org>
Date: Mon Oct 5 12:24:19 2009 +0100
[x11] Fix Stage user-initiated resize
The user-initiated resize is conflicting with the allocated size. This
happens because we change the size of the stage's X Window behind the
back of the size allocation machinery.
Instead, we should change the size of the actor whenever we receive a
ConfigureNotify event to reflect the new size of the actor.
clutter/x11/clutter-event-x11.c | 7 +++----
clutter/x11/clutter-stage-x11.c | 6 +++++-
tests/interactive/test-actors.c | 1 +
3 files changed, 9 insertions(+), 5 deletions(-)
commit e3c2ed0009e2ce85e65d5a1724a807faae865494
Author: Emmanuele Bassi <ebassi@gnome.org>
Date: Mon Oct 5 12:21:02 2009 +0100
[x11] Remove a useless forced paint
We force the redraw before mapping, in the hope that when a composited
window manager maps the window it will have its contents ready; that is
not going to work: the solution for this problem requires the implementation
of a protocol for compositors, and not a hack.
Moreover, painting before mapping will cause a paint with the wrong
GL viewport size, which is the wrong thing to do on GLX.
clutter/x11/clutter-stage-x11.c | 5 -----
1 file changed, 5 deletions(-)
commit 6ddffac93561b5d3aa6226ee54bd8a5e1fcedeb5
Author: Emmanuele Bassi <ebassi@gnome.org>
Date: Sun Sep 27 11:38:01 2009 +0100
[docs] Update the "Subclassing Actor" chapter
The chapter on how to subclass ClutterActor inside the API reference for
Clutter is still using ClutterUnit and referencing to concepts that have
been changed since the document was written.
doc/reference/clutter/subclassing-ClutterActor.xml | 169 +++++++++++++--------
1 file changed, 107 insertions(+), 62 deletions(-)
commit ab76d64df02bc03f935e9cdf5a0a29c6ffeace72
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Jul 28 00:40:29 2009 +0100
[cogl-debug] avoid warnings when using COGL_NOTE with unbraced else clauses
When not building a debug build the compiler was warning about empty
else clauses with no braces due to code like:
if (blah)
do_foo();
else
COGL_NOTE (DRAW, "a-wibble");
This simply ensures that even for non debug builds COGL_NOTE will expand to
a single statement.
clutter/cogl/cogl-debug.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 904c495c6d3c59b34148c9a4834e4803b488997b
Author: Robert Bragg <robert@linux.intel.com>
Date: Thu Sep 24 17:34:26 2009 +0100
[cogl-vertex-buffer] fix n_components validation for GL's builtin attributes
glVertexPointer expects positions with 2, 3 or 4 components, glColorPointer
expects colors with 3 or 4 components and glNormalPointer expects normals
with three components so when adding vertex buffer atributes with the names
"gl_Vertex", "gl_Color" or "gl_Normal" we assert these constraints and print
an explanation to the developer if not met.
This also fixes the previosly incorrect constraint that gl_Normal attributes
must have n_components == 1; thanks to Cat Sidhe for reporting this:
Bug: http://bugzilla.openedhand.com/show_bug.cgi?id=1819
clutter/cogl/common/cogl-vertex-buffer.c | 19 +++++++++++++++----
1 file changed, 15 insertions(+), 4 deletions(-)
commit dae569b468c286ea23aa0e74e910232e025932db
Author: Robert Bragg <robert@linux.intel.com>
Date: Thu Sep 24 12:49:17 2009 +0100
[debug] Adds a dump-pick-buffers CLUTTER_DEBUG option
Now if you export CLUTTER_DEBUG=dump-pick-buffers clutter will write out a
png, e.g. pick-buffer-00000.png, each time _clutter_to_pick() is called.
It's a rather crude way to debug the picking (realtime visualization in a
second stage would probably be nicer) but it we've used this approach
successfully numerous times when debugging Clutter picking issues so it
makes sense to have a debug option for it.
clutter/clutter-debug.h | 35 +++++++++---------
clutter/clutter-main.c | 94 +++++++++++++++++++++++++++++++++++++++++++++----
2 files changed, 106 insertions(+), 23 deletions(-)
commit 27ae9722dedb5bc25415c32326ffc7ba4ef1557d
Author: Neil Roberts <neil@linux.intel.com>
Date: Tue Sep 22 17:55:04 2009 +0100
[container] Remove the unused 'object' variable in destroy_child_meta
Since commit b2f958a61 this variable is no longer used so it was
causing compiler warnings.
clutter/clutter-container.c | 1 -
1 file changed, 1 deletion(-)
commit 4293920a11d5216095577cdfc46b9e21bb427a12
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Sep 22 11:27:47 2009 +0100
[tests] Remove test-entry.c since we don't have a ClutterEntry any more
Removes an unused interactive unit test for the old ClutterEntry actor we
used to have.
.gitignore | 1 -
tests/interactive/test-entry.c | 47 ------------------------------------------
2 files changed, 48 deletions(-)
commit b710ed0eeace5561ccec1b1558ad26abb4af0da3
Author: Robert Bragg <robert@linux.intel.com>
Date: Thu Aug 20 11:53:37 2009 +0100
[backend-egl] fix clutter_backend_egl_get_visual_info to not use Xalloc
It looks like the intention was to duplicate an XVisualInfo in such a way
that the pointer could be returned and then later freed using XFree. But
Xalloc isn't an Xlib counterpart to XFree; Xlib doesn't provide a general
purpose malloc wrapper afik. By shuffling things about a bit, it was
possible to avoid the need for this hack.
clutter/eglx/clutter-backend-egl.c | 46 +++++++++++++-------------------------
1 file changed, 15 insertions(+), 31 deletions(-)
commit 6e50e26c86af20597b118f5a71d04f70b173f733
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Mon Sep 21 15:21:21 2009 +0100
Add a few annotations on Cogl primitives functions
By default, float * is considered as an out argument by gobject
introspection which is wrong for quite a few Cogl symbols. Start adding
annotations to fix that for the ones in the "Primitives" gtk-doc
section.
clutter/cogl/cogl-path.h | 8 ++++----
clutter/cogl/cogl-texture.h | 15 ++++++++-------
2 files changed, 12 insertions(+), 11 deletions(-)
commit 1b37cb6cb79dc36279d40ef108576aafeb905412
Author: Robert Bragg <robert@linux.intel.com>
Date: Mon Sep 21 18:12:02 2009 +0100
[container] cast actor to gobject before calling g_object_set_qdata
A minor compiler warning fix: in destroy_child_meta we weren't casting the
first argument to g_object_set_qdata to a gobject.
clutter/clutter-container.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit b2f958a61807ca36ccc1e7b3edf112b317885528
Author: Øyvind Kolås <pippin@linux.intel.com>
Date: Mon Sep 21 15:55:58 2009 +0100
[container] unset the child meta qdata on the child, not the container
In the default implementation of container::destroy_child_meta Set child
meta qdata to NULL on the child and not the container, since the child
is the object that owns the data.
clutter/clutter-container.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit d4e46bb893d41f7e9d80d3d272765e7b2779d32b
Author: Thomas Wood <thomas.wood@intel.com>
Date: Mon Sep 21 15:40:53 2009 +0100
[container] set the child meta qdata on the child, not the container
Set child meta qdata on the child and not the container, since the child is
the object that owns the data.
clutter/clutter-container.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 1c3d5a0e870d6a8f221577783f4c9d79dbc062c5
Author: Neil Roberts <neil@linux.intel.com>
Date: Thu Sep 17 18:29:03 2009 +0100
[cogl] Remove CoglContext->journal_vbo{,_len}
The lifetime of the journal VBO is entirely within the scope of the
cogl_journal_flush function so there is no need to store it globally
in the Cogl context. Instead, upload_vertices_to_vbo just returns the
new VBO. cogl_journal_flush stores this in a local variable and
destroys it before returning.
This also fixes an assertion when using the GLES backend which was
caused by nothing initialising the journal_vbo variable.
clutter/cogl/common/cogl-primitives.c | 20 ++++++++++----------
clutter/cogl/gl/cogl-context.c | 2 --
clutter/cogl/gl/cogl-context.h | 2 --
clutter/cogl/gles/cogl-context.h | 1 -
4 files changed, 10 insertions(+), 15 deletions(-)
commit ecfa0c4f92e3a78bdc4257c62a61b47aa41e0d05
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Sep 16 17:43:58 2009 +0100
[build] Split out the custom silent rules
The silent rules we use for custom targets should be moved into a
separate Makefile.am that gets included from all the others.
Makefile.am | 2 ++
build/autotools/Makefile.am | 1 +
build/autotools/Makefile.am.silent | 17 +++++++++++++++++
clutter/Makefile.am | 12 +++++-------
clutter/cogl/Makefile.am | 8 ++------
clutter/cogl/common/Makefile.am | 8 ++------
clutter/cogl/gl/Makefile.am | 2 ++
clutter/cogl/gles/Makefile.am | 2 ++
clutter/glx/Makefile.am | 2 ++
clutter/pango/Makefile.am | 2 ++
clutter/x11/Makefile.am | 2 ++
tests/conform/Makefile.am | 8 +++++---
tests/data/Makefile.am | 1 -
tests/interactive/Makefile.am | 11 ++++++-----
tests/micro-bench/Makefile.am | 2 ++
tests/tools/Makefile.am | 9 ++++++---
16 files changed, 58 insertions(+), 31 deletions(-)
commit 94e60c393b6be8b69140da01835a377409f6a77b
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Sep 16 17:12:30 2009 +0100
[test-cogl-multitexture] Print an error if textures can't be loaded
I just wasted a silly amount time trying to bisect an apparently broken
cogl-test-multitexture until I realized it was just silently failing to load
any textures.
tests/interactive/test-cogl-multitexture.c | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
commit 3b4f46a18a1c631410b324d5f926c64f0e22ae93
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Sep 16 12:47:46 2009 +0100
[docs] Fix the comment on version bumps
configure.ac | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
commit 35c0da2b3a2558964ba74b9a213262f377aa2650
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Sep 16 11:57:45 2009 +0100
[gitignore] Add test-preferred-size
.gitignore | 1 +
1 file changed, 1 insertion(+)
commit 9dc012c07d1f6760d8d4cca07f5279e7b316dbd0
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Sep 16 11:55:04 2009 +0100
[timeline] Account for clock roll backs between frames
If the system clock rolls back between two frames then we need
to account for the change, to avoid stopping the timeline.
The best option, since a roll back can be any arbitrary amount
of milliseconds, is to skip a frame.
Fixes bug:
http://bugzilla.moblin.org/show_bug.cgi?id=3839
clutter/clutter-timeline.c | 33 +++++++++++++++++++++++----------
1 file changed, 23 insertions(+), 10 deletions(-)
commit 0d08f6e0707c1b3274227abc8054529422206e22
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Sep 15 16:27:45 2009 +0100
[cogl-fbo] Disable mipmap filters before calling glCheckFramebufferStatusEXT
The framebuffer_object spec isn't clear in defining whether attaching a
texture as a renderbuffer with mipmap filtering enabled while the mipmaps
have not been uploaded should result in an incomplete framebuffer object.
(different drivers make different decisions)
To avoid an error with drivers that do consider this a problem we explicitly
set non mipmapped filters before calling glCheckFramebufferStatusEXT. The
filters will later be reset when the texture is actually used for rendering
according to the filters set on the corresponding CoglMaterial.
clutter/cogl/gl/cogl-fbo.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
commit 561f5868e876ec17e9a6fa66282b8dcdf3ead6b6
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Sep 15 11:09:49 2009 +0100
[tests] Add preferred size conformance test unit
This unit verifies that an Actor class will invoke the get_preferred_*
virtual functions unless the caching is in effect; it also verifies
that the cached values are correctly evicted.
tests/conform/test-actor-size.c | 136 +++++++++++++++++++++++++++++++++++++-
tests/conform/test-conform-main.c | 1 +
2 files changed, 136 insertions(+), 1 deletion(-)
commit 092401c01b249cd3ae9e4788ecbcce91ebb80f38
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Sep 14 21:45:51 2009 +0100
[tests] Add initial sizing conformance test suite
The size requisition and allocation mechanisms should be thoroughly
tested to avoid unwanted regressions.
For starters, we can test the explicit size setting and the side
effects of calling clutter_actor_set_size().
.gitignore | 1 +
tests/conform/Makefile.am | 1 +
tests/conform/test-actor-size.c | 77 +++++++++++++++++++++++++++++++++++++++
tests/conform/test-conform-main.c | 2 +
4 files changed, 81 insertions(+)
commit abbe2ebf8baa61edeaa2071fa850d000d565a6ce
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Sep 14 15:57:31 2009 +0100
[container] Use a 1:1 mapping between child and ChildMeta
Since an actor can only be parented to one container we don't need
the extra complications of maintaining a list of ChildMeta objects
attached to an actor in the default implementation of the Container
interface.
clutter/clutter-container.c | 50 ++++++++-------------------------------------
1 file changed, 9 insertions(+), 41 deletions(-)
commit 6e3afa4ebed9ea4f9347e8dfd6f3cc20d1042dcd
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Thu Sep 10 13:27:02 2009 +0100
[docs] Clutter's model implementation is called ClutterListModel
It was renamed from ClutterModelDefault to ClutterListModel a while
back. Update the reference to this class in ClutterModel documentation.
clutter/clutter-model.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
commit c5195dda1533e2f42514a880bb5b7d105d4fe541
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Sep 9 16:15:54 2009 +0100
[docs] Add fixxref for Cairo symbols
Let gtk-doc resolve the Cairo types and symbols to the installed
Cairo documentation.
configure.ac | 2 ++
doc/reference/clutter/Makefile.am | 6 +++---
2 files changed, 5 insertions(+), 3 deletions(-)
commit f4e272ee9b6224cddc7eca54172025c5232e37bf
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Sep 9 16:01:07 2009 +0100
[docs] Add a Path migration guide
ClutterBehaviourPath has been changed and ClutterBehaviourBspline has
been removed; now we use ClutterPath everywhere we need to describe a
path. This warrants a chapter in the migration guide.
doc/reference/clutter/Makefile.am | 6 +-
doc/reference/clutter/clutter-docs.xml.in | 1 +
doc/reference/clutter/migrating-ClutterPath.xml | 167 ++++++++++++++++++++++++
3 files changed, 172 insertions(+), 2 deletions(-)
commit 3cc56b2b138ff6451ba73e088d1023705455aef7
Author: Øyvind Kolås <pippin@linux.intel.com>
Date: Tue Sep 8 13:06:51 2009 +0100
[text] implement get_property for "use-markup"
clutter/clutter-text.c | 4 ++++
1 file changed, 4 insertions(+)
commit 6988744db750dc3430a6c8cdd6274bc7e855aaf5
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Aug 13 12:34:07 2009 +0100
[stage] Rework the Stage implementation class
Instead of using ClutterActor for the base class of the Stage
implementation we should extend the StageWindow interface with
the required bits (geometry, realization) and use a simple object
class.
This require a wee bit of changes across Backend, Stage and
StageWindow, even though it's mostly re-shuffling.
First of all, StageWindow should get new virtual functions:
* geometry:
- resize()
- get_geometry()
* realization
- realize()
- unrealize()
This covers all the bits that we use from ClutterActor currently
inside the stage implementations.
The ClutterBackend::create_stage() virtual function should create
a StageWindow, and not an Actor (it should always have been; the
fact that it returned an Actor was a leak of the black magic going
on underneath). Since we never guaranteed ABI compatibility for
the Backend class, this is not a problem.
Internally to ClutterStage we can finally drop the shenanigans of
setting/unsetting actor flags on the implementation: if the realization
succeeds, for instance, we set the REALIZED flag on the Stage and
we're done.
As an initial proof of concept, the X11 and GLX stage implementations
have been ported to the New World Order(tm) and show no regressions.
clutter/Makefile.am | 2 +-
clutter/clutter-backend.c | 14 ++--
clutter/clutter-backend.h | 5 +-
clutter/clutter-private.h | 2 +-
clutter/clutter-stage-window.c | 79 ++++++++++++++++++-
clutter/clutter-stage-window.h | 33 ++++++++
clutter/clutter-stage.c | 105 ++++++++++++-------------
clutter/clutter.h | 1 +
clutter/glx/clutter-backend-glx.c | 14 ++--
clutter/glx/clutter-stage-glx.c | 50 ++++++------
clutter/x11/clutter-stage-x11.c | 161 ++++++++++++--------------------------
11 files changed, 253 insertions(+), 213 deletions(-)
commit 742cc4d95b602440c004d5af09a7fab662f03596
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Sep 7 11:44:44 2009 +0100
[docs] Small annotation fixes
clutter/clutter-behaviour.c | 5 +++--
clutter/cogl/cogl-material.h | 29 ++++++++++++++++++-----------
clutter/cogl/cogl-texture.h | 7 ++++---
3 files changed, 25 insertions(+), 16 deletions(-)
commit c69209a253c7ccbfe5d2c91e6972fa3dc1deb50c
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Sep 7 11:36:05 2009 +0100
[animation] Move the check for the 'signal::' prefix into a separate function
The old code checked whether the property began with 'signal-' and
then checked for 'signal-swapped' and 'signal-after'. This prevented
you from animating a property called for example 'signal-strength'.
The check for the prefix is now in a separate function which also adds
a 'signal-swapped-after' prefix for completeness.
Fixes bug:
http://bugzilla.openedhand.com/show_bug.cgi?id=1798
clutter/clutter-animation.c | 75 +++++++++++++++++++++++++--------------------
1 file changed, 41 insertions(+), 34 deletions(-)
commit 7783635af3c78cf65fcb62ccb03478f1a9556b05
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Sep 3 16:51:14 2009 +0100
[docs] Add more collateral documentation
* Add the main Glossary for Clutter terms
* Add the annotation glossary, as generated by gtk-doc
* Add the objects index and tree
doc/reference/clutter/Makefile.am | 2 +
doc/reference/clutter/clutter-docs.xml.in | 45 ++++++++--
doc/reference/clutter/glossary.xml | 142 ++++++++++++++++++++++++++++++
3 files changed, 184 insertions(+), 5 deletions(-)
commit 763f5a9d014656c09c4684bc69a0e45862882f43
Author: Samuel Degrande <samuel.degrande@lifl.fr>
Date: Wed Sep 2 16:27:22 2009 +0100
DOT3_RGB[A] cannot be used in a Blend String
The blend string compiler checks that the syntax of a function name is
[A-Za-z_]*, preventing the use of DOT3_RGB[A].
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
clutter/cogl/common/cogl-blend-string.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
commit a5e081dc9c8f39ce66270b77f5beaa6ac53e7a91
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Sep 2 15:26:33 2009 +0100
[model] Do not attempt to free empty column names
The column names are optional - ClutterModel will use the GType name
if there is no user-specified column name. Hence, the ::finalize vfunc
should not try to free an empty column names vector.
Fixes bug:
http://bugzilla.openedhand.com/show_bug.cgi?id=1790
clutter/clutter-model.c | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
commit 3686107460847d6b9333ff2149b850401590bae8
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Aug 31 15:49:39 2009 +0100
[docs] Make sure to document the point-release process
Put the documentation right inside configure.ac, lest I forget.
configure.ac | 25 ++++++++++++++++++-------
1 file changed, 18 insertions(+), 7 deletions(-)
commit db6b0a91e0c2aebb245ad5d382769889abbf88dd
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Aug 26 18:28:35 2009 +0100
Take a reference to the material in clutter_texture_set_cogl_material
The material is unref'd in clutter_texture_finalize and the
documentation explicitly states that the function will take a ref so
it really should.
clutter/clutter-texture.c | 2 ++
1 file changed, 2 insertions(+)
commit bad7782ab4bc0b5a96d8a97b9b32d5726343b1c2
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Aug 26 18:24:48 2009 +0100
Fix the documentation for clutter_texture_set_cogl_material
The documentation was a copy of the docs for set_cogl_texture so it
was somewhat broken.
clutter/clutter-texture.c | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
commit b766a1cc100778c7f74acd9dcc280400eae4c55b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Aug 26 16:50:37 2009 +0100
[tests] Update the script test JSON
The test-script.json UI definition still used old types, like
ClutterLabel and ClutterCloneTexture. It should move to the classes
that have replaced them.
tests/data/test-script.json | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
commit bb17dc1ce5d91f68da53944b5d7565be00b179eb
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Aug 26 16:49:45 2009 +0100
[script] Clean up the ad hoc parsing code in Actor
The old parsing code still assumed we had integers for pixels
and floating point values for percentages; this is not the case
anymore.
clutter/clutter-actor.c | 38 ++------------------------------------
1 file changed, 2 insertions(+), 36 deletions(-)
commit 2ffebad3d9b29931c29b8cb927580f9166ab39df
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Aug 26 16:48:32 2009 +0100
[script] Convert double to float when parsing
The default floating point type for JSON is double precision; this means
that we need to conver to single precision when setting a property with
type G_TYPE_FLOAT.
clutter/clutter-script.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
commit 87831b3427be959bea6a649e2718a5bda5927463
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Aug 25 17:55:51 2009 +0100
[tests] Add a Group actor unit
We need to test that the depth sorting of ClutterGroup works correctly
in case we wish to change the data structure that stores the children,
and do so without changing the default behaviour.
.gitignore | 1 +
tests/conform/Makefile.am | 1 +
tests/conform/test-conform-main.c | 2 ++
tests/conform/test-group.c | 57 +++++++++++++++++++++++++++++++++++++++
4 files changed, 61 insertions(+)
commit f1d58812078e04c7db17c80b51d48bb716b868d1
Author: Øyvind Kolås <pippin@linux.intel.com>
Date: Tue Aug 25 17:32:42 2009 +0100
[group] Use floating point in sort_z_order
clutter/clutter-group.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
commit d8d344f52930872a8eabdcc801872246b7ae61d1
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Aug 25 12:39:40 2009 +0100
[docs] Add Interval get_type function
The get_type() function for ClutterInterval is missing from the
known GObject types, so gtk-doc doesn't know that it has to
introspect it for hierarchy, properties and signals.
doc/reference/clutter/clutter.types | 1 +
1 file changed, 1 insertion(+)
commit 95a6e1c925c7dd24ba97a4625d1da09ff861e5c3
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Aug 25 12:18:32 2009 +0100
Fix the warnings for Animation::update_interval()
The bindings for update_interval() were copied from bind().
clutter/clutter-animation.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
commit 899f051cd92fb0b5d41948897c7130b86a98dae9
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Aug 25 12:16:41 2009 +0100
[animation] Add Animation::update()
Currently, to update a property inside an animation you have to
get the interval for that property and then call the set_final_value()
method.
We can provide a simpler, bind()-like method for the convenience of
the developers that just validates everything and then calls the
Interval.set_final_value().
clutter/clutter-animation.c | 53 ++++++++++++++++++++++++++++++
clutter/clutter-animation.h | 3 ++
doc/reference/clutter/clutter-sections.txt | 1 +
3 files changed, 57 insertions(+)
commit 4ca375e8fe395e375826ea795566b8af8029e09f
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Aug 24 12:50:57 2009 +0100
[cogl-texture] Set GL_PACK_ROW_LENGTH when downloading texture data
Otherwise the rowstride passed in from an application is not used
correctly so you can not download to an area with a much larger
rowstride.
clutter/cogl/gl/cogl-texture.c | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
commit 172074fd29cd42bf2790f78aa736f854218906f0
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Aug 21 12:05:52 2009 +0100
[glx] Perform more checks before calling glXMakeCurrent
Right now we just check for a NULL stage before calling glXMakeCurrent().
We can, though, get a valid stage without an implementation attached to
it while we are disposing a stage after a CLUTTER_DELETE event, since the
events processing is performed on a vblank-locked basis.
clutter/glx/clutter-backend-glx.c | 17 +++++++++++------
1 file changed, 11 insertions(+), 6 deletions(-)
commit 93e1d8e7a35afd0f1c08022bdf0f04154ad08ef1
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date: Fri Aug 7 21:16:04 2009 -0400
Add ::queue-relayout signal to ClutterActor for ClutterClone
ClutterClone bases its preferred size on the preferred size of
the source actor, so it needs to invalid its cached preferred
size when the preferred size of the source actor changes.
In order for this to work, we need to have notification when
the size of the source actor changes, so add a ::queue-relayout
signal to ClutterActor.
Then connect to this from ClutterClone and queue a relayout
on the clone when a relayout is queued on the source.
http://bugzilla.openedhand.com/show_bug.cgi?id=1755
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
clutter/clutter-actor.c | 56 ++++++++++++++++++++++++++++++++++++++++---------
clutter/clutter-actor.h | 5 ++++-
clutter/clutter-clone.c | 12 +++++++++++
3 files changed, 62 insertions(+), 11 deletions(-)
commit 56daae9d7bc49a29a4e1c4e093928efb747ed675
Author: Robert Bragg <robert@linux.intel.com>
Date: Thu Aug 20 12:53:32 2009 +0100
Revert "[cogl] Allow Cogl to create NPOT textures for GLES2"
This reverts commit 3c47a3beb51462ef8af1070b75123660059e97d0.
Of course I remembered just after pushing the patch why we hadn't done
this before :-) If you look in the glsl spec:
http://www.khronos.org/registry/gles/specs/2.0/es_full_spec_2.0.24.pdf
Section 3.7.10 Texture Completeness and Non-Power-Of-Two Textures
you can see GLES 2.0 doesn't support mipmaps for npot textures.
There is possibly some way we could support this in Cogl but at least
it's not as simple as or-ing in the feature flag, sadly.
clutter/cogl/gles/cogl.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
commit 3c47a3beb51462ef8af1070b75123660059e97d0
Author: Robert Bragg <robert@linux.intel.com>
Date: Thu Aug 20 12:15:21 2009 +0100
[cogl] Allow Cogl to create NPOT textures for GLES2
The core GLES2 API supports NPOT textures, i.e. there is no extension as for
OpenGL, so we now add COGL_FEATURE_TEXTURE_NPOT to the feature flags in
_cogl_features_init.
Thanks to Gordon Williams for spotting this.
clutter/cogl/gles/cogl.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
commit a5fe4ae4ec5c5c43aa0898095284447095462e37
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Aug 19 15:38:25 2009 +0100
[cogl] %.c: %.glsl codegen: use BUILT_SOURCES var + fix stringify.sh
Don't let stringify.sh write to the $srcdir + use the BUILT_SOURCES var in
Makefile.am so as to ensure all .c. and .h files get generated from their
corresponding .glsl files before building other targets.
clutter/cogl/gles/Makefile.am | 14 +++++++++-----
clutter/cogl/gles/stringify.sh | 40 +++++++++++++++++++---------------------
2 files changed, 28 insertions(+), 26 deletions(-)
commit 3761e9cd47950bfade7d3b829b20b245806632a2
Author: Jonas Bonn <jonas@southpole.se>
Date: Wed Aug 19 13:14:10 2009 +0000
Check timeline direction when forcing final state
If the timeline is running backwards, the completed signal handler should
set the final state from the interval's initial value.
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
clutter/clutter-animation.c | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
commit 373b165b3f1adc556e7ee70f01cff66d4a38cd60
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Aug 10 12:45:44 2009 +0200
Use AM_SILENT_RULES if automake >= 1.11 is installed
Fixes bug:
http://bugzilla.openedhand.com/show_bug.cgi?id=1756
Based on a patch by: Javier Jardón <javierjc1982@gmail.com>
clutter/Makefile.am | 7 +++++--
clutter/cogl/Makefile.am | 6 ++++--
clutter/cogl/common/Makefile.am | 7 ++++---
configure.ac | 18 +++++++++++++++---
4 files changed, 28 insertions(+), 10 deletions(-)
commit 6a9130f10fe5ed3c78b541cf0d021857efb57cb4
Author: Neil Roberts <neil@linux.intel.com>
Date: Tue Aug 18 18:07:37 2009 +0100
[pango-display-list] Don't premultiply the colour twice
When rendering a glyph run from a texture we were premultiplying the
colour once in display_list_render() and then again in
display_list_render_texture(). This was causing the color to come out
wrong. This fixes bug #1775.
Thanks to Pierre-Luc Beaudoin for reporting.
clutter/pango/cogl-pango-display-list.c | 1 -
1 file changed, 1 deletion(-)
commit 9befb055d0dd993d1171bf5652eefdc35567e7f5
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Aug 18 16:13:13 2009 +0100
[cogl-material] Fix some brackets in _layer_flush_gl_sampler_state
The wrong part of an expression was bracketed in the test to determine
when a new texture matrix needed to be loaded which resulted in the
first pass through _cogl_material_layer_flush_gl_sampler_state
not uploading any user matrix.
clutter/cogl/common/cogl-material.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
commit 366e0725ce1bb804219b28a29539add1e05f73e8
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Aug 18 11:11:29 2009 +0100
[docs] texture_polygon() is called polygon()
Remove the mentions to the old name of cogl_polygon().
clutter/cogl/cogl-types.h | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
commit f655b28e669b7aec5b3ace0d8873adeefa11b4de
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Aug 17 23:27:22 2009 +0100
[build] Nothing can be prepended to QUIET_* rules
Move the LD_LIBRARY_PATH override after the QUIET_GEN rule and
unbreak the typelib compilation.
clutter/Makefile.am | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
commit 8c00d705c0ec009c08950f314ab896b6ff40aa37
Author: Jussi Kukkonen <jku@linux.intel.com>
Date: Mon Aug 17 00:00:35 2009 +0300
[text] move_word_backward/forward fixes
clutter_text_move_word_backward/forward() calls did not use the
start argument consistently. Also, clutter_text_move_word_forward()
bound check checked the wrong end.
Fixes #1765
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
clutter/clutter-text.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
commit 99437c476136ec6a735270efd8670efcd1f2c77e
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Aug 17 17:43:42 2009 +0100
[text] Don't interpret the unicode value when the control modifier is on
When a letter key is pressed with the control key held down one of
three things will happen :-
a) If the stage is embedded within a GtkClutterEmbed the unicode value
will be filled from gdk_keyval_to_unicode. This will be the same
value as if control was not pressed (so Ctrl+V will be 'v').
b) If the stage is not in a GtkClutterEmbed and Clutter is running on
the X11 backend then it will try to fill in the unicode value from
XLookupString. This *will* take into account the control so the
unicode value will represent a control character (Ctrl+V will be
'\x16').
c) Most other backends will not bother to fill in the unicode
value. Therefore clutter_keysym_to_unicode will be used which also
does not take into account the control key (so Ctrl+V will be 'v').
For cut and paste to work in Nbtk, the control keys need to bubble up
to the parent NbtkEntry container. This works fine for 'b' but not 'a'
and 'c'.
This patch makes ClutterText always allow the event to bubble if the
key is not handled by the binding pool and the control modifier is
down.
Ideally ClutterText would always get a unicode value that takes into
account the modifiers but this is probably best left up to the input
methods.
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
clutter/clutter-text.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
commit 5d7c2e7c4495b3d6f35ed3f4e50857f17b946872
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date: Mon Aug 17 13:57:18 2009 -0400
Set LD_LIBRARY_PATH when running g-ir-compiler
g-ir-compiler currently opens the library for the .gir it is compiling;
to make that work we need to set LD_LIBRARY_PATH before running
g-ir-compiler to include .libs.
(I think this may have been working earlier because there was a
hack that substituted .so with .la and tried opening that; that
works for the incorrect libclutter-glx-1.0.so but not for the
correct libclutter-glx-1.0.so.0)
http://bugzilla.openedhand.com/show_bug.cgi?id=1771
clutter/Makefile.am | 1 +
1 file changed, 1 insertion(+)
commit 4c1248c5e9b934b23bdabbfc3d2dabdb8bab0656
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date: Mon Aug 17 15:41:27 2009 +0100
Full fix for the G-I support in Clutter
Update the sed hack for the shared library to be more robust.
Remove the --shared-library command line argument from g-ir-scanner,
as no distribution will ever ship the .la files. This effectively
reverts commit 68f8a98cfbf70e2b7bfcda7831907633eb08ca50.
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
clutter/Makefile.am | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
commit 68f8a98cfbf70e2b7bfcda7831907633eb08ca50
Author: Götz Waschk <waschk@mandriva.org>
Date: Mon Aug 17 14:21:42 2009 +0100
Specify the shared library for g-ir-compile
Use the --shared-library option to specify the shared object to link
against when compiling the typelib from the GIR data.
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
clutter/Makefile.am | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
commit 366e0f9cd7773433ba14cc531119bca3b9879a1e
Author: Götz Waschk <waschk@mandriva.org>
Date: Mon Aug 17 14:12:21 2009 +0100
Update Clutter to use G-I 0.6.4
Following bug #1762, the syntax of g-ir-scanner was changed in
gobject-introspection, so Clutter does not build anymore with 0.6.4.
See the bugzilla bug:
http://bugzilla.gnome.org/show_bug.cgi?id=591669
GObject-Introspection now uses a different mechanism to extract the
SONAME when building the gir file and it needs the libtool archive as
option.
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
README | 2 +-
clutter/Makefile.am | 2 +-
clutter/cogl/Makefile.am | 2 +-
clutter/json/Makefile.am | 2 +-
configure.ac | 2 +-
5 files changed, 5 insertions(+), 5 deletions(-)
commit 53cb86d94ba258cb917221856501c60738a143f3
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Aug 17 10:27:13 2009 +0100
[docs] Update the requirements section
README | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
commit 90d8f3183193176b796ac533158e3b0c2a4c2e85
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Aug 14 15:59:29 2009 +0100
[units] Do not be locale-dependant on string conversion
When dumping a ClutterUnits structure to a string we are using a bare
g_strdup_printf(), which unfortunately is locale dependant. So, for
instance, a type of CLUTTER_UNIT_EM and a value of 42 are stringified
as:
C: 42.00 em
en_GB 42.00 em
it_IT 42,00 em
fr_FR 42,00 em
This would not be a problem -- clutter_units_from_string() allows both
'.' and ',' as fractionary part delimiters. The test suite, on the
other hand, does not know that, and it checks for exact matches with
the C locale.
Calling setlocale(LC_ALL,"C") at the beginning of the conformance test
suite is not a good idea, because it would prevent external testing; and
it's a lame cop out from doing exactly what we have to do -- pick a format
and stick with it.
Like other platforms, languages and frameworks before us, we opt to
be less liberal in what we create; so, we choose to always stringify
ClutterUnits with fractionary parts using '.' as the delimiter.
Fixes bug:
http://bugzilla.openedhand.com/show_bug.cgi?id=1763
clutter/clutter-units.c | 24 ++++++++++++++----------
1 file changed, 14 insertions(+), 10 deletions(-)
commit f08b583a312cd87f3263078eecdb19a9328ac79f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Aug 14 15:58:00 2009 +0100
[tests] Abstract GTest and Clutter initialization
The set up process of the conformance test suite is complex enough to
warrant a split up into its own function.
tests/conform/test-conform-main.c | 27 ++++++++++++++++++---------
1 file changed, 18 insertions(+), 9 deletions(-)
commit b31e2d59bdfcc3be46f3ec87de4bcabc32747133
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Aug 14 13:08:59 2009 +0100
[build] Remove last user of CLUTTER_MAJORMINOR
We should always use CLUTTER_API_VERSION instead.
doc/manual/Makefile.am | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
commit 5274b4e4c48dbd81c7553ef9889b5897afe932c5
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Aug 14 13:08:17 2009 +0100
[build] Clean up the eglnative and fruity Makefile.am
* Do not use CLUTTER_MAJORMINOR
* Use per-target compiler flags and libraries
clutter/eglnative/Makefile.am | 11 +++++------
clutter/fruity/Makefile.am | 21 ++++++++++-----------
2 files changed, 15 insertions(+), 17 deletions(-)
commit f7edc97d8df2f035fa81343126884b0cbfc9bc3a
Author: Xu Li <xu.li@intel.com>
Date: Tue Aug 4 22:06:27 2009 +0800
Add new Atom atom_NET_WM_PID to set pid info
Clutter advertises itself on X11 as implementing the _NET_WM_PING protocol,
which is needed to be able to detect frozen applications; this allows us to
stop the destruction of the stage by blocking the CLUTTER_DELETE event and
wait for user feedback without the Window Manager thinking that the app has
gone unresponsive.
In order to implement the _NET_WM_PING protocol properly, though, we need
to add the _NET_WM_PID property on the Stage window, since the EWMH states:
[_NET_WM_PID] MAY be used by the Window Manager to kill windows which
do not respond to the _NET_WM_PING protocol.
Meaning that an unresponsive Clutter application might not be killable by
the window manager.
Fixes bug:
http://bugzilla.openedhand.com/show_bug.cgi?id=1748
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
clutter/x11/clutter-backend-x11.c | 22 ++++++++++++----------
clutter/x11/clutter-backend-x11.h | 1 +
clutter/x11/clutter-stage-x11.c | 25 +++++++++++++++++++++++++
3 files changed, 38 insertions(+), 10 deletions(-)
commit 3abf393b87d83211d82b161c0417d80312b8783f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Aug 14 11:29:03 2009 +0100
[build] Clean up cogl-pango Makefile
* Do _not_ use CLUTTER_MAJORMINOR to define the installation path
for the headers; we must use CLUTTER_API_VERSION for that.
* Do not put the C compiler flags in the INCLUDES directive.
Bases on a patch by: Gary Ching-Pang Lin <glin@novell.com>
clutter/pango/Makefile.am | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)
commit 5c8ae6d2dcdb592a56f33927dcec2369a9147396
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Aug 13 18:05:38 2009 +0100
[json] Fix compilation of the internal JSON-GLib
Define the symbols needed to pass the single include policy when
compiling the static object.
clutter/json/Makefile.am | 4 +++-
clutter/json/json-glib.h | 4 ++++
2 files changed, 7 insertions(+), 1 deletion(-)
commit 6e1f9ad9b65fedaa18950de712d7f6ab39b809f0
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Aug 13 16:15:04 2009 +0100
[docs] Remove the version number from the title
The version number in the title made sense when we were breaking
API with every minor release. Now that we're API stable we can
drop that and make the output in Devhelp and on the website slightly
more good looking.
doc/reference/clutter/clutter-docs.xml.in | 4 ++--
doc/reference/cogl/cogl-docs.xml.in | 9 +++++++--
2 files changed, 9 insertions(+), 4 deletions(-)
commit 8a794a85337c01a21f88a02c84bd519ed511b6c6
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Aug 13 16:13:55 2009 +0100
[docs] Fix the examples for animate()
Update the examples to reference to existing easing modes and to
make sure to use floating point values for floating point properties.
clutter/clutter-animation.c | 36 ++++++++++++++++++------------------
1 file changed, 18 insertions(+), 18 deletions(-)
commit f25cdf066c023222330119a1fe8ef5204773faa7
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Aug 13 12:26:09 2009 +0100
[actor] Allow unsetting width and height separately
It is possible to unset the size of an actor specified with set_width()
and set_height() by using:
clutter_actor_set_size (actor, -1, -1);
Which works by unsetting the :min-*-set and the :natural-*-set properties.
Calling set_width(-1) and set_height(-1) separately, though, doesn't work
thus implicitly breaking the assumption that set_size() is nothing more
than set_width()+set_height(). This was obviously due to the face that
pre-1.0 set_width() and set_height() took an unsigned integer as an
argument.
clutter/clutter-actor.c | 81 +++++++++++++++++++++++++++++++------------------
1 file changed, 52 insertions(+), 29 deletions(-)
commit d3e06bc1e5654248d86aaa568179c5732839412e
Author: Colin Walters <walters@verbum.org>
Date: Thu Aug 13 10:49:39 2009 +0100
Add (allow-none) for clutter_stage_set_key_focus()
The @actor argument can be NULL to unset the key focus.
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
clutter/clutter-stage.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 9766fb13005b04669e60befd9e0e3cddf822ac1c
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Aug 12 16:02:23 2009 +0100
[script] Fix Actor's ad-hoc parser
ClutterActor parses positional and dimensional properties with a
custom deserializer. We need to:
- handle G_TYPE_INT64, the default integer type for JSON-GLib
- use G_TYPE_FLOAT for properties, since Actor switched to it
for the pixel-based ones
This makes ClutterScript work again.
clutter/clutter-actor.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
commit cfbbacb8079e2ad92d5e538195d49cfdf8818144
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Aug 12 16:01:25 2009 +0100
[script] Fix the default deserialization
Properties parsed from ClutterScript should now use G_TYPE_INT64
and automatically convert between G_TYPE_INT and G_TYPE_INT64.
clutter/clutter-script.c | 21 +++++++++++++--------
1 file changed, 13 insertions(+), 8 deletions(-)
commit 4d522456372c2394046968ce0a4b22f603023d32
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Aug 12 16:00:13 2009 +0100
[json] Update the internal copy of JSON-GLib
JSON-GLib switch to 64 bit integers upstream, to avoid the undefined
integer size of the JSON RFC. All integers are automatically promoted
to gint64.
clutter/json/json-array.c | 4 +--
clutter/json/json-node.c | 61 +++++++++++++++++++++++++++++++++++++---------
clutter/json/json-object.c | 41 ++++++++-----------------------
clutter/json/json-parser.c | 13 +++++-----
clutter/json/json-types.h | 16 +++++++-----
5 files changed, 78 insertions(+), 57 deletions(-)
commit 2b70b0d4ed791e8bc25b59eb3b2e9dbeb8201b11
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Aug 12 15:57:25 2009 +0100
Include clutter-json.h, not json-types.h
The json-types.h header is found by the mere fact of it being
in the project; if we are compiling against the system JSON-GLib
this could be horribly out of date.
We need to use clutter-json.h, which will include the right
header for us.
clutter/clutter-script-private.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit cc6aa6e4d537c5eec3fda85475f78bdf0da2ea10
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Aug 12 15:32:18 2009 +0100
Clutter GIR depends on ClutterJson GIR conditionally
If we're building Clutter with a system JSON-GLib we need to skip
the typelib compilation of ClutterJson since we depend on Json-1.0.gir
directly.
clutter/Makefile.am | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
commit 6fcf5c1820b29610a05e0f5022d1d6d907716df5
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Aug 12 15:31:16 2009 +0100
[json] Include only json-glib.h
JSON-GLib moved to a single include scheme, so we should only include
json-glib.h. If we use the internal copy it doesn't matter, since the
header does the right thing.
clutter/clutter-json.h.in | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
commit 8c49e227536fabddd2cbf81aa94e1624d30ca312
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Aug 12 10:30:11 2009 +0100
Add copyright and license notice
The clutter-script-parser.c does not have a copyright and license
notices; even though the LGPL is a per-project license and not a
per-file license, having those notices in every source file is a
good idea.
clutter/clutter-script-parser.c | 32 ++++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)
commit 13e055a351f83c56b895b131566a6e842d24ed2a
Author: zhou jiangwei <dyllan.zhou@samsung.com>
Date: Tue Aug 11 14:18:37 2009 +0100
[eglx] Update the EGLX backend
The EGLX backend needs to be updated to the new ClutterBackendX11
code.
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
clutter/eglx/clutter-backend-egl.c | 43 ++++++++++++++++++++++++++++++++++++++
clutter/eglx/clutter-backend-egl.h | 1 +
clutter/eglx/clutter-stage-egl.c | 4 ++--
3 files changed, 46 insertions(+), 2 deletions(-)
commit 2ab9bef5873ca9d226ddf31fc65b96fe20fa72d5
Author: zhou jiangwei <dyllan.zhou@samsung.com>
Date: Tue Aug 11 14:17:28 2009 +0100
[cogl] Fix the GLES 2.0 backend
Update the GLES 2.0 backend to the new COGL API after the breakage
introduced by the journal.
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
clutter/cogl/common/cogl-primitives.c | 5 +++--
clutter/cogl/gles/cogl-context.h | 5 ++++-
clutter/cogl/gles/cogl-gles2-wrapper.h | 5 +++++
clutter/cogl/gles/cogl-primitives.c | 10 +++++-----
clutter/cogl/gles/cogl-texture-private.h | 3 +++
5 files changed, 20 insertions(+), 8 deletions(-)
commit dbfd3f0f444680d85556edc0b96dff68ea22722d
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Aug 11 13:49:12 2009 +0100
[cogl_clear] Also pass the alpha component of the CoglColor to glClearColor
Previously we were passing a constant of 0.0 for the alpha component which
wasn't as flexible.
clutter/cogl/common/cogl.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit f0cb337d920c46cb7ca45d80ade69057d0408ff5
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Aug 11 13:27:25 2009 +0100
[build] Fix LDADD -> LIBADD usage
clutter/osx/Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit dfc32b60c4b1b0b83fbf70d7e02b58cbc919326a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Aug 11 13:11:34 2009 +0100
[osx] Clean up Makefile.am
The OS X backend Makefile.am was missing a line concatenation, and
so the -xobjective-c directive was always ignored.
Instead of dumping everything into INCLUDES and LDADD we should follow
what the rest of the backends do, and use per-target CFLAGS and LDADD,
and reserve the INCLUDES to -D and -I directives.
Thanks to: Christian Hergert <chris@dronelabs.com>
clutter/osx/Makefile.am | 30 ++++++++++++++----------------
1 file changed, 14 insertions(+), 16 deletions(-)
commit d0748b3b9b34bf77ed3b813e3872cac64d6a6c35
Merge: d263e7a78 df572d089
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Aug 10 17:21:20 2009 +0100
Merge branch 'system-json-glib'
* system-json-glib:
[script] Simplify the parser code
Update JSON-GLib dependency
commit d263e7a78b7e98b2b87a51a194b93473344b6b27
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Aug 10 17:19:04 2009 +0100
[build] Install JSON headers inside the right directory
Don't install inside the clutter-MAJOR_MINOR/ directory, but use
the API_VERSION (1.0).
Otherwise we'd have the Clutter headers for 1.x inside:
$includedir/clutter-1.0/clutter
And the JSON-related headers inside:
$includedir/clutter-1.<minor>/clutter
clutter/json/Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 19a53054fde3ccfac365452618e4524e3f3c7efc
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Aug 7 15:27:25 2009 +0100
Bump to 1.1.1 after branching 1.0
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 420ed353b53bd624331bd249d7df98d14714b504
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Aug 7 08:18:17 2009 +0100
[x11] Do not ask to destroy an empty Window
The fix for bug 1750 inside commit b190448e made Clutter-GTK spew
BadWindow errors. The reason for that is that we call XDestroyWindow()
without checking if the old Window is None; this happens if we call
clutter_x11_set_stage_foreign() on a new ClutterStage before it has
been realized.
Since Clutter-GTK does not need to realize the Stage it is going to
embed anymore (the only reason for that was to obtain a proper Visual
but now there's ClutterBackendX11 API for that), the set_stage_foreign()
call is effectively setting the StageX11 Window for the first time.
clutter/x11/clutter-stage-x11.c | 20 +++++++++++++++-----
1 file changed, 15 insertions(+), 5 deletions(-)
commit 335fb07ab02bc719c04bf2de115a88216f1321f7
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Aug 5 17:46:18 2009 +0100
[actor] Add missing return_if_fail()
The queue_relayout() method was missing the argument check.
Thanks to: Neil Patel <njpatel@gmail.com>
clutter/clutter-actor.c | 2 ++
1 file changed, 2 insertions(+)
commit 1434d7213487ad42626fcc4b1da180fe98192ef1
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Aug 5 15:51:49 2009 +0100
Small doc fix to clutter_text_get_color
Bug reported by Rob Bradford.
clutter/clutter-text.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit b190448ed460ae466cd6d1c7c34e47d4386fe4c4
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Aug 4 16:59:15 2009 +0100
[x11] Destroy the Window we own when setting a foreign one
When we replace the stage Window using a foreign one we also need to
destroy the Window we created, if needed, to avoid leaking resources
all around.
Fixes bug:
http://bugzilla.openedhand.com/show_bug.cgi?id=1750
clutter/x11/clutter-stage-x11.c | 6 ++++++
1 file changed, 6 insertions(+)
commit 7963254c23f42a43b64ca3f2401499b456d677ce
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Aug 4 11:39:09 2009 +0100
[docs] Close a tag
doc/reference/clutter/building-clutter.xml | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
commit 79288b46ed60efe4cf3f970ef7f1cce17685cd84
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Aug 4 11:38:48 2009 +0100
[docs] Fix a missing parameter
clutter/cogl/cogl-vertex-buffer.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 9cda8d130f7097d8ca43ffb0e50206ab72d1892d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Aug 4 11:11:59 2009 +0100
[actor] Be more explicit when warning about invariants
The "catch all" warning for a the mapped invariant violation is too
generic: it doesn't tell you why the invariant was broken in case
we are trying to map an unparented actor - e.g. through a Clone.
clutter/clutter-actor.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
commit f8a964b422c195219c59a3b21d9bb3125ce215dd
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Aug 4 11:10:55 2009 +0100
[cogl] Expose cogl_is_vertex_buffer()
The function is public and available in the shared object, but
it's not present in the header, so this is not an API/ABI change.
clutter/cogl/cogl-vertex-buffer.h | 14 ++++++++++++++
doc/reference/cogl/cogl-sections.txt | 1 +
2 files changed, 15 insertions(+)
commit c9f57452e60c89c0b046def2f1787773545244df
Author: Robert Bragg <robert@linux.intel.com>
Date: Mon Aug 3 15:03:19 2009 +0100
[build] remove reference to light1.png in tests/interactive/Makefile.am
This file doesn't exist in the repo and isn't referenced by any unit tests.
tests/interactive/Makefile.am | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
commit 71c4fa0f73ec9a101a4dcb07a0d782e075185d4b
Author: Robert Bragg <robert@linux.intel.com>
Date: Mon Aug 3 14:53:46 2009 +0100
[build] dist tests/interactive/wrapper.sh
in tests/interactive/Makefile.am add wrapper.sh to EXTRA_DIST otherwise
interactive unit tests wont be runnable when building from distributed
tarballs.
tests/interactive/Makefile.am | 3 +++
1 file changed, 3 insertions(+)
commit c9c87543e8f827ee4c3510cd0025e8653d3309b1
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Mon Aug 3 14:11:33 2009 +0100
[debug] CLUTTER_{NOTE,MARK,DBG,GLERR,TIMESTAMP} should always be statements
In case someone tries to do:
if (foo)
CLUTTER_NOTE(DOMAIN, "%s", blah);
CLUTTER_NOTE () should always be a statement
clutter/clutter-debug.h | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
commit cd35f3b384b645d171de49eee555363d4b2acc94
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Mon Aug 3 13:58:52 2009 +0100
[debug] Fix __GNUC__ typo
The right gcc define is __GNUC__ not __GNUC_. This typo had the side
effect that we were using the non gcc specific debug macros leading to
a less optmised CLUTTER_NOTE () than one could have dreamed of.
clutter/clutter-debug.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 94b35a4a5ee4fa86d837b2deb06fe849a2a68977
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Mon Aug 3 13:56:32 2009 +0100
[build] GCC_FLAGS is no more, MAINTAINER_CFLAGS is the One.
CC_FLAGS was a left over from the 0.8.x age. Killed it and use the
newer MAINTAINER_CFLAGS variable instead.
clutter/Makefile.am | 2 +-
clutter/eglnative/Makefile.am | 2 +-
clutter/eglx/Makefile.am | 2 +-
clutter/fruity/Makefile.am | 2 +-
clutter/glx/Makefile.am | 3 +--
clutter/json/Makefile.am | 2 ++
clutter/osx/Makefile.am | 2 +-
clutter/sdl/Makefile.am | 2 +-
clutter/win32/Makefile.am | 2 +-
clutter/x11/Makefile.am | 3 +--
10 files changed, 11 insertions(+), 11 deletions(-)
commit 4ee49eded0561ad987b50e1b04e15a685c1c06e2
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Mon Aug 3 13:58:21 2009 +0100
[gitignore] Ignore new test-color-hls-roundtrip test
tests/.gitignore | 1 +
1 file changed, 1 insertion(+)
commit b2ab2b953548bb9af41789e2465dfa9a588c9b2d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sun Aug 2 18:34:17 2009 +0100
[actor] Use the right vertex
The vertex that should be used by the apply_relative_transform
is the one passed in as const, and the result should be placed
inside the non-const ClutterVertext. Currently, we are using
the latter, and thus the function is completely useless.
clutter/clutter-actor.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
commit ae2a861a0b042e36393e5eb76ecb17759a933892
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Jul 31 10:29:33 2009 +0100
[x11] Force a redraw before mapping the stage
Does as it says on the tin: run a paint cycle before calling
XMapWindow().
clutter/x11/clutter-stage-x11.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
commit abdcf4debbedd9f924da4db9403ecbc9a030cb20
Author: Joshua Lock <josh@linux.intel.com>
Date: Fri Jul 31 10:16:56 2009 +0100
[docs] Update building instructions for OS X
Recommend OS X users install the dependencies using MacPorts and build
Clutter themselves.
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
doc/reference/clutter/building-clutter.xml | 41 +++++++++++++++++-------------
1 file changed, 23 insertions(+), 18 deletions(-)
commit b3842a6b62979d264b7d7057e4125602e644ccad
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Jul 29 19:06:36 2009 +0100
[mingw] Update the README
The README has been updated to say that you can use the script under
MSYS and also to contain a pointer to OAH. It also contains the
updated contents of a blog post¹ about building with MSYS.
1. http://www.busydoingnothing.co.uk/blog/2008/07/13#ClutterWin32
build/mingw/README | 133 ++++++++++++++++++++++++++++++++++++++++++++++++++---
1 file changed, 127 insertions(+), 6 deletions(-)
commit 8ad446f3e9903d2339536db4febef1cbc77db643
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Jul 29 18:13:19 2009 +0100
[mingw-cross-compile.sh] Fix to use git rather than svn
The script includes a part to automatically checkout the Clutter
source and build it but it was using the old svn repo instead of git.
build/mingw/mingw-cross-compile.sh | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
commit d796d3c88c3d3044d1c1bf54c320504f4e5886eb
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Jul 29 17:59:54 2009 +0100
[mingw-cross-compile.sh] Add a note about MSYS in the comment
The comment previously implied that you could only use the script to
cross compile but it works just as well under MSYS.
build/mingw/mingw-cross-compile.sh | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
commit 1e14d3041dc2f68d18dcd3e03d34e8d0fa7a05f4
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Jul 29 17:58:02 2009 +0100
[mingw-cross-compile.sh] Update version numbers of all the dependencies
This updates the URLs for the binary dependencies to use the latest
versions.
build/mingw/mingw-cross-compile.sh | 23 +++++++++++++----------
1 file changed, 13 insertions(+), 10 deletions(-)
commit a3c323c52c42785f93641e3603a5426bbb371876
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Jul 29 17:22:18 2009 +0100
[docs] Remove mentions of Clutter-Cairo
The mingw README file still mentions Clutter-Cairo as a known issue.
build/mingw/README | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
commit 0ec6793738085308206e028d1136cb4cd4274f11
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Jul 29 17:21:13 2009 +0100
[mingw/win32] Remove clutter-cairo
The Clutter-Cairo library has been removed, so there's no point
in checking it out -- from Subversion, even.
build/mingw/mingw-cross-compile.sh | 23 -----------------------
1 file changed, 23 deletions(-)
commit fba1045bcb46da4ed04bd789b7650e985915243b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Jul 28 18:39:24 2009 +0100
Post-release bump to 1.0.1
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit df572d089c0811ecbc5e41d1c68d39fae47040e9
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Jun 29 16:33:36 2009 +0100
[script] Simplify the parser code
JSON-GLib provides simple accessors for basic types so that we
can avoid getting the JsonNode out of a complex type. This makes
the code simpler to understand.
clutter/clutter-script.c | 39 ++++++++++-----------------------------
1 file changed, 10 insertions(+), 29 deletions(-)
commit 354fa437cdc4b67ca6c2452756a261222109b289
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Jun 25 18:56:52 2009 +0100
Update JSON-GLib dependency
Currently, Clutter depends on the internal copy of JSON-GLib for
the ClutterScript parser. This is done to allow building Clutter
on platforms that do not have the library installed on the system.
Just like we use the internal PNG/JPEG loader as a fallback in
case we don't have GdkPixbuf or CoreGraphics available, we should
use the internal copy of JSON-GLib only in case the system copy
is not present.
The change is simply to move the default for the --with-json
configure switch from "internal" to "check".
In order to allow stricter compliance, a third setting should
be present: "system", which fails if the system copy is not
available.
We should also change the introspection generation to avoid
breaking in case we require the installed Json-1.0.gir instead
of the generated ClutterJson.gir
clutter/Makefile.am | 5 ++++-
configure.ac | 44 +++++++++++++++++++++++++++++++++++---------
2 files changed, 39 insertions(+), 10 deletions(-)
|