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
|
commit 01cbd47b19a57a70924c4cc4ecad52319a446b29
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Jan 31 14:47:37 2011 +0000
Release Clutter 1.6.0
configure.ac | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
commit c060f086c5af655a52d7b2651abd76eb10394534
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Jan 31 13:59:14 2011 +0000
docs: Update the NEWS file
NEWS | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
commit bb44d51fc934e2360eb8d529be7cdcec438d32b5
Merge: 5859efa34 6680cebfe
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Jan 31 13:58:12 2011 +0000
Merge remote branch 'elliot/cookbook-actors-composite'
* elliot/cookbook-actors-composite:
docs: Add reference to useful GObject tutorial
docs: Explain why destroy() is implemented
docs: Implement destroy() rather than dispose()
docs: Don't use clutter_stage_get_default()
docs: Change text on button
docs: Add a note about other state variables
docs: Complete composite actor recipe
docs: Change order of functions in example to match docs
docs: Add more comments on how allocate() works
docs: Include code examples in the recipe
docs: Explain enums for properties and signals
docs: Don't set explicit size on button
docs: Add example of preferred_height() and preferred_width()
docs: Add recipe for creating a custom ClutterActor with composition
docs: Add more comments on code example for composite actor
docs: Improve example code formatting
docs: Add some gtk-doc annotations to example
docs: Add custom ClutterActor example which uses composition
commit 5859efa34ff530a9452877a46cc120ca1d36a8e1
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Jan 31 13:50:37 2011 +0000
docs: Update NEWS file
NEWS | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
commit 2c1f8c9ad367035f7fd0d5177c60816440d916b2
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Jan 28 14:53:08 2011 +0000
osx: Add devices to event translation code
Use a DeviceManager sub-class similar to the Win32 backend one, which
creates two InputDevices: a core pointer and a core keyboard.
The event translation code then uses these two devices to fill out the
.device field of the events.
Throw in enter/leave tracking, given that we need to update the device's
state.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2490
clutter/osx/clutter-backend-osx.c | 45 ++++++--
clutter/osx/clutter-device-manager-osx.c | 180 +++++++++++++++++++++++++++++++
clutter/osx/clutter-device-manager-osx.h | 58 ++++++++++
clutter/osx/clutter-event-osx.c | 83 ++++++++++----
clutter/osx/clutter-stage-osx.c | 7 +-
clutter/osx/clutter-stage-osx.h | 12 +--
6 files changed, 350 insertions(+), 35 deletions(-)
commit 634e4ffd1a93d62c3875e02f5ba69085fa0b4bcf
Author: Viatcheslav Gachkaylo <vgachkaylo@crystalnix.com>
Date: Fri Jan 28 12:56:57 2011 +0000
osx: Improve the event loop
Implementation of event loop which works with GLib events, native OS X
events and Clutter events.
The event loop source code comes from the equivalent code in the Quartz
GDK backend from GTK+ 2.22.1, which is LGPL v2.1+ and thus compatible
with Clutter's licensing terms.
The code has been tested with libsoup, which did not work before together
with Clutter.
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
http://bugzilla.clutter-project.org/show_bug.cgi?id=2490
clutter/Makefile.am | 6 +-
clutter/clutter-debug.h | 3 +-
clutter/osx/clutter-event-loop-osx.c | 1051 ++++++++++++++++++++++++++++++++++
clutter/osx/clutter-event-loop-osx.h | 32 ++
clutter/osx/clutter-event-osx.c | 223 +++-----
clutter/osx/clutter-stage-osx.h | 3 +
6 files changed, 1176 insertions(+), 142 deletions(-)
commit 6680cebfe1f0ef697e16f6db26d1e7fb70d5e459
Author: Elliot Smith <elliot.smith@intel.com>
Date: Mon Jan 31 13:40:10 2011 +0000
docs: Add reference to useful GObject tutorial
Add a reference to a GObject tutorial which
is a good introduction to the various macros etc.
and what they're for.
doc/cookbook/actors.xml | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
commit 885664f725aa3704c46db62e7b1fa951819fc22c
Author: Elliot Smith <elliot.smith@intel.com>
Date: Mon Jan 31 13:39:11 2011 +0000
docs: Explain why destroy() is implemented
As destroy() is Clutter-specific and not generic
GObject code, explain why we implement it
(rather than dispose()).
doc/cookbook/actors.xml | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
commit 1558975bc38c87690f26bc54849459c4db581371
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Jan 31 13:37:32 2011 +0000
docs: Fix documentation for clutter_actor_pop_internal()
http://bugzilla.clutter-project.org/show_bug.cgi?id=2534
clutter/clutter-actor.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit e69d60e8b64bbe0811479dac96aee6009560be4e
Author: Elliot Smith <elliot.smith@intel.com>
Date: Mon Jan 31 13:36:37 2011 +0000
docs: Implement destroy() rather than dispose()
Remove the dispose() implementation and replace
with destroy().
This should be promoted as the standard approach
for implementing a composite actor, as it emits a
signal when instances of the actor subclass are destroyed.
doc/cookbook/examples/cb-button.c | 61 ++++++++++++++++++++-------------------
1 file changed, 31 insertions(+), 30 deletions(-)
commit 9753cd4a59f3849090bf8cee247fafd806729826
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Jan 31 13:04:49 2011 +0000
docs: Update Cogl release notes for 1.6
README | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
commit f954b8e1bb309d4f9487edb558f4280c772cffb5
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Jan 31 13:04:35 2011 +0000
Update the NEWS file
NEWS | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)
commit ef36d7cbccbd9225f2a16328522c1cbf3d0befd0
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Jan 31 12:51:14 2011 +0000
docs: Update the documentation for clutter_actor_unparent()
Make sure that we document the semantics of unparent() and who should
call it.
clutter/clutter-actor.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
commit e32253508de412c3d91c55e73e099ddcc38e1082
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Jan 31 12:50:25 2011 +0000
docs: Update documentation for ::destroy
The ::destroy signal is meant to be used to break reference cycles on
third party code. The documentation should really make it clear.
clutter/clutter-actor.c | 19 +++++++++++++++----
1 file changed, 15 insertions(+), 4 deletions(-)
commit e0580127f8f3510c2a8b4d2906c66835ac7bc5a5
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Jan 31 12:28:03 2011 +0000
docs: Update release notes for 1.6
README | 90 +++++++++++++++++++++++++++++++++++++++++++++++++-----------------
1 file changed, 67 insertions(+), 23 deletions(-)
commit f63158c2a2c27e7d4a264caf994f799a38fb6398
Author: Elliot Smith <elliot.smith@intel.com>
Date: Mon Jan 31 12:18:58 2011 +0000
docs: Don't use clutter_stage_get_default()
clutter_stage_get_new() is the recommended way to
get a stage instance, so use that instead.
doc/cookbook/examples/actors-composite-main.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 3f64137a7937498ea4982edf9c1fb133fe9321e4
Author: Elliot Smith <elliot.smith@intel.com>
Date: Mon Jan 31 11:06:01 2011 +0000
docs: Change text on button
Modify the text shown on the button to "hello / world"
rather than "winkle / pickers". Slightly more
sensible.
doc/cookbook/examples/actors-composite-main.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
commit 5530c5e2ec9605722e7f65b60b73e8fe396e6c39
Author: Elliot Smith <elliot.smith@intel.com>
Date: Mon Jan 31 11:05:27 2011 +0000
docs: Add a note about other state variables
Explain that the private structure would be the
place to store other state variables for the instance.
doc/cookbook/examples/cb-button.c | 4 ++++
1 file changed, 4 insertions(+)
commit 08f5dc08d0e11e2f03b3a9c8889222a584cbe0e7
Author: Elliot Smith <elliot.smith@intel.com>
Date: Mon Jan 31 10:53:52 2011 +0000
docs: Complete composite actor recipe
Add some extra detail to the Discussion section of the
composite actor recipe, concentrating on the pros and
cons of this approach.
Also explain more about the Clutter parts of the implementation.
Also general tidy up of language and style.
doc/cookbook/actors.xml | 220 +++++++++++++++++++++++++++++++++++++-----------
1 file changed, 170 insertions(+), 50 deletions(-)
commit 238fd52c4b0660ac61b3ae125f3eef8f71b0f6b0
Author: Elliot Smith <elliot.smith@intel.com>
Date: Fri Jan 28 17:09:24 2011 +0000
docs: Change order of functions in example to match docs
Moved the functions around in the C code file, to match
the order Clutter uses them, and the order they are explained
in the recipe.
doc/cookbook/examples/cb-button.c | 99 +++++++++++++++++----------------------
1 file changed, 44 insertions(+), 55 deletions(-)
commit 6934b3645164b5e2a4d4c3da5ed99fe93bb9a95d
Author: Elliot Smith <elliot.smith@intel.com>
Date: Fri Jan 28 16:43:22 2011 +0000
docs: Add more comments on how allocate() works
Add some extra description to the allocate() function,
explaining how the allocation has to be adjusted to
coordinates relative to the actor as a whole, before
applying to the single child actor it is composed from.
doc/cookbook/examples/cb-button.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
commit 00deb59a9daa45558753810fcc18c738f61b0a6e
Author: Elliot Smith <elliot.smith@intel.com>
Date: Fri Jan 28 11:49:08 2011 +0000
docs: Include code examples in the recipe
Include all the code examples inline as part of the recipe.
Remove sections around each code example, as these are
unnecessary; leave full discussion for the Discussion section
instead of trying to cram it in around the code example.
doc/cookbook/actors.xml | 103 ++++++++++++++++--------------------------------
1 file changed, 34 insertions(+), 69 deletions(-)
commit 5f676ce3253f4e6f5ac07a1c1099d17e8384d5ee
Author: Elliot Smith <elliot.smith@intel.com>
Date: Fri Jan 28 11:39:26 2011 +0000
docs: Explain enums for properties and signals
Add some more explanatory comments about the PROP_ and
signals enums.
doc/cookbook/examples/cb-button.c | 18 ++++++++++++------
1 file changed, 12 insertions(+), 6 deletions(-)
commit 18b90f100c259db2e5ef19874277b3d5d50791f0
Author: Elliot Smith <elliot.smith@intel.com>
Date: Fri Jan 28 11:36:20 2011 +0000
docs: Don't set explicit size on button
Rather than set a size on the CbButton instance, let it
size itself automatically, based on the size requisition
functions.
doc/cookbook/examples/actors-composite-main.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 951f13bb8dc2ead8fe3fd3a6f2fede2618c57a19
Author: Elliot Smith <elliot.smith@intel.com>
Date: Fri Jan 28 11:35:14 2011 +0000
docs: Add example of preferred_height() and preferred_width()
As most actor subclasses will probably want to implement
size requisition, give a simple example of how to do this
on the basis of the composed actor's size, plus some padding.
doc/cookbook/examples/cb-button.c | 67 +++++++++++++++++++++++++++++++++++++--
1 file changed, 64 insertions(+), 3 deletions(-)
commit 2adc224f0e701648ff0f08ed80317f4b3d4109df
Author: Elliot Smith <elliot.smith@intel.com>
Date: Wed Jan 26 11:22:07 2011 +0000
docs: Add recipe for creating a custom ClutterActor with composition
doc/cookbook/actors.xml | 190 +++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 189 insertions(+), 1 deletion(-)
commit 7059be499ab8c31bcc9825f823587d05410f186a
Author: Elliot Smith <elliot.smith@intel.com>
Date: Fri Jan 28 11:13:47 2011 +0000
docs: Add more comments on code example for composite actor
Add more comments about the specific purpose of functions
and variables in the composite actor example, particularly
around GObject implementation.
doc/cookbook/examples/cb-button.c | 69 ++++++++++++++++++++++++++++++++++-----
doc/cookbook/examples/cb-button.h | 11 +++++++
2 files changed, 72 insertions(+), 8 deletions(-)
commit b3954878c2827e78c0d800a038d6ae5cb515a136
Author: Elliot Smith <elliot.smith@intel.com>
Date: Wed Jan 26 11:18:23 2011 +0000
docs: Improve example code formatting
Improve code formatting to adhere to Clutter uncrustify rules.
doc/cookbook/examples/cb-button.c | 16 +++++++---------
doc/cookbook/examples/cb-button.h | 29 +++++++++++++++--------------
2 files changed, 22 insertions(+), 23 deletions(-)
commit 7b9eaeeadbf6ff10b4e467d13a873685a613ba37
Author: Elliot Smith <elliot.smith@intel.com>
Date: Tue Jan 25 11:36:13 2011 +0000
docs: Add some gtk-doc annotations to example
As this is a full GObject class implementation, add some
gtk-doc annotations to demonstrate how how custom actor subclasses
should be documented.
doc/cookbook/examples/cb-button.c | 65 +++++++++++++++++++++++++++++++++------
1 file changed, 55 insertions(+), 10 deletions(-)
commit 8a5967f0cc4ca2ce2b4e8869f4a0ec3bdee07912
Author: Elliot Smith <elliot.smith@intel.com>
Date: Fri Jan 21 16:43:03 2011 +0000
docs: Add custom ClutterActor example which uses composition
doc/cookbook/examples/Makefile.am | 2 +
doc/cookbook/examples/actors-composite-main.c | 79 +++++++
doc/cookbook/examples/cb-button.c | 287 ++++++++++++++++++++++++++
doc/cookbook/examples/cb-button.h | 72 +++++++
4 files changed, 440 insertions(+)
commit b820e3940681e4a08ec4985bb13c7f53faf657d4
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sun Jan 30 23:00:00 2011 +0000
text: Bind BackSpace + Shift as BackSpace
Follow this old GTK+ bug:
https://bugzilla.gnome.org/show_bug.cgi?id=80302
and ignore the Shift mask.
clutter/clutter-text.c | 4 ++++
1 file changed, 4 insertions(+)
commit 9be4cfe8a9eef6a7a15c7100731a199f9348e73b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Jan 28 18:05:06 2011 +0000
x11/stage: Use a global Window ↔ Stage relationship
Since we need to find the stage from the X11 Window, it's better to use
a static hashmap that gets updated every time the ClutterStageX11:xwin
member is changed, instead of iterating over every stage handled by the
global ClutterStageManager singleton.
clutter/glx/clutter-backend-glx.c | 7 ++++--
clutter/x11/clutter-stage-x11.c | 49 +++++++++++++++++++++++++--------------
2 files changed, 37 insertions(+), 19 deletions(-)
commit f4508be4ab18f741bea12ea993c635fa9d632de2
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Jan 28 17:25:43 2011 +0000
win32: Small clean ups in the event code
Use clutter_event_set_device() instead of setting the device field.
Also, use G_N_ELEMENTS() to determine the size of the key symbols
mapping array.
clutter/win32/clutter-event-win32.c | 31 ++++++++++++++++++++-----------
1 file changed, 20 insertions(+), 11 deletions(-)
commit 82d1e5a6ee081cf462999ea04fbd51cdb91f70c9
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Jan 27 17:26:16 2011 +0000
Clean up crossing event synthesis code
Clutter should just require that the windowing system used by a backend
adds a device to the stage when the device enters, and removes it from
the stage when the device leaves; with this information, we can
synthesize every crossing event and update the device state without
other intervention from the backend-specific code.
The generation of additional crossing events for actors that are
covering the stage at the coordinates of the crossing event should be
delegated to the event processing code.
The x11 and win32 backends need to be modified to relay the enter and
leave events from the windowing system.
clutter/clutter-device-manager-private.h | 6 +-
clutter/clutter-device-manager.c | 2 +-
clutter/clutter-event.c | 1 +
clutter/clutter-input-device.c | 152 +++++++++-----------------
clutter/clutter-main.c | 90 +++++++++++----
clutter/clutter-stage-private.h | 8 ++
clutter/clutter-stage.c | 48 +++++++-
clutter/win32/clutter-event-win32.c | 19 +++-
clutter/x11/clutter-device-manager-core-x11.c | 45 ++++----
clutter/x11/clutter-device-manager-xi2.c | 32 +++---
10 files changed, 242 insertions(+), 161 deletions(-)
commit b3784bd2b4c9aeac809cca70681bc248123133f8
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Jan 27 17:21:08 2011 +0000
event: Add a setter for the device field
When synthesizing events coming from input devices it should be
possible to just call a setter function, to avoid a huge switch
on the type of the event.
Clutter should also store the device pointer inside the private
data, for faster access of the pointer in allocated events.
Finally, the get_device_id() and get_device_type() accessors should
just be wrappers around clutter_event_get_device(), to reduce the
amount of code duplication.
clutter/clutter-event.c | 98 ++++++++++++++++++------------
clutter/clutter-event.h | 3 +
doc/reference/clutter/clutter-sections.txt | 1 +
3 files changed, 64 insertions(+), 38 deletions(-)
commit 3502f326b21856ed7720c8541aa4eb3990517a6f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Jan 26 12:44:03 2011 +0000
x11/stage: Remove redundant line location
The CLUTTER_NOTE() macro already adds the line location; adding another
will just clutter up the log.
clutter/x11/clutter-stage-x11.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
commit acf51259d2057b412d1d32fa8246fd14c9ddb66f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Jan 26 11:58:08 2011 +0000
x11: Store a back pointer to the backend in the stage
Since we access it in order to get the X11 Display pointer, it makes
sense to have the ClutterBackendX11 already available inside the
ClutterStageX11 structure, and avoid the pattern:
ClutterBackend *backend = clutter_get_default_backend ();
ClutterBackendX11 *backend_x11 = CLUTTER_BACKEND_X11 (backend);
which costs us a function call, a type cast and an unused variable.
clutter/egl/clutter-backend-egl.c | 1 +
clutter/glx/clutter-backend-glx.c | 1 +
clutter/x11/clutter-stage-x11.c | 129 +++++++++++---------------------------
clutter/x11/clutter-stage-x11.h | 5 +-
4 files changed, 41 insertions(+), 95 deletions(-)
commit 1d7e2233130b3041cc204fed326087c3a2bc9867
Author: Neil Roberts <neil@linux.intel.com>
Date: Fri Jan 28 18:11:38 2011 +0000
test-path: Fix the test when running against latest Cairo versions
Cairo has recently changed so that it no longer adds a final move-to
command when the path ends with a close. This patch makes the test
check the run-time version number of Cairo to avoid duplicating this
behaviour when testing the conversion to and from a Cairo path.
tests/conform/test-path.c | 18 ++++++++++++------
1 file changed, 12 insertions(+), 6 deletions(-)
commit e7519a149beb78b92ab8e5b2d315fbab3102dbc2
Author: Neil Roberts <neil@linux.intel.com>
Date: Tue Jan 25 15:53:35 2011 +0000
clutter-stage-x11: Don't ensure the viewport when the window moves
When we receive a ConfigureNotify event that doesn't affect the size
of the window (only the position) then we were still calling
clutter_stage_ensure_viewport which ends up queueing a full stage
redraw. This patch makes it so that it only ensures the viewport when
the size changes as it already did for avoiding queueing a relayout.
It now also avoids setting the clipped redraws cool off period when
the window only moves under the assumption that it's only necessary
for size changes.
clutter/x11/clutter-stage-x11.c | 134 +++++++++++++++++++++-------------------
1 file changed, 69 insertions(+), 65 deletions(-)
commit dc6f6d6445a1fb9090ce63947218578b969c8718
Author: Rob Bradford <rob@linux.intel.com>
Date: Mon Jan 24 18:41:49 2011 +0000
animator: Only free the animator key when we've finished with it
Fixes: http://bugzilla.clutter-project.org/show_bug.cgi?id=2530
clutter/clutter-animator.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
commit 5593792a40850b6a8f96afa91745115191a45c67
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Jan 26 10:32:42 2011 +0000
Include stdint.h when using uint32_t
Since the XI2 device manager code is going to be compiled only on
POSIX compliant systems, we can safely assume the presence of stdint.h
and include it unconditionally.
clutter/x11/clutter-device-manager-xi2.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
commit 5329c986947d08fd724585d8eac61f8e0b0553b5
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Jan 25 11:10:29 2011 +0000
bind-constraint: Add BIND_POSITION and BIND_SIZE
CLUTTER_BIND_POSITION and CLUTTER_BIND_SIZE are two convenience
enumeration values for binding x and y, and width and height
respectively, using a single ClutterBindConstraint.
clutter/clutter-bind-constraint.c | 12 ++++++++++++
clutter/clutter-bind-constraint.h | 8 +++++++-
tests/interactive/test-constraints.c | 4 +++-
tests/interactive/test-flow-layout.c | 5 +----
4 files changed, 23 insertions(+), 6 deletions(-)
commit 4f53653bf9f2d4ea30ee77e686b4799d8e356c99
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Jan 25 11:00:20 2011 +0000
x11: Remove more private symbols
Some private functions escaped my wrath in commit
a277b4091a3fa09a39cf001809c3048eb27f3952.
Thanks to: Emilio Pozuelo Monfort on #clutter
clutter/x11/clutter-backend-x11.c | 4 ++--
clutter/x11/clutter-device-manager-core-x11.c | 2 ++
clutter/x11/clutter-device-manager-core-x11.h | 4 ++--
3 files changed, 6 insertions(+), 4 deletions(-)
commit 32486fe995911256a76673bf62609312893281be
Author: Robert Bragg <robert@linux.intel.com>
Date: Mon Jan 24 18:42:28 2011 +0000
pipeline: fix for _init_multi_property_sparse_state
When copying COMBINE state in
_cogl_pipeline_layer_init_multi_property_sparse_state we would read some
state from the destination layer (invalid data potentially), then
redundantly set the value back on the destination. This was picked up by
valgrind, and the code is now more careful about how it references the
src layer vs the destination layer.
clutter/cogl/cogl/cogl-pipeline.c | 27 ++++++++++++++-------------
1 file changed, 14 insertions(+), 13 deletions(-)
commit bca39776d3080c180cdcf6698a54ee2c25bb5383
Author: Robert Bragg <robert@linux.intel.com>
Date: Fri Jan 21 19:05:23 2011 +0000
framebuffer: flush journal when switching framebuffers
There is currently a problem with per-framebuffer journals in that it's
possible to create a framebuffer from a texture which then gets rendered
too but the framebuffer (and corresponding journal) can be freed before
the texture gets used to draw with.
Conceptually we want to make sure when freeing a framebuffer that - if
it is associated with a texture - we flush the journal as the last thing
before really freeing the framebuffer's meta data. Technically though
this is awkward to implement since the obvious mechanism for us to be
notified about the framebuffer's destruction (by setting some user data
internally with a callback) notifies when the framebuffer has a
ref-count of 0. This means we'd have to be careful what we do with the
framebuffer to consider e.g. recursive destruction; anything that would
set more user data on the framebuffer while it is being destroyed and
ensuring nothing else gets notified of the framebuffer's destruction
before the journal has been flushed.
For simplicity, for now, this patch provides another solution which is
to flush framebuffer journals whenever we switch away from a given
framebuffer via cogl_set_framebuffer or cogl_push/pop_framebuffer. The
disadvantage of this approach is that we can't batch all the geometry of
a scene that involves intermediate renders to offscreen framebufers.
Clutter is doing this more and more with applications that use the
ClutterEffect APIs so this is a shame. Hopefully this will only be a
stop-gap solution while we consider how to reliably support journal
logging across framebuffer changes.
clutter/cogl/cogl/cogl-framebuffer.c | 26 ++++++++++++++++++++++----
1 file changed, 22 insertions(+), 4 deletions(-)
commit 4609770bb9faa4dc74ddd0f25e099ff46b91e258
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Jan 24 17:32:06 2011 +0000
cogl-clip-stack: Fix flushing multiple stencil rectangles
When flushing a clip stack that contains more than one rectangle which
needs to use the stencil buffer the code takes a different path so
that it can combine the new rectangle with the existing contents of
the stencil buffer. However it was not correctly flushing the
modelview and projection matrices so that rectangle would be in the
wrong place.
clutter/cogl/cogl/cogl-clip-stack.c | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
commit 6102f802449d22d543621532b543d6879fdb1925
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Jan 24 17:17:16 2011 +0000
test-clip: Replace the ellipse with a rotated rectangle
With test-clip it's possible to draw three different shapes depending
on what mouse button is used: a rectangle, an ellipse or a path
containing multiple shapes. However the ellipse is also a path so it
doesn't really test anything extra from the third option. This
replaces the ellipse with a rectangle that is first rotated by the
modelview matrix. The rotated matrix won't be able to use the scissor
so it can be used to test stencil and clip plane clipping.
tests/interactive/test-clip.c | 41 ++++++++++++++++++++++++++++++++++-------
1 file changed, 34 insertions(+), 7 deletions(-)
commit 5137d0a23f19ce461f178596b687479bd62d8522
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Jan 24 16:36:56 2011 +0000
cogl-debug: Add a debug option for tracing clipping
This adds a COGL_DEBUG=clipping option that reports how the clip is
being flushed. This is needed to determine whether the scissor,
stencil clip planes or software clipping is being used.
clutter/cogl/cogl/cogl-clip-stack.c | 12 ++++++++++++
clutter/cogl/cogl/cogl-debug-options.h | 5 +++++
clutter/cogl/cogl/cogl-debug.c | 3 ++-
clutter/cogl/cogl/cogl-debug.h | 1 +
clutter/cogl/cogl/cogl-journal.c | 2 ++
5 files changed, 22 insertions(+), 1 deletion(-)
commit 35a2d79e462c2d27e462f0e614c475cce17b883b
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Jan 24 14:28:00 2011 +0000
cogl-debug: Split the flags to support more than 32
The CoglDebugFlags are now stored in an array of unsigned ints rather
than a single variable. The flags are accessed using macros instead of
directly peeking at the cogl_debug_flags variable. The index values
are stored in the enum rather than the actual mask values so that the
enum doesn't need to be more than 32 bits wide. The hope is that the
code to determine the index into the array can be optimized out by the
compiler so it should have exactly the same performance as the old
code.
clutter/cogl/cogl/cogl-atlas-texture.c | 2 +-
clutter/cogl/cogl/cogl-attribute.c | 8 +-
clutter/cogl/cogl/cogl-blend-string.c | 14 ++--
clutter/cogl/cogl/cogl-context.c | 10 +--
clutter/cogl/cogl/cogl-debug.c | 85 ++++++++++++++-----
clutter/cogl/cogl/cogl-debug.h | 105 ++++++++++++++++--------
clutter/cogl/cogl/cogl-framebuffer.c | 4 +-
clutter/cogl/cogl/cogl-journal.c | 38 ++++-----
clutter/cogl/cogl/cogl-matrix-private.h | 2 +-
clutter/cogl/cogl/cogl-pipeline-fragend-arbfp.c | 6 +-
clutter/cogl/cogl/cogl-pipeline-fragend-fixed.c | 6 +-
clutter/cogl/cogl/cogl-pipeline-vertend-fixed.c | 2 +-
clutter/cogl/cogl/cogl-pipeline.c | 2 +-
clutter/cogl/cogl/cogl-profile.c | 10 +--
clutter/cogl/cogl/cogl-rectangle-map.c | 4 +-
clutter/cogl/cogl/cogl-shader.c | 4 +-
16 files changed, 191 insertions(+), 111 deletions(-)
commit 67fdb5c9f8494117e3d763693041be3ace8168f4
Author: Neil Roberts <neil@linux.intel.com>
Date: Fri Jan 14 11:11:44 2011 +0000
cogl-pipeline: Flush the lighting params in common code not vertend
The lighting parameters such as the diffuse and ambient colors were
previously only flushed in the fixed vertend. This meant that if a
vertex shader was used then they would not be set. The lighting
parameters are uniforms which are just as useful in a fragment shader
so it doesn't really make sense to set them in the vertend. They are
now flushed in the common cogl-pipeline-opengl code but the code is
#ifdef'd for GLES2 because they need to be part of the progend in that
case.
clutter/cogl/cogl/cogl-pipeline-opengl.c | 25 ++++++++++++++++++++++++-
clutter/cogl/cogl/cogl-pipeline-vertend-fixed.c | 19 -------------------
2 files changed, 24 insertions(+), 20 deletions(-)
commit e778018d0d3247a64a7de64f0937a1335a22b56e
Author: Neil Roberts <neil@linux.intel.com>
Date: Thu Jan 13 18:24:22 2011 +0000
cogl-pipeline-progend-glsl: Generalize updating GLES2 uniforms
The uniforms for the alpha test reference value and point size on
GLES2 are updating using similar code. This generalizes the code so
that there is a static array of predefined builtin uniforms which
contains the uniform name, a pointer to a function to get the value
from the pipeline, a pointer to a function to update the uniform and a
flag representing which CoglPipelineState change affects the
uniform. The uniforms are then updated in a loop. This should simplify
adding more builtin uniforms.
clutter/cogl/cogl/cogl-pipeline-progend-glsl.c | 134 ++++++++++++++-----------
1 file changed, 77 insertions(+), 57 deletions(-)
commit 9ff04e8a998af90891996fe8c2a4439e5736e4f4
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Jan 12 13:47:55 2011 +0000
cogl-shader-boilerplate: Move the uniforms to the common code
The builtin uniforms are accessible from either the vertex shader or
the fragment shader so we should define them in the common
section. This doesn't really matter for the current list of uniforms
because it's pretty unlikely that you'd want to access the matrices
from the fragment shader, but for other builtins such as the lighting
material properties it makes sense.
clutter/cogl/cogl/cogl-shader-boilerplate.h | 31 ++++++++++++++++-------------
1 file changed, 17 insertions(+), 14 deletions(-)
commit e8d5be0ba79eef766fff723012c5d1994da84b4c
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Jan 24 11:49:04 2011 +0000
ClutterTimeline: Fix the 'msecs' parameter for the new-frame signal
Between Clutter 0.8 and 1.0, the new-frame signal of ClutterTimeline
changed the second parameter to be an elapsed time in milliseconds
rather than the frame number. However a few places in clutter were
still calling the parameter 'frame_num' which is a bit
misleading. Notably the signature for the signal class closure in the
header was using the wrong name. This changes them to use 'msecs'.
clutter/clutter-alpha.c | 2 +-
clutter/clutter-timeline.h | 2 +-
tests/conform/test-timeline-rewind.c | 4 +---
3 files changed, 3 insertions(+), 5 deletions(-)
commit 5c0aaf50a7b3d1914d4580d5f853faa9a4b10f73
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Jan 24 11:29:59 2011 +0000
clutter-timeline: Emit the new-frame signal even on the first frame
ClutterTimeline has special handling for the first time do_tick is
called which was not emitting a new-frame signal. This meant that an
application which directly uses the timeline would have to manually
setup the initial state of an animation after starting a timeline to
avoid painting a single frame with the wrong state. It seems to make
more sense to instead emit the new-frame signal so that the
application always sees a new-frame when the progress changes before a
paint.
clutter/clutter-timeline.c | 2 ++
1 file changed, 2 insertions(+)
commit b917285e24a355d38678b4a1cdce9e572ac34c14
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Jan 24 10:51:06 2011 +0000
Post-release version bump to 1.5.15
configure.ac | 2 +-
po/clutter-1.0.pot | 445 ++++++++++++++++++++++++++++------------------------
po/de.po | 445 ++++++++++++++++++++++++++++------------------------
po/fr.po | 449 ++++++++++++++++++++++++++++------------------------
po/id.po | 450 +++++++++++++++++++++++++++++------------------------
po/it.po | 450 +++++++++++++++++++++++++++++------------------------
po/pl.po | 450 +++++++++++++++++++++++++++++------------------------
po/zh_CN.po | 449 ++++++++++++++++++++++++++++------------------------
8 files changed, 1731 insertions(+), 1409 deletions(-)
commit 3e05d2df8de5ded545393994aff29ef9a8f7a0c5
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Jan 24 10:23:36 2011 +0000
Release Clutter 1.5.14 (1.6.0rc1)
NEWS | 42 ++++++++++++++++++++++++++++++++++--------
configure.ac | 2 +-
2 files changed, 35 insertions(+), 9 deletions(-)
commit 79b936aa4a829ffd5b5677da228425c4e0c46623
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Jan 21 20:46:09 2011 +0000
Update the NEWS file
NEWS | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
commit 6bffd407fd4f4d4d5b5c5f5ef6d9b43c44b7fe03
Author: Bastian Winkler <buz@netbuz.org>
Date: Fri Jan 21 14:50:44 2011 +0100
model: Add support to define rows in ClutterScript
This adds a custom "rows" property, that allows to define the rows of a
ClutterModel. A single row can either an array of all columns or an
object with column-name : column-value pairs.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2528
clutter/clutter-model.c | 210 +++++++++++++++++++++++++++++++-------
tests/conform/test-model.c | 35 +++++++
tests/data/test-script-model.json | 8 ++
3 files changed, 218 insertions(+), 35 deletions(-)
commit 95b3a718ef5c08f058e2bf0e3e56df390408821f
Author: Bastian Winkler <buz@netbuz.org>
Date: Wed Jan 12 13:09:52 2011 +0100
script-parser: Allow initialized GValue arg in clutter_script_parse_node
Allow to 'abuse' the clutter_script_parse_node function by calling it
with an initialized GValue instead of a valid GParamSpec argument to
obtain the correct typed value from the json node.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2528
clutter/clutter-script-parser.c | 23 +++++++++++++++--------
1 file changed, 15 insertions(+), 8 deletions(-)
commit 8e1c1909f80b4513154a3dfd8980160f94ec036f
Author: Bastian Winkler <buz@netbuz.org>
Date: Wed Jan 12 12:54:43 2011 +0100
model: Change the column argument type to gint for clutter_model_set_sort
Like in clutter_model_set_sorting_column this function should take a
gint column, otherwise GObject-Introspection won't allow to pass a NULL
sorting function.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2527
clutter/clutter-model.c | 2 +-
clutter/clutter-model.h | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
commit 8a6986089b79f9d6cbb7012d12087d2d2e42526c
Author: Bastian Winkler <buz@netbuz.org>
Date: Sat Jan 22 12:51:31 2011 +0100
model: Fix some GObject-Introspection annotations
http://bugzilla.clutter-project.org/show_bug.cgi?id=2526
clutter/clutter-model.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
commit 86c786aaad28e439146af4a93f787163e96bab6d
Merge: 8a5867799 b7d26b2d0
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Jan 21 20:22:32 2011 +0000
Merge branch 'xi2'
* xi2: (41 commits)
test-devices: Actually print the axis data
device-manager/xi2: Sync the stage of source devices
event: Clean up clutter_event_copy()
device: unset the axes array pointer when resetting
device-manager/xi2: Fix device hotplugging
glx: Clean up GLX implementation
device/x11: Store min/max keycode in the XI device class
x11: Hide all private symbols
docs: More documentation fixes for InputDevice
*/event: Never manipulate the event queue directly
win32: Update DeviceManager device creation
device: Allow enabling/disabling non-master devices
backend/eglx: Add newly created stages to the translators
device: Add more doc annotations
device: Use a double for translate_axis() argument
test-devices: Clean up and show axes data
event: Fix up clutter_event_copy()
device/xi2: Translate the axis data after setting devices
device: Add more accessors for properties
docs: Update API reference
...
commit 8a5867799c5809854dfac9c2b7e704bcc6e9455b
Author: Robert Bragg <robert@linux.intel.com>
Date: Fri Jan 21 18:43:35 2011 +0000
cogl: call _cogl_texture_init for x11 tfp
When we added the texture->framebuffers member a _cogl_texture_init
funciton was added to initialize the list of framebuffers associated
with a texture to NULL. All the backends were updated except the
x11 tfp backend. This was causing crashes in test-pixmap.
clutter/cogl/cogl/winsys/cogl-texture-pixmap-x11.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 1973168bbaa133215df73eaeeef25c6dcc0d6a07
Author: Robert Bragg <robert@linux.intel.com>
Date: Fri Jan 21 17:38:14 2011 +0000
journal: start uprof flush timer after flushing fb deps
This avoids us recursively starting the _cogl_journal_flush uprof timer
by only starting it after flushing the journals of dependency
framebuffers.
clutter/cogl/cogl/cogl-journal.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
commit f9d4846d6acc493b9fd52d627a82a0302d507a17
Author: Robert Bragg <robert@linux.intel.com>
Date: Fri Jan 21 17:28:34 2011 +0000
cogl: make sure to init ctx->framebuffers
This makes sure to initialize ctx->framebuffers to NULL otherwise we can
get apps crashing when they create their first framebuffer.
clutter/cogl/cogl/cogl-context.c | 2 ++
1 file changed, 2 insertions(+)
commit 326c51630492ab13a2e584f9efb0dc5673966c0e
Author: Robert Bragg <robert@linux.intel.com>
Date: Thu Jan 20 19:31:53 2011 +0000
cogl: rename CoglVertexAttribute CoglAttribute
This is part of a broader cleanup of some of the experimental Cogl API.
One of the reasons for this particular rename is to reduce the verbosity
of using the API. Another reason is that CoglVertexArray is going to be
renamed CoglAttributeBuffer and we want to help emphasize the
relationship between CoglAttributes and CoglAttributeBuffers.
clutter/cogl/cogl/Makefile.am | 6 +-
...ttribute-private.h => cogl-attribute-private.h} | 56 ++--
.../{cogl-vertex-attribute.c => cogl-attribute.c} | 272 +++++++++---------
.../{cogl-vertex-attribute.h => cogl-attribute.h} | 97 +++----
clutter/cogl/cogl/cogl-context.c | 2 +-
clutter/cogl/cogl/cogl-index-array.c | 4 +-
clutter/cogl/cogl/cogl-journal.c | 117 ++++----
clutter/cogl/cogl/cogl-path-private.h | 4 +-
.../cogl/cogl/cogl-pipeline-progend-glsl-private.h | 2 +-
clutter/cogl/cogl/cogl-primitive.c | 309 ++++++++++-----------
clutter/cogl/cogl/cogl-primitive.h | 26 +-
clutter/cogl/cogl/cogl-primitives.c | 84 +++---
clutter/cogl/cogl/cogl-types.h | 22 ++
clutter/cogl/cogl/cogl-vertex-buffer-private.h | 4 +-
clutter/cogl/cogl/cogl-vertex-buffer.c | 18 +-
clutter/cogl/cogl/cogl-vertex-buffer.h | 22 --
clutter/cogl/cogl/cogl.c | 4 +-
clutter/cogl/cogl/cogl.h | 2 +-
clutter/cogl/cogl/cogl2-path.c | 28 +-
doc/reference/cogl-2.0/cogl-docs.xml.in | 2 +-
20 files changed, 517 insertions(+), 564 deletions(-)
commit c4bafb48b6e4a3b35a13252e5ade500c01c4a392
Author: Robert Bragg <robert@linux.intel.com>
Date: Thu Jan 20 18:51:24 2011 +0000
docs: Adds bitmap section to cogl reference manual
This adds an include for the cogl-bitmap section to cogl-docs.xml.in
doc/reference/cogl/cogl-docs.xml.in | 1 +
1 file changed, 1 insertion(+)
commit b3775a75640ae2be0cef489c69d7e4213f170cb9
Author: Robert Bragg <robert@linux.intel.com>
Date: Thu Jan 20 12:29:49 2011 +0000
cogl: s/Cogl*Vertex/CoglVertex*/
We have a bunch of experimental convenience functions like
cogl_primitive_p2/p2t2 that have corresponding vertex structures but it
seemed a bit odd to have the vertex annotation e.g. "P2T2" be an infix
of the type like CoglP2T2Vertex instead of be a postfix like
CoglVertexP2T2. This switches them all to follow the postfix naming
style.
clutter/cogl/cogl/cogl-primitive.c | 96 +++++++++++++++----------------
clutter/cogl/cogl/cogl-primitive.h | 80 +++++++++++++-------------
clutter/cogl/cogl/cogl-vertex-attribute.c | 20 +++----
tests/conform/test-cogl-primitive.c | 16 +++---
4 files changed, 106 insertions(+), 106 deletions(-)
commit 3f9e8591671d0c81d5d4034f0895bca3f98cb4c0
Author: Robert Bragg <robert@linux.intel.com>
Date: Thu Jan 20 18:30:55 2011 +0000
test-picking: Don't manually paint the stage
Instead of using an idle handler that synchonously paints the stage
by manually calling clutter_actor_paint (stage) the test now uses an
idle handler that repeatedly queues a redraw on the stage.
do_events is now called from a "paint" signal handler for the stage, and
instead of manually determining the fps the test now uses
CLUTTER_SHOW_FPS=1 instead.
tests/micro-bench/test-picking.c | 38 +++++++++++++++-----------------------
1 file changed, 15 insertions(+), 23 deletions(-)
commit 9a663d8e4106e43f8f214b7fdded555ee408cf28
Author: Robert Bragg <robert@linux.intel.com>
Date: Thu Jan 20 14:41:51 2011 +0000
debug: Adds a COGL_DEBUG=disable-fast-read-pixel option
COGL_DEBUG=disable-fast-read-pixel can be used to disable the
optimization for reading a single pixel colour back by looking at the
geometry in the journal and not involving the GPU. With this disabled we
will always flush the journal, rendering to the framebuffer and then use
glReadPixels to get the result.
clutter/cogl/cogl/cogl-debug-options.h | 7 +++-
clutter/cogl/cogl/cogl-debug.c | 3 +-
clutter/cogl/cogl/cogl-debug.h | 61 +++++++++++++++++-----------------
clutter/cogl/cogl/cogl-framebuffer.c | 3 ++
clutter/cogl/cogl/cogl-journal.c | 3 ++
5 files changed, 45 insertions(+), 32 deletions(-)
commit 1bdb0e6e98db719c8652c85fc234c21437ad071a
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Jan 12 22:12:41 2011 +0000
cogl: Implements a software only read-pixel fast-path
This adds a transparent optimization to cogl_read_pixels for when a
single pixel is being read back and it happens that all the geometry of
the current frame is still available in the framebuffer's associated
journal.
The intention is to indirectly optimize Clutter's render based picking
mechanism in such a way that the 99% of cases where scenes are comprised
of trivial quad primitives that can easily be intersected we can avoid
the latency of kicking a GPU render and blocking for the result when we
know we can calculate the result manually on the CPU probably faster
than we could even kick a render.
A nice property of this solution is that it maintains all the
flexibility of the render based picking provided by Clutter and it can
gracefully fall back to GPU rendering if actors are drawn using anything
more complex than a quad for their geometry.
It seems worth noting that there is a limitation to the extensibility of
this approach in that it can only optimize picking a against geometry
that passes through Cogl's journal which isn't something Clutter
directly controls. For now though this really doesn't matter since
basically all apps should end up hitting this fast-path. The current
idea to address this longer term would be a pick2 vfunc for ClutterActor
that can support geometry and render based input regions of actors and
move this optimization up into Clutter instead.
Note: currently we don't have a primitive count threshold to consider
that there could be scenes with enough geometry for us to compensate for
the cost of kicking a render and determine a result more efficiently by
utilizing the GPU. We don't currently expect this to be common though.
Note: in the future it could still be interesting to revive something
like the wip/async-pbo-picking branch to provide an asynchronous
read-pixels based optimization for Clutter picking in cases where more
complex input regions that necessitate rendering are in use or if we do
add a threshold for rendering as mentioned above.
clutter/clutter-main.c | 3 -
clutter/cogl/cogl/cogl-framebuffer-private.h | 27 +
clutter/cogl/cogl/cogl-framebuffer.c | 196 +++++++-
clutter/cogl/cogl/cogl-journal-private.h | 20 +
clutter/cogl/cogl/cogl-journal.c | 710 ++++++++++++++++++++-------
clutter/cogl/cogl/cogl-vertex-attribute.c | 7 +
clutter/cogl/cogl/cogl.c | 20 +-
7 files changed, 800 insertions(+), 183 deletions(-)
commit e289e85397cb52f421e64e253e1af2628909f424
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Jan 18 16:37:01 2011 +0000
matrix: fix transform/project_points() APIs
Both cogl_matrix_transform_points and _project_points take points_in and
points_out arguments and explicitly allow pointing to the same array
(i.e. to transform in-place) The implementation of the various internal
transform functions though were not handling this possability and so it
was possible the reference partially transformed vertex values as if
they were original input values leading to incorrect results. This patch
ensures we take a temporary copy of the current input point when
transforming.
clutter/cogl/cogl/cogl-matrix.c | 136 ++++++++++++++++++++--------------------
1 file changed, 68 insertions(+), 68 deletions(-)
commit 23ed01d4e933da803bb7bbe4d0439de0824532c1
Author: Robert Bragg <robert@linux.intel.com>
Date: Thu Jan 13 14:29:46 2011 +0000
cogl: Adds _cogl_util_point_in_polygon API
This adds a utility function that can determine if a given point
intersects an arbitrary polygon, by counting how many edges a
"semi-infinite" horizontal ray crosses from that point. The plan is to
use this for a software based read-pixel fast path that avoids using the
GPU to rasterize journaled primitives and can instead intersect a point
being read with quads in the journal to determine the correct color.
clutter/cogl/cogl/Makefile.am | 2 +
clutter/cogl/cogl/cogl-point-in-poly-private.h | 40 +++++++++++++++
clutter/cogl/cogl/cogl-point-in-poly.c | 69 ++++++++++++++++++++++++++
3 files changed, 111 insertions(+)
commit 142b229c5c2684f94af32358d1401b61aa3019aa
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Jan 12 22:06:58 2011 +0000
cogl: Adds _cogl_swap_buffers_notify for clutter backends
This adds a stop-gap mechanism for Cogl to know when the window system
is requested to present the current backbuffer to the frontbuffer by
adding a _cogl_swap_buffers_notify function that backends are now
expected to call right after issuing the equivalent request to OpenGL
vie the platforms OpenGL binding layer. This (blindly) updates all the
backends to call this new function.
For now Cogl doesn't do anything with the notification but the intention
is to use it as part of a planned read-pixel optimization which will
need to reset some state at the start of each new frame.
clutter/cogl/cogl/cogl-framebuffer-private.h | 3 +++
clutter/cogl/cogl/cogl-framebuffer.c | 5 +++++
clutter/cogl/cogl/cogl.c | 10 ++++++++++
clutter/cogl/cogl/cogl.h | 3 +++
clutter/egl/clutter-stage-egl.c | 1 +
clutter/fruity/clutter-backend-fruity.c | 1 +
clutter/glx/clutter-stage-glx.c | 1 +
clutter/osx/clutter-stage-osx.c | 1 +
clutter/wayland/clutter-stage-wayland.c | 2 ++
clutter/win32/clutter-backend-win32.c | 5 ++++-
10 files changed, 31 insertions(+), 1 deletion(-)
commit e150f474b3e9e58565dc894b4ae9234406d90675
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Jan 12 19:30:30 2011 +0000
clip: rename get_clip_stack + add framebuffer_get_stack
Instead of having _cogl_get/set_clip stack which reference the global
CoglContext this instead makes those into CoglClipState method functions
named _cogl_clip_state_get/set_stack that take an explicit pointer to a
CoglClipState.
This also adds _cogl_framebuffer_get/set_clip_stack convenience
functions that avoid having to first get the ClipState from a
framebuffer then the stack from that - so we can maintain the
convenience of _cogl_get_clip_stack.
clutter/cogl/cogl/cogl-clip-state.c | 21 +++------------------
clutter/cogl/cogl/cogl-clip-state.h | 21 +++------------------
clutter/cogl/cogl/cogl-framebuffer-private.h | 26 ++++++++++++++++++++++++++
clutter/cogl/cogl/cogl-framebuffer.c | 17 +++++++++++++++++
clutter/cogl/cogl/cogl-journal.c | 5 ++++-
5 files changed, 53 insertions(+), 37 deletions(-)
commit 179dc9b7d1d9d14227c7f4eef241faf2d1affda0
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Jan 12 19:13:45 2011 +0000
clip-stack: Adds _cogl_clip_stack_get_bounds API
This adds an internal function to be able to query the screen space
bounding box of the current clip entries contained in a given
CoglClipStack.
This bounding box which is cheap to determine can be useful to know the
largest extents that might be updated while drawing with this clip
stack.
For example the plan is to use this as part of an optimized read-pixel
path handled on the CPU which will need to track the currently valid
extents of the last call to cogl_clear()
clutter/cogl/cogl/cogl-clip-stack.c | 45 ++++++++++++++++++++++++++-----------
clutter/cogl/cogl/cogl-clip-stack.h | 7 ++++++
2 files changed, 39 insertions(+), 13 deletions(-)
commit f834596fd42b26d471a80cfec08c0d6e8c53f39a
Author: Robert Bragg <robert@linux.intel.com>
Date: Thu Jan 6 13:25:45 2011 +0000
journal: Support per-framebuffer journals
Instead of having a single journal per context, we now have a
CoglJournal object for each CoglFramebuffer. This means we now don't
have to flush the journal when switching/pushing/popping between
different framebuffers so for example a Clutter scene that involves some
ClutterEffect actors that transiently redirect to an FBO can still be
batched.
This also allows us to track state in the journal that relates to the
current frame of its associated framebuffer which we'll need for our
optimization for using the CPU to handle reading a single pixel back
from a framebuffer when we know the whole scene is currently comprised
of simple rectangles in a journal.
clutter/cogl/cogl/cogl-atlas-texture.c | 22 +++--
clutter/cogl/cogl/cogl-clip-state.c | 5 +-
clutter/cogl/cogl/cogl-context.c | 6 --
clutter/cogl/cogl/cogl-context.h | 12 +--
clutter/cogl/cogl/cogl-framebuffer-private.h | 23 +++++
clutter/cogl/cogl/cogl-framebuffer.c | 111 ++++++++++++++++++---
clutter/cogl/cogl/cogl-journal-private.h | 19 +++-
clutter/cogl/cogl/cogl-journal.c | 140 ++++++++++++++++++---------
clutter/cogl/cogl/cogl-pipeline-private.h | 3 +
clutter/cogl/cogl/cogl-pipeline.c | 7 +-
clutter/cogl/cogl/cogl-primitives.c | 9 +-
clutter/cogl/cogl/cogl-sub-texture.c | 3 +-
clutter/cogl/cogl/cogl-texture-2d-sliced.c | 2 +-
clutter/cogl/cogl/cogl-texture-2d.c | 2 +-
clutter/cogl/cogl/cogl-texture-3d.c | 2 +-
clutter/cogl/cogl/cogl-texture-private.h | 15 +++
clutter/cogl/cogl/cogl-texture-rectangle.c | 2 +-
clutter/cogl/cogl/cogl-texture.c | 58 +++++++++++
clutter/cogl/cogl/cogl-vertex-attribute.c | 7 +-
clutter/cogl/cogl/cogl.c | 20 +++-
clutter/cogl/cogl/cogl2-path.c | 8 +-
21 files changed, 375 insertions(+), 101 deletions(-)
commit 385e0f84c6179a30f9031aba974131e1cf3e6a4e
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Jan 12 20:37:53 2011 +0000
cogl-object: Adds an internal _cogl_object_set_user_data
This adds an internal alternative to cogl_object_set_user_data that also
passes an instance pointer to destroy notify callbacks.
When setting private data on a CoglObject it's often desirable to know
the instance being destroyed when we are being notified to free the
private data due to the object being freed. The typical solution to this
is to track a pointer to the instance in the private data itself so it
can be identified but that usually requires an extra micro allocation
for the private data that could have been avoided if only the callback
were given an instance pointer.
The new internal _cogl_object_set_user_data passes the instance pointer
as a second argument which means it is ABI compatible for us to layer
the public version on top of this internal function.
clutter/cogl/cogl/cogl-object-private.h | 21 ++++++++++++++++++++-
clutter/cogl/cogl/cogl-object.c | 24 +++++++++++++++++-------
2 files changed, 37 insertions(+), 8 deletions(-)
commit 131578c13aeeb53d99d7c63a0b2ddaded23524fc
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Jan 5 15:30:04 2011 +0000
framebuffer: Move clear code to cogl-framebuffer.c
This moves the implementation of cogl_clear into cogl-framebuffer.c as
two new internal functions _cogl_framebuffer_clear and
_cogl_framebuffer_clear4f. It's not clear if this is what the API will
look like as we make more of the CoglFramebuffer API public due to the
limitations of using flags to identify buffers when framebuffers may
contain any number of ancillary buffers but conceptually it makes some
sense to tie the operation of clearing a color buffer to a framebuffer.
The short term intention is to enable tracking the current clear color
as a property of the framebuffer as part of an optimization for reading
back single pixels when the geometry is simple enough that we can
compute the result quickly on the CPU. (If the point doesn't intersect
any geometry we'll need to return the last clear color.)
clutter/cogl/cogl/cogl-framebuffer-private.h | 20 ++++++
clutter/cogl/cogl/cogl-framebuffer.c | 103 +++++++++++++++++++++++++++
clutter/cogl/cogl/cogl.c | 66 ++---------------
clutter/cogl/cogl/cogl2-path.c | 4 +-
4 files changed, 129 insertions(+), 64 deletions(-)
commit b7d26b2d02729b2d5eeb1650ca4e89a723afc1c7
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Jan 21 15:27:56 2011 +0000
test-devices: Actually print the axis data
Returning in an if() block whose condition we assume to be true doesn't
play nicely with having statements after the block. Let's fix that.
tests/interactive/test-devices.c | 31 ++++++++++++++++---------------
1 file changed, 16 insertions(+), 15 deletions(-)
commit e46571d63911df23cb25fb0b3fcfe5e86f50d81b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Jan 21 15:26:52 2011 +0000
device-manager/xi2: Sync the stage of source devices
Keep the slave devices in sync with their master, so that we don't
ignore their events because they lack the stage pointer.
clutter/x11/clutter-device-manager-xi2.c | 51 +++++++++++++++++++++-----------
1 file changed, 34 insertions(+), 17 deletions(-)
commit 516366d7691128e9f2138781bcc144cd628b110f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Jan 21 15:14:11 2011 +0000
event: Clean up clutter_event_copy()
Try to avoid duplication of variables and blocks.
clutter/clutter-event.c | 46 +++++++++++++++++++++-------------------------
1 file changed, 21 insertions(+), 25 deletions(-)
commit 7a339d1663b94e4cbc07ffa8a8c3bf0a47d84cae
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Jan 21 14:12:19 2011 +0000
device: unset the axes array pointer when resetting
Otherwise we'll get a nice realloc() error from glibc.
clutter/clutter-input-device.c | 2 ++
1 file changed, 2 insertions(+)
commit 4ab8a3f0c16b82d4f223de869e1b87279dcff272
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Jan 21 11:43:00 2011 +0000
stage: Do not create the default stage on stage.is_default()
Use the stage manager to see if a default stage was effectively set,
otherwise we end up creating a default stage when destroying a
non-default one.
clutter/clutter-stage.c | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
commit 0e993469155516dde673292bafe72d1c8308e27f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Jan 21 11:41:36 2011 +0000
device-manager/xi2: Fix device hotplugging
Hierarchy and Device changed events come through with the X window set
to be the root window, not the stage window. We need to whitelist them
so that we can actually support hotplugging and device changes.
clutter/x11/clutter-device-manager-xi2.c | 32 +++++++-----
tests/interactive/test-devices.c | 83 ++++++++++++++++++++++++++++----
2 files changed, 95 insertions(+), 20 deletions(-)
commit 7514f5fe92844a57d33a4811fd20687bbb391c8b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Jan 21 10:49:12 2011 +0000
glx: Clean up GLX implementation
Like commit a277b4091a3fa09a39cf001809c3048eb27f3952, but targeted at
the GLX backend.
clutter/glx/clutter-backend-glx.c | 22 +++++++--------
clutter/glx/clutter-stage-glx.c | 57 ++++++++++++++++++---------------------
clutter/glx/clutter-stage-glx.h | 2 +-
3 files changed, 38 insertions(+), 43 deletions(-)
commit 6da51f6ed379f531bee72b688366dc734082a573
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Jan 21 10:24:34 2011 +0000
device/x11: Store min/max keycode in the XI device class
The generic device class shouldn't have the minimum and maximum keycode,
since no other input backend provides those.
clutter/clutter-device-manager-private.h | 8 ++------
clutter/clutter-input-device.c | 18 +++---------------
clutter/x11/clutter-device-manager-core-x11.c | 10 +++++++---
clutter/x11/clutter-device-manager-xi2.c | 6 ++----
clutter/x11/clutter-input-device-core-x11.c | 9 ++++++---
5 files changed, 20 insertions(+), 31 deletions(-)
commit a277b4091a3fa09a39cf001809c3048eb27f3952
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Jan 20 15:39:28 2011 +0000
x11: Hide all private symbols
The x11 backend exposes a lot of symbols that are meant to only be used
when implementing a subclassed backend, like the glx and eglx ones.
The uninstalled headers are also filled with cruft declarations of
functions long since removed.
Let's try to clean up this mess.
clutter/egl/clutter-backend-egl.c | 13 +++++++++----
clutter/glx/clutter-backend-glx.c | 19 ++++++++++++++-----
clutter/x11/clutter-backend-x11.c | 28 ++++++++++------------------
clutter/x11/clutter-backend-x11.h | 31 +++----------------------------
clutter/x11/clutter-keymap-x11.c | 4 ++--
clutter/x11/clutter-keymap-x11.h | 4 ++--
clutter/x11/clutter-stage-x11.c | 12 +++++++-----
clutter/x11/clutter-stage-x11.h | 13 ++-----------
8 files changed, 49 insertions(+), 75 deletions(-)
commit 89467abae591fb07afed507323f086264d73e68d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Jan 19 17:03:27 2011 +0000
docs: More documentation fixes for InputDevice
clutter/clutter-input-device.c | 107 ++++++++++++++++++++++++-----
doc/reference/clutter/clutter-sections.txt | 10 ++-
2 files changed, 95 insertions(+), 22 deletions(-)
commit 0f56abf569d524bd42d4a3cdc6a5321a3de2b7f9
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Jan 19 16:34:49 2011 +0000
*/event: Never manipulate the event queue directly
Always use _clutter_event_push() instead.
clutter/egl/clutter-event-tslib.c | 2 +-
clutter/evdev/clutter-device-manager-evdev.c | 5 +----
clutter/wayland/clutter-input-device-wayland.c | 26 +++++++-------------------
clutter/win32/clutter-event-win32.c | 6 +-----
4 files changed, 10 insertions(+), 29 deletions(-)
commit 400ecdfc81d19ab27cbc7a4f416b6fc109556ebf
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Jan 19 16:34:37 2011 +0000
win32: Update DeviceManager device creation
clutter/win32/clutter-device-manager-win32.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
commit 73cf6bd52c282acc1cdb67724d2b55d3f822f7ef
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Jan 19 16:23:45 2011 +0000
device: Allow enabling/disabling non-master devices
Slave and floating devices should always be disabled, and not deliver
events to the scene. It is up to the user to enable non-master devices
and handle events coming from them.
ClutterInputDevice gets a new :enabled property, defaulting to FALSE;
when a device manager creates a new device it has to set it to TRUE if
the :device-mode property is set to CLUTTER_INPUT_MODE_MASTER.
The main event queue entry point, _clutter_event_push(), will
automatically discard events coming from disabled devices.
clutter/clutter-device-manager-private.h | 3 +-
clutter/clutter-event.c | 9 ++++
clutter/clutter-input-device.c | 66 +++++++++++++++++++++++++++
clutter/clutter-input-device.h | 3 ++
clutter/x11/clutter-device-manager-core-x11.c | 3 ++
clutter/x11/clutter-device-manager-xi2.c | 10 +++-
tests/interactive/test-devices.c | 10 +++-
7 files changed, 100 insertions(+), 4 deletions(-)
commit 137f7d42a8db40a85ae95b10d9ed0fa895f48b0a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Jan 19 15:17:34 2011 +0000
backend/eglx: Add newly created stages to the translators
The events directed to the stage should be translated by the stage.
clutter/egl/clutter-backend-egl.c | 4 ++++
1 file changed, 4 insertions(+)
commit d3ed3d3a7b3950160a3351d54e766628fd916ad8
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Jan 19 13:54:27 2011 +0000
device: Add more doc annotations
Even for internal API.
clutter/clutter-input-device.c | 32 ++++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)
commit 50e52f550a14e86a689673ce898970337cc46e8b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Jan 19 13:53:20 2011 +0000
device: Use a double for translate_axis() argument
While XI1 has axis data in events exposed as integers, XI2 uses double
precision floating point values.
clutter/clutter-device-manager-private.h | 2 +-
clutter/clutter-input-device.c | 17 ++++++++++++++++-
2 files changed, 17 insertions(+), 2 deletions(-)
commit f54044f7e45fe37538187ca06f7d378ae8d64800
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Jan 19 13:52:33 2011 +0000
test-devices: Clean up and show axes data
tests/interactive/test-devices.c | 106 +++++++++++++++++++++++++++++++++------
1 file changed, 92 insertions(+), 14 deletions(-)
commit d078fe09301db384b7a465b86ad83dab860576b4
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Jan 18 22:31:14 2011 +0000
event: Fix up clutter_event_copy()
We need to copy the scroll axis data, and we need to copy the private
Event data from the source event to the target event structure.
clutter/clutter-event.c | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
commit 405e611279321ebe293e02b4507899355f49cc64
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Jan 18 22:30:21 2011 +0000
device/xi2: Translate the axis data after setting devices
We need the devices (source and virtual) to be set before translating
the axis data from XI2 to the Clutter event.
clutter/x11/clutter-device-manager-xi2.c | 30 +++++++++++++++++++-----------
1 file changed, 19 insertions(+), 11 deletions(-)
commit dd5f6ca7e1b5042beca6363109424565a7d8223b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Jan 18 17:33:22 2011 +0000
device: Add more accessors for properties
Allow using real accessor methods for getting the ClutterInputDevice
properties set on construction.
clutter/clutter-input-device.c | 38 ++++++++++++++++++++++++++++++
clutter/clutter-input-device.h | 2 ++
doc/reference/clutter/clutter-sections.txt | 2 ++
3 files changed, 42 insertions(+)
commit ad06f1b20fcac9167f456ba21674d8f7a2c0cd3b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Jan 18 16:57:14 2011 +0000
docs: Update API reference
doc/reference/clutter/clutter-sections.txt | 2 ++
1 file changed, 2 insertions(+)
commit 333ca35ceca739388be36cf48514fcb68f3b7aef
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Jan 18 16:55:14 2011 +0000
device: Add get_axis_value()
We need a convenience function for extracting the value of a specific
axis type out of the array of axis values attached to events.
clutter/clutter-input-device.c | 47 ++++++++++++++++++++++++++++++++++++++++++
clutter/clutter-input-device.h | 4 ++++
2 files changed, 51 insertions(+)
commit d805237c313f5e2ce85b93fd167569c25b702163
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Jan 18 16:54:12 2011 +0000
event: Add accessor for the axes field
CLUTTER_BUTTON_* and CLUTTER_MOTION event types have axes data attached
to them, so we want to expose a common ClutterEvent method for
extracting that data.
clutter/clutter-event.c | 57 +++++++++++++++++++++++++++++++++++++++++++++++++
clutter/clutter-event.h | 2 ++
2 files changed, 59 insertions(+)
commit 431200f40dad93bcaeff76ad34f3fdd431d5a8f2
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Jan 18 16:13:26 2011 +0000
device: Add keys and axes accessors
Allow retrieving the number of keys and axes, since we provide the API
to iterate over them both.
clutter/clutter-device-manager-private.h | 2 --
clutter/clutter-input-device.c | 30 +++++++++++++++++++++++------
clutter/clutter-input-device.h | 3 +++
clutter/x11/clutter-device-manager-xi2.c | 2 +-
clutter/x11/clutter-input-device-core-x11.c | 3 +--
doc/reference/clutter/clutter-sections.txt | 10 ++++++++--
6 files changed, 37 insertions(+), 13 deletions(-)
commit b662a070f2c5ebe2af479fd0290745ad923b3c42
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Jan 18 15:42:02 2011 +0000
docs: Update dependencies in README
README | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 0a869e0718331737a1126da861222f7b0162fcce
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Jan 18 14:16:11 2011 +0000
egl/x11: Defer X11-specific code to the X11 backend
The ClutterStageX11 implementation does most of the heavy lifting, so
subclasses like ClutterStageGLX and ClutterStageEGL do not need to
handle things like creating the stage Window and selecting events; just
chaining up and using the internal API will suffice.
clutter/egl/clutter-stage-egl.c | 108 +++-------------------------------------
1 file changed, 8 insertions(+), 100 deletions(-)
commit a3102a777ead15f7ba4b671bd25fd642762fec57
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Jan 18 14:09:04 2011 +0000
docs: Fill out documentation for new symbols
clutter/clutter-event.c | 82 ++++++++++++++++++++++++++++++
clutter/clutter-event.h | 1 +
clutter/clutter-input-device.c | 37 ++++++++++++++
clutter/clutter-input-device.h | 29 +++++++++++
clutter/clutter-private.h | 4 ++
clutter/x11/clutter-device-manager-xi2.c | 39 ++++++++++----
doc/reference/clutter/Makefile.am | 1 +
doc/reference/clutter/clutter-sections.txt | 12 ++++-
8 files changed, 194 insertions(+), 11 deletions(-)
commit fa3c5a28a7b82d817ae7b83a058158a101e1e4b0
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Jan 18 13:15:20 2011 +0000
backend/x11: Allow querying xinput support
Undeprecate the XInput-related X11 API: since we don't enable XI support
by default we still need to ask for it, and see if we have it after the
backend initialization sequence.
clutter/x11/clutter-backend-x11.c | 14 ++++++++------
clutter/x11/clutter-backend-x11.h | 5 +----
2 files changed, 9 insertions(+), 10 deletions(-)
commit c8cc03f8a7b13db01a71c4a597c05a7b94ba664c
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Jan 18 13:08:09 2011 +0000
event/x11: Epic clean up
Event translation is now done where it belongs: we don't need a massive
switch in a file with direct access to private structure members.
So long, event_translate(); and thanks for all the fish.
clutter/x11/clutter-event-x11.c | 869 ----------------------------------------
1 file changed, 869 deletions(-)
commit c044e44dc798a4afede519abe430ff6a20bd745d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Jan 18 13:07:36 2011 +0000
device/x11: Use similar core for axis translation as XI2
clutter/x11/clutter-input-device-core-x11.c | 39 ++++++++++++++---------------
1 file changed, 19 insertions(+), 20 deletions(-)
commit c9c6236d3786ed3f69f170b02523e08a91b7f644
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Jan 18 13:05:46 2011 +0000
stage/x11: Do not check a boolean for equality
Booleans should only be used like direct conditions, never as
comparisons with TRUE or FALSE.
clutter/x11/clutter-stage-x11.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
commit ee15d0d2d01a02e426cbb8c340738e4f8411fc4f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Jan 18 13:05:17 2011 +0000
Add copyright and licensing blurbs
clutter/x11/clutter-input-device-core-x11.h | 23 +++++++++++++++++++++++
clutter/x11/clutter-input-device-xi2.c | 23 +++++++++++++++++++++++
clutter/x11/clutter-input-device-xi2.h | 23 +++++++++++++++++++++++
3 files changed, 69 insertions(+)
commit 2cb0077f7d7260109f0974d260cb4ed63ade6e9e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Jan 18 13:03:07 2011 +0000
device/xi2: Implement get_core_device()
We ask XI2 to get the client pointer for CLUTTER_POINTER_DEVICE, and
we use the attached keyboard device for CLUTTER_KEYBOARD_DEVICE. For
everything else, we return NULL.
clutter/x11/clutter-device-manager-xi2.c | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
commit 9c48486d7ac73aa55b69a70cf1ef7009a0af2a09
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Jan 18 13:02:15 2011 +0000
device/xi2: Remove the ::remove implementation
Removing a device is only internal API, and we already have a function
for that: we don't need to implement the DeviceManager virtual as well.
clutter/x11/clutter-device-manager-xi2.c | 18 ++----------------
1 file changed, 2 insertions(+), 16 deletions(-)
commit 0075c45ca49569988fb6b8f1b4a60cd4e77be287
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Jan 18 13:01:27 2011 +0000
device/xi2: Blow the cached devices list
Every time we add or remove a device we should clear the cached list
that we return in get_devices(), so that it gets repopulated.
clutter/x11/clutter-device-manager-xi2.c | 8 ++++++++
1 file changed, 8 insertions(+)
commit de93f721c1314321bf78acec2f50d5a481210ec9
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Jan 18 12:59:49 2011 +0000
Clean up the copyright and licensing blurbs
clutter/glx/clutter-stage-glx.c | 9 +++++----
clutter/x11/clutter-device-manager-core-x11.c | 2 +-
clutter/x11/clutter-device-manager-core-x11.h | 2 +-
clutter/x11/clutter-device-manager-xi2.c | 2 +-
clutter/x11/clutter-device-manager-xi2.h | 2 +-
clutter/x11/clutter-input-device-core-x11.c | 23 +++++++++++++++++++++++
6 files changed, 32 insertions(+), 8 deletions(-)
commit 7c25b063aafc21527413106dca6db3fcb50bd5ad
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Jan 18 12:57:50 2011 +0000
x11: Use XI2 API only if we support it
XIQueryVersion() is XI2 API.
clutter/x11/clutter-backend-x11.c | 43 +++++++++++++++++++++++++++++----------
1 file changed, 32 insertions(+), 11 deletions(-)
commit caf359d8c9a110797e9ad64a7cb3600b7b964275
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Jan 18 12:57:12 2011 +0000
input-device: Add documentation
clutter/clutter-input-device.c | 48 +++++++++++++++++++++++++++++++++++++++++-
clutter/clutter-input-device.h | 2 +-
2 files changed, 48 insertions(+), 2 deletions(-)
commit 342cdd25756b37745bfd1725d78f6f670f77bee0
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Jan 17 17:01:58 2011 +0000
input-device: Move select_stage_events() to a vfunc
Don't use a signal, use a virtual function.
clutter/clutter-device-manager-private.h | 4 ++++
clutter/clutter-input-device.c | 28 +++++-----------------------
clutter/x11/clutter-input-device-core-x11.c | 5 ++---
clutter/x11/clutter-input-device-xi2.c | 5 ++---
4 files changed, 13 insertions(+), 29 deletions(-)
commit 2777c52f2759513c8e4b66e474ed2da587bd5de5
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Jan 17 16:56:07 2011 +0000
input-device: Make ClutterInputDeviceClass private
We keep the symbol in the public header, but the definition is now
private. You could not sub-class InputDevice anyway, without the
instance structure, and the lack of padding in the class made actually
implementing devices in backends really hard.
clutter/clutter-device-manager-private.h | 5 +++++
clutter/clutter-input-device.h | 14 --------------
2 files changed, 5 insertions(+), 14 deletions(-)
commit 001f84875aa5a0f0871b0f86a73d4c1972c12430
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Jan 17 16:42:18 2011 +0000
Enable XInput support by default
Since we have a decent XI1 and XI2 implementation, now, we should turn
the support for XInput on by default.
The actual implementation to be used at run-time is still left to be
decided by the user.
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 1b1e77b46989ba97bfff8abdfa61df0f514a7eae
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Jan 4 12:32:04 2011 +0000
event/x11: Rework the way we translate X11 events
This is a lump commit that is fairly difficult to break down without
either breaking bisecting or breaking the test cases.
The new design for handling X11 event translation works this way:
- ClutterBackend::translate_event() has been added as the central
point used by a ClutterBackend implementation to translate a
native event into a ClutterEvent;
- ClutterEventTranslator is a private interface that should be
implemented by backend-specific objects, like stage
implementations and ClutterDeviceManager sub-classes, and
allows dealing with class-specific event translation;
- ClutterStageX11 implements EventTranslator, and deals with the
stage-relative X11 events coming from the X11 event source;
- ClutterStageGLX overrides EventTranslator, in order to
deal with the INTEL_GLX_swap_event extension, and it chains up
to the X11 default implementation;
- ClutterDeviceManagerX11 has been split into two separate classes,
one that deals with core and (optionally) XI1 events, and the
other that deals with XI2 events; the selection is done at run-time,
since the core+XI1 and XI2 mechanisms are mutually exclusive.
All the other backends we officially support still use their own
custom event source and translation function, but the end goal is to
migrate them to the translate_event() virtual function, and have the
event source be a shared part of Clutter core.
clutter/Makefile.am | 24 +-
clutter/clutter-backend-private.h | 8 +
clutter/clutter-backend.c | 12 +
clutter/clutter-device-manager-private.h | 105 +-
clutter/clutter-device-manager.c | 29 +
clutter/clutter-device-manager.h | 1 +
clutter/clutter-event-translator.c | 38 +
clutter/clutter-event-translator.h | 40 +
clutter/clutter-event.c | 77 +-
clutter/clutter-event.h | 51 -
clutter/clutter-input-device.c | 476 ++++++++-
clutter/clutter-input-device.h | 57 +-
clutter/clutter-marshal.list | 1 +
clutter/clutter-private.h | 3 +
clutter/clutter-types.h | 51 +
clutter/glx/clutter-backend-glx.c | 11 +-
clutter/glx/clutter-event-glx.c | 105 --
clutter/glx/clutter-event-glx.h | 38 -
clutter/glx/clutter-stage-glx.c | 186 ++--
clutter/x11/clutter-backend-x11.c | 358 +++++--
clutter/x11/clutter-backend-x11.h | 55 +-
clutter/x11/clutter-device-manager-core-x11.c | 745 ++++++++++++++
...ger-x11.h => clutter-device-manager-core-x11.h} | 4 +-
clutter/x11/clutter-device-manager-x11.c | 354 -------
clutter/x11/clutter-device-manager-xi2.c | 1058 ++++++++++++++++++++
clutter/x11/clutter-device-manager-xi2.h | 66 ++
clutter/x11/clutter-event-x11.c | 116 +--
clutter/x11/clutter-input-device-core-x11.c | 414 ++++++++
clutter/x11/clutter-input-device-core-x11.h | 26 +
clutter/x11/clutter-input-device-x11.c | 228 -----
clutter/x11/clutter-input-device-x11.h | 25 -
clutter/x11/clutter-input-device-xi2.c | 161 +++
clutter/x11/clutter-input-device-xi2.h | 22 +
clutter/x11/clutter-stage-x11.c | 552 +++++++++-
clutter/x11/clutter-stage-x11.h | 9 +
configure.ac | 50 +-
tests/interactive/test-devices.c | 13 +
37 files changed, 4369 insertions(+), 1200 deletions(-)
commit ca092477c2d3fcc74384c3f46216802db32ba0d9
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Jan 20 16:18:16 2011 +0000
Appease the gods in introspection
Reduce the amount of bogus warnings g-ir-scanner prints out.
clutter/clutter-align-constraint.c | 2 --
clutter/clutter-align-constraint.h | 3 ++-
clutter/clutter-backend-private.h | 1 -
clutter/clutter-backend.h | 9 +++++++++
clutter/clutter-bind-constraint.c | 2 --
clutter/clutter-bind-constraint.h | 3 ++-
clutter/clutter-binding-pool.c | 1 -
clutter/clutter-binding-pool.h | 1 +
clutter/clutter-blur-effect.c | 2 --
clutter/clutter-blur-effect.h | 1 +
clutter/clutter-colorize-effect.c | 2 --
clutter/clutter-colorize-effect.h | 3 ++-
clutter/clutter-desaturate-effect.c | 2 --
clutter/clutter-desaturate-effect.h | 1 +
clutter/clutter-page-turn-effect.c | 2 --
clutter/clutter-page-turn-effect.h | 1 +
clutter/clutter-path-constraint.c | 2 --
clutter/clutter-path-constraint.h | 3 ++-
clutter/clutter-settings.c | 2 --
clutter/clutter-settings.h | 1 +
clutter/clutter-snap-constraint.c | 2 --
clutter/clutter-snap-constraint.h | 3 ++-
doc/reference/clutter/clutter-sections.txt | 17 ++++++++++++++---
23 files changed, 38 insertions(+), 28 deletions(-)
commit 439553a1b7e7d6a1731df7124b74545881ce4fbf
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Jan 20 13:44:16 2011 +0000
Update the NEWS file
NEWS | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
commit ef7810422764f7297f295a7c8189204de1eb4c3f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Jan 20 13:29:37 2011 +0000
Expose deprecated symbols whilst building Clutter
Don't use ugly "#undef CLUTTER_DISABLE_DEPRECATED" inside source code
using deprecated symbols; we have the handy CLUTTER_COMPILATION define
that we can use as part of the "disable deprecated" conditional.
clutter/clutter-actor.c | 4 +---
clutter/clutter-behaviour-depth.c | 1 -
clutter/clutter-behaviour-depth.h | 2 +-
clutter/clutter-behaviour-ellipse.c | 1 -
clutter/clutter-behaviour-ellipse.h | 2 +-
clutter/clutter-behaviour-opacity.c | 1 -
clutter/clutter-behaviour-opacity.h | 2 +-
clutter/clutter-behaviour-path.c | 1 -
clutter/clutter-behaviour-path.h | 2 +-
clutter/clutter-behaviour-rotate.c | 1 -
clutter/clutter-behaviour-rotate.h | 2 +-
clutter/clutter-behaviour-scale.c | 1 -
clutter/clutter-behaviour-scale.h | 2 +-
clutter/clutter-behaviour.c | 1 -
clutter/clutter-behaviour.h | 4 ++--
clutter/clutter-frame-source.h | 2 +-
clutter/clutter-timeout-pool.c | 1 -
clutter/clutter-timeout-pool.h | 2 +-
18 files changed, 11 insertions(+), 21 deletions(-)
commit cd96e631f15ee623116cf3d330cc046e7855ee56
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Jan 20 13:19:03 2011 +0000
glx: Deprecate ClutterGLXTexturePixmap
Since 1.4 the ClutterGLXTexturePixmap is just a wrapper around
ClutterX11TexturePixmap, so we can safely deprecate it. All the
functionality it provided is now effectively available from the
superclass or directly from Cogl.
clutter/glx/clutter-glx-texture-pixmap.c | 23 +++++++++++++++--------
clutter/glx/clutter-glx-texture-pixmap.h | 12 ++++++++----
2 files changed, 23 insertions(+), 12 deletions(-)
commit 770bcd5b4042818008e3fbbfab8e11722681a5fa
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Jan 20 12:59:56 2011 +0000
test-pixmap: Remove the GLX code
The ClutterGLXTexturePixmap actor is just a wrapper around
ClutterX11TexturePixmap, since the relevant texture-from-pixmap code has
been moved down to Cogl.
tests/interactive/test-pixmap.c | 41 -----------------------------------------
1 file changed, 41 deletions(-)
commit a2d6edd4223fc18a9b3902e388ddd105db468f32
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Jan 19 18:51:01 2011 +0000
test-pixmap: Fix up compilation on EGLX
We need to check for the GLX windowing system if we are to include
clutter-glx.h.
tests/interactive/test-pixmap.c | 2 ++
1 file changed, 2 insertions(+)
commit 62a0584f115f4a1cc6138c2915d90e24c69c4002
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Jan 19 17:54:28 2011 +0000
docs: Ignore clutter-config.h when scanning headers
doc/reference/clutter/Makefile.am | 1 +
1 file changed, 1 insertion(+)
commit a43c5f10bb5f3273378fedecd618260b96499cff
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Jan 19 14:36:30 2011 +0000
tests: Try to drop including config.h
The config.h header should be considered a Clutter internal header, and
the test cases (especially the interactive test cases) should strive to
never rely on internal headers.
tests/interactive/test-cogl-offscreen.c | 1 -
tests/interactive/test-cogl-primitives.c | 6 ++---
tests/interactive/test-cogl-tex-convert.c | 1 -
tests/interactive/test-cogl-tex-foreign.c | 1 -
tests/interactive/test-cogl-tex-getset.c | 1 -
tests/interactive/test-cogl-tex-polygon.c | 1 -
tests/interactive/test-cogl-tex-tile.c | 1 -
tests/interactive/test-cogl-vertex-buffer.c | 1 -
tests/interactive/test-paint-wrapper.c | 8 ++-----
tests/interactive/test-pixmap.c | 34 ++++++++++++++++++-----------
tests/interactive/test-textures.c | 4 ----
11 files changed, 26 insertions(+), 33 deletions(-)
commit 94b905b9e110c671698a0cd59fa827f6ddb0a84d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Jan 19 14:33:27 2011 +0000
build: Generate an instealled config header
Clutter has some platform-specific API that is accessible only if the
right backend has been compiled in. Third party applications that wish
to be portable across backends might want to use defines and other
pre-processor tricks to determine header inclusion and API usage.
While Clutter has an internal set of symbols it can use, third party
applications don't have the luxury of being able to access the config.h
generated by Clutter's configure script.
For this reason, Clutter should install a configuration header with a
series of namespaced defines that can be picked up by applications and
other third party code.
.gitignore | 1 +
clutter/Makefile.am | 5 +++++
clutter/clutter-config.h.in | 16 ++++++++++++++++
clutter/clutter.h | 2 ++
configure.ac | 30 ++++++++++++++++++++++++++++++
5 files changed, 54 insertions(+)
commit 90a01b479c432310f9fcfb5fcd04e23d8fc1a92a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Jan 18 15:14:58 2011 +0000
Update the NEWS file
NEWS | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
commit bb41cb54cbdbb21f3be26ac14c07fd1c804b4d31
Author: Chris Lord <chris@linux.intel.com>
Date: Tue Jan 18 15:48:29 2011 +0000
timeline: Check if the timeline is playing in do_tick
Check that the timeline is still playing before executing in
_clutter_timeline_do_tick. This fixes the possibility of receiving a
new-frame signal when stopping a timeline in response to a different
timeline's signal emission.
clutter/clutter-timeline.c | 8 ++++++++
1 file changed, 8 insertions(+)
commit c61e22d06787effcd4c260a817ba4845d5eedfdb
Author: Lucas Rocha <lucasr@litl.com>
Date: Mon Jan 17 18:28:49 2011 +0000
drag-action: fix case where motion events are indefinitely disabled
When drag threshold is not reached, emit_drag_begin() is not called
causing default value of priv->motion_events_enabled (false) to used to
restore motion events enabled state in Clutter. This causes drag action
to indefinitely disable motion events. The current value of motion
events enabled state is now queried on button press which guarantees
that the state will be restored with the correct value in
emit_drag_end()
http://bugzilla.clutter-project.org/show_bug.cgi?id=2522
clutter/clutter-drag-action.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
commit cecc7a4bfbae6dc4891f3cd1888e85fc1148dc1a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Jan 18 14:46:02 2011 +0000
stage: Fix gtk-doc annotation for set_accept_focus()
clutter/clutter-stage.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 5d8b6aa6fa2c51b72079d52766e5013ff612af19
Author: Bastian Winkler <buz@netbuz.org>
Date: Fri Jan 14 14:53:05 2011 +0100
introspection: Add missing (out) annotations for get_color()
Some actors are missing the (out) annotations for the get_color()
methods.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2518
clutter/clutter-rectangle.c | 4 ++--
clutter/clutter-stage.c | 2 +-
clutter/clutter-text.c | 2 +-
3 files changed, 4 insertions(+), 4 deletions(-)
commit 54d00ebaf0a0084c7b0580a7b234e214ce95dd16
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Jan 17 17:30:47 2011 +0000
docs: Add ClutterClickAction.get_state()
doc/reference/clutter/clutter-sections.txt | 3 +++
1 file changed, 3 insertions(+)
commit 6af7b76cb5959616ea828678e1fb0258a7a04d2d
Author: Lucas Rocha <lucasr@gnome.org>
Date: Mon Jan 17 00:38:04 2011 +0000
click-action: add API to get modifier type
This is to allow implementing modified click such as ctrl+click,
shift+click, and so on.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2520
clutter/clutter-click-action.c | 37 +++++++++++++++++++++++++++++++++++++
clutter/clutter-click-action.h | 6 ++++--
2 files changed, 41 insertions(+), 2 deletions(-)
commit 6100aee5bd8d1c11fcaf6f7b3ac9a9317fbe39af
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Mon Jan 17 15:22:48 2011 +0000
color: Mark the new static color API as being new from 1.6
The patch was written a while ago but only merged in the 1.5.x cycle.
clutter/clutter-color.c | 2 +-
clutter/clutter-color.h | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
commit ae9781e5266464314fda19ab8495e9824edbcdfb
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Jan 17 12:21:33 2011 +0000
cogl-program: Don't use separate definitions on GLES 1.1
Previously most of the code for cogl-program and cogl-shader was
ifdef'd out for GLES 1.1 and alternate stub definitions were
defined. This patch removes those and instead puts #ifdef's directly
in the functions that need it. This should make it a little bit easier
to maintain.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2516
clutter/cogl/cogl/cogl-program.c | 105 +++++----------------------------------
clutter/cogl/cogl/cogl-shader.c | 91 ++++++++++++---------------------
2 files changed, 44 insertions(+), 152 deletions(-)
commit b7677d047df6b8c96605454717873bbcb1722763
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Jan 17 12:20:06 2011 +0000
cogl-pipeline-opengl: #ifdef out set_glsl_program for GLES 1.1
glUseProgram is not available under GLES 1.1 so it was breaking the
build.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2516
clutter/cogl/cogl/cogl-pipeline-opengl.c | 9 +++++++++
1 file changed, 9 insertions(+)
commit 568d32acf3604a9c68556224844a839f0e014bcf
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Jan 17 12:06:13 2011 +0000
cogl-pipeline: Fix the enum names for the constant combine source
When determining whether to hash the combine constant Cogl checks the
arguments to the combine funcs to determine whether the combine
constant is used. However is was using the GLenums GL_CONSTANT_COLOR
and GL_CONSTANT_ALPHA but these are not valid values for the
CoglPipelineCombineSource enum so presumably the constant would never
get hashed. This patch makes it use Cogl's enum of
COGL_PIPELINE_COMBINE_SOURCE_CONSTANT instead.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2516
clutter/cogl/cogl/cogl-pipeline.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
commit 0c070cdf91c2956ba057364eb63cc422a79b6c88
Author: Adel Gadllah <adel.gadllah@gmail.com>
Date: Sun Jan 16 23:19:28 2011 +0100
ClutterX11TexturePixmap: Fix doc comment
The wrong signal name was used probably a copy & paste
mistake, fix that.
clutter/x11/clutter-x11-texture-pixmap.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 88fe56d1752ad64f404da2baa1bc74f2ebbae64c
Author: Neil Roberts <neil@linux.intel.com>
Date: Thu Jan 13 15:54:50 2011 +0000
cogl-buffer: Support mapping buffers for write on GLES
GLES has an extension called GL_OES_mapbuffer to support mapping
buffer objects but only for writing. Cogl now has two new feature
flags to advertise whether mapping for reading and writing is
supported. Under OpenGL, these features are always set if the VBO
extension is advertised and under GLES only the write flag is set if
the GL_OES_mapbuffer extension is advertised.
clutter/cogl/cogl/cogl-buffer.c | 44 ++++++++++------------
clutter/cogl/cogl/cogl-types.h | 8 +++-
.../cogl/driver/gl/cogl-feature-functions-gl.h | 4 +-
.../cogl/driver/gles/cogl-feature-functions-gles.h | 12 ++++++
4 files changed, 42 insertions(+), 26 deletions(-)
commit 7e73f0d4232338741e2dc811cdb2039287f384bb
Author: Neil Roberts <neil@linux.intel.com>
Date: Thu Jan 13 15:36:08 2011 +0000
cogl: Enable the VBOs feature for GLES2
The GLES2 wrapper code has been removed so there are no longer any
problems with enabling VBOs.
clutter/cogl/cogl/driver/gles/cogl-gles.c | 5 -----
1 file changed, 5 deletions(-)
commit 9bb74988d5b7c7df3678185ed4488c9957f00a9d
Author: Neil Roberts <neil@linux.intel.com>
Date: Thu Jan 13 15:35:30 2011 +0000
cogl: Fallback to set_data when mapping a buffer to fill it
In the journal code and when generating the stroke path the vertices
are generated on the fly and stored in a CoglBuffer using
cogl_buffer_map. However cogl_buffer_map is allowed to fail but it
wasn't checking for a NULL return value. In particular on GLES it will
always fail because glMapBuffer is only provided by an extension. This
adds a new pair of internal functions called
_cogl_buffer_{un,}map_for_fill_or_fallback which wrap
cogl_buffer_map. If the map fails then it will instead return a
pointer into a GByteArray attached to the context. When the buffer is
unmapped the array is copied into the buffer using
cogl_buffer_set_data.
clutter/cogl/cogl/cogl-buffer-private.h | 19 ++++++++++--
clutter/cogl/cogl/cogl-buffer.c | 51 +++++++++++++++++++++++++++++++++
clutter/cogl/cogl/cogl-context.c | 5 ++++
clutter/cogl/cogl/cogl-context.h | 6 ++++
clutter/cogl/cogl/cogl-journal.c | 5 ++--
clutter/cogl/cogl/cogl2-path.c | 7 ++---
6 files changed, 83 insertions(+), 10 deletions(-)
commit 77a486caf2c130341624ab56e588ab116c7e8e26
Author: Neil Roberts <neil@linux.intel.com>
Date: Thu Jan 13 14:12:10 2011 +0000
cogl-context: Don't enable point sprites on GLES2
On GLES2 there's no builtin mechanism to replace texture coordinates
with point sprite coordinates so calling glEnable(GL_POINT_SPRITE)
isn't valid. Instead the point sprite coords are implemented by using
a special builtin varying variable in GLSL.
clutter/cogl/cogl/cogl-context.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
commit 88a085fdd86e3f1f285833f2f4df19af339c339c
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Jan 11 16:02:06 2011 +0000
pipeline: differentiate texture target and data state
There are several places where we need to compare the texture state of a
pipeline and sometimes we need to take into consideration if the
underlying texture has changed but other times we may only care to know
if the texture target has changed.
For example the fragends typically generate programs that they want to
share with all pipelines with equivalent fragment processing state, and
in this case when comparing pipelines we only care about the texture
targets since changes to the underlying texture won't affect the
programs generated.
Prior to this we had tried to handle this by passing around some special
flags to various functions that evaluate pipeline state to say when we
do/don't care about the texture data, but this wasn't working in all
cases and was more awkward to manage than the new approach.
Now we simply have two state bits:
COGL_PIPELINE_LAYER_STATE_TEXTURE_TARGET and
COGL_PIPELINE_LAYER_STATE_TEXTURE_DATA and CoglPipelineLayer has an
additional target member. Since all the appropriate code takes masks of
these state bits to determine what to evaluate we don't need any extra
magic flags.
clutter/cogl/cogl/cogl-pipeline-fragend-arbfp.c | 9 +-
clutter/cogl/cogl/cogl-pipeline-fragend-fixed.c | 25 +--
clutter/cogl/cogl/cogl-pipeline-fragend-glsl.c | 3 +-
clutter/cogl/cogl/cogl-pipeline-opengl.c | 9 +-
clutter/cogl/cogl/cogl-pipeline-private.h | 28 +--
clutter/cogl/cogl/cogl-pipeline-progend-glsl.c | 3 +-
clutter/cogl/cogl/cogl-pipeline-vertend-glsl.c | 3 +-
clutter/cogl/cogl/cogl-pipeline.c | 273 +++++++++++++++++-------
8 files changed, 223 insertions(+), 130 deletions(-)
commit 8ab68d26a5c2e026bc422da13ab290ba3d432aa4
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Jan 12 17:11:48 2011 +0000
pipeline: optimize state init if changing property
When notifying that a pipeline property is going to change, then at
times a pipeline will take over being the authority of the corresponding
state group. Some state groups can contain multiple properties and so to
maintain the integrity of all of the properties we have to initialize
all the property values in the new authority. For state groups with only
one property we don't have to initialize anything during the
pre_change_notify() because we can assume the value will be initialized
as part of the change being notified.
This patch optimizes how we handle this initialization of state groups
in a couple of ways; firstly we no longer do anything to initialize
state-groups with only one property, secondly we no longer use
_cogl_pipeline_copy_differences - (we have a new
_cogl_pipeline_init_multi_property_sparse_state() func) so we can avoid
lots calls to handle_automatic_blend_enable() which is sometimes seen
high in sysprof profiles.
clutter/cogl/cogl/cogl-pipeline-private.h | 161 ++++++++++++-------
clutter/cogl/cogl/cogl-pipeline.c | 255 +++++++++++++++++++-----------
2 files changed, 266 insertions(+), 150 deletions(-)
commit 5fc3122dadf948c5594478a3eae7deef391c62fe
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Jan 12 16:59:37 2011 +0000
test-cogl-shader-glsl: Disable the atlas for the hand texture
Atlasing needs to be disabled for the hand texture so that it can work
out the step value needed to fetch a neighbouring pixel in the blur
shader. If the texture ends up in the atlas then the test can't know
the actual size of the texture so it looks wrong.
tests/interactive/test-cogl-shader-glsl.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
commit 3c9f72abbfcc7967aa399506adba0bfee4952bbc
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Jan 12 16:56:52 2011 +0000
cogl-atlas-texture: Don't disable atlas if can't read texture data
Previously atlasing would be disabled if the GL driver does not
support reading back texture data. This meant that atlasing would not
happen on GLES. However we also require that the driver support FBOs
and the texture data is only read back as a fallback if the FBO
fails. Therefore the atlas should be ok on GLES 2 which has FBO
support in core.
clutter/cogl/cogl/cogl-atlas-texture.c | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
commit 12ceae548d441f0611542645a62f6c0cbf7a0c5f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Jan 11 21:34:37 2011 +0000
Post-release version bump to 1.5.13
configure.ac | 2 +-
po/clutter-1.0.pot | 200 ++++++++++++++++++++++++++++-------------------------
po/de.po | 198 +++++++++++++++++++++++++++-------------------------
po/fr.po | 199 +++++++++++++++++++++++++++-------------------------
po/id.po | 199 +++++++++++++++++++++++++++-------------------------
po/it.po | 200 ++++++++++++++++++++++++++++-------------------------
po/pl.po | 200 ++++++++++++++++++++++++++++-------------------------
po/zh_CN.po | 199 +++++++++++++++++++++++++++-------------------------
8 files changed, 730 insertions(+), 667 deletions(-)
commit 09d5c309ca95f68425919fdd1a41a14f41e4053b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Jan 11 20:29:30 2011 +0000
Release 1.5.12
configure.ac | 23 ++++++++++++-----------
1 file changed, 12 insertions(+), 11 deletions(-)
commit 676df42c6fefd28a6da2c1cefd885d6fa4d59da1
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Jan 11 14:10:11 2011 +0000
pipeline: don't skip flush if skip_gl_color flag differs
We try and bail out of flushing pipeline state asap if we can see the
pipeline has already been flushed and hasn't changed but we weren't
checking to see if the skip_gl_color flag is the same as when it was
last flush too and so we'd sometimes bail out without updating the
glColor correctly.
clutter/cogl/cogl/cogl-pipeline-opengl.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
commit b922ac605962df6b1cf86a0e710294be114f62c4
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Tue Jan 11 14:15:46 2011 +0000
test-shader: Fix the edge-detect shader
cogl_text_coord_in in a array to access the texture units. In this case
we want to sample texture unit 0, where the texture is.
tests/interactive/test-shader.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 38e527a3cf2527a46461eb76c6598071daf95053
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Jan 10 20:13:41 2011 +0000
cogl-vertex-attribute: Optionally avoid applying the legacy state
When an item is added to the journal the current pipeline immediately
gets the legacy state applied to it and the modified pipeline is
logged instead of the original. However the actual drawing from the
journal is done using the vertex attribute API which was also applying
the legacy state. This meant that the legacy state used would be a
combination of the state set when the journal entry was added as well
as the state set when the journal is flushed. To fix this there is now
an extra CoglDrawFlag to avoid applying the legacy state when setting
up the GL state for the vertex attributes. The journal uses this flag
when flushing.
clutter/cogl/cogl/cogl-journal.c | 3 ++-
clutter/cogl/cogl/cogl-vertex-attribute-private.h | 6 +++++-
clutter/cogl/cogl/cogl-vertex-attribute.c | 6 ++++--
3 files changed, 11 insertions(+), 4 deletions(-)
commit cb49197d0101aa32fa3bb0f8948c1952f5ccae33
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Jan 11 12:38:52 2011 +0000
Update the NEWS file
NEWS | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
commit f4fc7284ebeaedfb60d9903b41177f59a4907b85
Author: Bastian Winkler <buz@netbuz.org>
Date: Mon Jan 3 16:15:17 2011 +0100
script-parser: Also honor properties of type GType
The script parser should also handle GType properties.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2513
clutter/clutter-script-parser.c | 9 +++++++++
1 file changed, 9 insertions(+)
commit 8e3d9c21c643091bd537a2674eeaa86255167cc9
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Jan 11 11:49:11 2011 +0000
Update NEWS file
NEWS | 46 ++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 46 insertions(+)
commit f2080f099e2a05b05cd0adb2f204c1917adae0f2
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Tue Jan 11 10:23:59 2011 +0000
shader: Don't notify properties when finalizing shaders
clutter_shader_finalize() was calling clutter_shader_release() which in
turn notifies "compiled". GObject was complaining that we were trying to
_ref() an object that was in _finalize().
#0 g_log (log_domain=0x3e15c4 "GLib-GObject", log_level=G_LOG_LEVEL_CRITICAL,
format=0x76c938 "%s: assertion `%s' failed") at gmessages.h:97
#1 0x0070777d in g_return_if_fail_warning (
log_domain=0x3e15c4 "GLib-GObject",
pretty_function=0x3e37a4 "g_object_ref",
expression=0x3e2a00 "object->ref_count > 0") at gmessages.c:586
#2 0x003b862b in g_object_ref (_object=0x8567af0) at gobject.c:2615
#3 0x003bd238 in g_object_notify_by_pspec (object=0x8567af0, pspec=0x87ea2f0)
at gobject.c:1075
#4 0x00b6500b in clutter_shader_release (shader=0x8567af0)
at ./clutter-shader.c:612
#5 0x00b659b9 in clutter_shader_finalize (object=0x8567af0)
at ./clutter-shader.c:107
Then, let's split release in two, with an _internal() version that does
not notify "compiled" and use it from dispose (as the object is still
usable after a call to release_internal().
http://bugzilla.clutter-project.org/show_bug.cgi?id=2512
clutter/clutter-shader.c | 61 +++++++++++++++++++++++++++++-------------------
1 file changed, 37 insertions(+), 24 deletions(-)
commit 3625adb9d8188464b27ddf3e1203214ea2952092
Author: Tomeu Vizoso <tomeu.vizoso@collabora.co.uk>
Date: Mon Jan 10 19:13:03 2011 +0100
ClutterListModel: Implement get_n_rows for improved performance
The default implementation in ClutterModel iterates through all
the elements.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2511
clutter/clutter-list-model.c | 13 ++++++++++
clutter/clutter-model.c | 56 ++++++++++++++++++++++----------------------
2 files changed, 41 insertions(+), 28 deletions(-)
commit 850f956d4e2a811eb663575dcd6ae41f09b992de
Author: Adel Gadllah <adel.gadllah@gmail.com>
Date: Wed Jan 5 10:24:26 2011 +0100
ClutterAlignConstraint: Keep pixel aligment
We have to round the values here otherwise we might end up with
misaligned actors.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2508
clutter/clutter-align-constraint.c | 4 ++++
1 file changed, 4 insertions(+)
commit d648de7d1492b9ae69aac6702a99fccb8f92b165
Author: Neil Roberts <neil@linux.intel.com>
Date: Tue Dec 14 14:44:45 2010 +0000
cogl-journal: Avoid enabling blending if possible
The vertex attribute API assumes that if there is a color array
enabled then we can't determine if the colors are opaque so we have to
enable blending. The journal always uses a color array to avoid
switching color state between rectangles. Since the journal switched
to using vertex attributes this means we effectively always enable
blending from the journal. To fix this there is now a new flag for
_cogl_draw_vertex_attributes to specify that the color array is known
to only contain opaque colors which causes the draw function not to
copy the pipeline. If the pipeline has blending disabled then the
journal passes this flag.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2481
clutter/cogl/cogl/cogl-journal.c | 9 ++++++---
clutter/cogl/cogl/cogl-vertex-attribute-private.h | 9 ++++++++-
clutter/cogl/cogl/cogl-vertex-attribute.c | 10 ++++++----
3 files changed, 20 insertions(+), 8 deletions(-)
commit 159cd6ddc02b4a9a37fe7e0a61a104d3abab91a6
Author: Neil Roberts <neil@linux.intel.com>
Date: Tue Dec 14 14:24:17 2010 +0000
cogl-vertex-attribute: Add flags to _cogl_draw_vertex_attributes_array
There is an internal version of cogl_draw_vertex_attributes_array
which previously just bypassed the framebuffer flushing, journal
flushing and pipeline validation so that it could be used to draw the
journal. This patch generalises the function so that it takes a set of
flags to specify which parts to flush. The public version of the
function now just calls the internal version with the flags set to
0. The '_real' version of the function has now been merged into the
internal version of the function because it was only called in one
place. This simplifies the code somewhat. The common code which
flushed the various state has been moved to a separate function. The
indexed versions of the functions have had a similar treatment.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2481
clutter/cogl/cogl/cogl-journal.c | 17 ++-
clutter/cogl/cogl/cogl-primitives.c | 6 +-
clutter/cogl/cogl/cogl-vertex-attribute-private.h | 13 +-
clutter/cogl/cogl/cogl-vertex-attribute.c | 167 ++++++++--------------
clutter/cogl/cogl/cogl2-path.c | 14 +-
5 files changed, 100 insertions(+), 117 deletions(-)
commit 0201e5fa97549ffb2d20a1180e63e5a7a73fa7e2
Author: Neil Roberts <neil@linux.intel.com>
Date: Fri Dec 17 16:30:23 2010 +0000
cogl: Don't assume that CoglBitmaps are allocated to height*rowstride
Cogl no longer has any code that assumes the buffer in a CoglBitmap is
allocated to the full size of height*rowstride. We should comment that
this is the case so that we remember to keep it that way. This is
important for cogl_texture_new_from_data because the application may
have created the data from a sub-region of a larger image and in that
case it's not safe to read the full rowstride of the last row when the
sub region contains the last row of the larger image.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2491
clutter/cogl/cogl/cogl-bitmap-pixbuf.c | 60 +++++----------------------------
clutter/cogl/cogl/cogl-bitmap-private.h | 8 +++++
2 files changed, 17 insertions(+), 51 deletions(-)
commit e1cbef23f5118c748eb38c16ebb00de3f51686b7
Author: Neil Roberts <neil@linux.intel.com>
Date: Fri Dec 17 16:09:26 2010 +0000
cogl-texture-driver-gles: Don't copy the bitmap if alignment matches
When uploading data for GLES we need to deal with cases where the
rowstride is too large to be described only by GL_UNPACK_ALIGNMENT
because there is no GL_UNPACK_ROW_LENGTH. Previously for the
sub-region uploading code it would always copy the bitmap and for the
code to upload the whole image it would copy the bitmap unless the
rowstride == bpp*width. Neither paths took into account that we don't
need to copy if the rowstride is just an alignment of bpp*width. This
moves the bitmap copying code to a separate function that is used by
both upload methods. It only copies the bitmap if the rowstride is not
just an alignment of bpp*width.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2491
.../cogl/driver/gles/cogl-texture-driver-gles.c | 103 +++++++++++----------
1 file changed, 55 insertions(+), 48 deletions(-)
commit b3058c097dfb834018ab3598d002a7be595e78ff
Author: Neil Roberts <neil@linux.intel.com>
Date: Fri Dec 17 16:06:10 2010 +0000
cogl-util: Add an internal wrapper for the ffs function
The ffs function is defined in C99 so if we want to use it in Cogl we
need to provide a fallback for MSVC. This adds a configure check for
the function and then a fallback using a while loop if it is not
available.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2491
clutter/cogl/cogl/cogl-util.c | 21 +++++++++++++++++++++
clutter/cogl/cogl/cogl-util.h | 8 ++++++++
configure.ac | 4 ++++
3 files changed, 33 insertions(+)
commit 91c16023066b3d71ed569e0dcb97bdd0fe8b4667
Author: Neil Roberts <neil@linux.intel.com>
Date: Fri Dec 17 14:52:25 2010 +0000
cogl-texture: Don't use the source rowstride if we have to copy bitmap
If we have to copy the bitmap to do the premultiplication then we were
previously using the rowstride of the source image as the rowstride
for the new image. This is wasteful if the source image is a subregion
of a larger image which would make it use a large rowstride. If we
have to copy the data anyway we might as well compact it to the
smallest rowstride. This also prevents the copy from reading past the
end of the last row of pixels.
An internal function called _cogl_bitmap_copy has been added to do the
copy. It creates a new bitmap with the smallest possible rowstride
rounded up the nearest multiple of 4 bytes. There may be other places
in Cogl that are currently assuming we can read height*rowstride of
the source buffer so they may want to take advantage of this function
too.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2491
clutter/cogl/cogl/cogl-bitmap-private.h | 4 ++++
clutter/cogl/cogl/cogl-bitmap.c | 29 +++++++++++++++++++++++++++++
clutter/cogl/cogl/cogl-texture.c | 22 +---------------------
3 files changed, 34 insertions(+), 21 deletions(-)
commit c6fbc8c567ebe7eb538e53c0a5964db4ff6aebf2
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Dec 22 01:45:09 2010 +0000
cogl-vertex-attribute: Fix the name of the cogl_normal_in attribute
The builtin vertex attribute for the normals was incorrectly checked
for as 'cogl_normal' however it is defined as cogl_normal_in in the
shader boilerplate and for the name generated by CoglVertexBuffer.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2499
clutter/cogl/cogl/cogl-vertex-attribute.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 2c36b81996565f6128a55d5c12fee75a53c0a027
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Jan 10 14:03:35 2011 +0000
container: Do not use Actor as prerequisite
The prerequisite for ClutterContainer in 1.x is GObject, and we cannot
restrict the prerequisites without an ABI break.
clutter/clutter-container.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 6bb81a542fd2876c472c0287d368b1ba404324bf
Author: nobled <nobled@dreamwidth.org>
Date: Tue Jan 4 13:56:05 2011 +0000
egl: Fix build for --with-flavour=opengl-egl-xlib
Make sure the EGL backend doesn't forget to include desktop OpenGL headers.
clutter/egl/clutter-egl-headers.h | 20 +++++++++++++-------
1 file changed, 13 insertions(+), 7 deletions(-)
commit 530bc2aa70ca83c56f46342d337ce873614353a4
Author: nobled <nobled@dreamwidth.org>
Date: Tue Jan 4 13:59:48 2011 +0000
egl: Don't use obsolete API
Fixes a GCC "implicit declaration of function" warning when compiling.
clutter/egl/clutter-stage-egl.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
commit 8c23766da809701bc171fcb9b3650475b1d03a73
Author: Kristian Høgsberg <krh@bitplanet.net>
Date: Thu Jan 6 07:57:26 2011 -0500
x11: Create the list of all devices correctly
Linked lists are tricky.
clutter/x11/clutter-device-manager-x11.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
commit bf0dd2cbcc83d91ef46301aa18bd5f0158b88d22
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Dec 30 12:49:41 2010 +0000
test-text-field: Grab key focus on the first entry
So that you can start typing right away.
tests/interactive/test-text-field.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
commit 2fe20ff3c505d3c1249b03ba7eaa1515f13a3c0a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Dec 28 22:21:09 2010 +0000
osx: Implement the set_accept_focus() vfunc
Like the x11 and win32 backends, the quartz backend should allow setting
the key focus when showing the stage window.
clutter/osx/clutter-stage-osx.c | 29 +++++++++++++++++++++++------
clutter/osx/clutter-stage-osx.h | 2 ++
2 files changed, 25 insertions(+), 6 deletions(-)
commit 9d6a33d0c835e8a91e42303886123e34e60576f5
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Dec 28 18:04:00 2010 +0000
win32: Implement the set_accept_focus() vfunc
Implement the ClutterStageWindow::set_accept_focus() virtual function in
the win32 backend.
If accept_focus is set to be TRUE then we call SetforegroundWindow()
after calling ShowWindow(). This is similar to what GDK does when
dealing with the same situation.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2500
clutter/win32/clutter-stage-win32.c | 21 +++++++++++++++++++--
clutter/win32/clutter-stage-win32.h | 8 +++++---
2 files changed, 24 insertions(+), 5 deletions(-)
commit 497f39e2f40e816c1e7ceaa3bf2fb4e609436b35
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Dec 28 17:38:39 2010 +0000
x11: Implement the set_accept_focus() vfunc
Actually set the InputHint flag and set the input field of the WM_SPEC
hints depending on the value of the accept-focus bitfield.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2500
clutter/x11/clutter-stage-x11.c | 20 ++++++++++++++++----
clutter/x11/clutter-stage-x11.h | 1 +
2 files changed, 17 insertions(+), 4 deletions(-)
commit bbede9fef579000a48309bec017303bd8c46ccae
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Dec 28 17:37:18 2010 +0000
stage: Add :accept-focus property and accessors
Allow the developer to set whether the Stage should receive key focus
when mapped. The implementation is fully backend-dependent. The default
value is TRUE because that's what we've been expecting so far.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2500
clutter/clutter-stage.c | 67 +++++++++++++++++++++++++++++-
clutter/clutter-stage.h | 4 ++
doc/reference/clutter/clutter-sections.txt | 2 +
3 files changed, 72 insertions(+), 1 deletion(-)
commit e1cd6f49b2afcb1738ee2e95f03aa77b8c696e7b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Dec 28 17:36:27 2010 +0000
stage-window: Add set_accept_focus() vfunc
Allow Stage implementations to set whether or not they want to accept
key focus when being shown.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2500
clutter/clutter-stage-window.c | 12 ++++++++++++
clutter/clutter-stage-window.h | 6 ++++++
2 files changed, 18 insertions(+)
commit 601b958ab1b162176c7dde318a96f279be995e64
Author: Johan Bilien <jobi@via.ecp.fr>
Date: Wed Dec 29 16:49:13 2010 -0500
Fixed a crash when destroying the actor of a LEAVE event
When processing a LEAVE event, one might destroy the actor, so the weak
reference device->actor would be NULL.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2502
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
clutter/clutter-input-device.c | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
commit 2911d3db535db98f7c0352e3ea40f2a7e65d82ea
Author: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Date: Thu Dec 30 08:16:10 2010 +0700
autogen.sh: make autoreconf use automake-1.11 when available
This patch exports $ACLOCAL and $AUTOMAKE, otherwise autoreconf
may use an older version instead.
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
http://bugzilla.clutter-project.org/show_bug.cgi?id=2504
autogen.sh | 1 +
1 file changed, 1 insertion(+)
commit c95cc8d477ab26fd6231becdd062a81fa7ee6115
Author: Johan Bilien <jobi@via.ecp.fr>
Date: Wed Dec 29 16:57:02 2010 -0500
Only reset the relayout_pending flag when actually doing a relayout
If an actor is (unfortunately) queuing a relayout in relayout, you would
end up with (ClutterActor*)stage->needs_allocation set to TRUE and
stage->relayout_pending set to TRUE. But if then in the same cycle, an
actor calls clutter_actor_get_allocation_box, that will trigger another
(recursive) _clutter_stage_maybe_relayout, which will wrongly reset the
relayout pending to FALSE, while not actually performing a new relayout
because of the re-entrancy protection.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2503
clutter/clutter-stage.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
commit b6558c5a1848b306c26813bc5f5015eb95c541d1
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Dec 22 09:42:41 2010 +0000
docs: Fixes for the Cogl API reference
clutter/cogl/cogl/cogl-bitmap.h | 4 ++--
clutter/cogl/cogl/cogl-buffer.h | 8 +++----
clutter/cogl/cogl/cogl-index-array.h | 2 +-
clutter/cogl/cogl/cogl-material-compat.h | 11 +++++----
clutter/cogl/cogl/cogl-object.h | 19 ++++++++--------
clutter/cogl/cogl/cogl-path.h | 8 +++----
clutter/cogl/cogl/cogl-pipeline.h | 2 +-
clutter/cogl/cogl/cogl-types.h | 4 ++--
clutter/cogl/cogl/cogl-vertex-array.h | 2 +-
clutter/cogl/cogl/cogl-vertex-buffer.h | 2 +-
doc/reference/cogl/cogl-sections.txt | 39 ++++++++++++++++++++++++++++----
11 files changed, 67 insertions(+), 34 deletions(-)
commit 533880a1a5140d507db0f1a11d211c74ee0260f6
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Dec 21 12:03:38 2010 +0000
build: Ignore private headers when building the Cogl reference
Otherwise gtk-doc will try to look up private symbols.
doc/reference/cogl/Makefile.am | 22 +++++++++++++++++-----
1 file changed, 17 insertions(+), 5 deletions(-)
commit 91cc8edba12c0e43ba69b055e5b46394b9d51917
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Dec 21 10:51:39 2010 +0000
test-text-field: Do not expand the labels
tests/interactive/test-text-field.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
commit 605e8d6fb50624b44b45f012b24cea7c302f78ea
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Dec 21 10:50:24 2010 +0000
text: Only paint cursor if we have key focus
If a Text actor does not have key focus then there's no point in showing
the cursor at all.
clutter/clutter-text.c | 26 +++++++++++++++++++++++++-
1 file changed, 25 insertions(+), 1 deletion(-)
commit ec5e910cd376050bdd184cf970fa565e10764525
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Dec 20 17:59:35 2010 +0000
test-text-field: Clean up
Use a Table layout manager, and clean up a bit this test case.
tests/interactive/test-text-field.c | 96 +++++++++++++++++++++----------------
1 file changed, 56 insertions(+), 40 deletions(-)
commit 21a12b966dbf72d2e83265399ac8d380b281df7f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Dec 20 12:41:07 2010 +0000
interactive: Remove test-bind
The BindConstraint is already exercised in the test-constraints and in
other interactive tests.
tests/interactive/Makefile.am | 1 -
tests/interactive/test-bind.c | 112 ------------------------------------------
2 files changed, 113 deletions(-)
commit b9f7ef11100f250767fd726b0ae9727a7e9a3f89
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sat Dec 18 21:33:37 2010 +0000
build: Remove Cogl2 reference from the build scripts
Keeping the Cogl 2.0 API reference in the build is getting far more
troublesome than it's worth.
It's breaking distcheck far too often, and it makes it impossible to
rebuild the build environment from tarballs - which is something that
some distributions (namely: the Debian-based ones, but not limited to
them) do in order to change build scripts using their own rules.
configure.ac | 16 ----------------
doc/reference/Makefile.am | 6 ------
2 files changed, 22 deletions(-)
commit 491bbc226ee52546507406714030a9647dde4280
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sat Dec 18 13:24:54 2010 +0000
constraints: Remove signal handlers on dispose
Same as commit 2fa8b3a3abc7bb8e96a85d927edc0594f44f55df but done for
AlignConstraint and SnapConstraint as well.
clutter/clutter-align-constraint.c | 24 +++++++++++++++++++++---
clutter/clutter-bind-constraint.c | 4 ++--
clutter/clutter-snap-constraint.c | 29 +++++++++++++++++++++++------
3 files changed, 46 insertions(+), 11 deletions(-)
commit 2fa8b3a3abc7bb8e96a85d927edc0594f44f55df
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sat Dec 18 13:16:23 2010 +0000
bind-constraint: Remove handlers in dispose
We should remove the signal handlers on the source actor when a
BindConstraint is disposed, to avoid dangling pointers and wrong
invocations.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2493
clutter/clutter-bind-constraint.c | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
commit 45c884307e5946e316c839c03d94c5f5c92147d8
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Dec 17 16:04:25 2010 +0000
Post-release version bump to 1.5.11
configure.ac | 2 +-
po/clutter-1.0.pot | 104 ++++++++++++++++++++++++++---------------------------
po/de.po | 102 ++++++++++++++++++++++++++--------------------------
po/fr.po | 102 ++++++++++++++++++++++++++--------------------------
po/id.po | 102 ++++++++++++++++++++++++++--------------------------
po/it.po | 102 ++++++++++++++++++++++++++--------------------------
po/pl.po | 102 ++++++++++++++++++++++++++--------------------------
po/zh_CN.po | 102 ++++++++++++++++++++++++++--------------------------
8 files changed, 359 insertions(+), 359 deletions(-)
commit 339a6805521c04fd9e0d43689b6f380a45404078
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Dec 17 14:40:17 2010 +0000
Release Clutter 1.5.10 (snapshot)
NEWS | 11 +++++++++--
configure.ac | 2 +-
2 files changed, 10 insertions(+), 3 deletions(-)
commit 987a50be91f67a64cca32e7403b98c69b5aedb4c
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Dec 17 15:43:24 2010 +0000
build: Fix release-check for cogl2 reference
configure.ac | 10 ++++++++--
doc/reference/Makefile.am | 7 ++-----
2 files changed, 10 insertions(+), 7 deletions(-)
commit cab4a5b4846d2e6e1800ac545020bce930a9132e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Dec 17 14:41:33 2010 +0000
build: Remove stringify.sh from Makefile.am
build/Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 894c0527dffc4d0c01ef87880d33b02fcfab923e
Author: Elliot Smith <elliot.smith@intel.com>
Date: Wed Dec 15 13:31:12 2010 +0000
cookbook: Proofing for "box layout" recipe
General improvements to readability, formatting, fixing
typos etc.
doc/cookbook/layouts.xml | 67 ++++++++++++++++++++++++++----------------------
1 file changed, 36 insertions(+), 31 deletions(-)
commit accdd92110baffe886ab9bcc9dc263058d159ecc
Author: Elliot Smith <elliot.smith@intel.com>
Date: Wed Dec 15 13:13:28 2010 +0000
cookbook: Add examples and more text for "box layout" recipe
Added 3 examples for the box layout recipe:
1) Simple box layout demonstrating how to set actor properties
2) Trivial menu implementation using box layout
3) Demonstration app which enables tweaking and testing
of layout property interactions
Also inlined example 1 in the solution section and added
more explanatory text in the discussion.
doc/cookbook/examples/Makefile.am | 6 +
doc/cookbook/examples/layouts-box-menu.c | 151 +++++++
.../examples/layouts-box-property-effects.c | 465 +++++++++++++++++++++
doc/cookbook/examples/layouts-box.c | 95 +++++
doc/cookbook/images/layouts-box.png | Bin 0 -> 1515 bytes
doc/cookbook/layouts.xml | 134 +++++-
6 files changed, 841 insertions(+), 10 deletions(-)
commit 77aacd185dcdd1673e1c3fb058d93a5803febe6a
Author: Elliot Smith <elliot.smith@intel.com>
Date: Tue Dec 14 18:08:28 2010 +0000
cookbook: Add initial skeleton for box layout recipe
Created recipe and first draft content for recipe
about ClutterBoxLayout.
doc/cookbook/layouts.xml | 264 +++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 264 insertions(+)
commit 6c244c05497237ee2640d3d4cf7cd3d00baf469f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Dec 17 13:53:28 2010 +0000
geometry: Avoid sign issues when interpolating
Width and height in ClutterGeometry are unsigned, and this might lead to
overflow and wrap around issues.
clutter/clutter-actor.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
commit c3313726f0c6911eee8709a15fe51ec0421d7422
Author: Alexandre Quessy <alexandre@quessy.net>
Date: Tue Dec 14 17:45:45 2010 -0500
Fixed a typo in a doc string
http://bugzilla.clutter-project.org/show_bug.cgi?id=2485
clutter/clutter-deform-effect.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 140f818fb14181135891b06bde54649564f0bc07
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Dec 17 12:07:06 2010 +0000
Update NEWS
NEWS | 5 +++++
1 file changed, 5 insertions(+)
commit c444447cd3712153127f4fdd2ac03262ec7689d2
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Dec 17 12:04:11 2010 +0000
timeline: Rename the reverse property to auto-reverse
Other frameworks expose the same functionality as "auto-reverse",
probably to match the cassette tape player. It actually makes sense
for Clutter to follow suit.
clutter/clutter-timeline.c | 57 +++++++++++-----------
clutter/clutter-timeline.h | 4 +-
doc/cookbook/animations.xml | 4 +-
.../examples/animations-looping-implicit.c | 2 +-
doc/reference/clutter/clutter-sections.txt | 4 +-
.../clutter/migrating-ClutterBehaviour.xml | 2 +-
tests/interactive/test-behave.c | 2 +-
tests/interactive/test-layout.c | 2 +-
tests/interactive/test-threads.c | 1 +
9 files changed, 39 insertions(+), 39 deletions(-)
commit 397e0ddb166097ae9a281c70bbff49196e513c5b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Dec 16 15:30:53 2010 +0000
interactive: Rename test-rotate
The rotation test is now really testing the shader-based effects we ship
with Clutter. The name should be changed to reflect that.
tests/interactive/Makefile.am | 2 +-
tests/interactive/{test-rotate.c => test-shader-effects.c} | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
commit c2365c63cfd2d9e0c6116a39c7a50defc193c482
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Dec 16 15:25:29 2010 +0000
interactive: Remove test-viewport
The test-viewport interactive test is exercising the clip code - a job
better done by the conformance test suite and by the test-clip
interactive test.
tests/interactive/Makefile.am | 1 -
tests/interactive/test-viewport.c | 69 ---------------------------------------
2 files changed, 70 deletions(-)
commit 1515a9f98971c813d50a4c0004eb49c597fc3144
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Dec 16 15:10:27 2010 +0000
interactive: Remove test-project
The test-project test case was an old test that was barely working after
landing the size allocation API in Clutter 0.8. It has never been fixed,
and it's been of relative use ever since.
tests/interactive/Makefile.am | 1 -
tests/interactive/test-project.c | 229 ---------------------------------------
2 files changed, 230 deletions(-)
commit 8ae47eb79c0c67faaf8c594aa7e8e2560abc358e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Dec 16 15:08:11 2010 +0000
interactive: Remove test-offscreen
The test-offscreen interactive test was a dummy test for the
ClutterStage:offscreen property, which has been deprecated and
not implemented since Clutter 1.0, and never really worked except
briefly in Clutter 0.2 or something.
tests/interactive/Makefile.am | 1 -
tests/interactive/test-offscreen.c | 32 --------------------------------
2 files changed, 33 deletions(-)
commit faaff037306be31b69fa255b8d3dae91b341256b
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Dec 13 17:21:58 2010 +0000
clutter-stage: Don't always set the projection and viewport matrix
The stage has a dirty flag to record whenever the viewport and
projection matrices need to be flushed. However after flushing these
the flags were never cleared so it would always redundantly update the
state.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2480
clutter/clutter-stage.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
commit f5954339427f19e3c7332ec10d8cfd43c073d724
Author: Neil Roberts <neil@linux.intel.com>
Date: Tue Dec 14 13:02:47 2010 +0000
cogl-pipeline-fragend-arbfp: Generate ARBfp if user vertex shader
The ARBfp fragend was bypassing generating a shader if the pipeline
contains a user program. However it shouldn't do this if the pipeline
only contains a vertex shader. This was breaking
test-cogl-just-vertex-shader.
clutter/cogl/cogl/cogl-pipeline-fragend-arbfp.c | 17 +++++++++++++----
1 file changed, 13 insertions(+), 4 deletions(-)
commit 52442414d953e90930d3928e81216e0f3ac194fe
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Dec 10 17:46:58 2010 +0000
cally: Allow memory management for actions
Adding an action should allow passing a user data pointer, and have a
notification action that gets called when removing the action. This
allows introspection and language bindings to attach custom data to the
action - for instance, the real callable object that should be invoked.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2479
clutter/cally/cally-actor.c | 94 ++++++++++++++++++++++++++++++---------------
clutter/cally/cally-actor.h | 47 ++++++++++++++++-------
2 files changed, 97 insertions(+), 44 deletions(-)
commit def14e80cbb898c6c198a5caf3a2a3ad15d5e8e1
Author: Mike Owens <mike@filespanker.com>
Date: Thu Dec 9 09:39:23 2010 -0500
ClutterText: Only grab keyboard focus if keyboard-interactive.
Previously, ClutterText took keyboard focus on mouse-down, regardless
if it were editable or selectable. Now it checks these properties,
and behaves like other actors if it can't do anything useful with
the focus.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2462
clutter/clutter-text.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
commit 7b985f034fae95862f0c080a6311ccf0ac4f3966
Author: Neil Roberts <neil@linux.intel.com>
Date: Sat Nov 27 13:15:02 2010 +0000
Allow multiple CoglAtlases for textures
Previously Cogl would only ever use one atlas for textures and if it
reached the maximum texture size then all other new textures would get
their own GL texture. This patch makes it so that we create as many
atlases as needed. This should avoid breaking up some batches and it
will be particularly good if we switch to always using multi-texturing
with a default shader that selects between multiple atlases using a
vertex attribute.
Whenever a new atlas is created it is stored in a GSList on the
context. A weak weference is taken on the atlas using
cogl_object_set_user_data so that it can be removed from the list when
the atlas is destroyed. The atlas textures themselves take a reference
to the atlas and this is the only thing that keeps the atlas
alive. This means that once the atlas becomes empty it will
automatically be destroyed.
All of the COGL_NOTEs pertaining to atlases are now prefixed with the
atlas pointer to make it clearer which atlas is changing.
clutter/cogl/cogl/cogl-atlas-texture-private.h | 10 +--
clutter/cogl/cogl/cogl-atlas-texture.c | 105 +++++++++++++++++--------
clutter/cogl/cogl/cogl-atlas.c | 19 +++--
clutter/cogl/cogl/cogl-atlas.h | 3 -
clutter/cogl/cogl/cogl-context.c | 5 +-
clutter/cogl/cogl/cogl-context.h | 2 +-
clutter/cogl/pango/cogl-pango-glyph-cache.c | 1 +
7 files changed, 93 insertions(+), 52 deletions(-)
commit d01a70762395d7ff353df1fb77397b4dfab284cf
Author: Neil Roberts <neil@linux.intel.com>
Date: Sat Nov 27 13:06:38 2010 +0000
cogl-atlas: Convert to be a CoglObject subclass
To implement multiple atlases it will be useful to have ref-counting
on the CoglAtlas so it makes sense to convert it to be a CoglObject.
clutter/cogl/cogl/cogl-atlas.c | 10 ++++++++--
clutter/cogl/cogl/cogl-atlas.h | 8 +++++---
clutter/cogl/cogl/cogl-context.c | 2 +-
clutter/cogl/pango/cogl-pango-glyph-cache.c | 4 ++--
4 files changed, 16 insertions(+), 8 deletions(-)
commit d03c3a646ae4d26358ad5a48fe320845f7f099ed
Author: Neil Roberts <neil@linux.intel.com>
Date: Tue Dec 7 13:58:46 2010 +0000
test-cogl-just-vertex-shader: Update to use the portable cogl_* names
The vertex shader in this test now uses the cogl_* names for the GL
builtin so that it will work on GLES2 as well.
tests/conform/test-cogl-just-vertex-shader.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
commit d1ddca4eeecf26df9c5a707ef5f88175d90feb34
Author: Neil Roberts <neil@linux.intel.com>
Date: Tue Dec 7 13:44:45 2010 +0000
cogl-shader-boilerplate: Add the 3D texture extension on GLES2
To use the 3D texture extension on GLES2 it has to be enabled with the
following line in GLSL:
#extension GL_OES_texture_3D : enable
clutter/cogl/cogl/cogl-shader.c | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
commit e0a02b2b5bc4ef88e8829d271380148a966e8494
Author: Neil Roberts <neil@linux.intel.com>
Date: Tue Dec 7 12:49:00 2010 +0000
test-cogl-multitexture: Don't test the alpha component
On EGL we don't request a context with any alpha bits so testing alpha
component of cogl_read_pixels isn't reliable.
tests/conform/test-cogl-multitexture.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
commit afe39296180e3839c42c5327f55ff8a773ba7000
Author: Neil Roberts <neil@linux.intel.com>
Date: Tue Dec 7 11:39:37 2010 +0000
test-cogl-materials: Use GL_MAX_VERTEX_ATTRIBS on GLES2
When determining the maximum number of layers we also need to take
into account GL_MAX_VERTEX_ATTRIBS on GLES2. Cogl needs one vertex
attrib for each texture unit plus two for the position and color.
tests/conform/test-cogl-materials.c | 22 +++++++++++++++-------
1 file changed, 15 insertions(+), 7 deletions(-)
commit bdeb555ae1e440de0453cd8fd4a024ba8381016f
Author: Neil Roberts <neil@linux.intel.com>
Date: Tue Dec 7 10:38:51 2010 +0000
cogl2-path: Don't flush the enable flags
All of the drawing needed in _cogl_add_path_to_stencil_buffer is done
with the vertex attribute API so there should be no need to flush the
enable flags to enable the vertex array. This was causing problems on
GLES2 where the vertex array isn't available.
clutter/cogl/cogl/cogl2-path.c | 5 -----
1 file changed, 5 deletions(-)
commit 7dc4b3c8947de12ca111edba52a9387287f97a82
Author: Neil Roberts <neil@linux.intel.com>
Date: Sun Dec 5 18:02:05 2010 +0000
Remove the GLES2 wrapper
The GLES2 wrapper is no longer needed because the shader generation is
done within the GLSL fragend and vertend and any functions that are
different for GLES2 are now guarded by #ifdefs.
build/stringify.sh | 94 --
clutter/cogl/cogl/Makefile.am | 20 -
clutter/cogl/cogl/cogl-atlas.c | 6 +-
clutter/cogl/cogl/cogl-buffer.c | 4 -
clutter/cogl/cogl/cogl-clip-stack.c | 13 +-
clutter/cogl/cogl/cogl-context.c | 6 +-
clutter/cogl/cogl/cogl-framebuffer.c | 6 +-
clutter/cogl/cogl/cogl-pipeline-fragend-arbfp.c | 4 -
clutter/cogl/cogl/cogl-pipeline-fragend-glsl.c | 4 -
clutter/cogl/cogl/cogl-pipeline-opengl.c | 16 +-
clutter/cogl/cogl/cogl-pipeline-progend-glsl.c | 34 +-
clutter/cogl/cogl/cogl-pipeline-vertend-glsl.c | 24 +
clutter/cogl/cogl/cogl-pixel-array.c | 4 -
clutter/cogl/cogl/cogl-texture-2d.c | 2 +
clutter/cogl/cogl/cogl-texture-3d.c | 2 +
clutter/cogl/cogl/cogl-vertex-attribute.c | 1 -
clutter/cogl/cogl/cogl.c | 16 +-
.../cogl/driver/gles/cogl-context-driver-gles.c | 6 -
.../cogl/driver/gles/cogl-context-driver-gles.h | 4 -
.../cogl/driver/gles/cogl-fixed-vertex-shader.glsl | 73 --
clutter/cogl/cogl/driver/gles/cogl-gles.c | 4 +
clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.c | 993 ---------------------
clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.h | 388 --------
.../cogl/driver/gles/cogl-texture-driver-gles.c | 6 +-
24 files changed, 81 insertions(+), 1649 deletions(-)
commit 1999bee5d2d5d14a97eacb84edb6ce364202b082
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Dec 6 21:29:56 2010 +0000
cogl-pipeline: Use enums for the layer combine values
Once the GLES2 wrapper is removed then we won't have the GLenums
needed for setting up the layer combine state. This adds Cogl enums
instead which have the same values as the corresponding GLenums. The
enums are:
CoglPipelineCombineFunc
CoglPipelineCombineSource
and
CoglPipelineCombineOp
clutter/cogl/cogl/cogl-pipeline-fragend-arbfp.c | 41 ++++-----
clutter/cogl/cogl/cogl-pipeline-fragend-glsl.c | 48 ++++++-----
clutter/cogl/cogl/cogl-pipeline-private.h | 46 ++++++++--
clutter/cogl/cogl/cogl-pipeline.c | 107 ++++++++++++++----------
4 files changed, 148 insertions(+), 94 deletions(-)
commit 271acaaae5d9e698ed1eefb201b2fa49b7bb3d2d
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Dec 6 12:31:51 2010 +0000
cogl: upload matrices with uniforms on GLES2
Once the GLES2 wrapper is removed we won't be able to upload the
matrices with the fixed function API any more. The fixed function API
gives a global state for setting the matrix but if a custom shader
uniform is used for the matrices then the state is per
program. _cogl_matrix_stack_flush_to_gl is called in a few places and
it is assumed the current pipeline doesn't need to be flushed before
it is called. To allow these semantics to continue to work, on GLES2
the matrix flush now just stores a reference to the matrix stack in
the CoglContext. A pre_paint virtual is added to the progend which is
called whenever a pipeline is flushed, even if the same pipeline was
flushed already. This gives the GLSL progend a chance to upload the
matrices to the uniforms. The combined modelview/projection matrix is
only calculated if it is used. The generated programs end up never
using the modelview or projection matrix so it usually only has to
upload the combined matrix. When a matrix stack is flushed a reference
is taked to it by the pipeline progend and the age is stored so that
if the same state is used with the same program again then we don't
need to reupload the uniform.
clutter/cogl/cogl/cogl-context.c | 12 +
clutter/cogl/cogl/cogl-context.h | 10 +
clutter/cogl/cogl/cogl-matrix-stack.c | 127 ++++++++---
clutter/cogl/cogl/cogl-matrix-stack.h | 10 +
clutter/cogl/cogl/cogl-pipeline-opengl.c | 7 +
clutter/cogl/cogl/cogl-pipeline-private.h | 4 +
clutter/cogl/cogl/cogl-pipeline-progend-glsl.c | 250 ++++++++++++++++++++-
clutter/cogl/cogl/cogl-pipeline-vertend-glsl.c | 4 +
clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.c | 2 +
9 files changed, 396 insertions(+), 30 deletions(-)
commit 67847260bca8ef313650497050e284a1971918aa
Author: Neil Roberts <neil@linux.intel.com>
Date: Fri Dec 10 17:42:39 2010 +0000
cogl-matrix-stack: Add _cogl_matrix_stack_has_identity_flag
This adds an internal function to quickly determine whether the top of
the matrix stack is known to be the identity matrix.
clutter/cogl/cogl/cogl-matrix-stack.c | 6 ++++++
clutter/cogl/cogl/cogl-matrix-stack.h | 7 +++++++
2 files changed, 13 insertions(+)
commit 016005591dfa765255b05d96f701497ed7a59d23
Author: Neil Roberts <neil@linux.intel.com>
Date: Fri Dec 10 16:06:16 2010 +0000
cogl-matrix-stack: Convert to be a CoglObject
We will want to use ref-counting on the CoglMatrixStack so it might as
well be a CoglObject.
clutter/cogl/cogl/cogl-framebuffer.c | 4 ++--
clutter/cogl/cogl/cogl-matrix-stack.c | 13 ++++++++++---
clutter/cogl/cogl/cogl-matrix-stack.h | 3 ---
clutter/cogl/cogl/cogl-pipeline-opengl.c | 2 +-
4 files changed, 13 insertions(+), 9 deletions(-)
commit 58a22613877fc041549eddeafbc364d369c5e445
Author: Robert Bragg <robert@linux.intel.com>
Date: Fri Dec 10 11:34:02 2010 +0000
matrix-stack: Make header style consistent
Cogl doesn't follow the Clutter/GTK+ columnized function prototype style
so this updates cogl-matrix-stack.h to match the other Cogl headers.
clutter/cogl/cogl/cogl-matrix-stack.c | 2 +-
clutter/cogl/cogl/cogl-matrix-stack.h | 126 ++++++++++++++++++++--------------
2 files changed, 76 insertions(+), 52 deletions(-)
commit 4976d229405c7010a6ef1e621bcfb581b7eff99a
Author: Robert Bragg <robert@linux.intel.com>
Date: Fri Dec 10 11:13:09 2010 +0000
matrix-stack: Adds a stack age counter
Sometimes it would be useful if we could efficiently track when a matrix
stack has been modified. For example on GLES2 we have to upload the
modelview as a uniform to our glsl programs but because the modelview
state is part of the framebuffer state it becomes a bit more tricky to
know when to re-sync the value of the uniform with the framebuffer
state. This adds an "age" counter to CoglMatrixStack which is
incremented for any operation that effectively modifies the top of the
stack so now we can save the age of the stack inside the pipeline
whenever we update modelview uniform and later compare that with the
stack to determine if it has changed.
clutter/cogl/cogl/cogl-matrix-stack.c | 18 ++++++++++++++++++
clutter/cogl/cogl/cogl-matrix-stack.h | 2 ++
2 files changed, 20 insertions(+)
commit 856d43a27cd4090467de08cd5738f10ec7e06ebd
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Dec 6 12:31:16 2010 +0000
cogl-pipeline: Add internal API to get the layer matrix
This returns the layer matrix given a pipeline and a layer index. The
API is kept as internal because it directly returns a pointer into the
layer private data to avoid a copy into an out-param. We might also
want to add a public function which does the copy.
clutter/cogl/cogl/cogl-pipeline-private.h | 4 ++++
clutter/cogl/cogl/cogl-pipeline.c | 19 +++++++++++++++++++
2 files changed, 23 insertions(+)
commit 4514d49dda70b9b5a1833c7809dc4d22b1bcd3cd
Author: Neil Roberts <neil@linux.intel.com>
Date: Fri Dec 3 17:46:16 2010 +0000
cogl-vertex-attribute: Use glVertexAttribPointer on GLES2
When the GLES2 wrapper is removed we can't use the fixed function API
such as glColorPointer to set the builtin attributes. Instead the GLSL
progend now maintains a cache of attribute locations that are queried
with glGetAttribLocation. The code that previously maintained a cache
of the enabled texture coord arrays has been modified to also cache
the enabled vertex attributes under GLES2. The vertex attribute API is
now the only place that is using this cache so it has been moved into
cogl-vertex-attribute.c
clutter/cogl/cogl/cogl-bitmask.c | 16 +-
clutter/cogl/cogl/cogl-bitmask.h | 10 +-
clutter/cogl/cogl/cogl-context.c | 8 +-
clutter/cogl/cogl/cogl-context.h | 8 +-
clutter/cogl/cogl/cogl-internal.h | 6 -
clutter/cogl/cogl/cogl-pipeline-opengl.c | 30 +-
.../cogl/cogl/cogl-pipeline-progend-glsl-private.h | 18 ++
clutter/cogl/cogl/cogl-pipeline-progend-glsl.c | 139 +++++++++
clutter/cogl/cogl/cogl-vertex-attribute-private.h | 3 +
clutter/cogl/cogl/cogl-vertex-attribute.c | 311 ++++++++++++++++-----
clutter/cogl/cogl/cogl.c | 36 +--
11 files changed, 451 insertions(+), 134 deletions(-)
commit 1515a8d73a0ea3ad6f6f8719e833bc17bb7c0001
Author: Neil Roberts <neil@linux.intel.com>
Date: Fri Dec 3 11:31:09 2010 +0000
cogl-path: Stroke using the vertex attribute API
Previously when stroking a path it was flushing a pipeline and then
directly calling glDrawArrays to draw the line strip from the path
nodes array. This patch changes it to build a CoglVertexArray and a
series of attributes to paint with instead. The vertex array and
attributes are attached to the CoglPath so it can be reused later. The
old vertex array for filling has been renamed to fill_vbo.
clutter/cogl/cogl/cogl-path-private.h | 12 +-
clutter/cogl/cogl/cogl2-path.c | 201 +++++++++++++++++++++++-----------
2 files changed, 143 insertions(+), 70 deletions(-)
commit 3c5fa0cf9042827d205f90ac98c2eac9494707e9
Author: Neil Roberts <neil@linux.intel.com>
Date: Thu Dec 2 22:19:44 2010 +0000
cogl: Move COGL_DEBUG=show-source into cogl-shader.c
The code to display the source when the show-source debug option is
given has been moved to _cogl_shader_set_source_with_boilerplate so
that it will show both user shaders and generated shaders. It also
shows the code with the full boilerplate. To make it the same for
ARBfp, cogl_shader_compile_real now also dumps user ARBfp shaders.
clutter/cogl/cogl/cogl-pipeline-fragend-glsl.c | 5 -----
clutter/cogl/cogl/cogl-pipeline-vertend-glsl.c | 5 -----
clutter/cogl/cogl/cogl-shader.c | 23 +++++++++++++++++++++++
3 files changed, 23 insertions(+), 10 deletions(-)
commit 8764a0d4874949c12d6c0e6af863d81a39bc4991
Author: Neil Roberts <neil@linux.intel.com>
Date: Thu Dec 2 20:48:45 2010 +0000
cogl: Add a vertend to generate GLSL
The GLSL vertend is mostly only useful for GLES2. The fixed function
vertend is kept at higher priority than the GLSL vertend so it is
unlikely to be used in any other circumstances.
clutter/cogl/cogl/Makefile.am | 2 +
clutter/cogl/cogl/cogl-context.c | 3 +-
clutter/cogl/cogl/cogl-context.h | 3 +-
clutter/cogl/cogl/cogl-pipeline-fragend-arbfp.c | 3 +-
clutter/cogl/cogl/cogl-pipeline-fragend-fixed.c | 10 +-
clutter/cogl/cogl/cogl-pipeline-fragend-glsl.c | 13 +-
clutter/cogl/cogl/cogl-pipeline-opengl.c | 130 +++++--
clutter/cogl/cogl/cogl-pipeline-private.h | 30 +-
clutter/cogl/cogl/cogl-pipeline-progend-glsl.c | 83 +++--
clutter/cogl/cogl/cogl-pipeline-vertend-fixed.c | 28 ++
.../cogl/cogl/cogl-pipeline-vertend-glsl-private.h | 39 ++
clutter/cogl/cogl/cogl-pipeline-vertend-glsl.c | 396 +++++++++++++++++++++
clutter/cogl/cogl/cogl-pipeline.c | 7 +
clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.c | 19 +-
14 files changed, 679 insertions(+), 87 deletions(-)
commit 6c34fb7232f3d82a6f5720fc9e07a41d997e643b
Author: Neil Roberts <neil@linux.intel.com>
Date: Tue Dec 7 12:33:39 2010 +0000
cogl-shader-boilerplate: Don't put the color attrib in location 0
Due to Mesa bug 28585 calling glVertexAttrib with attrib location 0
doesn't appear to work. This patch just reorders the vertex and color
attributes in the shader in the hope that Mesa will assign the color
attribute to a different location.
clutter/cogl/cogl/cogl-shader-boilerplate.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit cf0ded1361bd639f7143aef02f37f17f01bdcf04
Author: Neil Roberts <neil@linux.intel.com>
Date: Thu Dec 2 22:08:51 2010 +0000
cogl-shader-boilerplate: Add more builtins for GLES2
Some builtin attributes such as the matrix uniforms and some varyings
were missing from the boilerplate for GLES2. This also moves the
texture matrix and texture coord attribute declarations to
cogl-shader.c so that they can be dynamically defined depending on the
number of texture coord arrays enabled.
clutter/cogl/cogl/cogl-shader-boilerplate.h | 23 +++++++++++++++++++---
clutter/cogl/cogl/cogl-shader.c | 30 +++++++++++++++++++++++------
2 files changed, 44 insertions(+), 9 deletions(-)
commit 17d689f79480f9d08c1ef8e62b990db0cdb6a36d
Author: Neil Roberts <neil@linux.intel.com>
Date: Thu Dec 2 18:05:22 2010 +0000
cogl-pipeline: Rename the fragment_{source,header}_buffer to codegen
We want to reuse the same buffers for vertends so calling them
fragment_* doesn't make sense.
clutter/cogl/cogl/cogl-context.c | 4 ++--
clutter/cogl/cogl/cogl-context.h | 4 ++--
clutter/cogl/cogl/cogl-pipeline-fragend-arbfp.c | 4 ++--
clutter/cogl/cogl/cogl-pipeline-fragend-glsl.c | 8 ++++----
clutter/cogl/cogl/cogl-pipeline-progend-glsl.c | 12 ++++++------
5 files changed, 16 insertions(+), 16 deletions(-)
commit a3e53dd029632166a51333249baa49b5e97644c9
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Nov 29 18:32:21 2010 +0000
cogl: Add a fixed function vertend
The vertends are intended to flush state that would be represented in
a vertex program. Code to handle the layer matrix, lighting and
point size has now been moved from the common cogl-pipeline-opengl
backend to the fixed vertend.
clutter/cogl/cogl/Makefile.am | 2 +
clutter/cogl/cogl/cogl-pipeline-opengl.c | 109 +++++++++++++++-----
clutter/cogl/cogl/cogl-pipeline-private.h | 34 +++++-
.../cogl/cogl-pipeline-vertend-fixed-private.h | 36 +++++++
clutter/cogl/cogl/cogl-pipeline-vertend-fixed.c | 114 +++++++++++++++++++++
clutter/cogl/cogl/cogl-pipeline.c | 80 ++++++++++++++-
6 files changed, 342 insertions(+), 33 deletions(-)
commit 313adc7bdf9c8a0d61cedf7e34d1cd3e961a7ea2
Author: Neil Roberts <neil@linux.intel.com>
Date: Thu Dec 2 14:00:46 2010 +0000
cogl: Add a GLSL 'progend'
'progend' is short for 'program backend'. The progend is intended to
operate on combined state from a fragment backend and a vertex
backend. The progend has an 'end' function which is run whenever the
pipeline is flushed and the two pipeline change notification
functions. All of the progends are run whenever the pipeline is
flushed instead of selecting a single one because it is possible that
multiple progends may be in use for example if the vertends and
fragends are different. The GLSL progend will take the shaders
generated by the fragend and vertend and link them into a single
program. The fragend code has been changed to only generate the shader
and not the program. The idea is that pipelines can share fragment
shader objects even if their vertex state is different. The authority
for the progend needs to be the combined authority on the vertend and
fragend state.
clutter/cogl/cogl/Makefile.am | 2 +
.../cogl/cogl/cogl-pipeline-fragend-glsl-private.h | 3 +
clutter/cogl/cogl/cogl-pipeline-fragend-glsl.c | 725 ++++++---------------
clutter/cogl/cogl/cogl-pipeline-opengl.c | 5 +
clutter/cogl/cogl/cogl-pipeline-private.h | 29 +
.../cogl/cogl/cogl-pipeline-progend-glsl-private.h | 36 +
clutter/cogl/cogl/cogl-pipeline-progend-glsl.c | 542 +++++++++++++++
clutter/cogl/cogl/cogl-pipeline.c | 39 +-
8 files changed, 839 insertions(+), 542 deletions(-)
commit 1e3cdb60d6a6ad67c4e693687c5c9c64a25d7cec
Author: Neil Roberts <neil@linux.intel.com>
Date: Thu Dec 2 13:54:15 2010 +0000
cogl-program: Add private functions to check if have each shader type
This adds two internal functions:
gboolean
_cogl_program_has_fragment_shader (CoglHandle handle);
gboolean
_cogl_program_has_vertex_shader (CoglHandle handle);
They just check whether any of the contained shaders are of that type.
clutter/cogl/cogl/cogl-program-private.h | 6 ++++++
clutter/cogl/cogl/cogl-program.c | 29 +++++++++++++++++++++++++++++
2 files changed, 35 insertions(+)
commit 31f0eb4f715a3622260965b0b0a3be132cde8d23
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Dec 1 17:06:18 2010 +0000
cogl-pipeline: Make find codegen authority more general
The pipeline function _cogl_pipeline_find_codegen_authority has been
renamed to _cogl_pipeline_find_equivalent_parent and it now takes a
set of flags for the pipeline and layer state that affects the
authority. This is needed so that we can reuse the same code in the
vertend and progends.
clutter/cogl/cogl/cogl-pipeline-fragend-arbfp.c | 47 +++-----
clutter/cogl/cogl/cogl-pipeline-fragend-glsl.c | 9 +-
clutter/cogl/cogl/cogl-pipeline-private.h | 39 ++++++-
clutter/cogl/cogl/cogl-pipeline.c | 137 +++++++++++-------------
4 files changed, 116 insertions(+), 116 deletions(-)
commit a1996706a293458221bce7a4126f82f64e4ca3c3
Author: Neil Roberts <neil@linux.intel.com>
Date: Tue Nov 30 12:48:27 2010 +0000
cogl-pipeline: Move texture enabling/disabling to fixed fragend
Previously enabling and disabling textures was done whatever the
backend in cogl-pipeline-opengl. However enabling and disabling
texture targets only has any meaning if no fragment shaders are being
used so this patch moves the code to cogl-pipeline-fragend-fixed.
The GLES2 wrapper has also been changed to ignore enabledness when
deciding whether to update texture coordinate attribute pointers.
clutter/cogl/cogl/cogl-pipeline-fragend-arbfp.c | 7 --
clutter/cogl/cogl/cogl-pipeline-fragend-fixed.c | 107 ++++++++++++++++++++-
clutter/cogl/cogl/cogl-pipeline-fragend-glsl.c | 7 --
clutter/cogl/cogl/cogl-pipeline-opengl-private.h | 16 ++-
clutter/cogl/cogl/cogl-pipeline-opengl.c | 95 +++---------------
clutter/cogl/cogl/cogl-pipeline-private.h | 2 -
clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.c | 67 ++++++-------
7 files changed, 157 insertions(+), 144 deletions(-)
commit 952878aab1d0610b09d048495295fd84499b70e9
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Nov 29 16:56:41 2010 +0000
Rename CoglPipelineBackend to CoglPipelineFragend
The current Cogl pipeline backends are entirely concerned with the
fragment processing state. We also want to eventually have separate
backends to generate shaders for the vertex processing state so we
need to rename the fragment backends. 'Fragend' is a somewhat weird
name but we wanted to avoid ending up with illegible symbols like
CoglPipelineFragmentBackendGlslPrivate.
clutter/cogl/cogl/Makefile.am | 12 +-
clutter/cogl/cogl/cogl-context.c | 6 +-
...ate.h => cogl-pipeline-fragend-arbfp-private.h} | 11 +-
...eline-arbfp.c => cogl-pipeline-fragend-arbfp.c} | 166 ++++++++++-----------
...ate.h => cogl-pipeline-fragend-fixed-private.h} | 8 +-
...eline-fixed.c => cogl-pipeline-fragend-fixed.c} | 24 +--
...vate.h => cogl-pipeline-fragend-glsl-private.h} | 8 +-
...ipeline-glsl.c => cogl-pipeline-fragend-glsl.c} | 80 +++++-----
clutter/cogl/cogl/cogl-pipeline-opengl.c | 66 ++++----
clutter/cogl/cogl/cogl-pipeline-private.h | 48 +++---
clutter/cogl/cogl/cogl-pipeline.c | 100 ++++++-------
11 files changed, 265 insertions(+), 264 deletions(-)
commit dc61d58c0df9dde51472bae17b1997c82cfcddb1
Author: Neil Roberts <neil@linux.intel.com>
Date: Thu Dec 2 15:37:53 2010 +0000
cogl-pipeline-opengl: Remove the includes for the various backends
Nothing in cogl-pipeline-opengl needs to know about the actual backend
implementations, instead it just accesses then through the vtables.
clutter/cogl/cogl/cogl-pipeline-opengl.c | 10 ----------
1 file changed, 10 deletions(-)
commit 54db48dfd1e1b151a3b92e160181f44305e21089
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sat Dec 11 17:40:52 2010 +0000
animation: Allow transforming values in bind()
While we do check for compatibility and transformability of a GValue
with the GParamSpec value type, we are actually failing really badly
at it.
First of all, we bail out on the wrong conditions.
Then we use the type of the value passed instead of using the type
of the property itself.
This makes it impossible to actually use transformation functions for
GValue types - even those that have been registered by GLib itself -
when using the Animation API directly, instead of going through the
clutter_actor_animate() wrappers.
clutter/clutter-animation.c | 28 +++++++++++++++++++++++-----
1 file changed, 23 insertions(+), 5 deletions(-)
commit ae4e06d8c4ca2bd93a12e4ace38c0c888edcddf1
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Dec 10 17:15:39 2010 +0000
introspection: Skip some C-only structures
The ParamSpec sub-classes we define are meant to be used only from the C
API, as high-level languages completely ignore them.
The ClutterStageWindow interface is an internal type that escaped into
the public headers; all its methods are private, but we cannot remove
the type until we break for 2.0.
clutter/clutter-color.h | 16 ++++++++--------
clutter/clutter-fixed.h | 2 +-
clutter/clutter-stage-window.h | 4 ++--
clutter/clutter-units.h | 2 +-
4 files changed, 12 insertions(+), 12 deletions(-)
commit d5a418304712e38c7055114fa5b13a904fae9883
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Dec 10 17:15:23 2010 +0000
introspection: Add cairo-1.0 to the dependencies
clutter/Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 49a43a0772d749d280a7fc6ceb561c6452dc859f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Dec 10 16:03:10 2010 +0000
Remove unnecessary duplicate name for private enumerations
clutter/clutter-actor-private.h | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
commit b91c1ec21c80e99949a19865be2c44c53063d09e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Dec 9 16:05:55 2010 +0000
docs: Update NEWS
NEWS | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
commit bc58de4658a206f07d51ddbb9b8c06f37c4cf841
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Dec 9 15:52:04 2010 +0000
docs: Add 1.6 index to the API references
doc/reference/cally/cally-docs.xml.in | 5 +++++
doc/reference/clutter/clutter-docs.xml.in | 5 +++++
doc/reference/cogl/cogl-docs.xml.in | 5 +++++
3 files changed, 15 insertions(+)
commit 36c3fc82c5c3eee50878f964f09939b9b169fd82
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Dec 9 15:42:19 2010 +0000
Use G_STRFUNC correctly
It cannot be chained up via the pre-processor.
clutter/egl/clutter-backend-egl.c | 2 +-
clutter/fruity/clutter-backend-fruity.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
commit 24133ddadcd71af74f52b009b178e0ffa9e51374
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Dec 9 15:11:37 2010 +0000
Rename the EGLDisplay accessors
The accessor for the EGL display should be namespaced for the correct
backend-specific API.
clutter/egl/clutter-backend-egl.c | 19 +++++++++++++-----
clutter/egl/clutter-egl.h | 28 +++++++++++++++++++-------
clutter/fruity/clutter-backend-fruity.c | 32 ++++++++++++++++++++++++++++++
clutter/fruity/clutter-fruity.h | 9 +++++++--
clutter/fruity/clutter-stage-fruity.c | 3 ++-
clutter/wayland/clutter-backend-wayland.c | 24 ++++++++++------------
clutter/wayland/clutter-stage-wayland.c | 4 ++--
clutter/wayland/clutter-wayland.h | 7 ++++---
doc/reference/clutter/clutter-sections.txt | 3 ++-
9 files changed, 95 insertions(+), 34 deletions(-)
commit f5b51a2428cb3575ca4cfba98926f4906e6aba8e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Dec 9 15:06:12 2010 +0000
docs: Documentation fixes
clutter/clutter-actor-private.h | 30 ++++++++++++++++--------------
doc/reference/clutter/Makefile.am | 1 +
2 files changed, 17 insertions(+), 14 deletions(-)
commit ab0eb0a12b9cc05c417b49832b50b88a7cdb0958
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Dec 9 13:59:08 2010 +0000
docs: Documentation fixes
clutter/cally/cally-group.c | 2 +-
clutter/clutter-main.c | 2 +-
clutter/clutter-units.c | 4 ++--
doc/reference/clutter/clutter-animation-tutorial.xml | 2 +-
4 files changed, 5 insertions(+), 5 deletions(-)
commit 8c7298b0c11df3690a8eb5afdd9226af87b4d76f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Dec 9 13:49:01 2010 +0000
build: Check NEWS file during release, not distcheck
The check-news option in configure.ac conflicts with the idea of using a
buildbot to do a distcheck.
Since we're doing some validation on the state of the build during the
release-check phase we should add the NEWS file check there.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2468
build/autotools/Makefile.am.release | 11 ++++++++++-
configure.ac | 2 +-
2 files changed, 11 insertions(+), 2 deletions(-)
commit 88f7579a9d4dd7b290216b5943d87c8143cceb04
Author: Elliot Smith <elliot.smith@intel.com>
Date: Thu Dec 9 11:40:27 2010 +0000
cookbook: Remove bold on emphasis inside programlisting
If an <emphasis> element is placed inside a <programlisting> in a cookbook
recipe, the result is bold italic text in the HTML output. This isn't
particularly readable.
Fix is to style emphasis elements inside programlistings
so the font weight is not bold but is still italicised.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2475
doc/common/style.css | 3 +++
1 file changed, 3 insertions(+)
commit ca42ec1a7a3a7b219477d6c16a0aff30d64efb1a
Author: Jussi Kukkonen <jku@linux.intel.com>
Date: Thu Dec 2 16:08:10 2010 +0200
tests: Add test for clutter_model_get_iter_at_row()
http://bugzilla.clutter-project.org/show_bug.cgi?id=2460
tests/conform/test-model.c | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
commit d8515bf4290bfece33fd41d356e86e74c0728067
Author: Jussi Kukkonen <jku@linux.intel.com>
Date: Thu Dec 2 16:27:36 2010 +0200
Fix clutter_list_model_get_iter_at_row() when filtered
Currently clutter_list_model_get_iter_at_row() always returns an
iterator to the last non-filtered row when asking for row [1-N].
Patch makes the function return an iterator to the Nth non-filtered
row or NULL.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2460
clutter/clutter-list-model.c | 58 +++++++++++++-------------------------------
1 file changed, 17 insertions(+), 41 deletions(-)
commit e7f62bc936995c5d998f7c8dc4b2b1b7254ea97d
Author: nobled <nobled@dreamwidth.org>
Date: Tue Dec 7 07:10:59 2010 +0000
wayland: Update to current api
Adapt to changes from these wayland commits:
35fd2a8cc68c42d90756330535de04cbbb4d2613
2bb3ebe1e437acf836449f0a63f3264ad29566f2
f8fc08f77187f6a5723281dab66841e5f3c24320
http://bugzilla.clutter-project.org/show_bug.cgi?id=2474
clutter/wayland/clutter-backend-wayland.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
commit d8a544c0f17f5d6550578a426c1ef1c4060ca411
Author: nobled <nobled@dreamwidth.org>
Date: Tue Dec 7 07:07:40 2010 +0000
wayland: fix typo
Fixes the build error:
clutter-input-device-wayland.c:154:69:
error: too few arguments to function call
http://bugzilla.clutter-project.org/show_bug.cgi?id=2473
clutter/wayland/clutter-input-device-wayland.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 3795c9b975d43305c64ed24306736f764ef165bc
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Dec 9 12:37:41 2010 +0000
build: Do not hardcode --warn-all for g-ir-scanner
It's possible to use --warn-all through the introspection scanner
options from outside the build environment.
clutter/Makefile.am | 3 ---
1 file changed, 3 deletions(-)
commit d229036441b3f0a4f7ab5205de46b5dbc9d9d7a9
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Dec 9 12:36:50 2010 +0000
Reduce the amount of g-ir-scanner warnings
As much as we can; the remaining warnings are mostly valid things that
the introspection scanner still flags as potential issues.
clutter/clutter-actor.h | 26 +++++++++++++-------------
clutter/clutter-container.c | 16 ++++++++++++----
clutter/clutter-device-manager.h | 10 +++++-----
clutter/clutter-layout-manager.h | 8 ++++----
clutter/clutter-offscreen-effect.h | 6 +++---
clutter/clutter-scriptable.h | 2 +-
clutter/x11/clutter-backend-x11.c | 10 +++++-----
clutter/x11/clutter-stage-x11.c | 7 ++++---
8 files changed, 47 insertions(+), 38 deletions(-)
commit e1f48b15ee92f60f2a84c808ba0d505f38a1bf61
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Dec 9 12:00:29 2010 +0000
docs: Use :reverse in the Behaviour migration guide
Instead of the ::completed signal flip.
doc/reference/clutter/migrating-ClutterBehaviour.xml | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
commit b16ea099882accbb489d20ef1ea03dc3cb0d2846
Merge: b6318bd82 50849ac1f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Dec 9 11:58:10 2010 +0000
Merge remote branch 'elliot/cookbook-animations-looping-new-api'
* elliot/cookbook-animations-looping-new-api:
cookbook: Use new API to reverse timeline
commit b6318bd8218c021270370d6e8093d38bdabe791d
Author: Tomeu Vizoso <tomeu.vizoso@collabora.co.uk>
Date: Tue Dec 7 15:29:05 2010 +0100
Make clutter_shader_effect_set_uniform_value accept G_TYPE_DOUBLE
For users of gobject-introspection that cannot know which
non-integer type to pass.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2471
clutter/clutter-shader-effect.c | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
commit cf1fced88507e0ccc2fa704d14b3141168a48360
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Dec 8 18:57:42 2010 +0000
pipeline: don't dereference NULL program state
This avoid dereferencing a NULL arbfp program state in
_cogl_pipeline_backend_arbfp_layer_pre_change_notify for
_STATE_COMBINE_CONSTANT changes.
clutter/cogl/cogl/cogl-pipeline-arbfp.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
commit 46295a0dd1c0dcbc130ed9dd3aed900e597c8d42
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Dec 8 16:29:37 2010 +0000
arbfp: Copy pipelines used as cache keys
We are currently using a pipeline as a key into our arbfp program cache
but because we weren't making a copy of the pipelines used as keys there
were times when doing a lookup in the cache would end up trying to
compare a lookup key with an entry key that would point to invalid
memory.
Note: the current approach isn't ideal from the pov that that key
pipeline may reference some arbitrarily large user textures will now be
kept alive indefinitely. The plan to improve on this is that we will
have a mechanism to create a special "key pipeline" which will derive
from the default Cogl pipeline (to avoid affecting the lifetime of
other pipelines) and only copy state from the original pipeline that
affects the arbfp program and will reference small dummy textures
instead of potentially large user textures.
clutter/cogl/cogl/cogl-pipeline-arbfp.c | 34 ++++++++++++++++++++++++++++++++-
1 file changed, 33 insertions(+), 1 deletion(-)
commit 87b2300f98727525267a6849c36c74849ea993fd
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Dec 8 16:27:57 2010 +0000
arbfp: initialize arbfp_program_state->next_constant_id
When allocating a new ArbfpProgramState struct when starting code
generation we weren't initializing arbfp_program_state->next_constant_id
to 0.
clutter/cogl/cogl/cogl-pipeline-arbfp.c | 1 +
1 file changed, 1 insertion(+)
commit bac600b21bcbe13d3259fb7cee9e2b378f807d74
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Dec 8 16:23:10 2010 +0000
pipeline: Clarify stages for finding an arbfp program
In the arbfp backend there is a seqential approach to finding a suitable
arbfp program to use for a given pipeline; first we see if there's
already a program associated with the pipeline, 2nd we try and find a
program associated with the "arbfp-authority" 3rd we try and lookup a
program in a cache and finally we resort to starting code-generation for
a new program. This patch slightly reworks the code of these steps to
hopefully make them a bit clearer.
clutter/cogl/cogl/cogl-pipeline-arbfp.c | 102 +++++++++++++++++++-------------
1 file changed, 60 insertions(+), 42 deletions(-)
commit 9606c42c559fefbf397047dad6da3f4f8958b459
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Dec 6 21:14:33 2010 +0000
cogl-pipeline: Fix the layer_has_alpha_cb
_cogl_pipeline_needs_blending_enabled tries to determine whether each
layer is using the default combine state. However it was using
argument 0 for both checks so the if-statement would never be true.
clutter/cogl/cogl/cogl-pipeline.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
commit ab5f394e5aea5a79a0e5d6647e86402ca2ba5e4f
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Dec 8 11:38:56 2010 +0000
pipeline: remove unused HashState member
There was an unused pipeline_differences member as part of the HashState
struct which this patch remove to avoid confusion.
clutter/cogl/cogl/cogl-pipeline.c | 1 -
1 file changed, 1 deletion(-)
commit 5fd8e9c6083ff17202ceb2cfd2d1c56df0d1da14
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Dec 8 11:35:16 2010 +0000
pipeline: initialize HashState flags member
There are a set of "EvalFlags" that get passed to _cogl_pipeline_hash
that can tweak the semantics of what state is evaluated for hashing but
these flags weren't getting passed via the HashState state structure
so it would be undefined if you would get the correct semantics.
clutter/cogl/cogl/cogl-pipeline.c | 1 +
1 file changed, 1 insertion(+)
commit ea66156c83dded1536009bbdd02032e5e3114c3a
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Dec 8 11:30:00 2010 +0000
pipeline: don't use near/far symbols
According to 9cc90333473e3 the windows headers #define near as nothing,
and presumable the same is true for 'far' too. Apparently this define is
to improve compatibility with code written for Windows 3.1, so it's good
that people will be able to incorporate such code into their Clutter
applications.
clutter/cogl/cogl/cogl-pipeline.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
commit acd3d615686f8b10589ac57b7fb16b4f968ae3fb
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Dec 8 14:26:27 2010 +0000
docs: Fix listitem tag
clutter/clutter-color.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit c454526bbbd91224ab3fa580d80bf937b912d2cc
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Dec 8 13:59:53 2010 +0000
docs: Clean up clutter_color_from_string()
Add hsl() and hsla() formats, and clean up the wording.
clutter/clutter-color.c | 54 +++++++++++++++++++++++++++++++++----------------
1 file changed, 37 insertions(+), 17 deletions(-)
commit ca7dc2f951f1d5cc59c364a186aa065449c2b85f
Author: Neil Roberts <neil@linux.intel.com>
Date: Tue Dec 7 23:32:47 2010 +0000
cogl-backend-egl: Chain up to the X11 backend init_events
Since c6493885c3f18 when building the EGL backend for eglx there was
no fallback in the init_events implementation so the X11 backend init
function would never get called. This was stopping it from receiving
any X events so a lot of things broke. It now just chains up.
clutter/egl/clutter-backend-egl.c | 5 +++++
1 file changed, 5 insertions(+)
commit b0751d234240aa5e7899dedba22c607e75f5ad81
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Tue Dec 7 22:06:07 2010 +0000
input-device: Downgrade over-zealous warning to note
This warning is really harmless, we just discard the event anyway, let's
demote it to a CLUTTER_NOTE() so event backend implementers can see it.
clutter/clutter-input-device.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
commit f8fc194b3b3529bf4f3230cef00d5d0b042673bf
Author: Neil Roberts <neil@linux.intel.com>
Date: Tue Dec 7 11:02:21 2010 +0000
clutter-score: Initialize ClutterScoreEntry::complete_id
When clutter_score_append_at_marker is called instead of
clutter_score_append the complete_id field of ClutterScoreEntry was
being left uninitialised. When the entry is eventually freed it would
sometimes try to disconnect an invalid signal id. This was causing
conformance test failures for me on GLES2.
clutter/clutter-score.c | 1 +
1 file changed, 1 insertion(+)
commit 9d836d8ce5d95749e1b3562f1cab77d9ac27cb1e
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Dec 7 16:44:36 2010 +0000
context: only declare arbfp cache for GL
We were trying to declare and initializing an arbfp program cache for
GLES but since the prototypes for the _hash and _equal functions were
only available for GL this broke the GLES builds. By #ifdefing the code
to conditionally declare/initialize for GL only this should hopefully
fix GLES builds.
clutter/cogl/cogl/cogl-context.c | 4 ++++
clutter/cogl/cogl/cogl-context.h | 2 ++
2 files changed, 6 insertions(+)
commit 67c2a1b29fa679f3a86b8ee4cae682de8391397b
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Dec 7 16:36:44 2010 +0000
pipeline: remove spurious use of True instead of TRUE
The constant 'True' is defined by Xlib which isn't used for all clutter
builds so this replaces occurrences of True with TRUE which is defined
by glib. This should hopefully fix the win32 builds.
clutter/cogl/cogl/cogl-pipeline.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
commit 464ed7e6b7c35248c03fd0a03a8e8087e7b5e274
Author: Robert Bragg <robert@linux.intel.com>
Date: Fri Dec 3 12:01:18 2010 +0000
arbfp: Adds an ARBfp program cache
This adds a cache (A GHashTable) of ARBfp programs and before ever
starting to code-generate a new program we will always first try and
find an existing program in the cache. This uses _cogl_pipeline_hash and
_cogl_pipeline_equal to hash and compare the keys for the cache.
There is a new COGL_DEBUG=disable-program-caches option that can disable
the cache for debugging purposes.
clutter/cogl/cogl/cogl-context.c | 6 ++
clutter/cogl/cogl/cogl-context.h | 2 +
clutter/cogl/cogl/cogl-debug-options.h | 5 ++
clutter/cogl/cogl/cogl-debug.c | 8 +-
clutter/cogl/cogl/cogl-debug.h | 3 +-
clutter/cogl/cogl/cogl-pipeline-arbfp-private.h | 6 ++
clutter/cogl/cogl/cogl-pipeline-arbfp.c | 111 ++++++++++++++++++++----
7 files changed, 118 insertions(+), 23 deletions(-)
commit e87c3820ee729930d4a7b84f4737b99eb26ad03d
Author: Robert Bragg <robert@linux.intel.com>
Date: Thu Nov 4 13:57:36 2010 +0000
pipeline: Implements _cogl_pipeline_hash function
This allows us to get a hash for a set of state groups for a given
pipeline. This can be used for example to get a hash of the fragment
processing state of a pipeline so we can implement a cache for compiled
arbfp/glsl programs.
clutter/cogl/cogl/cogl-color-private.h | 5 +
clutter/cogl/cogl/cogl-context.c | 2 +
clutter/cogl/cogl/cogl-pipeline-private.h | 18 +-
clutter/cogl/cogl/cogl-pipeline.c | 520 ++++++++++++++++++++++++++++++
clutter/cogl/cogl/cogl-util.c | 9 +
clutter/cogl/cogl/cogl-util.h | 27 ++
6 files changed, 580 insertions(+), 1 deletion(-)
commit cc36e49ec5f06f608380fba24682a69e9b0d0a1a
Author: Robert Bragg <robert@linux.intel.com>
Date: Fri Dec 3 11:36:49 2010 +0000
pipeline: generalize _cogl_pipeline_equal
_cogl_pipeline_equal now accepts a mask of pipeline differences and layer
differences to constrain what state will be compared. In addition a set
of flags are passed that can tweak the comparison semantics for some
state groups. For example when comparing layer textures we sometimes
only need to compare the texture target and can ignore the data itself.
In updating the code this patch also changes it so all required pipeline
authorities are resolved in one step up-front instead of resolving the
authority for each state group in turn and repeatedly having to traverse
the pipeline's ancestry. This adds two new functions
_cogl_pipeline_resolve_authorities and
_cogl_pipeline_layer_resolve_authorities to handle resolving a set of
authorities.
clutter/cogl/cogl/cogl-journal.c | 9 +-
clutter/cogl/cogl/cogl-pipeline-private.h | 155 +++++++++++-----
clutter/cogl/cogl/cogl-pipeline.c | 287 ++++++++++++++++++++----------
3 files changed, 312 insertions(+), 139 deletions(-)
commit 62b051951c80c31ee6874a1d156ce889350ce8be
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Dec 7 12:13:10 2010 +0000
docs: don't dist cogl-2.0 manual if not built
If not configured with --enable-cogl2-reference then don't try and dist
the doc/references/cogl-2.0 manual. Although this means a tarball built
this way will not be able to build the experimental cogl-2.0 manual this
isn't considered a big problem since anyone interested in this would
hopefully be tracking git for now or we can simply be careful to
configure with --enable-cogl2-reference for our tarball releases.
doc/reference/Makefile.am | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
commit ff646b7fc3e4528836f415e4087ee30c6547ad7d
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Dec 1 16:53:08 2010 +0000
pipeline: remove layer->backend_priv[] array
This removes the unused array of per-packend priv data pointers
associated with every CoglPipelineLayer. This reduces the size of all
layer allocations and avoids having to zero an array for each
_cogl_pipeline_layer_copy.
clutter/cogl/cogl/cogl-pipeline-arbfp.c | 1 -
clutter/cogl/cogl/cogl-pipeline-glsl.c | 3 +--
clutter/cogl/cogl/cogl-pipeline-private.h | 9 ---------
clutter/cogl/cogl/cogl-pipeline.c | 24 ------------------------
4 files changed, 1 insertion(+), 36 deletions(-)
commit 1180fd159edea9b3907c186d45013348c041b216
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Dec 1 16:37:25 2010 +0000
cogl-object: remove un-used cogl_object_get_type
A non-static function named cogl_object_get_type was inadvertently added
during the addition of the CoglObject base type, but there is no public
prototype in the headers and it's only referenced inside cogl-object.c
to implement cogl_handle_get_type() for compatibility. This removes the
function since we don't want to commit to CoglObject always simply being
a boxed type. In the future we may want to register hierarchical
GTypeInstance based types.
clutter/cogl/cogl/cogl-object.c | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)
commit ef02cb7ff203b12932697823fbcc59a7bd04ad4d
Author: Robert Bragg <robert@linux.intel.com>
Date: Mon Nov 29 21:42:06 2010 +0000
matrix gtype: registers a boxed type for CoglMatrix
To allow us to have gobject properties that accept a CoglMatrix value we
need to register a GType. This adds a cogl_gtype_matrix_get_type function
that will register a static boxed type called "CoglMatrix".
This adds a new section to the reference manual for GType integration
functions.
clutter/cogl/cogl/Makefile.am | 1 +
clutter/cogl/cogl/cogl-gtype-private.h | 48 ++++++++++++++++++++++++++++++++
clutter/cogl/cogl/cogl-matrix.c | 7 +++++
clutter/cogl/cogl/cogl-matrix.h | 16 +++++++++++
clutter/cogl/cogl/cogl.h | 6 ++++
doc/reference/cogl-2.0/cogl-docs.xml.in | 6 ++++
doc/reference/cogl-2.0/cogl-sections.txt | 6 +++-
doc/reference/cogl/cogl-docs.xml.in | 1 +
doc/reference/cogl/cogl-sections.txt | 6 ++++
9 files changed, 96 insertions(+), 1 deletion(-)
commit c29a7526c040209a5ca0bb327f1df6a98c4d88aa
Author: Robert Bragg <robert@linux.intel.com>
Date: Mon Nov 29 18:47:10 2010 +0000
matrix: Adds matrix_copy and _free functions
As a pre-requisite for being able to register a boxed GType for
CoglMatrix (enabling us to define gobject properties that accept a
CoglMatrix) this adds cogl_matrix_copy and _free functions.
clutter/cogl/cogl/cogl-matrix.c | 15 +++++++++++++++
clutter/cogl/cogl/cogl-matrix.h | 27 +++++++++++++++++++++++++++
2 files changed, 42 insertions(+)
commit 3edd02841b5748bbad0977ba9ccd91d65651f819
Author: Robert Bragg <robert@linux.intel.com>
Date: Fri Dec 3 16:59:52 2010 +0000
pipeline simple optimization for _needs_blending_enabled
In _cogl_pipeline_needs_blending_enabled after first checking whether
the property most recently changed requires blending we would then
resort to checking all other properties too in case some other state
also requires blending. We now avoid checking all other properties in
the case that blending was previously disabled and checking the property
recently changed doesn't require blending.
Note: the plan is to improve this further by explicitly keeping track
of the properties that currently cause blending to be enabled so that we
never have to resort to checking all other properties we can constrain
the checks to those masked properties.
clutter/cogl/cogl/cogl-pipeline.c | 17 +++++++++++++----
1 file changed, 13 insertions(+), 4 deletions(-)
commit 9ff191bd3bfba0000547c3082e7fe6c57152bbe5
Author: Robert Bragg <robert@linux.intel.com>
Date: Fri Dec 3 16:56:54 2010 +0000
pipeline: inline _get_parent and _get_authority
This moves _cogl_pipeline_get_parent and _cogl_pipeline_get_authority
into cogl-pipeline-private.h so they can be inlined since they have been
seen to get quite high in profiles. Given that they both contain such
small amounts of code the function call overhead is significant.
clutter/cogl/cogl/cogl-pipeline-private.h | 17 +++++++++++++++++
clutter/cogl/cogl/cogl-pipeline.c | 17 -----------------
2 files changed, 17 insertions(+), 17 deletions(-)
commit 3fa91efea84c2c442fcc92e8ed0df711d7e67988
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Nov 10 14:02:31 2010 +0000
Add a COGL_DEBUG option to disable software clipping
This adds a debug option called disable-software-clipping which causes
the journal to always log the clip stack state rather than trying to
manually clip rectangles.
clutter/cogl/cogl/cogl-debug-options.h | 5 +++++
clutter/cogl/cogl/cogl-debug.c | 3 ++-
clutter/cogl/cogl/cogl-debug.h | 3 ++-
clutter/cogl/cogl/cogl-journal.c | 23 +++++++++++++----------
4 files changed, 22 insertions(+), 12 deletions(-)
commit 62c893feee386223aebbab781171028db547d7f9
Author: Neil Roberts <neil@linux.intel.com>
Date: Tue Nov 9 19:18:37 2010 +0000
cogl-journal: Attempt to clip manually to avoid breaking up batches
Before flushing the journal there is now a separate iteration that
will try to determine if the matrix of the clip stack and the matrix
of the rectangle in each entry are on the same plane. If they are it
can completely avoid the clip stack and instead manually modify the
vertex and texture coordinates to implement the clip. The has the
advantage that it won't break up batching if a single clipped
rectangle is used in a scene.
The software clip is only used if there is no user program and no
texture matrices. There is a threshold to the size of the batch where
it is assumed that it is worth the cost to break up a batch and
program the GPU to do the clipping. Currently this is set to 8
although this figure is plucked out of thin air.
To check whether the two matrices are on the same plane it tries to
determine if one of the matrices is just a simple translation of the
other. In the process of this it also works out what the translation
would be. These values can be used to translate the clip rectangle
into the coordinate space of the rectangle to be logged. Then we can
do the clip directly in the rectangle's coordinate space.
clutter/cogl/cogl/cogl-context.c | 3 +
clutter/cogl/cogl/cogl-context.h | 1 +
clutter/cogl/cogl/cogl-journal-private.h | 2 +
clutter/cogl/cogl/cogl-journal.c | 363 ++++++++++++++++++++++++++++++-
4 files changed, 363 insertions(+), 6 deletions(-)
commit be63fcee7ff2ef33d25efd873f9a9b79856e1577
Author: Neil Roberts <neil@linux.intel.com>
Date: Tue Nov 9 19:09:25 2010 +0000
cogl-clip-stack: Move the struct definitions to the header
It will be useful to be able to directly examine the contents of the
clip stack within the journal code.
clutter/cogl/cogl/cogl-clip-stack.c | 112 -----------------------------------
clutter/cogl/cogl/cogl-clip-stack.h | 114 ++++++++++++++++++++++++++++++++++++
2 files changed, 114 insertions(+), 112 deletions(-)
commit dc0506a1649bcea4997a68013927529451131712
Author: Neil Roberts <neil@linux.intel.com>
Date: Tue Nov 9 12:01:04 2010 +0000
cogl-clip-stack: Don't convert rect clips to window clips
Previously in cogl-clip-state.c when it detected that the current
modelview matrix is screen-aligned it would convert the clip entry to
a window clip. Instead of doing this cogl-clip-stack.c now contains
the detection and keeps the entry as a rectangle clip but marks that
it is entirely described by its scissor rect. When flusing the clip
stack it doesn't do anything extra for entries that have this mark
(because the clip will already been setup by the scissor). This is
needed so that we can still track the original rectangle coordinates
and modelview matrix to help detect when it would be faster to modify
the rectangle when adding it to the journal rather than having to
break up the batch to set the clip state.
clutter/cogl/cogl/cogl-clip-stack.c | 109 +++++++++++++++++++++++++++---------
clutter/cogl/cogl/cogl-clip-state.c | 55 ------------------
2 files changed, 83 insertions(+), 81 deletions(-)
commit 22be07c3b5ec7d8d5e5e0447599425026cbb7bd8
Author: Neil Roberts <neil@linux.intel.com>
Date: Thu Nov 25 21:08:45 2010 +0000
cogl-journal: Defer expanding the vertices until uploading
When logging a quad we now only store the 2 vertices representing the
top left and bottom right of the quad. The color is only stored once
per entry. Once we come to upload the data we expand the 2 vertices
into four and copy the color to each vertex. We do this by mapping the
buffer and directly expanding into it. We have to copy the data before
we can render it anyway so it doesn't make much sense to expand the
vertices before uploading and this way should save some space in the
size of the journal. It also makes it slightly easier if we later want
to do pre-processing on the journal entries before uploading such as
doing software clipping.
The modelview matrix is now always copied to the journal entry whereas
before it would only be copied if we aren't doing software
transform. The journal entry struct always has the space for the
modelview matrix so hopefully it's only a small cost to copy the
matrix.
The transform for the four entries is now done using
cogl_matrix_transform_points which may be slightly faster than
transforming them each individually with a call to
cogl_matrix_transfom.
clutter/cogl/cogl/cogl-context.h | 1 +
clutter/cogl/cogl/cogl-journal.c | 273 ++++++++++++++++++++++++---------------
2 files changed, 173 insertions(+), 101 deletions(-)
commit a7d88e15270e73025b19f745f21473b832fb1754
Author: Neil Roberts <neil@linux.intel.com>
Date: Thu Dec 2 21:08:30 2010 +0000
Revert "cogl: Remove the generated array size for cogl_tex_coord_in"
This reverts commit 4cfe90bde275dbb952645397aa2ba2d6f6e2f3ba.
GLSL 1.00 on GLES doesn't support unsized arrays so the whole idea
can't work.
Conflicts:
clutter/cogl/cogl/cogl-pipeline-glsl.c
clutter/cogl/cogl/cogl-context.c | 2 +-
clutter/cogl/cogl/cogl-pipeline-arbfp.c | 3 +-
clutter/cogl/cogl/cogl-pipeline-fixed.c | 3 +-
clutter/cogl/cogl/cogl-pipeline-glsl.c | 52 ++++-
clutter/cogl/cogl/cogl-pipeline-opengl-private.h | 3 +-
clutter/cogl/cogl/cogl-pipeline-opengl.c | 6 +-
clutter/cogl/cogl/cogl-pipeline-private.h | 3 +-
clutter/cogl/cogl/cogl-shader-boilerplate.h | 1 -
clutter/cogl/cogl/cogl-shader-private.h | 6 +
clutter/cogl/cogl/cogl-shader.c | 229 +++++++++++++++++------
clutter/cogl/cogl/cogl-vertex-attribute.c | 4 +-
clutter/cogl/cogl/cogl.c | 9 +-
clutter/cogl/cogl/cogl2-path.c | 4 +-
13 files changed, 250 insertions(+), 75 deletions(-)
commit e0ce4cee8c6fb8d40d565cf3890942a0bc898bc0
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Thu Dec 2 15:46:40 2010 +0000
win32: export TARGET and ROOT_DIR in env.sh
So children of the shell sourcing it can use them (eg. buildbot slaves)
build/mingw/mingw-cross-compile.sh | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
commit c1878316e02dce0ff10c8e81ee3fa3b6ea9bb9cb
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Thu Dec 2 15:41:43 2010 +0000
win32: Detect the mingw32 cross compiler on Fedora
Fedora mingw32 cross compiler is prefix with i686-pc-mingw32-.
build/mingw/mingw-cross-compile.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit e73d5b30bbb927eae5ae2cd270df9d79c821c109
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Thu Dec 2 14:03:01 2010 +0000
win32: Update glib and cairo version in mingw-cross-compile.sh
Clutter has moved on and now depends on glib 2.26 and cairo 1.10
(for cairo-gobject).
build/mingw/mingw-cross-compile.sh | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
commit dd5431ef382a59337cfda04bc31cebc28085f17f
Author: Neil Roberts <neil@linux.intel.com>
Date: Thu Dec 2 16:30:55 2010 +0000
cogl-pipeline-glsl: Fix reusing shaders for shared ancestors
The check for whether we can reuse a program we've already generated
was only being done if the pipeline already had a
glsl_program_state. When there is no glsl_program_state it then looks
for the nearest ancestor it can share the program with. It then
wasn't checking whether that ancestor already had a GL program so it
would start generating the source again. It wouldn't however compile
that source again because _cogl_pipeline_backend_glsl_end does check
whether there is already a program. This patch moves the check until
after it has found the glsl_program_state, whether or not it was found
from an ancestor or as its own state.
clutter/cogl/cogl/cogl-pipeline-glsl.c | 32 +++++++++++++++-----------------
1 file changed, 15 insertions(+), 17 deletions(-)
commit 4cfe90bde275dbb952645397aa2ba2d6f6e2f3ba
Author: Neil Roberts <neil@linux.intel.com>
Date: Thu Dec 2 12:27:29 2010 +0000
cogl: Remove the generated array size for cogl_tex_coord_in
Under GLES2 we were defining the cogl_tex_coord_in varying as an array
with a size determined by the number of texture coordinate arrays
enabled whenever the program is used. This meant that we may have to
regenerate the shader with a different size if the shader is used with
more texture coord arrays later. However in OpenGL the equivalent
builtin varying gl_TexCoord is simply defined as:
varying vec4 gl_TexCoord[]; /* <-- no size */
GLSL is documented that if you declare an array with no size then you
can only access it with a constant index and the size of the array
will be determined by the highest index used. If you want to access it
with a non-constant expression you need to redeclare the array
yourself with a size.
We can replicate the same behaviour in our Cogl shaders by instead
declaring the cogl_tex_coord_in with no size. That way we don't have
to pass around the number of tex coord attributes enabled when we
flush a material. It also means that CoglShader can go back to
directly uploading the source string to GL when cogl_shader_source is
called so that we don't have to keep a copy of it around.
If the user wants to access cogl_tex_coord_in with a non-constant
index then they can simply redeclare the array themself. Hopefully
developers will expect to have to do this if they are accustomed to
the gl_TexCoord array.
clutter/cogl/cogl/cogl-context.c | 2 +-
clutter/cogl/cogl/cogl-pipeline-arbfp.c | 3 +-
clutter/cogl/cogl/cogl-pipeline-fixed.c | 3 +-
clutter/cogl/cogl/cogl-pipeline-glsl.c | 46 +----
clutter/cogl/cogl/cogl-pipeline-opengl-private.h | 3 +-
clutter/cogl/cogl/cogl-pipeline-opengl.c | 6 +-
clutter/cogl/cogl/cogl-pipeline-private.h | 3 +-
clutter/cogl/cogl/cogl-shader-boilerplate.h | 1 +
clutter/cogl/cogl/cogl-shader-private.h | 6 -
clutter/cogl/cogl/cogl-shader.c | 229 ++++++-----------------
clutter/cogl/cogl/cogl-vertex-attribute.c | 4 +-
clutter/cogl/cogl/cogl.c | 9 +-
clutter/cogl/cogl/cogl2-path.c | 4 +-
13 files changed, 73 insertions(+), 246 deletions(-)
commit 50849ac1fdc7840cced9aa1730b5d3f7fd4d5d02
Author: Elliot Smith <elliot.smith@intel.com>
Date: Tue Nov 30 16:52:01 2010 +0000
cookbook: Use new API to reverse timeline
clutter_timeline_set_reverse() can be used to
automatically reverse a timeline's direction each time
it completes, so use that in looping animation recipe and
examples.
doc/cookbook/animations.xml | 25 ++++++++++++++++------
.../examples/animations-looping-implicit.c | 24 +--------------------
2 files changed, 19 insertions(+), 30 deletions(-)
commit 4f17bf3bcc5c017ef14a876f172ba3b1c3590317
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Nov 30 18:55:38 2010 +0000
keysyms: Update the list
Add TouchpadOn and TouchpadOff from the X11 key symbols.
clutter/clutter-keysyms-compat.h | 2 ++
clutter/clutter-keysyms.h | 2 ++
2 files changed, 4 insertions(+)
commit 87a72d188e7d986686106859a4d4f229b20dfe7a
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Dec 1 15:48:37 2010 +0000
cogl-pipeline: Fix comparing layer states for finding codgen authority
When compiling for GLES2, the codegen is affected by state other than
the layers. That means when we find an authority for the codegen state
we can't directly look at authority->n_layers to determine the number
of layers because it isn't necessarily the layer state authority. This
patch changes it to use cogl_pipeline_get_n_layers instead. Once we
have two authorities that differ in codegen state we then compare all
of the layers to decide if they would affect codegen. However it was
ignoring the fact that the authorities might also differ by the other
codegen state. This path also adds an extra check for whether
_cogl_pipeline_compare_differences contains any codegen bits other
than COGL_PIPELINE_STATE_LAYERS.
clutter/cogl/cogl/cogl-pipeline.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
commit f620d53054e50e4ddcf656794a38d13c21d0dbf6
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Dec 1 14:39:28 2010 +0000
cogl-pipeline: Fix the codgen authority for texture target changes
When determining if a layer would require a different shader to be
generated it needs to check a certain set of state changes and it
needs to check whether the texture target is different. However it was
checking whether texture texture was different only if the other state
was also different which doesn't make any sense. It also only checked
the texture difference if that was the only state change which meant
that effectively the code was impossible to reach. Now it does the
texture target check indepent of the other state changes.
clutter/cogl/cogl/cogl-pipeline.c | 29 ++++++++++++++---------------
1 file changed, 14 insertions(+), 15 deletions(-)
commit a38fa7a2dfc3a169777ba172d145178b9b068d73
Author: Neil Roberts <neil@linux.intel.com>
Date: Tue Nov 30 22:28:38 2010 +0000
cogl-pipeline-fixed: Use the correct state flag for combine constant
The fixed pipeline backend wasn't correctly flushing the combine
constant because it was using the wrong flag to determine if the
combine constant has changed since the last flushed material.
clutter/cogl/cogl/cogl-pipeline-fixed.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
commit 499a370ee326ea24fd0fff55466877a6f286d9fd
Author: Neil Roberts <neil@linux.intel.com>
Date: Tue Nov 30 22:17:17 2010 +0000
cogl-pipeline-opengl: Fix enabling previously disabled units
When enabling a unit that was disabled from a previous flush pipeline
it was forgetting to rebind the right texture unit so it wouldn't
work. This was causing the redhand to disappear when using the fixed
function backend in test-cogl-multitexture if anything else is added
to the scene.
clutter/cogl/cogl/cogl-pipeline-opengl.c | 1 +
1 file changed, 1 insertion(+)
commit 17a98875d33c872800c04c26338427970b88b308
Author: Neil Roberts <neil@linux.intel.com>
Date: Tue Nov 30 22:15:40 2010 +0000
cogl-pipeline: Add more ignored state changes for program generation
For shader generation backends we don't need to worry about changes to
the texture object and changing the user matrix. The missing user
matrix flag was causing test-cogl-multitexture to regenerate the
shader every frame.
clutter/cogl/cogl/cogl-pipeline-arbfp.c | 5 ++++-
clutter/cogl/cogl/cogl-pipeline-glsl.c | 5 ++++-
2 files changed, 8 insertions(+), 2 deletions(-)
commit 1564418b3feb9ab010c225129bc1b79b7c882318
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Tue Nov 30 16:36:56 2010 +0000
cogl: Revert "build: Remove unused variable"
Having ctx here produces a warning on GLES. However it's needed for Big
GL as we have at the top of the file:
#ifdef HAVE_COGL_GL
#define glClientActiveTexture ctx->drv.pf_glClientActiveTexture
#endif
This reverts commit 27a3a2056a245aca64b8e3a7d82b7976c13e897a.
clutter/cogl/cogl/cogl.c | 2 ++
1 file changed, 2 insertions(+)
commit 8ee91794477c82171e0b165fb9e10655798682a0
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Tue Nov 30 16:22:49 2010 +0000
egl: Fix compilation with EGLX
That what happens when you test things only with 2 configure options
instead of 3. The 2 tested compile, the third one breaks. Another good
catch for the eglx bot!
clutter/egl/clutter-backend-egl.c | 4 ++++
1 file changed, 4 insertions(+)
commit bbbd91e581ca6d7408c1f6fa2f1b6d50d2c4db2b
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Tue Nov 30 16:03:26 2010 +0000
cogl: Fix unused variable warning with GLES2
This shader variable is only used with big GL.
clutter/cogl/cogl/cogl-shader.c | 2 ++
1 file changed, 2 insertions(+)
commit 9ad55edf24f74353c095153e370d6f648f4e5593
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Tue Nov 30 10:06:12 2010 -0500
egl: Don't try to use stage_x11 with non-X winsys
The access to stage_x11 has to be protected by COGL_HAS_X11_SUPPORT.
clutter/egl/clutter-stage-egl.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
commit 4ceb95d2ca5f5a52a77bfcada47d5befc6ab1fd1
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Tue Nov 30 14:50:13 2010 +0000
evdev: Add a comment to revisit the GSource management with glib 2.28
With glib 2.28, we'll be able to have one GSource per device manager
with child sources for earch device. Make a note to update the code
in a few months.
clutter/evdev/clutter-device-manager-evdev.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
commit 27a3a2056a245aca64b8e3a7d82b7976c13e897a
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Fri Nov 19 14:51:39 2010 -0500
build: Remove unused variable
and be 100% warning free again.
clutter/cogl/cogl/cogl.c | 2 --
1 file changed, 2 deletions(-)
commit 9ba5447c9bbbd93808a56d9968b2e60f20bbd328
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Fri Nov 19 14:31:51 2010 -0500
evdev: Enable the compilation of the evdev backend for eglnative
Not tested (but checked that it compiles).
There's no reason to only enable the check for the cex100. Hopefully
should work.
We make sure not to enable both the evdev and the tslib backend at the
same time as the DeviceManager is a singleton and we can't have both
subclasses at the same time for now.
configure.ac | 17 +++++++++++++++--
1 file changed, 15 insertions(+), 2 deletions(-)
commit bce4c87232bea82560725fa44e079088d75a367f
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Fri Nov 19 14:19:52 2010 -0500
evdev: Don't oveflow when translating buttons to masks
An array is used to translate the button to its mask. Clutter defines
the masks for button 1 to 5 but we report BTN_LEFT..BTN_TASK ie
0x110..0x117. We need to pad the array for the translation not to access
random data for buttons between 0x115 and 0x117.
clutter/evdev/clutter-device-manager-evdev.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
commit ac431ac21db043d42fa5b0be604a155503846012
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Thu Nov 11 19:11:27 2010 -0500
input-device: Warn if the device has no associated stage
Discarding the event without any warning when the device has no
associated stage makes it hard to find the bug for people implementing
new event backends. We should really warn for that abnormal condition in
_clutter_input_device_update().
clutter/clutter-input-device.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
commit c20beabf93a97c3e0d58d8512aa5459ca670d3bf
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Thu Nov 11 19:07:35 2010 -0500
evdev: Add mouse support
We know support EV_REL events comming from evdev devices. This addition
is pretty straigthforward, it adds a x,y per GSource listening to a
evdev device, updates from EL_REL (relative) events and craft new
ClutterMotionEvents. As for buttons, BTN_LEFT..BTN_TASK are translated
to ClutterButtonEvents with 1..8 as button number.
clutter/evdev/clutter-device-manager-evdev.c | 223 ++++++++++++++++++++++++---
tests/interactive/test-events.c | 8 +-
2 files changed, 204 insertions(+), 27 deletions(-)
commit 94c2812d720bbdd3db3d779f1f96438b65ae383d
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Tue Nov 9 13:14:37 2010 -0500
evdev: Only create a xkbcommon mapping for keyboard devices
clutter/evdev/clutter-device-manager-evdev.c | 44 +++++++++++++++++-----------
1 file changed, 27 insertions(+), 17 deletions(-)
commit 7cd6ba282865491d1e60e830676a363c72f21c25
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Tue Nov 9 13:02:53 2010 -0500
evdev: Close the device gracefully in case of a read() error
Even with udev, the read fails before udev has a chance to signal the
change. Hence (and to handle errors gracefully anyway), let's remove the
device from the device manager in case of a read() error.
clutter/evdev/clutter-device-manager-evdev.c | 20 +++++++++++++++++++-
1 file changed, 19 insertions(+), 1 deletion(-)
commit afd279dd7684bfd28b07cf668a1aaf213239cfd4
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Tue Nov 9 12:50:23 2010 -0500
evdev: Merge clutter-event-evdev.[ch] into the device manager
The device manager now fully owns the GSources corresponding to the
devices it manages. This will allow not only to remove the source when
udev signals a device removal but also handle read() errors gracefully
by removing the faulty device from the manager.
clutter/Makefile.am | 2 -
clutter/egl/clutter-backend-egl.c | 1 -
clutter/evdev/clutter-device-manager-evdev.c | 320 ++++++++++++++++++++++-
clutter/evdev/clutter-device-manager-evdev.h | 3 +
clutter/evdev/clutter-event-evdev.c | 367 ---------------------------
clutter/evdev/clutter-event-evdev.h | 36 ---
6 files changed, 321 insertions(+), 408 deletions(-)
commit afee3b009cff5149a1a97aadb3d8009c7b4a26f8
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Tue Nov 9 11:56:26 2010 -0500
evdev: Support hotplug (addition/removal) of evdev devices
Just connect to the GUdevClient "uevent" signal and deals with
"add"/"remove" commands. This drives the installation/removal of
GSource to listen to the device.
clutter/evdev/clutter-device-manager-evdev.c | 59 ++++++++++++++++++++++++++++
clutter/evdev/clutter-event-evdev.c | 49 +++++++++++++++++++++++
2 files changed, 108 insertions(+)
commit b83a4813a4fbf6818bed9f15d8fcf1d7c3717c9a
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Mon Nov 8 11:38:16 2010 -0500
evdev: Make sure we only add evdev devices
Let's use the sysfs path of the device to make sure we only load evdev
device, not legacy mousedev ones for instance. We rely on the sysfs
API/ABI guarantees and look for devices finishing by /input%d/event%d.
clutter/evdev/clutter-device-manager-evdev.c | 35 ++++++++++++++++++++++------
1 file changed, 28 insertions(+), 7 deletions(-)
commit c6493885c3f18042f39273a2efa4fc3616d932b2
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Thu Nov 4 10:38:32 2010 -0400
evdev: First stab at an evdev backend
This backend is a event backend that can be enabled for EGL (for now).
It uses udev (gudev) to query input devices on a linux system, listens to
keyboard events from input devices and xkbcommon to translate raw key
codes into key keysyms.
This commit only supports key events, more to follow.
clutter/Makefile.am | 20 ++
clutter/clutter-device-manager-private.h | 1 +
clutter/clutter-input-device.h | 8 +
clutter/egl/clutter-backend-egl.c | 49 ++++-
clutter/egl/clutter-backend-egl.h | 6 +
clutter/evdev/clutter-device-manager-evdev.c | 276 +++++++++++++++++++++++
clutter/evdev/clutter-device-manager-evdev.h | 58 +++++
clutter/evdev/clutter-event-evdev.c | 318 +++++++++++++++++++++++++++
clutter/evdev/clutter-event-evdev.h | 36 +++
clutter/evdev/clutter-input-device-evdev.c | 197 +++++++++++++++++
clutter/evdev/clutter-input-device-evdev.h | 66 ++++++
configure.ac | 12 +-
12 files changed, 1034 insertions(+), 13 deletions(-)
commit 9f5f62b4b53da3354b35789a8c04b83272252b3b
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Thu Nov 4 10:09:28 2010 -0400
evdev: Fix the unicode_value for new ClutterEvents
Looking at what the X11 backend does: the unicode value is being
translated to the unicode codepoint of the symbol if possible. Let's do
the same then.
Before that, key events for say KEY_Right (0xff53) had the unicode_value
set to the keysym, which meant "This key event is actually printable and
is Unicode codepoint is 0xff53", which lead to interesting results.
clutter/evdev/clutter-xkb-utils.c | 71 ++++++++++++++++++++++++++++++++++++++-
1 file changed, 70 insertions(+), 1 deletion(-)
commit ef5256ec25e6261947e107256ce36ead42fcab88
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Thu Nov 4 06:59:22 2010 -0400
evdev: Factor out the xkbcommon code from the wayland client backend
The wayland client code has support for translating raw linux input
device key codes coming from the wayland compositor into key symbols
thanks to libxkbcommon.
A backend directly listening to linux input devices (called evdev, just
like the Xorg one) could use exactly the same code for the translation,
so abstract it a bit in a separate file.
clutter/Makefile.am | 11 ++-
clutter/evdev/clutter-xkb-utils.c | 111 +++++++++++++++++++++++++
clutter/evdev/clutter-xkb-utils.h | 41 +++++++++
clutter/wayland/clutter-input-device-wayland.c | 46 +++-------
4 files changed, 169 insertions(+), 40 deletions(-)
commit b5a9de1a23a58c1d52f5a394696a8532dc42befe
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Nov 30 10:35:17 2010 +0000
moduleset: Add gstreamer and gst-plugins-good
build/clutter.modules | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)
commit 1d153fa860850e4d24df16a64b499a5690fbfeab
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Nov 30 10:34:59 2010 +0000
moduleset: Disable stand-alone Cally
build/clutter.modules | 2 ++
1 file changed, 2 insertions(+)
commit 085962a361d1150f3f59a1e4925e89814a86c931
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Nov 30 10:34:38 2010 +0000
moduleset: Switch gtk2 to the 2.24 branch
build/clutter.modules | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 5e085e8d7f26e5191d67657ae4eacf3dab2e9906
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Nov 29 14:21:21 2010 +0000
Post-release version bump to 1.5.9
configure.ac | 2 +-
po/clutter-1.0.pot | 408 ++++++++++++++++++++++++++---------------------------
po/de.po | 406 ++++++++++++++++++++++++++--------------------------
po/fr.po | 406 ++++++++++++++++++++++++++--------------------------
po/id.po | 406 ++++++++++++++++++++++++++--------------------------
po/it.po | 406 ++++++++++++++++++++++++++--------------------------
po/pl.po | 406 ++++++++++++++++++++++++++--------------------------
po/zh_CN.po | 406 ++++++++++++++++++++++++++--------------------------
8 files changed, 1423 insertions(+), 1423 deletions(-)
commit 8cebec6bdcefe84c2c663fce380c24f5ac88cfa4
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Nov 29 14:09:09 2010 +0000
Release Clutter 1.5.8 (snapshot)
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit d046df8e6f1c1dfdf4144b1cbe2494d71ac3adc4
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Nov 29 10:55:49 2010 +0000
cogl-shader.c: Don't add the common boilerplate twice
In 6246c2bd6 I moved the code to add the boilerplate to a shader to a
separate function and also made it so that the common boilerplate is
added as a separate string to glShaderSource. However I didn't notice
that the #define for the vertex and fragment shaders already includes
the common part so it was being added twice. Mesa seems to accept this
but it was causing problems on the IMG driver because COGL_VERSION was
defined twice.
clutter/cogl/cogl/cogl-shader.c | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
commit ae300dc8e08d28dad821f7c843fe2b01783efb5a
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Nov 29 10:51:40 2010 +0000
cogl-pipeline-glsl: Use char* instead of GLchar*
It appears that some GLES2 headers don't define GLchar and it works
just as well to use a regular char.
clutter/cogl/cogl/cogl-pipeline-glsl.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 08308fd3978dff227b8e0c8e1388a590bde29f25
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Nov 29 12:23:14 2010 +0000
docs: Close a tag
clutter/clutter-color.c | 2 ++
1 file changed, 2 insertions(+)
commit 556c938b4d6d3cb4743e00d95c0347e483d847a2
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Nov 29 12:01:20 2010 +0000
Update NEWS
NEWS | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
commit 038fe708f86efda95237915f8bce7fd1afb3a262
Merge: 67143bd84 c9d0f8b26
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Nov 29 11:56:36 2010 +0000
Merge remote branch 'elliot/cookbook-animations-scaling'
* elliot/cookbook-animations-scaling:
cookbook: Add recipe for animated scaling of an actor
cookbook: Add example of scaling a texture
cookbook: Added "animated scaling" recipe skeleton
cookbook: Added animated scaling example
commit 67143bd846c2b39ce94779d7ab2b5bd48e58d1cd
Author: Chris Lord <chris@linux.intel.com>
Date: Thu Nov 25 15:11:42 2010 +0000
text: Optimise get_preferred_height for single-line-mode
Don't calculate an extra layout in clutter_text_get_preferred_height for
single-line strings, when it's unnecessary. There's no need to set the
width of a layout when in single-line mode, as wrapping will not happen.
clutter/clutter-text.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
commit e1b58d9407845a249bc59cd270be50d43d34126b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Nov 29 11:19:16 2010 +0000
Update NEWS file
NEWS | 32 ++++++++++++++++++++++++++++++--
1 file changed, 30 insertions(+), 2 deletions(-)
commit 850a35f069368b645ceb8e027b6b27863dba308b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Nov 29 10:59:16 2010 +0000
shader-effect: Remove unused function
The reset_uniforms() internal function is not used any more because the
CoglProgram cannot be reset post-creation - hence the uniforms cannot
change.
clutter/clutter-shader-effect.c | 50 +++++++++++++----------------------------
1 file changed, 16 insertions(+), 34 deletions(-)
commit 08087c965bf312513f98a53bf3220e92c372d131
Author: Neil Roberts <neil@linux.intel.com>
Date: Sat Nov 27 16:26:20 2010 +0000
ClutterShaderEffect: Don't throw away the program for a new actor
Previously when the shader effect is used with a new actor it would
end up throwing away the old program. I don't think this is neccessary
and it means if you use an effect to temporarily bind to an actor then
it will recompile the shader whenever it is applied.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2454
clutter/clutter-shader-effect.c | 42 +++++++++++++++++++----------------------
1 file changed, 19 insertions(+), 23 deletions(-)
commit 2dc9e0dc2941a1f805e71a656585037ced0ed721
Author: Neil Roberts <neil@linux.intel.com>
Date: Sat Nov 27 16:27:59 2010 +0000
ClutterOffscreenEffect: Don't throw away the material for a new actor
When a new actor is set for ClutterOffscreenEffect it would throw away
the old material. I don't think there is anything specifically tied to
the actor in the material so throwing away just loses Cogl's cached
state about the material. This ends up relinking the shader every time
a new actor is set in ClutterShaderEffect.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2454
clutter/clutter-offscreen-effect.c | 6 ------
1 file changed, 6 deletions(-)
commit b63e9ee8f8717dbf73e15df1e9a9d115dcb45504
Author: Tomeu Vizoso <tomeu.vizoso@collabora.co.uk>
Date: Sat Nov 27 16:07:01 2010 +0100
Don't bail out from creating the FBO if we don't have it yet.
This happens when reattaching an effect to another actor.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2453
clutter/clutter-offscreen-effect.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
commit 47d63c1c550776de52841f3d5508f20b48f5d722
Author: Tomeu Vizoso <tomeu.vizoso@collabora.co.uk>
Date: Sat Nov 27 16:04:50 2010 +0100
Set the signal handler to 0 when disconnecting it.
Otherwise we'll try to disconnect it again later.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2452
clutter/clutter-actor-meta.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
commit 215d87abe9ccfe98cbf0e5e73f5c8edf4106a7ce
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Nov 29 08:55:13 2010 +0000
shader-effect: Zero out ShaderUniform
Do not use the compiler to zero the first field of the GValue member,
since it's apparently non-portable. As we're allocating memory anyway we
can let the slice allocator do the zero-ing for us.
Mentioned in: http://bugzilla.clutter-project.org/show_bug.cgi?id=2455
clutter/clutter-shader-effect.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
commit 21e47d4280e27393d7510e232a1b1ee19b426032
Author: Neil Roberts <neil@linux.intel.com>
Date: Fri Nov 26 15:23:15 2010 +0000
cogl_pipeline_equal: Fix the comparison for layer texture equality
Before commit 49898d43 CoglPipeline would compare whether a pipeline
layer's texture is equal by fetching the underlying GL handle. I
changed that so that it would only compare the CoglHandles because
that commit removes the GL handle texture overrides and sliced
textures instead log the underlying primitive texture. However I
forgot that the primitives don't always use
_cogl_texture_foreach_sub_texture_in_region when the quad fits within
the single texture so it won't use a texture override. This meant that
atlas textures and sub textures get logged with the atlas handle so
the comparison still needs to be done using the GL handles. It might
be nice to add a CoglTexture virtual to get the underlying primitive
texture instead to avoid having the pipeline poke around with GL
handles.
clutter/cogl/cogl/cogl-pipeline.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
commit b424bd75124c4dc34510b056376a7f04f4620e53
Author: Robert Bragg <robert@linux.intel.com>
Date: Mon Nov 1 13:53:16 2010 +0000
tests: Adds test-cogl-perf micro benchmark
This is mostly a stub, starting point for a one-stop Cogl
micro-benchmarking tool. The first test it adds is one that tries to
hammer the Cogl journal, but no doubt there are lots of other things we
should be regularly testing. Currently the aim is that the tool will be
able to also generate reports which we can collect to keep track of
performance changes over time.
tests/micro-bench/Makefile.am | 4 +-
tests/micro-bench/test-cogl-perf.c | 161 +++++++++++++++++++++++++++++++++++++
2 files changed, 164 insertions(+), 1 deletion(-)
commit 58a467c9270ec325431fc963aa8a862ae69fcabf
Author: Robert Bragg <robert@linux.intel.com>
Date: Thu Nov 25 20:12:36 2010 +0000
primitives: avoid leaking polygon override materials
If we have to make override changes to the user's source material to
handle cogl_polygon then we need to make sure we unref the override
material at the end.
clutter/cogl/cogl/cogl-primitives.c | 3 +++
1 file changed, 3 insertions(+)
commit 01b93537ab9743dfd6aa2f0c3d4499420ee860cd
Author: Alexandre Quessy <alexandre@quessy.net>
Date: Thu Nov 25 13:13:51 2010 -0500
Fixed "the the" repetitions in some doc strings
http://bugzilla.clutter-project.org/show_bug.cgi?id=2450
clutter/clutter-actor.c | 6 +++---
clutter/clutter-stage.c | 2 +-
clutter/clutter-text.c | 2 +-
clutter/cogl/cogl/cogl-fixed.c | 2 +-
clutter/cogl/cogl/cogl-vertex-buffer.c | 2 +-
doc/cookbook/animations.xml | 2 +-
doc/cookbook/events.xml | 2 +-
7 files changed, 9 insertions(+), 9 deletions(-)
commit 3729e47ef68dd0f4257563985d784b687acce5d2
Author: Robert Bragg <robert@linux.intel.com>
Date: Thu Nov 25 13:19:59 2010 +0000
pipeline: Simplify layer change notifications to backend
Previously we used the layers->backend_priv[] members to determine when
to notify backends about layer changes, but it entirely up to the
backends if they want to associate private state with layers, even
though they may still be interested in layer change notifications (they
may associate layer related state with the owner pipeline).
We now make the observation that in
_cogl_pipeline_backend_layer_change_notify we should be able to assume
there can only be one backend currently associated with the layer
because we wouldn't allow changes to a layer with multiple dependants.
This means we can determine the backend to notify by looking at the
owner pipeline instead.
clutter/cogl/cogl/cogl-pipeline.c | 22 ++++++++++------------
1 file changed, 10 insertions(+), 12 deletions(-)
commit 6ddb8397110f6e6998e0262e5d3dd604cd93d670
Author: Neil Roberts <neil@linux.intel.com>
Date: Thu Nov 25 10:56:50 2010 +0000
clutter-offscreen-effect: Don't recreate the material when FBO changes
Previously whenever the size of the FBO changes it would create a new
material and attach the texture to it. This is not good for Cogl
because it throws away any cached state for the material. In
test-rotate the size of the FBO changes constantly so it effectively
uses a new material every paint. For shader effects this also ends up
relinking the shader every paint because the linked programs are part
of the material state.
clutter/clutter-offscreen-effect.c | 12 +++++-------
1 file changed, 5 insertions(+), 7 deletions(-)
commit 1b2a748d6c180454f0501859b4b02dc8c94d75e0
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Nov 24 18:37:47 2010 +0000
cogl-context: Get rid of the features_cached member
The features_cached member of CoglContext is intended to mark when
we've calculated the features so that we know if they are ready in
cogl_get_features. However we always intialize the features while
creating the context so features_cached will never be FALSE so it's
not useful. We also had the odd behaviour that the COGL_DEBUG feature
overrides were only applied in the first call to
cogl_get_features. However there are other functions that use the
feature flags such as cogl_features_available that don't use this
function so in some cases the feature flags will be interpreted before
the overrides are applied. This patch makes it always initialize the
features and apply the overrides immediately while creating the
context. This fixes a problem with COGL_DEBUG=disable-arbfp where the
first material flushed is done before any call to cogl_get_features so
it may still use ARBfp.
clutter/cogl/cogl/cogl-context.c | 24 +++++++++++++++++++++++-
clutter/cogl/cogl/cogl-context.h | 1 -
clutter/cogl/cogl/cogl.c | 24 ------------------------
clutter/cogl/cogl/driver/gl/cogl-gl.c | 1 -
clutter/cogl/cogl/driver/gles/cogl-gles.c | 1 -
5 files changed, 23 insertions(+), 28 deletions(-)
commit b9176e8672fa56cf627b3d47e06598338d32e5ea
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Nov 24 17:42:34 2010 +0000
Lower the priority of the GLSL pipeline backend
Now that the GLSL backend can generate code it can effectively handle
any pipeline unless there is an ARBfp program. However with current
open source GL drivers the ARBfp compiler is more stable so it makes
sense to prefer ARBfp when possible. The GLSL backend is also lower
than the fixed function backend on the assumption that any driver that
supports GLSL will also support ARBfp so it's quicker to try the fixed
function backend next.
clutter/cogl/cogl/cogl-pipeline-private.h | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
commit d19f6212ce84894a79554f183d001deb25464721
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Nov 24 17:29:00 2010 +0000
Add a COGL_DEBUG option to disable the fixed function pipeline backend
This adds COGL_DEBUG=disable-fixed to disable the fixed function
pipeline backend. This is needed to test the GLSL shader generation
because otherwise the fixed function backend would always override it.
clutter/cogl/cogl/cogl-debug-options.h | 5 +++++
clutter/cogl/cogl/cogl-debug.c | 1 +
clutter/cogl/cogl/cogl-debug.h | 15 ++++++++-------
clutter/cogl/cogl/cogl-pipeline-fixed.c | 3 +++
4 files changed, 17 insertions(+), 7 deletions(-)
commit 577d65c2c964aba9046aa07ef76aaf1a99c32b70
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Nov 24 17:33:07 2010 +0000
Don't use the fixed function backend if there is a user program
The fixed function pipeline backend can't handle a user program so it
should bail out if one is given.
clutter/cogl/cogl/cogl-pipeline-fixed.c | 6 ++++++
1 file changed, 6 insertions(+)
commit aa498072e075cc1ef4a85a0d14fb7b78ba749e3a
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Nov 24 17:37:55 2010 +0000
Add a warning message when no usable Cogl pipeline backend is found
If none of the pipeline backends can handle the state then it now
displays a warning so the developer has a chance to work out what's
going on.
clutter/cogl/cogl/cogl-pipeline-opengl.c | 3 +++
1 file changed, 3 insertions(+)
commit 289e880efd4b7e2434619cbbe18ae444d4c52fd8
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Nov 24 15:30:56 2010 +0000
cogl-pipeline-glsl: Don't use gl_PointCoord on OpenGL
We don't want to use gl_PointCoord to implement point sprites on big
GL because in that case we already use glTexEnv(GL_COORD_REPLACE) to
replace the texture coords with the point sprite coords. Although GL
also supports the gl_PointCoord variable, it requires GLSL 1.2 which
would mean we would have to declare the GLSL version and check for
it. We continue to use gl_PointCoord for GLES2 because it has no
glTexEnv function.
clutter/cogl/cogl/cogl-pipeline-glsl.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
commit 9c32d07453fbc06c44e8c0fca6ef6e85f23ebf0b
Author: Neil Roberts <neil@linux.intel.com>
Date: Sat Jul 17 14:11:02 2010 +0100
Add a conformance test that uses a vertex shader with no frag shader
This creates a material which users a layer to override the color of
the rectangle. A simple vertex shader is then created which just
emulates the fixed function pipeline. No fragment shader is
added. This demonstrates a bug where the layer state is getting
ignored when a vertex shader is in use.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2221
tests/conform/Makefile.am | 1 +
tests/conform/test-cogl-just-vertex-shader.c | 135 +++++++++++++++++++++++++++
tests/conform/test-conform-main.c | 2 +
3 files changed, 138 insertions(+)
commit a50010fb408294dce2d1205fe3a70aeead39c192
Author: Neil Roberts <neil@linux.intel.com>
Date: Tue Nov 23 14:47:17 2010 +0000
Remove the fragment shader generation from the GLES2 wrapper
The GLES2 wrapper no longer needs to generate any fragment shader
state because the GLSL pipeline backend will always give the wrapper a
custom fragment shader. This simplifies a lot of the state comparison
done by the wrapper. The fog generation is also removed even though
it's actually part of the vertex shader because only the fixed
function pipeline backend actually calls the fog functions so it would
be disabled when using any of the other backends anyway. We can fix
this when the two shader backends also start generating vertex
shaders.
clutter/cogl/cogl/Makefile.am | 5 +-
clutter/cogl/cogl/cogl-pipeline-opengl.c | 8 +
.../driver/gles/cogl-fixed-fragment-shader.glsl | 64 --
clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.c | 737 +--------------------
clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.h | 69 +-
5 files changed, 22 insertions(+), 861 deletions(-)
commit 987e3c32dc733b5f6942a10651750080730272e6
Author: Neil Roberts <neil@linux.intel.com>
Date: Tue Nov 23 14:51:49 2010 +0000
Disable the fixed function backend for GLES2
GLES2 doesn't really support fixed function so if we disable it we can
remove the fixed function wrappers from the GLES2 Cogl backend.
clutter/cogl/cogl/cogl-pipeline-fixed.c | 11 -----------
clutter/cogl/cogl/cogl-pipeline-private.h | 4 +---
clutter/cogl/cogl/cogl-pipeline.c | 2 ++
3 files changed, 3 insertions(+), 14 deletions(-)
commit 3504491b46246ffe912939defa17d013f9a27b46
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Nov 22 18:33:49 2010 +0000
cogl-pipeline-glsl: Generate the alpha test snippet under GLES2
GLES2 has no glAlphaFunc function so we need to simulate the behaviour
in the fragment shader. The alpha test function is simulated with an
if-statement and a discard statement. The reference value is stored as
a uniform.
clutter/cogl/cogl/cogl-pipeline-glsl.c | 144 ++++++++++++++++++++++++++++++++-
1 file changed, 140 insertions(+), 4 deletions(-)
commit c3582b77dfc553528e49a8f3a1373a787cf64648
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Nov 22 18:32:43 2010 +0000
cogl-pipeline: Add getters for the alpha test state
This adds two public functions:
cogl_pipeline_get_alpha_test_function
and
cogl_pipeline_get_alpha_test_reference.
clutter/cogl/cogl/cogl-pipeline.c | 25 +++++++++++++++++++++++++
clutter/cogl/cogl/cogl-pipeline.h | 22 ++++++++++++++++++++++
2 files changed, 47 insertions(+)
commit 959846326fa138d9611212f0e1c6626e187984b8
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Nov 22 18:29:50 2010 +0000
cogl: Separate out state flags for the alpha test func and ref
Previously the flag to mark the differences for the alpha test
function and reference value were conflated into one. However this is
awkward when generating shader code to simulate the alpha testing for
GLES 2 because in that case changing the function would need a
different program but changing the reference value just requires
updating a uniform. This patch makes the function and reference have
their own state flags.
clutter/cogl/cogl/cogl-pipeline-opengl.c | 3 +-
clutter/cogl/cogl/cogl-pipeline-private.h | 25 ++++---
clutter/cogl/cogl/cogl-pipeline.c | 110 +++++++++++++++++++++++-------
3 files changed, 102 insertions(+), 36 deletions(-)
commit 124441aade679834ce7e34f38f9e10bd829aa76b
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Nov 22 16:44:11 2010 +0000
Remove the disabling of layer constants for GLES2
The GLSL shader generation supports layer combine constants so there's
no need to disable it for GLES2. It looks like there was also code for
it in the GLES2 wrapper so I'm not sure why it was disabled in the
first place.
clutter/cogl/cogl/cogl-blend-string.c | 10 ----------
1 file changed, 10 deletions(-)
commit 3fa73735c02e2e6471774f2a4253317e424564ee
Author: Neil Roberts <neil@linux.intel.com>
Date: Fri Nov 19 10:44:27 2010 +0000
Generate GLSL in the CoglPipeline GLSL backend
The GLSL pipeline backend can now generate code to represent the
pipeline state in a similar way to the ARBfp backend. Most of the code
for this is taken from the GLES 2 wrapper.
clutter/cogl/cogl/cogl-context.c | 1 +
clutter/cogl/cogl/cogl-context.h | 1 +
clutter/cogl/cogl/cogl-pipeline-glsl.c | 772 ++++++++++++++++++++++++++++++---
3 files changed, 702 insertions(+), 72 deletions(-)
commit 6246c2bd6cc5174529f5a6c5efb7daf44c131b6b
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Nov 22 12:15:35 2010 +0000
Move the cogl shader boilerplate setting code to a separate function
_cogl_shader_compile_real had some code to create a set of strings to
combine the boilerplate code with a shader before calling
glShaderSource. This has now been moved to its own internal function
so that it could be used from the GLSL pipeline backend as well.
clutter/cogl/cogl/cogl-shader-private.h | 8 +++
clutter/cogl/cogl/cogl-shader.c | 96 +++++++++++++++++++++++++--------
2 files changed, 82 insertions(+), 22 deletions(-)
commit 339fc68bcbc15dbb212684be5cb4155cdaf4c836
Author: Neil Roberts <neil@linux.intel.com>
Date: Fri Nov 19 15:42:26 2010 +0000
Move need_texture_combine_separate to cogl-pipeline
need_texture_combine_separate is moved to cogl-pipeline.c and renamed
to _cogl_pipeline_need_texture_combine_separate. The function is
needed by both the ARBfp and GLSL codegen backends so it makes sense to
share it.
clutter/cogl/cogl/cogl-pipeline-arbfp.c | 75 +------------------------------
clutter/cogl/cogl/cogl-pipeline-private.h | 4 ++
clutter/cogl/cogl/cogl-pipeline.c | 74 ++++++++++++++++++++++++++++++
3 files changed, 79 insertions(+), 74 deletions(-)
commit 9bbb088a2ad3e7758b65f83c181e0603350acfc1
Author: Neil Roberts <neil@linux.intel.com>
Date: Fri Nov 19 10:43:52 2010 +0000
Move find_arbfp_authority to cogl-pipeline.c
The code for finding the arbfp authority for a pipeline should be the
same as finding the GLSL authority. So that the code can be shared the
function has been moved to cogl-pipeline.c and renamed to
_cogl_pipeline_find_codegen_authority.
clutter/cogl/cogl/cogl-pipeline-arbfp.c | 145 +-----------------------------
clutter/cogl/cogl/cogl-pipeline-private.h | 4 +
clutter/cogl/cogl/cogl-pipeline.c | 142 +++++++++++++++++++++++++++++
3 files changed, 147 insertions(+), 144 deletions(-)
commit e57a132f940d1b0f1c66720096c446e4f04bf4dc
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Nov 1 17:25:26 2010 +0000
cogl: Rename arbfp_source_buffer to fragment_source_buffer
Only one of the material backends can be generating code at the same
time so it seems to make sense to share the same source buffer between
arbfp and glsl. The new name is fragment_source_buffer in case we
later want to create a new buffer for the vertex shader. That probably
couldn't share the same buffer because it will likely need to be
generated at the same time.
clutter/cogl/cogl/cogl-context.c | 2 +-
clutter/cogl/cogl/cogl-context.h | 2 +-
clutter/cogl/cogl/cogl-pipeline-arbfp.c | 6 +++---
3 files changed, 5 insertions(+), 5 deletions(-)
commit 9b5c90f441938c8044eecaf9c348c85708d45ce3
Author: Evan Nemerson <evan@coeus-group.com>
Date: Fri Nov 19 23:27:46 2010 -0800
cogl: Include exported pacakges information in GIR
http://bugzilla.clutter-project.org/show_bug.cgi?id=2438
clutter/cogl/cogl/Makefile.am | 1 +
1 file changed, 1 insertion(+)
commit f687ec6a226fa3914c6cf81fbad6b43786a2e1dc
Author: Chris Lord <chris@linux.intel.com>
Date: Wed Nov 24 16:34:21 2010 +0000
docs: Update documentation to reflect automatic map/unmap/etc.
Update the ClutterActor documentation to reflect the new automatic
map/unmap/realize/unrealize implementations.
clutter/clutter-actor.h | 6 ++++--
doc/reference/clutter/subclassing-ClutterActor.xml | 10 +---------
2 files changed, 5 insertions(+), 11 deletions(-)
commit 186d5698ceb32e3b99d52390e29c5609fa3a8ae2
Author: Chris Lord <chris@linux.intel.com>
Date: Tue Oct 26 17:09:24 2010 +0100
actor: Use the internal child list for map/unmap
Use the internal child list for the default map/unmap vfuncs. This removes
the requirement for non-container composite actors to implement their own
map/unmap functions.
clutter/clutter-actor.c | 22 ++++++++++++++--------
1 file changed, 14 insertions(+), 8 deletions(-)
commit 4752cc38b2000ba643fc9451769ebb2da9873280
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Oct 20 18:26:01 2010 +0100
actor: re-work unrealize to work with composite actors
Unrealizing an actor is a recursive process that needs to traverse the
children of an actor to ensure they are also unrealized. This maintains
the invariant that if any given actor is marked as unrealized then you
know that all its children have also been unrealized.
The previous implementation would use the container interface's
foreach_with_internals vfunc to explicitly traverse the children of
container actors but this didn't consider composite actors that aren't
containers.
Since clutter-actor now maintains an explicit list of children we can
also handle composite actors that aren't containers using
_clutter_actor_traverse.
clutter/clutter-actor.c | 57 ++++++++++++++++++++++++++++---------------------
1 file changed, 33 insertions(+), 24 deletions(-)
commit 4bda67473283b9b10a21b72df01d54447c7d557f
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Oct 20 15:40:30 2010 +0100
actor: make _clutter_actor_traverse more flexible
This makes it possible to choose the traversal order; either depth first
or breadth first and when visiting actors in a depth first order there
is now a callback called before children are traversed and one called
after. Some tasks such as unrealizing actors need to explicitly control
the traversal order to maintain the invariable that all children of an
actor are unrealized before we actually mark the parent as unrealized.
The callbacks are now passed the relative depth in the graph of the
actor being visited and instead of only being able to return a boolean
to bail out of further traversal it can now do one of: continue,
skip_children or break. To implement something like unrealize it's
desirable to skip children that you find have already been unrealized.
clutter/clutter-actor-private.h | 47 ++++++++++++-
clutter/clutter-actor.c | 146 ++++++++++++++++++++++++++++++++--------
2 files changed, 163 insertions(+), 30 deletions(-)
commit 9df6f0c52445ef9c3c5343c1f0aee63c67bffe06
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date: Tue Oct 5 13:05:45 2010 -0400
ClutterX11TexturePixmap: Optimize ConfigureEvent handling
ClutterX11TexturePixmap watches for configure events to tell when it
needs to name a new pixmap for the window. However, ConfigureEvents
occur on moves in addition to resizes, and doing round trips and
naming new pixmaps every time a window is moved is a real performance
killer.
Add clutter_x11_texture_pixmap_sync_window_internal() that takes the
size/position of the window as arguments rather than always calling
XGetWindowAttributes. This allows us to bypass all work other than
notifying the window-x/window-y properties when we get a ConfigurEvent
for a move.
The last received width/height is saved to allow us to also omit
XGetWindowAttributes on MapNotify events.
The public clutter_x11_texture_pixmap_sync_window() becomes a bit less
efficient since we no longer combine the roundtrips for
XGetWindowAttributes() and XCompositeNameWindowPixmap(), but it appears
to have no callers in current publicly available code.
Several FIXME's are added for areas where there are still weird things
going on in the code or improvements could be made.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2356
clutter/x11/clutter-x11-texture-pixmap.c | 189 +++++++++++++++++++++----------
1 file changed, 132 insertions(+), 57 deletions(-)
commit 1fdd82fcf1234a9b6c6fbcff05a62ce8f1eefcab
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Nov 17 17:31:23 2010 +0000
test-cogl-texture-get-set-data: Test the alpha component
Previously the alpha component of the test texture data was always set
to 255 and the data was read back as RGB so that the alpha component
is ignored. Now the alpha component is set to a generated value and
the data is read back a second time as RGBA to verify that Cogl is not
doing any premult conversions when the internal texture and target
data is the same.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2414
tests/conform/test-cogl-texture-get-set-data.c | 39 ++++++++++++++++++++++++--
1 file changed, 36 insertions(+), 3 deletions(-)
commit 8b4034cd06035e49bbe709daf2977d828cb0f263
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date: Fri Nov 12 11:02:13 2010 -0500
Use FBOs and use cogl_read_pixels() to efficiently read partial textures
* cogl_texture_get_data() is converted to use
_cogl_texture_foreach_sub_texture_in_region() to iterate
through the underlying textures.
* When we need to read only a portion of the underlying
texture, we set up a FBO and use _cogl_read_pixels()
to read the portion we need. This is enormously more
efficient for reading a small portion of a large atlas
texture.
* The CoglAtlasTexture, CoglSubTexture, and CoglTexture2dSliced
implementation of get_texture() are removed.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2414
clutter/cogl/cogl/cogl-atlas-texture.c | 17 +--
clutter/cogl/cogl/cogl-sub-texture.c | 70 +----------
clutter/cogl/cogl/cogl-texture-2d-sliced.c | 149 +---------------------
clutter/cogl/cogl/cogl-texture.c | 191 +++++++++++++++++++++++++++--
4 files changed, 186 insertions(+), 241 deletions(-)
commit 519b6fe6f259762f05a638716691f626b3b54f12
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Nov 17 17:57:17 2010 +0000
cogl-framebuffer: Try to track format of the framebuffer
Previously in cogl_read_pixels we assume the format of the framebuffer
is always premultiplied because that is the most likely format with
the default Cogl blend mode. However when the framebuffer is bound to
a texture we should be able to make a better guess at the format
because we know the texture keeps track of the premult status. This
patch adds an internal format member to CoglFramebuffer. For onscreen
framebuffers we still assume it is RGBA_8888_PRE but for offscreen to
textures we copy the texture format. cogl_read_pixels uses this to
determine whether the data returned by glReadPixels will be
premultiplied.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2414
clutter/cogl/cogl/cogl-framebuffer-private.h | 3 +++
clutter/cogl/cogl/cogl-framebuffer.c | 15 +++++++++++++++
clutter/cogl/cogl/cogl.c | 22 ++++++++++------------
3 files changed, 28 insertions(+), 12 deletions(-)
commit 08e1d7f57438fc563253906de735412329366b45
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Nov 17 17:45:27 2010 +0000
cogl_read_pixels: Fix the format used in GLES2
When converting the data in cogl_read_pixels it was using bmp_format
instead of the format passed in to the function. bmp_format is the
same as the passed in format except that it always has the premult bit
set. Therefore the conversion would not handle premultiply correctly.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2414
clutter/cogl/cogl/cogl.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 2bd054f886a1ecd18837e6be9e48b379b8628754
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Nov 17 15:38:20 2010 +0000
Add an internal _cogl_read_pixels_with_rowstride
This is the same as _cogl_read_pixels except that it takes a rowstride
parameter for the destination buffer. Under OpenGL setting the
rowstride this will end up calling GL_ROW_LENGTH so that the buffer
region can be directly written to. Under GLES GL_ROW_LENGTH is not
supported so it will use an intermediate buffer as it does if the
format is not GL_RGBA.
cogl_read_pixels now just calls the full version of the function with
the rowstride set to width*bpp.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2414
clutter/cogl/cogl/cogl-private.h | 10 ++++++++++
clutter/cogl/cogl/cogl.c | 39 ++++++++++++++++++++++++++++-----------
2 files changed, 38 insertions(+), 11 deletions(-)
commit b4016f64fa9c82266e4827fb06826319a418d9d9
Author: Neil Roberts <neil@linux.intel.com>
Date: Thu Nov 11 15:28:44 2010 +0000
Add an internal _cogl_offscreen_new_to_texture_full function
This function is the same as cogl_offscreen_new_to_texture but it
takes a level parameter and a set of flags so that FBOs can be used to
render to higher mipmap levels and to disable the depth and stencil
buffers. cogl_offscreen_new_to_texture now just calls the new function
with the level set to zero. This function could be useful in a few
places in Cogl where we want to use FBOs as an implementation detail
such as when copying between textures.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2414
clutter/cogl/cogl/cogl-framebuffer-private.h | 24 +++++++
clutter/cogl/cogl/cogl-framebuffer.c | 100 ++++++++++++++++++++-------
2 files changed, 100 insertions(+), 24 deletions(-)
commit d52bd995a6a5012fc363b607a9ac79b2748087db
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date: Fri Nov 12 10:58:59 2010 -0500
Test slicing when getting data in both directions
http://bugzilla.clutter-project.org/show_bug.cgi?id=2414
tests/conform/test-cogl-texture-get-set-data.c | 2 ++
1 file changed, 2 insertions(+)
commit a53b9febcdd60c322933e41e4ded6247da1f8bef
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Nov 23 16:48:59 2010 +0000
stage: if backend _ignoring_redraw_clips queue full redraw
In clutter_stage_real_queue_redraw we were checking to see if the
backend will ignore any subsequent redraw_clip so we can avoid the cost
of projecting the paint-volume of an actor into stage coordinates, but
we weren't ensuring that a full redraw would be queued instead we just
bailed out immediately. This makes sure to call
_clutter_stage_window_add_redraw_clip (stage_window, NULL) in this case
to make sure the backend will do an un-clipped redraw.
clutter/clutter-stage.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
commit 5f181f7265fe043025583e3a7747e9ce55bd65ba
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Nov 23 16:05:44 2010 +0000
stage-window: tweak has_redraw_clips semantics
This tweaks the semantics of the has_redraw_clips vfunc so we can assume
that at the start of a new frame there is an implied, initial,
redraw_clip that clips everything (i.e. nothing would be redrawn) so in
that case we would expect the has_redraw_clips vfunc to return True at
the start of a new frame for backends that support clipping.
Previously there was an ambiguity when this function returned False
since it could either mean a full screen redraw had been queued or it
could mean that the clip state wasn't yet initialized for that frame.
This would result in _clutter_stage_has_full_redraw_queued() returning
True at the start of a new frame even before any actors have been
updated, which in turn meant we would incorrectly ignore queue_redraw
requests for actors, believing them to be redundant.
clutter/clutter-stage-window.c | 16 ++++++++++++++++
clutter/egl/clutter-stage-egl.c | 19 +++++++++++++------
clutter/glx/clutter-stage-glx.c | 21 ++++++++++++++-------
3 files changed, 43 insertions(+), 13 deletions(-)
commit c9d0f8b26e8ca6e67b52a1cc2a54d247919d09a9
Author: Elliot Smith <elliot.smith@intel.com>
Date: Wed Nov 24 12:44:35 2010 +0000
cookbook: Add recipe for animated scaling of an actor
Recipe explains how to animate scaling a single actor.
Also covers scaling vs. resizing, scale center, and
scaling within layouts and containers.
The first example shows how animations around each scale
gravity look, as well as tracking the transformed position
and size of the actor and displaying those.
The second example is a simple image viewer with zoom in/out
using scaling.
doc/cookbook/animations.xml | 305 +++++++++++++++++++++++++++++++++++++-------
1 file changed, 257 insertions(+), 48 deletions(-)
commit ee9a4d02bba8bb0cf6ea73c5cdcce49fb29f786e
Author: Elliot Smith <elliot.smith@intel.com>
Date: Wed Nov 24 12:22:12 2010 +0000
cookbook: Add example of scaling a texture
Added a simple application for scaling a
texture while keeping the mouse pointer over
the same coordinates on its surface.
doc/cookbook/examples/Makefile.am | 2 +
doc/cookbook/examples/animations-scaling-zoom.c | 155 ++++++++++++++++++++++++
2 files changed, 157 insertions(+)
commit c8f112876e69ca2aeb9eb202c504bcf24ecab921
Author: Elliot Smith <elliot.smith@intel.com>
Date: Fri Nov 19 14:52:44 2010 +0000
cookbook: Added "animated scaling" recipe skeleton
doc/cookbook/animations.xml | 132 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 132 insertions(+)
commit b47b2f474910ead5b72eae88ebc53c2f667b93d7
Author: Elliot Smith <elliot.smith@intel.com>
Date: Fri Nov 19 14:29:39 2010 +0000
cookbook: Added animated scaling example
Added an example showing scaling of an actor on
each of the scaling gravity settings (NORTH_WEST, NORTH etc.),
with a mark indicating the center being used.
Displays the transformed size and position, updated
on each paint of the actor.
doc/cookbook/examples/Makefile.am | 2 +
doc/cookbook/examples/animations-scaling.c | 183 +++++++++++++++++++++++++++++
2 files changed, 185 insertions(+)
commit 446107f19d59ab95c918e566b5d8efdb8c0841c8
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Nov 24 12:02:38 2010 +0000
x11: Check for initialized context when enabling ARGB visuals
Instead of using the backend singleton. This allows lazy initialization
of Clutter.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2435
clutter/x11/clutter-backend-x11.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 6a552e27abfa2e0f0705ac935872e5393cdf1fdc
Author: Tomeu Vizoso <tomeu.vizoso@collabora.co.uk>
Date: Tue Nov 23 17:06:52 2010 +0100
Fix API docs for ClutterShaderEffects
It can implement now both fragment and vertex shaders.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2442
clutter/clutter-shader-effect.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
commit 65d0ce607efe6cbc72e3f1f4518c8cf5d038ceee
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Nov 23 14:31:45 2010 +0000
stage: Report an unknown paint volume.
Previously we were leaving it up to the default implementation of
get_paint_volume in ClutterGroup to handle the stage by determining the
bounding box of all contained children. This isn't the true bounding box
of the stage though since the stage is responsible for clearing the
entire framebuffer at the start of the frame. This adds a
get_paint_volume implementation for ClutterStage which simply returns
False which means Clutter has to assume it covers everything.
clutter/clutter-stage.c | 10 ++++++++++
1 file changed, 10 insertions(+)
commit 52bf38c38c4b1d0c787cccf5e1ea2518a67ac1bf
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Nov 23 14:30:08 2010 +0000
x11: only queue clipped redraw for Expose
When we handle Expose events we try and queue a clipped redraw of the
stage, but for some reason we were also redundantly calling
clutter_actor_queue_redraw for the stage which would negate the request
to queue a clipped redraw.
clutter/x11/clutter-event-x11.c | 2 --
1 file changed, 2 deletions(-)
commit 1b7c895a2d041a36ad9279044e47542be8c0ba95
Author: Neil Roberts <neil@linux.intel.com>
Date: Tue Nov 23 14:07:16 2010 +0000
cogl-texture-driver-gles: Fix image height for uploading 3D textures
When uploading a 3D texture with an awkward rowstride, on GLES Cogl
will copy the images to an intermediate buffer to pass to GL. However
it was using the wrong height when copying the data so it would end up
overflowing the buffer and crashing.
clutter/cogl/cogl/driver/gles/cogl-texture-driver-gles.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 01c6ccfa1336216c74829386912806ca02e1ab12
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Nov 23 13:05:47 2010 +0000
pipeline: Use WrapModeInternal in the Layer struct
Since we're using CoglPipelineWrapModeInternal in the internal API
anyway, and the compiler complains loudly when comparing two enumeration
types without casting, the PipelineLayer struct should store the
wrap modes using the internal enumeration.
clutter/cogl/cogl/cogl-pipeline-private.h | 44 +++++++++++++++----------------
1 file changed, 22 insertions(+), 22 deletions(-)
commit 8e6fac38fa73ec4c8a67835a1128e6b1a9889302
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date: Sat Nov 13 11:29:49 2010 -0500
Don't update or use last_paint_box when painting inside a clone
The last_paint_box for an actor represents its "normal" position - we
shouldn't update it or use it to cull drawing if we are painting
a clone of the actor. Tracking whether we are painting a clone is
done by adding _clutter_actor_push/pop_clone_paint() and a global
"clone paint level".
http://bugzilla.clutter-project.org/show_bug.cgi?id=2396
clutter/clutter-actor-private.h | 3 +++
clutter/clutter-actor.c | 42 ++++++++++++++++++++++++++++++++++-------
clutter/clutter-clone.c | 2 ++
3 files changed, 40 insertions(+), 7 deletions(-)
commit c68280556ee762c840bb8c73da16d505b6efe1ac
Author: Robert Bragg <robert@linux.intel.com>
Date: Mon Nov 22 15:51:15 2010 +0000
clip-stack: combine modelview-projection in set_clip_planes
When using clip planes and we we have to project some vertices into
screen coordinates we used to transform those by the modelview and then
the projection matrix separately. Now we combine the modelview and
projection matrix and then use that to transform the vertices in one
step instead.
clutter/cogl/cogl/cogl-clip-stack.c | 24 ++++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)
commit 99f4832c28512e8b670b3681eeb228b4c8c08d14
Author: Robert Bragg <robert@linux.intel.com>
Date: Mon Nov 22 12:44:36 2010 +0000
journal: remove possability of fallback layers
When logging quads in the journal it used to be possible to specify a
mask of fallback layers (layers where a default white texture should be
used in-place of the corresponding texture in the current source
pipeline). Since we now handle fallbacks for cogl_rectangle* primitives
when validating the pipeline up-front before logging in the journal we
no longer need the ability for the journal to apply fallbacks too.
clutter/cogl/cogl/cogl-journal-private.h | 1 -
clutter/cogl/cogl/cogl-journal.c | 6 ------
clutter/cogl/cogl/cogl-primitives.c | 2 --
3 files changed, 9 deletions(-)
commit 305bb124b71b8fd531009f050cc83d89af1dfb93
Author: Robert Bragg <robert@linux.intel.com>
Date: Fri Nov 12 16:08:25 2010 +0000
use cogl_matrix_transform_points in clutter
When transforming a paint-volume or transforming allocation vertices we
are transforming more than one point at a time so we can batch those
together with cogl_matrix_transform_points instead of
cogl_matrix_transform_point. Also in both of these cases we don't need
to do a projective transform so using cogl_matrix_transform_points also
lets us reduce the per-vertex computation.
clutter/clutter-actor.c | 23 ++++++++---------------
clutter/clutter-paint-volume.c | 18 +++++++-----------
2 files changed, 15 insertions(+), 26 deletions(-)
commit 2dba3e8cbf4d130701510768b5c766bb7ef070e8
Author: Robert Bragg <robert@linux.intel.com>
Date: Fri Nov 12 13:35:24 2010 +0000
matrix: Adds experimental cogl_matrix_{transform,project}_points
This add two new function that allows us to transform or project an
array of points instead of only transforming one point at a time. Recent
benchmarking has shown cogl_matrix_transform_point to be a bottleneck
sometimes, so this should allow us to reduce the overhead when
transforming lots of vertices at the same time, and also reduce the cost
of 3 component, non-projective transforms.
For now they are marked as experimental (you have to define
COGL_ENABLE_EXPERIMENTAL_API) because there is some concern that it
introduces some inconsistent naming. cogl_matrix_transform_point would
have to be renamed cogl_matrix_project_point to be consistent, but that
would be an API break.
clutter/cogl/cogl/cogl-matrix.c | 346 +++++++++++++++++++++++++++++++++++
clutter/cogl/cogl/cogl-matrix.h | 123 +++++++++++++
doc/reference/cogl/cogl-sections.txt | 2 +-
3 files changed, 470 insertions(+), 1 deletion(-)
commit 4307e65f937538a6251738a8450babce5ed9e8e6
Author: Robert Bragg <robert@linux.intel.com>
Date: Thu Nov 11 16:28:45 2010 +0000
primitives: validate with _cogl_pipeline_foreach_layer
Switch _cogl_rectangles_with_multitexture_coords to using
_cogl_pipeline_foreach_layer to iterate the layers of a pipeline when
validating instead of iterating the pipelines internal list, which is
risky since any modifications to pipelines (even to an override pipeline
derived from the original), could potentially corrupt the list as it is
being iterated.
clutter/cogl/cogl/cogl-pipeline-private.h | 3 +-
clutter/cogl/cogl/cogl-pipeline.c | 6 +-
clutter/cogl/cogl/cogl-primitives.c | 324 ++++++++++++++++--------------
3 files changed, 180 insertions(+), 153 deletions(-)
commit fb564cc2ca9579c3b444f5fd5c59ee4da040b7da
Author: Robert Bragg <robert@linux.intel.com>
Date: Thu Nov 11 15:08:38 2010 +0000
cogl: remove WrapModeOverrides from FlushOptions
This removes the possibility to specify wrap mode overrides within a
CoglPipelineFlushOptions struct since the right way to handle these
overrides is by copying the user's material and making the changes to
that copy before flushing. All primitives code has already switched away
from using these wrap mode overrides so this patch just removes unused
code and types. It also remove the wrap_mode_overrides argument for
_cogl_journal_log_quad.
clutter/cogl/cogl/cogl-journal-private.h | 2 --
clutter/cogl/cogl/cogl-journal.c | 7 ----
clutter/cogl/cogl/cogl-pipeline-private.h | 32 +-----------------
clutter/cogl/cogl/cogl-pipeline.c | 55 -------------------------------
clutter/cogl/cogl/cogl-primitives.c | 2 --
5 files changed, 1 insertion(+), 97 deletions(-)
commit b8c9ee7e88ca6d1c2e9bc6380740dbf19096e71e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Nov 23 10:26:15 2010 +0000
x11: Ignore NULL settings
Prevent a segfault when dealing with XSETTINGS_ACTION_DELETE.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2441
clutter/x11/clutter-backend-x11.c | 3 +++
1 file changed, 3 insertions(+)
commit 1db8b8a70e9c198a04d7c3e3e6365513f5d6858d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Nov 22 17:01:17 2010 +0000
color: Do not shadow a variable
Avoid a warning.
clutter/clutter-color.c | 2 --
1 file changed, 2 deletions(-)
commit 88049013702032895a9cb7ed60f661d58443130d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Nov 22 15:20:55 2010 +0000
Update NEWS
NEWS | 13 +++++++++++++
1 file changed, 13 insertions(+)
commit f4531aef4bea347f84b6ace38f6df7b34cdbe13c
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Nov 22 15:07:01 2010 +0000
color: And finally, add hsla() support
Missed it when reading the CSS spec.
clutter/clutter-color.c | 35 ++++++++++++++++++++++++++++++++---
1 file changed, 32 insertions(+), 3 deletions(-)
commit e86db85cd2f0bbdbb65924a8f9ae2575e1212d14
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Nov 22 15:02:47 2010 +0000
color: Support the CSS hsl() notation
Since we support the rgb() and rgba() notations we might as well also
support the hsl() one.
clutter/clutter-color.c | 70 ++++++++++++++++++++++++++++++++++++++++++++++
tests/conform/test-color.c | 14 ++++++++++
2 files changed, 84 insertions(+)
commit ab6da347f61c0fb2249bbab9d03545121752d633
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Nov 22 14:22:56 2010 +0000
color: Support CSS color definitions
The CSS Color Module 3, available at:
http://www.w3.org/TR/css3-color/
allows defining colors as:
rgb ( r, g, b )
rgba ( r, g, b, a)
along with the usual hexadecimal and named notations.
The r, g, and b channels can be:
• integers between 0 and 255
• percentages, between 0% and 100%
The alpha channel, if included using the rgba() modifier, can be a
floating point value between 0.0 and 1.0.
The ClutterColor parser should support this notation.
clutter/clutter-color.c | 135 +++++++++++++++++++++++++++++++++++++++++++--
tests/conform/test-color.c | 54 ++++++++++++++++--
2 files changed, 178 insertions(+), 11 deletions(-)
commit ee0b8c439e0211e1af8ad55d17d2695e17879f0a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Nov 22 10:16:45 2010 +0000
docs: Update the release notes in the README
Also updates the introductory blurb.
README | 29 ++++++++++++++++++++++++-----
1 file changed, 24 insertions(+), 5 deletions(-)
commit 3055cd1f4aec16a39e520da8d697d19c5beae711
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sat Nov 20 13:05:51 2010 +0000
docs: Include the Behaviour migration guide
I forgot to add the xinclude directive in the main document.
doc/reference/clutter/clutter-docs.xml.in | 1 +
1 file changed, 1 insertion(+)
commit 2fe8f864971f3fdfd27e1f2480aa48b0b9c4172e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sat Nov 20 11:07:45 2010 +0000
po: Post-release update
po/clutter-1.0.pot | 490 ++++++++++++++++++++++-----------------------
po/de.po | 488 ++++++++++++++++++++++-----------------------
po/fr.po | 488 ++++++++++++++++++++++-----------------------
po/id.po | 488 ++++++++++++++++++++++-----------------------
po/it.po | 573 ++++++++++++++++++++++++++++-------------------------
po/pl.po | 488 ++++++++++++++++++++++-----------------------
po/zh_CN.po | 488 ++++++++++++++++++++++-----------------------
7 files changed, 1770 insertions(+), 1733 deletions(-)
commit ac6a378177c37712b13fb25d09b7c5e2ce4f626f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sat Nov 20 11:07:29 2010 +0000
Post-release version bump to 1.5.7
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 7373cebd8d23fa88c74f680bca5d5c7445d46eb0
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sat Nov 20 10:17:51 2010 +0000
Release Clutter 1.5.6 (snapshot)
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit b674fcf3bb3acef61bb10a5726e020a4bc1310c7
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sat Nov 20 10:46:57 2010 +0000
build: Add missing cogl-shader-boilerplate.h
clutter/cogl/cogl/Makefile.am | 1 +
1 file changed, 1 insertion(+)
commit be3040fd2bca29d3d415d4baf062480f20471947
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Nov 19 18:29:43 2010 +0000
build: Add a missing file
clutter/cogl/cogl/Makefile.am | 1 +
1 file changed, 1 insertion(+)
commit e30b7b2d5a2f4468a9266085ce58b133734e3f9c
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Nov 19 18:15:29 2010 +0000
build: Don't reference non-existing files
clutter/cogl/cogl/Makefile.am | 1 -
1 file changed, 1 deletion(-)
commit 60c6312b2d11f25c631cade6cc59b9680debc6c2
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Nov 19 18:07:27 2010 +0000
Update the NEWS file
NEWS | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 63 insertions(+)
commit d39277d0cf96e2a4ac7b5cc3f587b5fba1f48610
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Nov 19 12:26:57 2010 +0000
actor: Reset the last paint box on unmap
This allows hiding + moving + showing an actor without repainting the
wrong area.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2395
clutter/clutter-actor.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
commit 346d3e40a37f2229b0a9314fd8a3c2b6c4313752
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date: Mon Nov 15 01:32:42 2010 -0500
Free state at the end of a journal flush
At the end of flushing the journal, we need to free the vertex
attributes and vertex array.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2423
clutter/cogl/cogl/cogl-journal.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
commit 1299672b5a53e004bfbc92fd89d2707c732e3586
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date: Sun Nov 14 22:59:24 2010 -0500
Actually free buffer objects
With the refactoring to centralize code into CoglBuffer,
_cogl_buffer_fini() was never actually implemented, so all GL
vertex and index buffer objects were leaked.
The duplicate call to glDeleteBuffers() in CoglPixelArray is
removed (it wasn't paying attention to whether the buffer had been
allocated as a PBO or not.)
http://bugzilla.clutter-project.org/show_bug.cgi?id=2423
clutter/cogl/cogl/cogl-buffer.c | 7 +++++++
clutter/cogl/cogl/cogl-pixel-array.c | 2 --
2 files changed, 7 insertions(+), 2 deletions(-)
commit a5c30398df59f1aca8c0bf1e1f0a32ae51e990cd
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Nov 16 13:54:15 2010 +0000
egl: Adds support for clipped redraws
This adds egl backend support for handling clipped redraws. This uses
the EGL_NOK_swap_region extension to enable the EGL backend to present a
subregion from the back buffer to the front so we don't always have to
redraw the entire stage for small updates.
clutter/egl/clutter-backend-egl.c | 81 ++++++++++++++
clutter/egl/clutter-backend-egl.h | 32 ++++++
clutter/egl/clutter-stage-egl.c | 215 +++++++++++++++++++++++++++++++++++++-
clutter/egl/clutter-stage-egl.h | 8 ++
4 files changed, 333 insertions(+), 3 deletions(-)
commit a4d3208eb57ddb3cc7eea61534b5187663d7507c
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Nov 16 13:06:08 2010 +0000
debug: Adds a COGL_DEBUG=wireframe option
This adds a COGL_DEBUG=wireframe option to visualize the underlying
geometry of the primitives being drawn via Cogl. This works for triangle
list, triangle fan, triangle strip and quad (internal only) primitives.
It also works for indexed vertex arrays.
clutter/cogl/cogl/cogl-debug-options.h | 5 +
clutter/cogl/cogl/cogl-debug.c | 3 +-
clutter/cogl/cogl/cogl-debug.h | 3 +-
clutter/cogl/cogl/cogl-vertex-attribute.c | 243 ++++++++++++++++++++++++++++++
4 files changed, 252 insertions(+), 2 deletions(-)
commit 78ac92f8e57acf8eccc20a1990bd7d619f5ebbdc
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Nov 16 08:52:49 2010 +0000
vertex-buffer: don't unref NULL object
In cogl_vertex_buffer_indices_get_for_quads() we sometimes have to
extend the length of an existing array, but when we came to unref the
previous array we didn't first check that it wasn't simply NULL.
clutter/cogl/cogl/cogl-vertex-buffer.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
commit f473c213fcc1b0095f32c909eb69a0c8172cba0e
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Nov 16 08:49:55 2010 +0000
vertex-array: Adds data arg for _vertex_array_new()
This adds an optional data argument for cogl_vertex_array_new() since it
seems that mostly every case where we use this API we follow up with a
cogl_buffer_set_data() matching the size of the new array. This
simplifies all those cases and whenever we want to delay uploading of
data then NULL can simply be passed.
clutter/cogl/cogl/cogl-journal.c | 2 +-
clutter/cogl/cogl/cogl-primitive.c | 40 +++++++---------------------------
clutter/cogl/cogl/cogl-primitives.c | 6 ++---
clutter/cogl/cogl/cogl-vertex-array.c | 11 ++++++++--
clutter/cogl/cogl/cogl-vertex-array.h | 9 ++++++--
clutter/cogl/cogl/cogl-vertex-buffer.c | 3 ++-
clutter/cogl/cogl/cogl2-path.c | 12 ++++------
7 files changed, 33 insertions(+), 50 deletions(-)
commit 804dd5d5fc2b68b64032cac30268372303be24bf
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Nov 16 08:41:29 2010 +0000
indices: Makes cogl_indices_get_array public
This makes the previously internal only _cogl_indices_get_array API
public as cogl_indices_get_array (Though marked as experimental)
clutter/cogl/cogl/cogl-indices-private.h | 3 ---
clutter/cogl/cogl/cogl-indices.c | 2 +-
clutter/cogl/cogl/cogl-indices.h | 3 +++
clutter/cogl/cogl/cogl-vertex-attribute.c | 2 +-
4 files changed, 5 insertions(+), 5 deletions(-)
commit dfc671da5960fccf478131aa3136c25341979e61
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Nov 16 08:38:59 2010 +0000
build: cogl-clip-state.h depends on cogl-clip-stack.h
This adds a #include "cogl-clip-stack.h" to cogl-clip-state.h which
depends on the CoglClipStack typedef.
clutter/cogl/cogl/cogl-clip-state.h | 2 ++
1 file changed, 2 insertions(+)
commit 6f68bb365694bfd82737f6d1c577af38280d099b
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Nov 10 18:27:00 2010 +0000
debug: disable-culling was disabling clipped redraws
there was a typo and the disable-culling option was actually disabling
clipped redraws.
clutter/clutter-main.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 694632ce95bfc2c14791214acc435743dba4df2e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Nov 18 18:23:49 2010 +0000
build: Re-arrange headers
Try to minimize the included headers, especially in clutter-actor.h.
clutter/clutter-actor.c | 1 +
clutter/clutter-actor.h | 6 ++----
clutter/clutter-color.h | 5 +----
clutter/clutter-deform-effect.h | 2 +-
clutter/clutter-effect.h | 1 -
clutter/clutter-offscreen-effect.h | 1 +
clutter/clutter-shader.h | 1 -
clutter/clutter-texture.c | 15 +++++++--------
clutter/clutter-texture.h | 2 +-
clutter/clutter-types.h | 6 +++++-
10 files changed, 19 insertions(+), 21 deletions(-)
commit 63cef64d17d3e5c22add99e8d736b6f69fac8f25
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Nov 18 14:14:37 2010 +0000
docs: Fix some wrong function/signal/property names
clutter/clutter-behaviour-scale.c | 4 ++--
clutter/clutter-behaviour.h | 2 +-
clutter/clutter-constraint.c | 4 ++--
clutter/clutter-drag-action.c | 2 +-
clutter/clutter-script.c | 2 +-
clutter/clutter-stage.c | 2 +-
clutter/clutter-stage.h | 2 +-
clutter/clutter-texture.c | 4 ++--
clutter/clutter-units.c | 2 +-
doc/cookbook/animations.xml | 2 +-
doc/reference/clutter/clutter-overview.xml | 2 +-
doc/reference/clutter/migrating-ClutterPath.xml | 2 +-
12 files changed, 15 insertions(+), 15 deletions(-)
commit b0f535037993a15e75525494c5dddecc96bbe0dd
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Nov 17 15:51:35 2010 +0000
test-layout: Port away from Behaviour
Use a simple animation with a looping+reversing timeline.
tests/interactive/test-layout.c | 24 +++++++++++++++---------
1 file changed, 15 insertions(+), 9 deletions(-)
commit eade1ab19e90b6955ead726132503f13ac346356
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Nov 10 11:51:42 2010 +0000
test-rotate: Remove the behaviour code
Use a looping animation with a shared timeline instead.
tests/interactive/test-rotate.c | 57 ++++++++++++++++++-----------------------
1 file changed, 25 insertions(+), 32 deletions(-)
commit 74a770a976250d1d3cb887d9536fac1e9fc7cdf4
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Nov 10 13:15:06 2010 +0000
docs: Add Behaviour migration guide
doc/reference/clutter/Makefile.am | 6 +-
.../clutter/migrating-ClutterBehaviour.xml | 122 +++++++++++++++++++++
2 files changed, 126 insertions(+), 2 deletions(-)
commit a35708eb74dcc3ffd474e1c07725ece7b8a4fb1a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sat Nov 6 15:54:21 2010 +0000
Deprecate ClutterBehaviour and sub-classes
The Behaviour class and its implementations have been replaced by the
new animation framework API and by the constraints for layout-related
animations.
Currently, we need to make tests build, so we undef DISABLE_DEPRECATED
in specific test cases while they get ported.
clutter/clutter-actor.c | 4 +++-
clutter/clutter-behaviour-depth.c | 15 +++++++++++++-
clutter/clutter-behaviour-depth.h | 9 +++++++++
clutter/clutter-behaviour-ellipse.c | 6 ++++--
clutter/clutter-behaviour-ellipse.h | 8 ++++++++
clutter/clutter-behaviour-opacity.c | 34 +++++++++++++++++---------------
clutter/clutter-behaviour-opacity.h | 10 +++++++++-
clutter/clutter-behaviour-path.c | 25 ++++++++++++++++++-----
clutter/clutter-behaviour-path.h | 9 +++++++++
clutter/clutter-behaviour-rotate.c | 13 ++++++------
clutter/clutter-behaviour-rotate.h | 8 ++++++++
clutter/clutter-behaviour-scale.c | 33 ++++++++++++++++++++++---------
clutter/clutter-behaviour-scale.h | 9 +++++++++
clutter/clutter-behaviour.c | 7 +++++--
clutter/clutter-behaviour.h | 12 ++++++++++-
tests/conform/test-behaviours.c | 2 ++
tests/conform/test-script-parser.c | 1 +
tests/interactive/test-actor-clone.c | 1 +
tests/interactive/test-actors.c | 1 +
tests/interactive/test-behave.c | 1 +
tests/interactive/test-depth.c | 2 ++
tests/interactive/test-layout.c | 2 ++
tests/interactive/test-multistage.c | 2 ++
tests/interactive/test-paint-wrapper.c | 2 ++
tests/interactive/test-pixmap.c | 4 +++-
tests/interactive/test-rotate.c | 1 +
tests/interactive/test-scale.c | 2 ++
tests/interactive/test-script.c | 1 +
tests/interactive/test-texture-async.c | 2 ++
tests/interactive/test-texture-quality.c | 2 ++
tests/interactive/test-threads.c | 2 ++
tests/interactive/test-viewport.c | 1 +
32 files changed, 185 insertions(+), 46 deletions(-)
commit 71a838815f4d3ea1d9e2054bbbaaf0449eae357e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Nov 17 15:27:42 2010 +0000
timeline: Add :reverse property
The :reverse property removes the pattern of connecting to the
::completed signal of a Timeline to change the direction.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2408
clutter/clutter-timeline.c | 156 +++++++++++++++++++++++++----
clutter/clutter-timeline.h | 3 +
doc/reference/clutter/clutter-sections.txt | 2 +
tests/interactive/test-behave.c | 21 +---
4 files changed, 144 insertions(+), 38 deletions(-)
commit 1ce47bb562a227f4c3bb267e2e10b54b4ded475c
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Nov 18 14:02:52 2010 +0000
docs: Remove unnecessary '#'
The hash is confusing gtk-doc.
clutter/clutter-color.h | 90 ++++++++++++++++++++++++-------------------------
1 file changed, 45 insertions(+), 45 deletions(-)
commit a94ea93bde8382691b8eea1f047b20c0c689c51f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Nov 18 10:53:01 2010 +0000
paint-volume: Do not take a reference on the actor
The paint volume structure is cached in the Actor it references, and
this causes a reference cycle.
The paint volume is going to be used when painting, so the actor must
still be valid - otherwise Clutter will bail out far before than
accessing the actor pointer in ClutterPaintVolume.
Otherwise, we could have used dispose() to check for a valid actor and
remove a reference if the actor field is !NULL; it feels less clean,
though, since we're effectively managing an extra reference on
ourselves.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2431
clutter/clutter-actor.c | 8 +++-----
clutter/clutter-paint-volume.c | 18 +++---------------
2 files changed, 6 insertions(+), 20 deletions(-)
commit 0371ba3976fafecc900123bb94822b95a1198d3a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Nov 18 11:00:08 2010 +0000
actor: Group bitfields together
clutter/clutter-actor.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
commit b55346151c3122d356d1e0af5f73bba184fbaa81
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Nov 17 19:13:55 2010 +0000
build: Cogl-2.0 API reference should be conditionally built
Building the API reference for Cogl 2.0 is fairly confusing: the API
itself is experimental and for internal use only -- though we want
feedback for it.
Let's build the API reference only when Clutter is configured with a
specific configure switch, so that people that wish to give feedback on
the API and its documentation can do it.
configure.ac | 8 ++++++++
doc/reference/Makefile.am | 8 +++++++-
2 files changed, 15 insertions(+), 1 deletion(-)
commit 8f60d5a3a2d6650bb27ebe6488fe56bf67d3d09c
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sun Nov 7 16:20:51 2010 +0000
Start using the monotonic API in GLib ≥ 2.27
Starting from the 2.27 cycle, GLib is exposing a monotonic clock with
microseconds granularity throughout the time-based API. We can start
using it, given that the old, non-monotonic version is going to be
deprecated by the same cycle.
clutter/clutter-frame-source.c | 12 +++++++++---
clutter/clutter-master-clock.c | 27 ++++++++++++++++++++-------
clutter/clutter-timeout-interval.c | 15 ++++++++++-----
clutter/clutter-timeout-pool.c | 13 ++++++++++---
4 files changed, 49 insertions(+), 18 deletions(-)
commit 68d7a5e84721966686fb066c8b62041f0889a07a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sun Nov 7 15:57:33 2010 +0000
Move away from GTimeVal
GLib 2.28 will deprecate GTimeVal and related API in favour of
standardizing on microseconds granularity for all time-based API.
Clutter should switch too.
All of the current users of GTimeVal convert to milliseconds when
doing time operations, and use GTimeVal only as storage. This can
effectively be replaced by a gint64.
The Master Clock uses a microsecond resolution, except when interacting
with the main loop itself, since the main loop has a millisecond
resolution - at least until Ryan Lortie manages to switch that too to
microseconds on Linux.
The clutter_timeline_do_tick() function was erroneously not privatized,
but it was still assumed to be private; we should just remove it from
the public symbols.
clutter/clutter-frame-source.c | 8 +++---
clutter/clutter-master-clock.c | 51 +++++++++++++++++---------------------
clutter/clutter-timeline.c | 17 ++++++-------
clutter/clutter-timeline.h | 4 +--
clutter/clutter-timeout-interval.c | 33 ++++++++++++------------
clutter/clutter-timeout-interval.h | 28 +++++++++++----------
clutter/clutter-timeout-pool.c | 16 ++++++------
7 files changed, 79 insertions(+), 78 deletions(-)
commit 8b047d0bc963389109486388ce5051a6a06d0994
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Nov 17 12:49:10 2010 +0000
docs: Move the constraints example picture about the source code
clutter/clutter-constraint.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
commit e5da5b0907264f822bf646ef7e1151bb69f1945a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Nov 17 12:47:46 2010 +0000
shaders: Fix the usage of the Cogl GLSL variables
clutter/clutter-blur-effect.c | 4 ++--
clutter/clutter-colorize-effect.c | 2 +-
clutter/clutter-desaturate-effect.c | 2 +-
3 files changed, 4 insertions(+), 4 deletions(-)
commit f96113705d0154772e39a4782925d49b74d5ad09
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Nov 17 12:14:02 2010 +0000
docs: Fix closing tag
clutter/clutter-constraint.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit a731682ac394d1b54b78dec1083d158a71e10f89
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Nov 15 16:30:12 2010 +0000
actor: Simple show/hide optimizations
Showing a visible (and hiding an invisible) actor is far less cheap than
it should be.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2422
clutter/clutter-actor.c | 65 ++++++++++++++++++++++++++++++++++---------------
1 file changed, 45 insertions(+), 20 deletions(-)
commit 66e7a38a3d9a8b2782969cf24db59909e0f99877
Author: muflone <webreg@vbsimple.net>
Date: Mon Nov 15 17:54:01 2010 +0000
po: Update Italian translation
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
po/it.po | 839 +++++++++++++++++++++++++++++++--------------------------------
1 file changed, 413 insertions(+), 426 deletions(-)
commit a32f7811447addd100bb5919ee5e0f3d1157097f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Nov 16 17:18:50 2010 +0000
docs: Break down the constraints example
clutter/clutter-constraint.c | 34 ++++++++++++++++++++++++++++++++++
1 file changed, 34 insertions(+)
commit 3777e0b38267fd21539c8ec5e7f04d6179379a3d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Nov 15 17:27:46 2010 +0000
docs: Update the constraints example image
doc/reference/clutter/constraints-example.png | Bin 2482 -> 5985 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
commit 2950cb3e78626b269555bc3a4813f9bfe17ea7fc
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Nov 15 16:02:15 2010 +0000
docs: Fix Since tags for PaintVolume-related API
clutter/clutter-paint-volume.c | 28 ++++++++++++++--------------
1 file changed, 14 insertions(+), 14 deletions(-)
commit b7fa13a52f6c7f13e81cefd774b7ac301261a673
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Nov 15 15:02:07 2010 +0000
docs: Add introductory section on Constraints
Use the snap-constraint code for the example code and screenshot.
clutter/clutter-constraint.c | 59 +++++++++++++++++++++++++-
doc/reference/clutter/Makefile.am | 2 +
doc/reference/clutter/constraints-example.png | Bin 0 -> 2482 bytes
3 files changed, 60 insertions(+), 1 deletion(-)
commit 3c15c0c9bb6befff149b8be512d7342d820b591a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Nov 10 16:37:34 2010 +0000
Add SnapConstraint
A SnapConstraint is a constraint that "snaps" the edges of two actors
together.
clutter/Makefile.am | 2 +
clutter/clutter-snap-constraint.c | 589 +++++++++++++++++++++++++++++
clutter/clutter-snap-constraint.h | 90 +++++
clutter/clutter.h | 1 +
doc/reference/clutter/clutter-docs.xml.in | 16 +-
doc/reference/clutter/clutter-sections.txt | 19 +
doc/reference/clutter/clutter.types | 1 +
tests/interactive/Makefile.am | 6 +-
tests/interactive/test-snap-constraint.c | 90 +++++
9 files changed, 808 insertions(+), 6 deletions(-)
commit b3f5a6e2ba29852f1f4a4d9b0f9efcdae1a61af0
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Nov 12 18:09:25 2010 +0000
actor: Do not queue relayouts on actors being destroyed
Simple optimization is simple.
clutter/clutter-actor.c | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
commit 0523d6db0815ed55e5e76f5d0cd879e394d9a0f6
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Nov 12 18:07:44 2010 +0000
actor: Add a get_debug_name() private Actor method
For internal usage, writing:
clutter_actor_get_name (actor) != NULL
? clutter_actor_get_name (actor)
: G_OBJECT_TYPE_NAME (actor)
is overly verbose and does two type checks. A simple, internal method
for getting the same result without type checks would be much more
appreciated.
clutter/clutter-actor-private.h | 2 ++
clutter/clutter-actor.c | 63 +++++++++++++++++++++--------------------
2 files changed, 34 insertions(+), 31 deletions(-)
commit f3295a3f36cb64e6976f3a1359e08ad680193665
Merge: 9f2c31547 63721c5db
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Nov 15 15:41:46 2010 +0000
Merge remote branch 'elliot/cookbook-opacity-values-fix'
* elliot/cookbook-opacity-values-fix:
cookbook: Fix opacity examples in recipe
cookbook: Fix incorrect value for opacity
commit 9f2c31547c7a3a36edbd5098eb51ce6c6b9b5ea1
Merge: 5f9df7e3a 8bdfa4dde
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Nov 15 15:37:42 2010 +0000
Merge remote branch 'elliot/cookbook-animations-looping'
* elliot/cookbook-animations-looping:
cookbook: Recipe for "looping animations"
cookbook: Clarify how signals are emitted during looped animation
cookbook: First draft for looping animations recipe
cookbook: Recipe skeleton for "looping animations"
cookbook: Looping animation examples
commit 5f9df7e3a0a2646fe894987443869892de69c200
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Nov 15 15:36:41 2010 +0000
Fix compilation warning by using the correct type
clutter/clutter-main.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 92e21ae936a2bf796441db629cb1576b2ef8856d
Merge: e80035331 f9d2310b7
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Nov 15 15:26:07 2010 +0000
Merge remote branch 'elliot/c90-fix'
commit 8bdfa4ddee3aed333796ef76fc650405f3d17689
Author: Elliot Smith <elliot.smith@intel.com>
Date: Mon Nov 15 11:18:26 2010 +0000
cookbook: Recipe for "looping animations"
Added a recipe giving examples of how to loop
animations for each part of the animation API (implicit,
animator, state).
The discussion covers looping a fixed number of times
and inverting a single implicit animation to create
a loop which goes back to its start on each iteration.
doc/cookbook/animations.xml | 328 ++++++++++++++++++++++++++++++++++++++++----
1 file changed, 298 insertions(+), 30 deletions(-)
commit e205bd0fdc42832d97bf022cf63faa6d5302478c
Author: Elliot Smith <elliot.smith@intel.com>
Date: Thu Nov 11 12:04:20 2010 +0000
cookbook: Clarify how signals are emitted during looped animation
Added a comment to the example code about how timeline
emits "completed" during looped animation, while the
animation itself doesn't.
doc/cookbook/examples/animations-looping-implicit.c | 4 ++++
1 file changed, 4 insertions(+)
commit 7eb248b1f0ae05e2eb165a04f37bbf8eadaf77d6
Author: Elliot Smith <elliot.smith@intel.com>
Date: Thu Nov 11 11:44:28 2010 +0000
cookbook: First draft for looping animations recipe
Includes video showing the looped animation and
basic section headings, plus outline of content and notes.
doc/cookbook/Makefile.am | 1 +
doc/cookbook/animations.xml | 87 +++++++++++++++++++++++++++--
doc/cookbook/videos/animations-looping.ogv | Bin 0 -> 29011 bytes
3 files changed, 82 insertions(+), 6 deletions(-)
commit 071029e373366b93a9f3b7c3b4ef5b8ec9eaf6a3
Author: Elliot Smith <elliot.smith@intel.com>
Date: Wed Nov 10 17:43:28 2010 +0000
cookbook: Recipe skeleton for "looping animations"
doc/cookbook/animations.xml | 55 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 55 insertions(+)
commit 0d8c730558f2d4b4c04c3daa014cebd76b14c263
Author: Elliot Smith <elliot.smith@intel.com>
Date: Wed Nov 10 16:11:27 2010 +0000
cookbook: Looping animation examples
Added code examples for creating a looped animation with
each of the animation approaches (implicit, ClutterAnimation,
ClutterState).
doc/cookbook/examples/Makefile.am | 6 ++
.../examples/animations-looping-animator.c | 66 ++++++++++++++++
.../examples/animations-looping-implicit.c | 87 ++++++++++++++++++++++
doc/cookbook/examples/animations-looping-state.c | 83 +++++++++++++++++++++
4 files changed, 242 insertions(+)
commit e80035331b8adf6eec2549bf16f1027210c4233f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sun Nov 14 23:06:53 2010 +0000
Use the right string in the font settings debug blurb
clutter/clutter-settings.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit e6bc65b5c37c38dbf5a82dea724e2f389e2b481e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sun Nov 14 15:23:36 2010 +0000
text: Do not segfault with NULL :font-name
Make sure that we have a fall back in place for the default font name
string, and use g_strcmp0 to protect ourselves from NULL strings.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2417
clutter/clutter-text.c | 16 ++++++++++++----
1 file changed, 12 insertions(+), 4 deletions(-)
commit 9249bd8411157c7610fd406e88ebc9ed9e089be4
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date: Fri Nov 12 18:53:51 2010 -0500
xsettings: don't use the xsettings watch function functionality
The "watch" function functionality in xsettings-client.c is designed
for setups like GDK where filters are per-window. If we are going
to pass all events to _clutter_xsettings_client_process_event()
anyways, we can just pass in NULL for watch.
This avoids a nasty infinite loop where an event would get processed
triggering removing a filter and adding a new filter, which would
immediately run and remove a filter and add another and so on
ad-infinitum.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2415
clutter/x11/clutter-backend-x11.c | 37 ++++---------------------------------
1 file changed, 4 insertions(+), 33 deletions(-)
commit f9d2310b724fbd6ff4e3d6b0d1bcdfc1dd8b4b7b
Author: Elliot Smith <elliot.smith@intel.com>
Date: Fri Nov 12 09:32:04 2010 +0000
cookbook: Make example code C90 compliant
Modified all cookbook example code to prevent ISO C90 compliance
warnings occurring during compilation.
doc/cookbook/examples/animations-moving-animator.c | 11 ++++----
doc/cookbook/examples/animations-moving-implicit.c | 4 ++-
doc/cookbook/examples/events-buttons-lasso.c | 6 ++---
doc/cookbook/examples/events-mouse-scroll.c | 13 +++++-----
.../examples/events-pointer-motion-scribbler.c | 4 +--
.../examples/events-pointer-motion-stacked.c | 5 ++--
doc/cookbook/examples/events-pointer-motion.c | 3 ++-
.../examples/layouts-stacking-diff-sized-actors.c | 6 +++--
doc/cookbook/examples/layouts-stacking.c | 10 ++++----
doc/cookbook/examples/script-signals.c | 13 ++++++----
doc/cookbook/examples/script-ui.c | 11 ++++----
doc/cookbook/examples/text-shadow.c | 14 +++++------
doc/cookbook/examples/textures-crossfade-cogl.c | 29 +++++++++++++++-------
.../examples/textures-crossfade-slideshow.c | 29 ++++++++++++----------
doc/cookbook/examples/textures-crossfade.c | 18 +++++++-------
doc/cookbook/examples/textures-reflection.c | 14 +++++------
16 files changed, 107 insertions(+), 83 deletions(-)
commit 63721c5db1bc1c4a53ee2af536ffbd19b015fdb9
Author: Elliot Smith <elliot.smith@intel.com>
Date: Fri Nov 12 09:54:12 2010 +0000
cookbook: Fix opacity examples in recipe
The recipe had examples where opacity was set using
fractional numbers. Fixed all examples to use
integers only.
doc/cookbook/actors.xml | 26 +++++++++++++-------------
1 file changed, 13 insertions(+), 13 deletions(-)
commit f135f2e7d5b7c5304ae4ba91a26f4dc0d5b0c757
Author: Elliot Smith <elliot.smith@intel.com>
Date: Fri Nov 12 09:49:07 2010 +0000
cookbook: Fix incorrect value for opacity
Opacity is a guint, so don't use floating point numbers
to set its value.
doc/cookbook/examples/events-pointer-motion-stacked.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 03a713e18e842d29a73f9cefb38e689ceefb35ed
Author: Lucas Rocha <lucasr@gnome.org>
Date: Thu Nov 11 22:23:09 2010 +0000
click-action: don't use pointer grabs
The same behavior can be achieved by capturing events on stage while
button is pressed. This fixes a problem when using click and drag
actions on the same actor as there no grabs involved.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2409
clutter/clutter-click-action.c | 85 +++++++++++++++++++++++++++++++++---------
1 file changed, 67 insertions(+), 18 deletions(-)
commit dfdd5914142d6c6fd36b52c186d8bfa92c704168
Merge: 47a6cd95e 6ed6b2a54
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Nov 11 17:53:42 2010 +0000
Merge branch 'wip/static-colors'
* wip/static-colors:
Move tests to static colors where possible
color: Add named, global colors
commit 47a6cd95e76ef75a6c117424056c5359c5479283
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Nov 11 14:05:36 2010 +0000
Add cogl-2.0 reference in the ignore file
.gitignore | 13 +++++++++++++
1 file changed, 13 insertions(+)
commit 1bcf15e1b82a7f2842aa210f73dba5706d404484
Author: Neil Roberts <neil@linux.intel.com>
Date: Thu Nov 11 16:24:54 2010 +0000
cogl-texture: Remove the gl_handle from CoglTextureSliceCallback
There's no longer any need to use the GL handle in the callback for
_cogl_texture_foreach_sub_texture_in_region because it can now work in
terms of primitive cogl textures so it has now been removed. This
would be helpful if we ever want to make the foreach function public
so that apps could implement their own primitives using sliced
textures.
clutter/cogl/cogl/cogl-primitives.c | 2 --
clutter/cogl/cogl/cogl-sub-texture.c | 4 +---
clutter/cogl/cogl/cogl-texture-2d-sliced.c | 4 ----
clutter/cogl/cogl/cogl-texture-2d.c | 2 --
clutter/cogl/cogl/cogl-texture-3d.c | 2 --
clutter/cogl/cogl/cogl-texture-private.h | 2 --
clutter/cogl/cogl/cogl-texture-rectangle.c | 2 --
7 files changed, 1 insertion(+), 17 deletions(-)
commit 49898d43ddc7905a612dad0954d472fb00e8a9c1
Author: Neil Roberts <neil@linux.intel.com>
Date: Thu Nov 11 16:18:25 2010 +0000
cogl-pipeline: Use layer overrides as CoglHandles instead of GLuint
Since d5634e37 the sliced texture backend now works in terms of
CoglTexture2Ds so there's no need to have special casing for
overriding the texture of a pipeline layer with a GL handle. Instead
we can just use cogl_pipeline_set_layer_texture with the
CoglHandle. The special _cogl_pipeline_set_layer_gl_texture_slice
function has now been removed and parts of the code for comparing
materials have been simplified.
clutter/cogl/cogl/cogl-journal-private.h | 2 +-
clutter/cogl/cogl/cogl-journal.c | 2 +-
clutter/cogl/cogl/cogl-pipeline-opengl.c | 35 +++-------
clutter/cogl/cogl/cogl-pipeline-private.h | 7 +-
clutter/cogl/cogl/cogl-pipeline.c | 105 ++++--------------------------
clutter/cogl/cogl/cogl-primitives.c | 15 ++++-
6 files changed, 38 insertions(+), 128 deletions(-)
commit 1447ceb0deb081c85342fc3e74db3b278833cf76
Author: Neil Roberts <neil@linux.intel.com>
Date: Thu Nov 11 15:42:12 2010 +0000
CoglTexture2DSliced: Pass slice tex to callback in foreach_sub_texture
The cogl_texture_foreach_sub_texture_in_region virtual for the sliced
texture backend was previously passing the CoglHandle of the sliced
texture to the callback. Since d5634e37 the slice texture backend now
works in terms of 2D textures so it's possible to pass the underlying
slice texture as a handle too. This makes all of the foreach callbacks
consistent in that they pass a CoglHandle of the primitive texture
type that matches the GL handle.
clutter/cogl/cogl/cogl-texture-2d-sliced.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 21c74030119e5f3a6414d3ce161178799af4cdc4
Author: Robert Bragg <robert@linux.intel.com>
Date: Thu Nov 4 00:43:48 2010 +0000
docs: Adds an initial cogl-2.0 reference manual
So we can keep track of the experimental progress of Cogl 2.0 features
this adds a standalone Cogl 2.0 Reference Manual which doesn't cover
the deprecated 1.x symbols and removes the need for a "Cogl
experimental API" chapter since those sections now make up the main
table of contents.
configure.ac | 2 +
doc/reference/Makefile.am | 2 +-
doc/reference/cogl-2.0/Makefile.am | 142 +++++++
doc/reference/cogl-2.0/blend-strings.xml | 129 ++++++
doc/reference/cogl-2.0/cogl-docs.xml.in | 188 +++++++++
doc/reference/cogl-2.0/cogl-sections.txt | 480 ++++++++++++++++++++++
doc/reference/cogl-2.0/cogl_ortho.png | Bin 0 -> 12650 bytes
doc/reference/cogl-2.0/fill-rule-even-odd.png | Bin 0 -> 3121 bytes
doc/reference/cogl-2.0/fill-rule-non-zero.png | Bin 0 -> 3143 bytes
doc/reference/cogl-2.0/quad-indices-order.png | Bin 0 -> 2620 bytes
doc/reference/cogl-2.0/quad-indices-triangles.png | Bin 0 -> 8018 bytes
11 files changed, 942 insertions(+), 1 deletion(-)
commit fb9d3a835071f94f06ae54945bd8059f9c34df5c
Author: Robert Bragg <robert@linux.intel.com>
Date: Thu Nov 4 00:27:47 2010 +0000
path 2.0: update path API for experimental 2.0 API
When COGL_ENABLE_EXPERIMENTAL_2_0_API is defined cogl.h will now include
cogl2-path.h which changes cogl_path_new() so it can directly return a
CoglPath pointer; it no longer exposes a prototype for
cogl_{get,set}_path and all the remaining cogl_path_ functions now take
an explicit path as their first argument.
The idea is that we want to encourage developers to retain path objects
for as long as possible so they can take advantage of us uploading the
path geometry to the GPU. Currently although it is possible to start a
new path and query the current path, it is not convenient.
The other thing is that we want to get Cogl to the point where nothing
depends on a global, current context variable. This will allow us to one
day define a sensible threading model if/when that is ever desired.
clutter/cogl/cogl/Makefile.am | 15 +-
clutter/cogl/cogl/cogl-clip-state.c | 8 +-
clutter/cogl/cogl/cogl-context.c | 4 +-
clutter/cogl/cogl/cogl-context.h | 2 +-
clutter/cogl/cogl/cogl-path-private.h | 14 +-
clutter/cogl/cogl/cogl-path.c | 1363 ++----------------------
clutter/cogl/cogl/cogl-path.h | 2 +
clutter/cogl/cogl/cogl.h | 6 +
clutter/cogl/cogl/cogl2-path.c | 1466 ++++++++++++++++++++++++++
clutter/cogl/cogl/cogl2-path.h | 506 +++++++++
clutter/cogl/pango/cogl-pango-display-list.c | 7 +-
tests/interactive/test-cogl-primitives.c | 1 +
12 files changed, 2086 insertions(+), 1308 deletions(-)
commit 8efb48ecf4c322bd870f97dc88968b19807c2493
Author: Robert Bragg <robert@linux.intel.com>
Date: Thu Nov 4 14:22:24 2010 +0000
config.h: define COGL_ENABLE_EXPERIMENTAL_2_0_API
By defining COGL_ENABLE_EXPERIMENTAL_2_0_API in config.h we can ensure
that all internal clutter and cogl code can use the Cogl 2.0 API and by
not using AM_CPPFLAGS we avoid having other tools such as glib-mkenums
and the gir-scanner from inadvertently using the define also.
configure.ac | 8 ++++++++
1 file changed, 8 insertions(+)
commit b993195dc8f6e274a565d357de603bb1c9351596
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Nov 3 20:26:20 2010 +0000
cogl: Adds COGL_ENABLE_EXPERIMENTAL_2_0_API define
For now this new define is simply an alias for
COGL_ENABLE_EXPERIMENTAL_API but the intention is that we will also use
it to start experimenting with changes that need to break the existing
Cogl API in incompatible ways.
clutter/cogl/cogl/cogl.h | 4 ++++
1 file changed, 4 insertions(+)
commit 6ed6b2a54b5c8f44496399057ad5e58771bfc620
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Oct 11 17:45:30 2010 +0100
Move tests to static colors where possible
tests/interactive/test-actors.c | 11 ++++++-----
tests/interactive/test-behave.c | 18 ++++++------------
tests/interactive/test-binding-pool.c | 9 +++------
tests/interactive/test-box-layout.c | 8 ++++----
tests/interactive/test-depth.c | 26 ++++++++++++--------------
tests/interactive/test-drag.c | 11 ++++-------
tests/interactive/test-layout.c | 4 ----
tests/interactive/test-multistage.c | 11 +++--------
tests/interactive/test-rotate.c | 13 +++++--------
tests/interactive/test-stage-sizing.c | 13 ++++---------
tests/interactive/test-threads.c | 14 +++++++-------
11 files changed, 54 insertions(+), 84 deletions(-)
commit 985518c601c1a6e0d108d55fb0465a776ccae584
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Apr 6 10:54:20 2010 +0100
color: Add named, global colors
Since EGA colors are apparently all the rage in other toolkits, Clutter
should not be left out. On top of the usual CGA/EGA palette the static
colors also include the Tango Icon palette, which at least is more
pleasant to the eye.
Static colors are accessed through an enumeration by using
clutter_color_get_static(), or using the short-hand pre-processor
macros.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2066
clutter/Makefile.am | 1 +
clutter/clutter-color-static.h | 77 +++++++++++++++++++++
clutter/clutter-color.c | 77 +++++++++++++++++++++
clutter/clutter-color.h | 107 +++++++++++++++++++++++++++++
clutter/clutter.h | 1 +
doc/reference/clutter/Makefile.am | 1 +
doc/reference/clutter/clutter-sections.txt | 2 +
7 files changed, 266 insertions(+)
commit 6735f80b4b43b4c63dd0e3b982a5032509596a5d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Nov 11 12:03:24 2010 +0000
build: Sanitize the hack for ACLOCAL_FLAGS
Move the ACLOCAL_FLAGS hack we have to use with jhbuild and autoreconf
inside the ACLOCAL_AMFLAGS declaration in Makefile.am, and leave
autogen.sh alone.
Makefile.am | 5 ++++-
autogen.sh | 2 +-
2 files changed, 5 insertions(+), 2 deletions(-)
commit 6c53c9c84985aa8e83de1cf00e3feb9205e9f779
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Nov 10 16:37:44 2010 +0000
build: Hack build/autotools into autoreconf
Since we require a version of gettext that might not match the version
installed we need to hack the order of includes for autoreconf.
This hack should go away, and we should just use the installed copy of
gettext.
autogen.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 5f30835eae218c8e80153101018c53862c03c353
Author: Robert Bragg <robert@linux.intel.com>
Date: Fri Jul 23 17:46:41 2010 +0100
cogl-shader: Prepend boilerplate for portable shaders
We now prepend a set of defines to any given GLSL shader so that we can
define builtin uniforms/attributes within the "cogl" namespace that we
can use to provide compatibility across a range of the earlier versions
of GLSL.
This updates test-cogl-shader-glsl.c and test-shader.c so they no longer
needs to special case GLES vs GL when splicing together its shaders as
well as the blur, colorize and desaturate effects.
To get a feel for the new, portable uniform/attribute names here are the
defines for OpenGL vertex shaders:
#define cogl_position_in gl_Vertex
#define cogl_color_in gl_Color
#define cogl_tex_coord_in gl_MultiTexCoord0
#define cogl_tex_coord0_in gl_MultiTexCoord0
#define cogl_tex_coord1_in gl_MultiTexCoord1
#define cogl_tex_coord2_in gl_MultiTexCoord2
#define cogl_tex_coord3_in gl_MultiTexCoord3
#define cogl_tex_coord4_in gl_MultiTexCoord4
#define cogl_tex_coord5_in gl_MultiTexCoord5
#define cogl_tex_coord6_in gl_MultiTexCoord6
#define cogl_tex_coord7_in gl_MultiTexCoord7
#define cogl_normal_in gl_Normal
#define cogl_position_out gl_Position
#define cogl_point_size_out gl_PointSize
#define cogl_color_out gl_FrontColor
#define cogl_tex_coord_out gl_TexCoord
#define cogl_modelview_matrix gl_ModelViewMatrix
#define cogl_modelview_projection_matrix gl_ModelViewProjectionMatrix
#define cogl_projection_matrix gl_ProjectionMatrix
#define cogl_texture_matrix gl_TextureMatrix
And for fragment shaders we have:
#define cogl_color_in gl_Color
#define cogl_tex_coord_in gl_TexCoord
#define cogl_color_out gl_FragColor
#define cogl_depth_out gl_FragDepth
#define cogl_front_facing gl_FrontFacing
clutter/clutter-blur-effect.c | 7 +-
clutter/clutter-colorize-effect.c | 5 +-
clutter/clutter-desaturate-effect.c | 5 +-
clutter/cogl/cogl/cogl-context.c | 2 +-
clutter/cogl/cogl/cogl-path.c | 4 +-
clutter/cogl/cogl/cogl-pipeline-arbfp.c | 3 +-
clutter/cogl/cogl/cogl-pipeline-fixed.c | 3 +-
clutter/cogl/cogl/cogl-pipeline-glsl.c | 44 ++++-
clutter/cogl/cogl/cogl-pipeline-opengl-private.h | 3 +-
clutter/cogl/cogl/cogl-pipeline-opengl.c | 6 +-
clutter/cogl/cogl/cogl-pipeline-private.h | 3 +-
clutter/cogl/cogl/cogl-shader-boilerplate.h | 107 +++++++++++
clutter/cogl/cogl/cogl-shader-private.h | 5 +
clutter/cogl/cogl/cogl-shader.c | 206 ++++++++++++++++-----
clutter/cogl/cogl/cogl-vertex-attribute.c | 4 +-
clutter/cogl/cogl/cogl-vertex-buffer.c | 86 ++++++++-
clutter/cogl/cogl/cogl.c | 16 +-
.../driver/gles/cogl-fixed-fragment-shader.glsl | 24 +--
.../cogl/driver/gles/cogl-fixed-vertex-shader.glsl | 40 ++--
clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.c | 62 ++++---
tests/interactive/test-cogl-shader-glsl.c | 38 +---
tests/interactive/test-shader.c | 34 +---
22 files changed, 517 insertions(+), 190 deletions(-)
commit a4b984186ccd81879822ab7fad1af8b545b28e35
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Nov 9 15:56:03 2010 +0000
tests: test-cogl-shader-arbfp wasn't compiling shader
test-cogl-shader-arbfp was never calling cogl_shader_compile so it was a
fluke that it used to run before.
tests/interactive/test-cogl-shader-arbfp.c | 1 +
1 file changed, 1 insertion(+)
commit fd43786170937ff66eddadf9736124b33684405f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Nov 10 13:59:09 2010 +0000
build: Honour ACLOCAL_FLAGS with autoreconf
autogen.sh | 30 +++++++++++++++++++++++++++++-
1 file changed, 29 insertions(+), 1 deletion(-)
commit 373140c830859f279c96d2605b6c4187a1fa7541
Author: Tomeu Vizoso <tomeu.vizoso@collabora.co.uk>
Date: Wed Oct 27 19:02:47 2010 +0200
Discard the current pick buffer...
if we are asked to pick with a different mode.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2385
clutter/clutter-main.c | 8 +++++---
clutter/clutter-stage-private.h | 8 +++++---
clutter/clutter-stage.c | 17 ++++++++++++-----
tests/conform/test-pick.c | 9 +++++++++
4 files changed, 31 insertions(+), 11 deletions(-)
commit b4588b57dff691492d2d9fdd87c293ff95a278aa
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Nov 8 16:15:23 2010 +0000
reference: Add a Wayland section
doc/reference/clutter/Makefile.am | 1 +
doc/reference/clutter/clutter-docs.xml.in | 1 +
doc/reference/clutter/clutter-sections.txt | 6 ++++++
3 files changed, 8 insertions(+)
commit b783d77e6a730470656a9122755d10b50ac76e23
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Nov 8 16:03:44 2010 +0000
gtk-doc: Add PathConstraint to the Clutter API reference
doc/reference/clutter/clutter-docs.xml.in | 9 +++++----
doc/reference/clutter/clutter.types | 1 +
2 files changed, 6 insertions(+), 4 deletions(-)
commit 4909ecc71e1c7ac2b2aab6bb5a7c874f9d5b4697
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Nov 8 16:01:19 2010 +0000
gtk-doc: Fixes for the API references
clutter/clutter-cairo-texture.c | 2 +-
clutter/clutter-cairo-texture.h | 2 ++
clutter/cogl/cogl/cogl-vertex-attribute.h | 2 +-
doc/reference/clutter/Makefile.am | 7 +++++++
doc/reference/clutter/clutter-sections.txt | 1 +
5 files changed, 12 insertions(+), 2 deletions(-)
commit 993d3b3fe196903d020f954f2ccce51458b3dd3a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Nov 8 15:52:17 2010 +0000
timeout-pool: Deprecate the structure too
Don't leave it lying around, since nothing can use it anyway.
clutter/clutter-timeout-pool.c | 4 +++-
clutter/clutter-timeout-pool.h | 4 ++--
2 files changed, 5 insertions(+), 3 deletions(-)
commit 26a70707ab2286e188d9ccb63084acdd5cbeebc5
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sun Nov 7 21:35:40 2010 +0000
path-constraint: Add a ::node-reached signal
Emit a signal whenever a node in the path has been reached.
clutter/clutter-marshal.list | 1 +
clutter/clutter-path-constraint.c | 43 +++++++++++++++++++
tests/interactive/test-path-constraint.c | 71 +++++++++++++++++++++++++++++++-
3 files changed, 114 insertions(+), 1 deletion(-)
commit ef7f729c6881950623cbbd8b82b68b3a15e26318
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sun Nov 7 15:27:17 2010 +0000
build: Re-instate profile builds
The profiling support was broken - probably during the restructuring of
the build environment, but I'm too lazy to bisect that.
The fix is trivial, and everything works as it should.
clutter/Makefile.am | 2 ++
configure.ac | 4 ++--
2 files changed, 4 insertions(+), 2 deletions(-)
commit 38912ee4d9d7c74aa78a9dffcfc9e687232d8302
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sat Nov 6 20:00:39 2010 +0000
Deprecate ClutterFrameSource
The FrameSource API hasn't been used internally since 1.0; since it's
not part of the paint clock, it is of limited use.
clutter/clutter-frame-source.c | 89 +++++++++++++++++++++++++++++++++++
clutter/clutter-frame-source.h | 4 ++
clutter/clutter-main.c | 103 ++++-------------------------------------
clutter/clutter-main.h | 3 ++
clutter/clutter-private.h | 11 +++++
5 files changed, 115 insertions(+), 95 deletions(-)
commit 9ac2f5cba567114fd61446b9fa8991a663483fd5
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sat Nov 6 19:59:58 2010 +0000
Deprecate ClutterTimeoutPool
Timelines have stopped using the pool since 1.0; there is no real reason
to expose it as part of the active API.
clutter/clutter-timeout-pool.c | 6 ++++++
clutter/clutter-timeout-pool.h | 6 ++++++
2 files changed, 12 insertions(+)
commit a432d9973dc40658632eeb4060090b7c68aacf50
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sat Nov 6 18:12:41 2010 +0000
Remove a compiler warning
clutter/cogl/cogl/cogl-vertex-attribute.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
commit 6ec9c3247c5267c6c4a93e20d55d16415e4c1c9d
Author: Maxim Ermilov <zaspire@rambler.ru>
Date: Fri Nov 5 20:20:14 2010 +0300
CoglContext: correct initialization order
http://bugzilla.clutter-project.org/show_bug.cgi?id=2401
clutter/cogl/cogl/cogl-context.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
commit ee59c83e176f78fa9ff95eaebbeb66e807b9ac0c
Author: Piotr Drąg <piotrdrag@gmail.com>
Date: Tue Nov 2 12:22:55 2010 +0000
po: Update the Polish translation
po/pl.po | 46 +++++++++++++---------------------------------
1 file changed, 13 insertions(+), 33 deletions(-)
commit 57633520d48eca5539381e3507847008470f27ed
Author: Neil Roberts <neil@linux.intel.com>
Date: Fri Nov 5 18:33:37 2010 +0000
Make test-cogl-npot-texture a bit more extensive
The size of the texture used for test-cogl-npot-texture was only using
1 pixel of waste and the texture was scaled down so it would be quite
likely that the test would still pass if only the top left slice was
rendered. It also didn't test using non-default texture
coordinates. These problems made it fail to pick up bug 2398. The
texture is now using the maximum amount of waste and rendered in four
parts at 1:1 scale.
tests/conform/test-cogl-npot-texture.c | 17 ++++++++++++++---
1 file changed, 14 insertions(+), 3 deletions(-)
commit cc63c7dd8ffcb5076e072d46b264cd7668e3d48f
Author: Neil Roberts <neil@linux.intel.com>
Date: Fri Nov 5 14:38:19 2010 +0000
cogl-texture-2d-sliced: Fix the foreach callback for waste textures
When converting the virtual coordinates of the underlying texture for
a slice to virtual coordinates for the whole texture it was using the
size and offset of the intersection as the size of the child
texture. This would be incorrect if the texture contains waste or the
texture coordinates are not the default. Instead the sliced foreach
function now passes the CoglSpan to the callback instead of the
intersection.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2398
clutter/cogl/cogl/cogl-texture-2d-sliced.c | 56 ++++++++++++++----------------
1 file changed, 26 insertions(+), 30 deletions(-)
commit 8112bfc49fbdf4aa64ab06e0c2971cd3566ac08c
Author: Neil Roberts <neil@linux.intel.com>
Date: Fri Nov 5 14:55:46 2010 +0000
Replace the disable-npots tool with a COGL_DEBUG option
Previously in the tests/tools directory we build a disable-npots
library which was used as an LD_PRELOAD to trick Cogl in to thinking
there is no NPOT texture extension. This is a little awkward to use so
it seems much simpler to just define a COGL_DEBUG option to disable
npot textures.
clutter/cogl/cogl/cogl-debug-options.h | 6 ++
clutter/cogl/cogl/cogl-debug.c | 3 +-
clutter/cogl/cogl/cogl-debug.h | 3 +-
clutter/cogl/cogl/cogl.c | 6 ++
configure.ac | 5 --
tests/Makefile.am | 4 +-
tests/conform/Makefile.am | 2 +-
tests/tools/Makefile.am | 43 ---------
tests/tools/README | 2 -
tests/tools/disable-npots.c | 156 ---------------------------------
tests/tools/disable-npots.sh.in | 15 ----
11 files changed, 19 insertions(+), 226 deletions(-)
commit 632412c9c8e2d62797c4333259e3c8a645479c61
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Nov 2 12:20:32 2010 +0000
actor: Check "paint" handlers in _get_paint_volume
Instead of waiting until clutter_actor_paint to check if there are any
handlers connected to the "paint" signal, we now do the check whenever
the paint-volume is requested in _actor_get_paint_volume_mutable().
Previously we checked in clutter_actor_paint(), but at that time we may
already be using a stage clip that could be derived from an invalid
paint-volume. We used to try and handle that by queuing a follow up,
unclipped, redraw but anyway there was an additional problem with the
previous approach because the checking wasn't enough to always catch
invalid volumes involved in culling (considering that containers may
derive their volume from children that haven't yet been painted)
By moving the check to _get_paint_volume time not only do we now
correctly check children in cases where a container derives its volume
from its children's volumes but we no longer need to queue follow up
redraws to cover up artefacts.
Since we now never queue follow up redraws, this in turn means we should
no longer clobber redraws queued with an explicit clip which was
something affecting gnome-shell since it connects a handler to the paint
signal of the stage.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2388
clutter/clutter-actor.c | 78 +++++++++++++++++++++++--------------------------
1 file changed, 37 insertions(+), 41 deletions(-)
commit b9dbeac2c3ac8ded52118270914328fd57eeee6e
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Thu Oct 14 16:37:25 2010 +0100
gitignore: Update the path of generated GLES2 shaders
The generation is not happening in the main Cogl directory, Update the
.gitignore file accordingly.
.gitignore | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
commit 844b5781283560bb99e827c0cbc1d212f21be628
Author: Robert Bragg <robert@linux.intel.com>
Date: Mon Nov 1 22:07:11 2010 +0000
matrix-stack: use GArray instead of GSList for stack
In some micro-benchmarks testing journal throughput the list
manipulation jumps pretty high in the profile. This replaces the GSList
usage with a GArray instead which is effectively a grow only allocation
that means we avoid ongoing allocations while manipulating the stack
mid-scene.
clutter/cogl/cogl/cogl-matrix-stack.c | 55 +++++++++++------------------------
1 file changed, 17 insertions(+), 38 deletions(-)
commit a6000533dca20639ec94bd2b0afe8de71382dc65
Author: Robert Bragg <robert@linux.intel.com>
Date: Mon Nov 1 20:33:20 2010 +0000
pipeline: Avoid costly checking of lighting properties
During _cogl_pipeline_needs_blending_enabled we were always checking the
current lighting properties (ambient,diffuse,specular,emission) which
had a notable impact during micro-benchmarks that exercise journal
throughput of simple colored rectangles. This #if 0's the offending code
considering that Cogl doesn't actually support lighting currently and
when it actually does then we will be able to optimize this by avoiding
the checks when lighting is disabled.
clutter/cogl/cogl/cogl-pipeline.c | 42 ++++++++++++++++++++++-----------------
1 file changed, 24 insertions(+), 18 deletions(-)
commit eaee5dd604e94fd5b63e25be47b6300c12646aa6
Author: Robert Bragg <robert@linux.intel.com>
Date: Mon Nov 1 20:27:32 2010 +0000
cogl: add separate material for blended source_colors
When using cogl_set_source_color4ub there is a notable difference
between colors that require blending and those that dont. When trying to
modify the color of pipeline referenced by the journal we don't force a
flush of the journal unless the color change will also change the
blending state. By using two separate pipeline objects for handing
opaque or transparent colors we can avoid ever flushing the journal when
repeatedly using cogl_set_source_color and jumping between opaque and
transparent colors.
clutter/cogl/cogl/cogl-context.c | 13 ++++++++-----
clutter/cogl/cogl/cogl-context.h | 5 +++--
clutter/cogl/cogl/cogl.c | 19 ++++++++++++++-----
3 files changed, 25 insertions(+), 12 deletions(-)
commit d05ce7cd26253b94fb990b63e46b822febb616ab
Author: Robert Bragg <robert@linux.intel.com>
Date: Mon Nov 1 18:55:48 2010 +0000
texture_quad_multiple_primitives: rework wrap mode overrides
This reworks _cogl_texture_quad_multiple_primitives so instead of using
the CoglPipelineWrapModeOverrides mechanism to force the clamp to edge
repeat mode we now derive an override pipeline using cogl_pipeline_copy
instead. This avoids a relatively large, unconditional, memset.
clutter/cogl/cogl/cogl-primitives.c | 84 ++++++++++++++++++++++++-------------
1 file changed, 55 insertions(+), 29 deletions(-)
commit 7bbe207b65f1684278470f95681e46d34a56fc18
Author: Robert Bragg <robert@linux.intel.com>
Date: Mon Nov 1 18:33:17 2010 +0000
_multitexture_quad_single_primitive: avoid wrap overrides
This avoids using the wrap mode overrides mechanism to implement
_cogl_multitexture_quad_single_primitive which requires memsetting a
fairly large array. This updates it to use cogl_pipeline_foreach_layer()
and we now derive an override_material to handle changes to the wrap
modes instead of using the CoglPipelineWrapModeOverrides.
clutter/cogl/cogl/cogl-primitives.c | 265 ++++++++++++++++++++----------------
1 file changed, 151 insertions(+), 114 deletions(-)
commit e73b67e59bac1ac9a8b03bd776cf309151d9a1b0
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Nov 3 16:02:27 2010 +0000
cogl-path: Don't bother filling the path if less than 3 nodes
Previously there was a check to avoid filling the path if there are
zero nodes. However the tesselator also won't generate any triangles
if there are less than 3 nodes so we might as well bail out in that
case too. If we don't emit any triangles then we would end up trying
to create an empty VBO. Although I don't think this should necessarily
be a problem, this seems to cause Mesa to segfault in version 7.8.1
when calling glBufferSubData (although not in
master). test-cogl-primitives tries to fill a path with only two
points so it's convenient to be able to avoid the crash in this case.
clutter/cogl/cogl/cogl-path.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
commit 25b48585d3cabac8040aa4cccd579a1952a93f6d
Author: Neil Roberts <neil@linux.intel.com>
Date: Tue Nov 2 17:35:17 2010 +0000
cogl-journal: Log the clip state in the journal
When adding a new entry to the journal a reference is now taken on the
current clip stack. Modifying the current clip state no longer causes
a journal flush. The journal flushing code now has an extra stage to
compare the clip state of each entry. The comparison can simply be
done by comparing the pointers. Although different clip states will
still end up with multiple draw calls this at leasts allows a scene
comprising of multiple different clips to be upload with one vbo. It
also lays the groundwork to do certain tricks when drawing clipped
rectangles such as modifying the geometry instead of setting a clip
state.
clutter/cogl/cogl/cogl-clip-state.c | 24 -------
clutter/cogl/cogl/cogl-journal-private.h | 2 +
clutter/cogl/cogl/cogl-journal.c | 106 +++++++++++++++++++++++--------
3 files changed, 83 insertions(+), 49 deletions(-)
commit 4d5dc42dadac20da08e99340de9e828a805578ab
Author: Neil Roberts <neil@linux.intel.com>
Date: Tue Nov 2 17:34:51 2010 +0000
cogl-framebuffer: Add a flag to skip flushing the clip state
This adds a flag to avoid flushing the clip state when flushing the
framebuffer state. This will be used by the journal to manage its own
clip state flushing.
clutter/cogl/cogl/cogl-framebuffer-private.h | 3 +++
clutter/cogl/cogl/cogl-framebuffer.c | 3 ++-
2 files changed, 5 insertions(+), 1 deletion(-)
commit c5d909d0631dfeea5cd7f6beff900ed21762bf9d
Author: Neil Roberts <neil@linux.intel.com>
Date: Tue Nov 2 17:15:06 2010 +0000
cogl: Don't flush the journal when flushing clip state
Flushing the clip state no longer does anything that would cause the
journal to flush. The clip state is only flushed when flushing the
framebuffer state and in all cases this ends up flushing the journal
in one way or another anyway. Avoiding flushing the journal will make
it easier to log the clip state in the journal.
Previously when trying to set up a rectangle clip that can't be
scissored or when using a path clip the code would use cogl_rectangle
as part of the process to fill the stencil buffer. This is now changed
to use a new internal _cogl_rectangle_immediate function which
directly uses the vertex array API to draw a triangle strip without
affecting the journal. This should be just as efficient as the
previous journalled code because these places would end up flushing
the journal immediately before and after submitting the single
rectangle anyway and flushing the journal always creates a new vbo so
it would effectively do the same thing.
Similarly there is also a new internal _cogl_clear function that does
not flush the journal.
clutter/cogl/cogl/Makefile.am | 2 +
clutter/cogl/cogl/cogl-clip-stack.c | 47 ++++++++----------
clutter/cogl/cogl/cogl-clip-state.c | 5 ++
clutter/cogl/cogl/cogl-path.c | 76 ++++++++++++++---------------
clutter/cogl/cogl/cogl-primitives-private.h | 43 ++++++++++++++++
clutter/cogl/cogl/cogl-primitives.c | 40 +++++++++++++++
clutter/cogl/cogl/cogl-private.h | 34 +++++++++++++
clutter/cogl/cogl/cogl.c | 30 ++++++++----
8 files changed, 203 insertions(+), 74 deletions(-)
commit a39b292d90c7511d0e7ab7ff484c9b75edc2880f
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Nov 3 15:48:56 2010 +0000
cogl-path: Use the vertex array API instead of CoglVertexBuffer
The new vertex array is now implemented in terms of the
CoglVertexBuffer anyway so it should be slightly faster to use a
vertex array directly.
clutter/cogl/cogl/cogl-path-private.h | 26 +++++------
clutter/cogl/cogl/cogl-path.c | 81 ++++++++++++++++++++---------------
2 files changed, 60 insertions(+), 47 deletions(-)
commit 60de7939ee8bf35d5b8b72564dcb342157716cb0
Author: Neil Roberts <neil@linux.intel.com>
Date: Tue Nov 2 14:28:12 2010 +0000
cogl: Move the clip stack dirtiness to the context rather than the FB
Previously we tracked whether the clip stack needs flushing as part of
the CoglClipState which is part of the CoglFramebuffer state. This is
a bit odd because most of the clipping state (such as the clip planes
and the scissor) are part of the GL context's state rather than the
framebuffer. We were marking the clip state on the framebuffer dirty
every time we change the framebuffer anyway so it seems to make more
sense to have the dirtiness be part of the global context.
Instead of a just a single boolean to record whether the state needs
flushing, the CoglContext now holds a reference to the clip stack that
was flushed. That way we can flush arbitrary stack states and if it
happens to be the same as the state already flushed then Cogl will do
nothing. This will be useful if we log the clip stack in the journal
because then we will need to flush unrelated clip stack states for
each batch.
clutter/cogl/cogl/cogl-clip-stack.c | 44 +++++++++++++++++++++++++++++++-----
clutter/cogl/cogl/cogl-clip-stack.h | 6 +++--
clutter/cogl/cogl/cogl-clip-state.c | 40 +++-----------------------------
clutter/cogl/cogl/cogl-clip-state.h | 6 -----
clutter/cogl/cogl/cogl-context.c | 5 ++++
clutter/cogl/cogl/cogl-context.h | 22 ++++++++++++++++++
clutter/cogl/cogl/cogl-framebuffer.c | 2 +-
clutter/cogl/cogl/cogl-path.c | 10 +++-----
8 files changed, 76 insertions(+), 59 deletions(-)
commit 57574f399524c2eb46b095aa78b28ea5032a15ad
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Nov 1 19:52:45 2010 +0000
cogl-clip-stack: Don't allocate a separate struct for CoglClipStack
Instead of having a separate CoglHandle for CoglClipStack the code is
now expected to directly hold a pointer to the top entry on the
stack. The empty stack is then the NULL pointer. This saves an
allocation when we want to copy the stack because we can just take a
reference on a stack entry. The idea is that this will make it
possible to store the clip stack in the journal without any extra
allocations.
The _cogl_get_clip_stack and set functions now take a CoglClipStack
pointer instead of a handle so it would no longer make sense to make
them public. However I think the only reason we would have wanted that
in the first place would be to save the clip state between switching
FBOs and that is no longer necessary.
clutter/cogl/cogl/cogl-clip-stack.c | 193 ++++++++++++++----------------------
clutter/cogl/cogl/cogl-clip-stack.h | 38 +++----
clutter/cogl/cogl/cogl-clip-state.c | 55 ++++------
clutter/cogl/cogl/cogl-clip-state.h | 20 ++--
4 files changed, 116 insertions(+), 190 deletions(-)
commit 314e980a3b40f79f1cb96fa8a8fc53d24eecfa2a
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Nov 3 13:34:21 2010 +0000
cogl: Don't flush the framebuffer state for the internal draw
CoglVertexAttribute has an internal draw function that is used by the
CoglJournal to avoid the call to cogl_journal_flush which would
otherwise end up recursively flushing the journal forever. The
enable_gl_state function called by this was previously also calling
_cogl_flush_framebuffer_state. However the journal code tries to
handle this function specially by calling it with a flag to disable
flushing the modelview matrix. This is useful because the journal
handles flushing the modelview itself. Without this patch the journal
state ends up getting flushed twice. This isn't a particularly big
problem currently because the matrix stack has caching to recognise
when it would push the same state twice and bails out. However if we
later want to use the framebuffer flush flags to override a particular
state of the framebuffer (such as the clip state) then we need to make
sure the flush isn't called twice.
clutter/cogl/cogl/cogl-vertex-attribute.c | 29 +++++++++++++++++++----------
1 file changed, 19 insertions(+), 10 deletions(-)
commit 738a669fc2987474d524e2f0e5d60a3a49832784
Author: Neil Roberts <neil@linux.intel.com>
Date: Thu Nov 4 16:01:23 2010 +0000
cogl-buffer: Use void* instead of guint8* for map and set_data
Unless the CoglBuffer is being used for texture data then it's
relatively unlikely that the data will contain an array of bytes. For
example if it's used as a vertex array then it's more likely to be
floats or some vertex struct. In that case it's much more convenient
if set_data and map use void* pointers so that we can avoid a cast.
clutter/cogl/cogl/cogl-buffer-private.h | 8 ++++----
clutter/cogl/cogl/cogl-buffer.c | 12 ++++++------
clutter/cogl/cogl/cogl-buffer.h | 4 ++--
clutter/cogl/cogl/cogl-journal.c | 2 +-
clutter/cogl/cogl/cogl-primitive.c | 16 ++++++++--------
clutter/cogl/cogl/cogl-primitives.c | 2 +-
6 files changed, 22 insertions(+), 22 deletions(-)
commit a53c9dafb5fcd18ecd868c350441759196d614fc
Author: Neil Roberts <neil@linux.intel.com>
Date: Thu Nov 4 17:31:59 2010 +0000
Add a conformance test for the CoglPrimitive convenience constructors
This adds a simple conformance test which calls all of the convenience
constructors for CoglPrimitive.
tests/conform/Makefile.am | 1 +
tests/conform/test-cogl-primitive.c | 230 ++++++++++++++++++++++++++++++++++++
tests/conform/test-conform-main.c | 2 +
3 files changed, 233 insertions(+)
commit 390bdd2a275f9b3a242fc11725a92cca2c187797
Author: Neil Roberts <neil@linux.intel.com>
Date: Thu Nov 4 17:21:56 2010 +0000
cogl-primitive: Fix the texture attribute offsets
The offsets for the texture coordinate attributes in the convenience
constructors were all wrong.
clutter/cogl/cogl/cogl-primitive.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
commit 17aaaac3362768b1b882c5772b3c6f81afa7ce01
Author: Neil Roberts <neil@linux.intel.com>
Date: Thu Nov 4 16:54:20 2010 +0000
cogl-primitive: Fix a typo in new_with_attributes_array
A typo in the g_return_val_if_fail was causing it to segfault.
clutter/cogl/cogl/cogl-primitive.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit b6eaab812be51ceeab023b4556f23e3b9e8a9ec5
Author: Neil Roberts <neil@linux.intel.com>
Date: Thu Nov 4 16:42:11 2010 +0000
cogl-primitive: Add the missing cogl_primitive_new_p2 function
There was a struct defined for CoglP2Vertex but there was no
constructor function to use it.
clutter/cogl/cogl/cogl-primitive.c | 27 +++++++++++++++++++++++
clutter/cogl/cogl/cogl-primitive.h | 44 ++++++++++++++++++++++++++++++++++++++
2 files changed, 71 insertions(+)
commit 1935855cdd4476c1f55dcff76706dc56653d33de
Author: Neil Roberts <neil@linux.intel.com>
Date: Thu Nov 4 16:13:01 2010 +0000
cogl-primitive: Fix the ref-counting for the convenience constuctors
The convenience constructors for the builtin vertex structs were
creating the primitive and then immediately destroying it and
returning the pointer. I think the intention was to unref the
attributes instead. This adds an internal wrapper around the
new_with_attributes_array constructor which unrefs the attributes
instead of the primitive. The convenience constructors now use that.
clutter/cogl/cogl/cogl-primitive.c | 89 +++++++++++++++++++++++---------------
1 file changed, 55 insertions(+), 34 deletions(-)
commit 3c35b95a84d410fdd9a9912c7c0d76f6ac05b562
Author: Robert Bragg <robert@linux.intel.com>
Date: Thu Nov 4 13:23:23 2010 +0000
primitive: fix prototypes and start adding docs
This fixes the prototypes for the cogl_primitive_new_xyz functions and
also adds documentation with examples for each one.
clutter/cogl/cogl/cogl-primitive.h | 329 ++++++++++++++++++++++++++++++++++---
1 file changed, 307 insertions(+), 22 deletions(-)
commit 00397a313c955ba567d003d88dc64fb57d8346fb
Author: Neil Roberts <neil@linux.intel.com>
Date: Thu Nov 4 14:56:44 2010 +0000
cogl-gles2-wrapper: Fix a reference to the old name for CoglPipeline
The GLES2 wrapper was referring to COGL_MATERIAL_PROGRAM_TYPE_GLSL but
this has since been renamed to COGL_PIPELINE_PROGRAM_TYPE_GLSL so the
GLES2 backend wouldn't compile.
clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 5abdbd5f7a2b0c4884dfb8b9415eb7e6f3f15a3b
Author: Robert Bragg <robert@linux.intel.com>
Date: Fri Oct 29 15:49:25 2010 +0100
gles2: disable vbos until while we rework backend
The gles2 wrapper functions don't understand about the CoglBuffer API so
they don't support attributes stored in a CoglVertexArray. Instead of
teaching the backend about buffers we are going to wait until we have
overhauled the GLES 2 backend. We are currently making progress
consolidating the GLES 2 backend with a new GLSL backend for
CoglMaterial. This will hugely simplify the GLES 2 support and share
code with the OpenGL backend. In the end it's hoped that this problem
will simply go away so it doesn't make much sense to solve it with the
current design.
clutter/cogl/cogl/driver/gles/cogl-gles.c | 5 +++++
1 file changed, 5 insertions(+)
commit 8034dc87d43c7e24324bacf42948fe96d1636176
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Oct 27 18:54:57 2010 +0100
cogl: rename CoglMaterial -> CoglPipeline
This applies an API naming change that's been deliberated over for a
while now which is to rename CoglMaterial to CoglPipeline.
For now the new pipeline API is marked as experimental and public
headers continue to talk about materials not pipelines. The CoglMaterial
API is now maintained in terms of the cogl_pipeline API internally.
Currently this API is targeting Cogl 2.0 so we will have time to
integrate it properly with other upcoming Cogl 2.0 work.
The basic reasons for the rename are:
- That the term "material" implies to many people that they are
constrained to fragment processing; perhaps as some kind of high-level
texture abstraction.
- In Clutter they get exposed by ClutterTexture actors which may be
re-inforcing this misconception.
- When comparing how other frameworks use the term material, a material
sometimes describes a multi-pass fragment processing technique which
isn't the case in Cogl.
- In code, "CoglPipeline" will hopefully be a much more self documenting
summary of what these objects represent; a full GPU pipeline
configuration including, for example, vertex processing, fragment
processing and blending.
- When considering the API documentation story, at some point we need a
document introducing developers to how the "GPU pipeline" works so it
should become intuitive that CoglPipeline maps back to that
description of the GPU pipeline.
- This is consistent in terminology and concept to OpenGL 4's new
pipeline object which is a container for program objects.
Note: The cogl-material.[ch] files have been renamed to
cogl-material-compat.[ch] because otherwise git doesn't seem to treat
the change as a moving the old cogl-material.c->cogl-pipeline.c and so
we loose all our git-blame history.
clutter/cogl/cogl/Makefile.am | 24 +-
clutter/cogl/cogl/cogl-atlas-texture.c | 14 +-
clutter/cogl/cogl/cogl-atlas.c | 2 +-
clutter/cogl/cogl/cogl-buffer-private.h | 2 +-
clutter/cogl/cogl/cogl-clip-stack.c | 6 +-
clutter/cogl/cogl/cogl-context.c | 48 +-
clutter/cogl/cogl/cogl-context.h | 28 +-
clutter/cogl/cogl/cogl-framebuffer.c | 2 +-
clutter/cogl/cogl/cogl-journal-private.h | 8 +-
clutter/cogl/cogl/cogl-journal.c | 128 +-
clutter/cogl/cogl/cogl-material-compat.c | 495 +++
.../{cogl-material.h => cogl-material-compat.h} | 88 +-
clutter/cogl/cogl/cogl-material-private.h | 957 ------
clutter/cogl/cogl/cogl-path.c | 42 +-
...bfp-private.h => cogl-pipeline-arbfp-private.h} | 10 +-
...cogl-material-arbfp.c => cogl-pipeline-arbfp.c} | 338 +-
...xed-private.h => cogl-pipeline-fixed-private.h} | 10 +-
...cogl-material-fixed.c => cogl-pipeline-fixed.c} | 70 +-
...glsl-private.h => cogl-pipeline-glsl-private.h} | 10 +-
.../{cogl-material-glsl.c => cogl-pipeline-glsl.c} | 134 +-
...gl-private.h => cogl-pipeline-opengl-private.h} | 27 +-
...gl-material-opengl.c => cogl-pipeline-opengl.c} | 324 +-
clutter/cogl/cogl/cogl-pipeline-private.h | 993 ++++++
.../cogl/cogl/{cogl-material.c => cogl-pipeline.c} | 3290 ++++++++++----------
clutter/cogl/cogl/cogl-pipeline.h | 1234 ++++++++
clutter/cogl/cogl/cogl-primitives.c | 212 +-
clutter/cogl/cogl/cogl-texture-2d-private.h | 2 +-
clutter/cogl/cogl/cogl-texture-2d-sliced-private.h | 2 +-
clutter/cogl/cogl/cogl-texture-2d-sliced.c | 2 +-
clutter/cogl/cogl/cogl-texture-2d.c | 2 +-
clutter/cogl/cogl/cogl-texture-3d-private.h | 4 +-
clutter/cogl/cogl/cogl-texture-3d.c | 4 +-
clutter/cogl/cogl/cogl-texture-private.h | 4 +-
clutter/cogl/cogl/cogl-texture-rectangle-private.h | 2 +-
clutter/cogl/cogl/cogl-texture-rectangle.c | 2 +-
clutter/cogl/cogl/cogl-texture.c | 26 +-
clutter/cogl/cogl/cogl-types.h | 52 +-
clutter/cogl/cogl/cogl-util.c | 2 +-
clutter/cogl/cogl/cogl-vertex-attribute.c | 76 +-
clutter/cogl/cogl/cogl-vertex-buffer.c | 92 +-
clutter/cogl/cogl/cogl.c | 68 +-
clutter/cogl/cogl/cogl.h | 9 +-
.../cogl/cogl/driver/gl/cogl-texture-driver-gl.c | 4 +-
.../cogl/driver/gles/cogl-texture-driver-gles.c | 4 +-
clutter/cogl/cogl/winsys/cogl-texture-pixmap-x11.c | 6 +-
45 files changed, 5305 insertions(+), 3554 deletions(-)
commit 959af183b171f9ee9bdc2ecf6cec3b37e6703a5f
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Oct 27 12:43:36 2010 +0100
pango: Use CoglMaterial type for materials
Instead of using the CoglHandle type for material variables this updates
the pango code to use CoglMaterial * instead. CoglHandle is the old
typename which is being phased out of the API.
clutter/cogl/pango/cogl-pango-display-list.c | 6 +++---
clutter/cogl/pango/cogl-pango-display-list.h | 4 ++--
clutter/cogl/pango/cogl-pango-render.c | 4 ++--
3 files changed, 7 insertions(+), 7 deletions(-)
commit 7ee99aaa838e5961c3ce15305679a6ea7a271113
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Oct 27 12:36:24 2010 +0100
pango: push/pop source instead of trashing users source
The pango-display-list code was calling cogl_set_source in numerous
places and it didn't appear to be saving the users source to restore
later. This could result in the user inadvertantly drawing a primitive
with one of these internally managed materials instead of one that they
chose. To rectify this the code now uses cogl_{push,pop}_source to save
and restore the users source.
clutter/cogl/pango/cogl-pango-display-list.c | 76 ++++++++++++++++------------
1 file changed, 45 insertions(+), 31 deletions(-)
commit 4e69c730857835d0b2971b3fd6b00e285b82a66a
Author: Robert Bragg <robert@linux.intel.com>
Date: Mon Oct 18 17:17:22 2010 +0100
primitives: implements cogl_polygon on vertex_attributes
This updates the implementation of cogl_polygon so it sits on the new
CoglVertexArray and CoglVertexAttribute apis. This lets us minimize the
number of different drawing paths we have to maintain in Cogl.
Since the sliced texture support for cogl_polygon has been broken for a
long time now and no one has complained this patch also greatly
simplifies the code by not doing any special material validation so
cogl_polygon will be restricted in the same way as
cogl_draw_vertex_attributes. (i.e. sliced textures not supported).
clutter/cogl/cogl/cogl-context.c | 5 +
clutter/cogl/cogl/cogl-context.h | 3 +-
clutter/cogl/cogl/cogl-primitives.c | 579 ++++++++++--------------------------
3 files changed, 167 insertions(+), 420 deletions(-)
commit f9d9b1b1578e05a51bbf087aa2626e11d8e2c185
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Oct 26 19:22:57 2010 +0100
journal: port to the vertex_attributes API
Instead of using raw OpenGL in the journal we now use the vertex
attributes API instead. This is part of an ongoing effort to reduce the
number of drawing paths we maintain in Cogl.
clutter/cogl/cogl/cogl-context.c | 4 +
clutter/cogl/cogl/cogl-context.h | 1 +
clutter/cogl/cogl/cogl-journal.c | 262 +++++++++++++++++++++------------------
3 files changed, 145 insertions(+), 122 deletions(-)
commit f82b32cb3b93001705a2581ff59293e1074de4bb
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Oct 26 18:56:57 2010 +0100
vertex-buffer: use cogl_get_rectangle_indices
The functionality of cogl_vertex_buffer_indices_get_for_quads is now
provided by cogl_get_rectangle_indices so this reworks the former to now
work in terms of the latter so we don't have duplicated logic.
clutter/cogl/cogl/cogl-context.c | 9 ---
clutter/cogl/cogl/cogl-context.h | 6 --
clutter/cogl/cogl/cogl-vertex-buffer.c | 101 ++++++++++++---------------------
3 files changed, 36 insertions(+), 80 deletions(-)
commit 670ea32dbdffea57008b5f5e315a879353cecdee
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Oct 12 12:55:23 2010 +0100
vertex-buffer: port to CoglVertexAttributes + CoglPrimitive
As part of an ongoing effort to reduce the number of draw paths we have
in Cogl this re-works CoglVertexBuffer to use the CoglVertexAttribute
and CoglPrimitive APIs instead of using raw GL.
clutter/cogl/cogl/cogl-vertex-buffer-private.h | 42 +-
clutter/cogl/cogl/cogl-vertex-buffer.c | 1140 ++++++++----------------
2 files changed, 371 insertions(+), 811 deletions(-)
commit 69b1f756d14237c60073f77ee048975a159148cb
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Oct 26 18:57:33 2010 +0100
primitive: adds immutable ref/unref mechanism
This adds a way to mark that a primitive is in use so that modifications
will generate a warning. The plan is to use this mechanism when batching
primitives in the journal to warn users that mid-scene modifications of
primitives is not allowed.
clutter/cogl/cogl/cogl-primitive-private.h | 8 ++++
clutter/cogl/cogl/cogl-primitive.c | 77 ++++++++++++++++++++++++++++++
2 files changed, 85 insertions(+)
commit 2d58d3f1b6b728e3cca6e1bbeabd19fc03de05df
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Oct 12 15:48:31 2010 +0100
primitive: Adds convenience constructors
This adds convenience primitive constructors named like:
cogl_primitive_new_p3 or
cogl_primitive_new_p3c4 or
cogl_primitive_new_p3t2c4
where the letters correspond to the interleved vertex attributes layouts
such as CoglP3Vertex which is a struct with 3 float x,y,z members for
the [p]osition, or CoglP3T2C4Vertex which is a struct with 3 float x,y,z
members for the [p]osition, 2 float s,t members for the [t]exture
coordinates and 4 unsigned byte r,g,b,a members for the [c]olor.
The hope is that people will find these convenient enough to replace
cogl_polygon.
clutter/cogl/cogl/cogl-primitive.c | 246 +++++++++++++++++++++++++++++++++++++
clutter/cogl/cogl/cogl-primitive.h | 66 +++++++---
2 files changed, 296 insertions(+), 16 deletions(-)
commit 0cd077dc7efc5ed3cb982ffa6c7f4f5276867338
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Oct 12 12:54:07 2010 +0100
cogl: Adds experimental CoglPrimitive API
A CoglPrimitive is a retainable object for drawing a single primitive,
such as a triangle strip, fan or list.
CoglPrimitives build on CoglVertexAttributes and CoglIndices which
themselves build on CoglVertexArrays and CoglIndexArrays respectively.
A CoglPrimitive encapsulates enough information such that it can be
retained in a queue (e.g. the Cogl Journal, or renderlists in the
future) and drawn at some later time.
clutter/cogl/cogl/Makefile.am | 3 +
clutter/cogl/cogl/cogl-primitive-private.h | 46 +++++
clutter/cogl/cogl/cogl-primitive.c | 223 +++++++++++++++++++++
clutter/cogl/cogl/cogl-primitive.h | 311 +++++++++++++++++++++++++++++
clutter/cogl/cogl/cogl.h | 1 +
5 files changed, 584 insertions(+)
commit dd63078bd3e4fae8fced0a2c8801bee145f9c24b
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Oct 12 12:53:10 2010 +0100
cogl: Adds experimental CoglVertexAttribute API
A CoglVertexAttribute defines a single attribute contained in a
CoglVertexArray. I.e. a CoglVertexArray is simply a buffer of N bytes
intended for containing a collection of attributes (position, color,
normals etc) and a CoglVertexAttribute defines one such attribute by
specifying its start offset in the array, its type, the number of
components and the stride etc.
clutter/cogl/cogl/Makefile.am | 3 +
clutter/cogl/cogl/cogl-vertex-attribute-private.h | 80 ++
clutter/cogl/cogl/cogl-vertex-attribute.c | 882 ++++++++++++++++++++++
clutter/cogl/cogl/cogl-vertex-attribute.h | 205 +++++
clutter/cogl/cogl/cogl.h | 1 +
5 files changed, 1171 insertions(+)
commit 3d14fbc30881e7068c6724aef4ec3efbb4467186
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Oct 12 12:48:58 2010 +0100
cogl: Adds experimental CoglIndices API
CoglIndices define a range of indices inside a CoglIndexArray. I.e. a
CoglIndexArray is simply a buffer of N bytes and you can then
instantiate multiple CoglIndices collections that define a sub-region of
a CoglIndexArray by specifying a start offset and an index data type.
clutter/cogl/cogl/Makefile.am | 3 +
clutter/cogl/cogl/cogl-context.c | 18 +++
clutter/cogl/cogl/cogl-context.h | 10 ++
clutter/cogl/cogl/cogl-indices-private.h | 57 +++++++
clutter/cogl/cogl/cogl-indices.c | 253 +++++++++++++++++++++++++++++++
clutter/cogl/cogl/cogl-indices.h | 74 +++++++++
clutter/cogl/cogl/cogl.h | 1 +
7 files changed, 416 insertions(+)
commit 8ca80e47c40422b69d1e7b70850c7033ec71b1b8
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Oct 12 12:34:27 2010 +0100
cogl: Adds experimental CoglVertexArray type
This adds a new CoglVertexArray object which is a subclass of CoglBuffer
used to hold vertex attributes. A later commit will add a
CoglVertexAttribute API which will be used to describe the attributes
inside a CoglVertexArray.
clutter/cogl/cogl/Makefile.am | 3 ++
clutter/cogl/cogl/cogl-vertex-array-private.h | 39 ++++++++++++++
clutter/cogl/cogl/cogl-vertex-array.c | 70 ++++++++++++++++++++++++
clutter/cogl/cogl/cogl-vertex-array.h | 77 +++++++++++++++++++++++++++
clutter/cogl/cogl/cogl.h | 1 +
5 files changed, 190 insertions(+)
commit 3aba41e20209d597c6fc49a6163b86eb71a2ff3a
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Oct 12 12:36:22 2010 +0100
cogl: Adds experimental CoglIndexArray type
A CoglIndexArray is a subclass of CoglBuffer and will be used to hold
vertex indices. A later commit will add a CoglIndices API which will
allow describing a range of indices inside a CoglIndexArray.
clutter/cogl/cogl/Makefile.am | 3 +
clutter/cogl/cogl/cogl-index-array-private.h | 39 ++++++++
clutter/cogl/cogl/cogl-index-array.c | 131 +++++++++++++++++++++++++++
clutter/cogl/cogl/cogl-index-array.h | 79 ++++++++++++++++
clutter/cogl/cogl/cogl.h | 1 +
5 files changed, 253 insertions(+)
commit eac167df1c6ce300d915249e696cc0dc2d6a8819
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Oct 26 19:08:51 2010 +0100
buffer: adds immutable ref/unref mechanism
This adds an internal mechanism to mark that a buffer is in-use so that
a warning can be generated if the user attempts to modify the buffer.
The plans is for the journal to use this mechanism so that we can warn
users about mid-scene modifications of buffers.
clutter/cogl/cogl/cogl-buffer-private.h | 8 +++++++
clutter/cogl/cogl/cogl-buffer.c | 42 +++++++++++++++++++++++++++++++--
2 files changed, 48 insertions(+), 2 deletions(-)
commit efa11f8a8fd0400b3f6003d9f48292b0629d3698
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Oct 12 13:14:17 2010 +0100
buffer: make _bind() return base pointer
We now make _cogl_buffer_bind return a base pointer for the bound buffer
which can be used with OpenGL. The pointer will be NULL for GPU based
buffers or may point to an malloc'd buffer. Since OpenGL expects an
offset instead of a pointer when dealing with buffer objects this means
we can handle fallback malloc buffers and GPU buffers in a consistent
way.
clutter/cogl/cogl/cogl-bitmap.c | 28 ++++++++--------------------
clutter/cogl/cogl/cogl-buffer-private.h | 2 +-
clutter/cogl/cogl/cogl-buffer.c | 17 ++++++++++-------
3 files changed, 19 insertions(+), 28 deletions(-)
commit 35ddc5407efe0e2877d64e75a5d2e252f9aee8b9
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Oct 26 19:02:04 2010 +0100
material: Bail out faster if re-flushing unchanged material
This allows _cogl_material_flush_gl_state to bail out faster if
repeatedly asked to flush the same material and we can see the material
hasn't changed.
Since we can rely on the material age incrementing when any material
property changes or any associated layer property changes then we can
track the age of the material after flushing so it can be compared with
the age of the material if it is subsequently re-flushed. If the age is
the same we only have to re-assert the texture object state.
clutter/cogl/cogl/cogl-context.h | 1 +
clutter/cogl/cogl/cogl-material-opengl.c | 16 ++++++++++++++--
2 files changed, 15 insertions(+), 2 deletions(-)
commit bbf27e6b285afca1261eaa448096667415d81219
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Oct 26 17:43:16 2010 +0100
material-node: track if node owns reference on parent
MaterialNodes are used for the sparse graph of material state and layer
state. In the case of materials there is the idea of weak materials that
don't take a reference on their parent and in that case we need to be
careful not to unref our parent during
_cogl_material_node_unparent_real. This adds a has_parent_reference
member to the CoglMaterialNode struct so we now know when to skip the
unref.
clutter/cogl/cogl/cogl-material-private.h | 4 ++++
clutter/cogl/cogl/cogl-material.c | 4 +++-
2 files changed, 7 insertions(+), 1 deletion(-)
commit e5202d6a0da1d94f65ddbe381766d775e1047e26
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Oct 26 17:38:58 2010 +0100
cogl-object: correctly free user_data_array in _unref
If there is private data associated with a CoglObject then there may be
a user_data_array that needs to be freed. The code was mistakenly
freeing the array inside the loop that was actually iterating over the
user data array notifying the objects destruction instead of waiting
until all the data entries had been destroyed.
clutter/cogl/cogl/cogl-object.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
commit 0b4b1ca1caad41785dadc7d2bd71af6c7b644ada
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date: Sat Oct 30 18:11:03 2010 -0400
Don't leave stale invalidated queued redraws around
Once an actor had _clutter_stage_queue_redraw_entry_invalidate()
called on it once, then priv->queue_redraw_entry would point to
an entry with entry->actor NULL. _clutter_stage_queue_actor_redraw()
doesn't handle this case and no further redraws would be queued.
To fix this, NULL out priv->queue_redraw_entry() and then make sure
we free the invalidated entry in
_clutter_stage_maybe_finish_queue_redraws() just as we do for
still valid entries.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2389
clutter/clutter-actor.c | 5 ++++-
clutter/clutter-stage.c | 12 +++++++-----
2 files changed, 11 insertions(+), 6 deletions(-)
commit 02a3670e880333536f0fb53b1044317a9f46ee15
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Nov 1 15:21:04 2010 +0000
win32: Fix a couple of build warnings
* clutter-backend-win32 had an unused variable
* clutter-event-win32 was using the abs function without including
stdlib.h
clutter/win32/clutter-backend-win32.c | 2 --
clutter/win32/clutter-event-win32.c | 1 +
2 files changed, 1 insertion(+), 2 deletions(-)
commit f13f545aa9824ed53ea5a78878c7f96d40239e48
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Nov 1 15:13:12 2010 +0000
clutter-backend-win32: Use g_object_unref on the stage manager
Previously when trying to destroy all of the stages in the backend
dispose function it would poke directly in the ClutterStageManager
struct to get the list. In 8613013ab08 the defintion of
ClutterStageManager moved to a different header which isn't included
by the Win32 backend so it wouldn't compile. In that commit the X11
backend was changed to unref the stage manager instead of poking in
the internals so we should do the same for the win32 backend.
clutter/win32/clutter-backend-win32.c | 7 +------
1 file changed, 1 insertion(+), 6 deletions(-)
commit 907490d795f4438e631679fce47cae7fc08830d6
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Sun Oct 31 18:34:23 2010 +0000
clone: Remove checks in set_source_internal()
One of the ideas behind _internal() functions is to be able to have a
version of the original one without checks (among other things). As
these functions are either static or private to the library, we control
the arguments given to it, and thus no need for checking them again
here.
clutter/clutter-clone.c | 7 +------
1 file changed, 1 insertion(+), 6 deletions(-)
commit a318fe5ca50feca359abc15238c4ed0da3b41397
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Sun Oct 31 16:49:40 2010 +0000
texture: Warn when the file loaded from a ClutterScript can't be found
Telling the user about files not found when loading a ClutterScript with
ClutterTextures in it is very useful and can save a few minutes (or
hours) of frustation because it "does not work".
clutter/clutter-texture.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
commit 2ee0e40848a1c70c5b9891dea60d0f25d08e2a47
Author: Neil Roberts <neil@linux.intel.com>
Date: Fri Oct 15 18:00:29 2010 +0100
Merge cogl-program-{gl,gles}.c into one cogl-program.c
This merges the two implementations of CoglProgram for the GLES2 and
GL backends into one. The implementation is more like the GLES2
version which would track the uniform values and delay sending them to
GL. CoglProgram is now effectively just a GList of CoglShaders along
with an array of stored uniform values. CoglProgram never actually
creates a GL program, instead this is left up to the GLSL material
backend. This is necessary on GLES2 where we may need to relink the
user's program with different generated shaders depending on the other
emulated fixed function state. It will also be necessary in the future
GLSL backends for regular OpenGL. The GLSL and ARBfp material backends
are now the ones that create and link the GL program from the list of
shaders. The linked program is attached to the private material state
so that it can be reused if the CoglProgram is used again with the
same material. This does mean the program will get relinked if the
shader is used with multiple materials. This will be particularly bad
if the legacy cogl_program_use function is used because that
effectively always makes one-shot materials. This problem will
hopefully be alleviated if we make a hash table with a cache of
generated programs. The cogl program would then need to become part of
the hash lookup.
Each CoglProgram now has an age counter which is incremented every
time a shader is added. This is used by the material backends to
detect when we need to create a new GL program for the user program.
The internal _cogl_use_program function now takes a GL program handle
rather than a CoglProgram. It no longer needs any special differences
for GLES2. The GLES2 wrapper function now also uses this function to
bind its generated shaders.
The ARBfp shaders no longer store a copy of the program source but
instead just directly create a program object when cogl_shader_source
is called. This avoids having to reupload the source if the same
shader is used in multiple materials.
There are currently a few gross hacks to get the GLES2 backend to work
with this. The problem is that the GLSL material backend is now
generating a complete GL program but the GLES2 wrapper still needs to
add its fixed function emulation shaders if the program doesn't
provide either a vertex or fragment shader. There is a new function in
the GLES2 wrapper called _cogl_gles2_use_program which replaces the
previous cogl_program_use implementation. It extracts the GL shaders
from the GL program object and creates a new GL program containing all
of the shaders plus its fixed function emulation. This new program is
returned to the GLSL material backend so that it can still flush the
custom uniforms using it. The user_program is attached to the GLES2
settings struct as before but its stored using a GL program handle
rather than a CoglProgram pointer. This hack will go away once the
GLSL material backend replaces the GLES2 wrapper by generating the
code itself.
Under Mesa this currently generates some GL errors when glClear is
called in test-cogl-shader-glsl. I think this is due to a bug in Mesa
however. When the user program on the material is changed the GLSL
backend gets notified and deletes the GL program that it linked from
the user shaders. The program will still be bound in GL
however. Leaving a deleted shader bound exposes a bug in Mesa's
glClear implementation. More details are here:
https://bugs.freedesktop.org/show_bug.cgi?id=31194
clutter/cogl/cogl/Makefile.am | 6 +-
clutter/cogl/cogl/cogl-internal.h | 4 +-
clutter/cogl/cogl/cogl-material-arbfp.c | 36 +-
clutter/cogl/cogl/cogl-material-fixed.c | 17 +-
clutter/cogl/cogl/cogl-material-glsl.c | 355 ++++++++++-
clutter/cogl/cogl/cogl-material-opengl.c | 156 ++---
clutter/cogl/cogl/cogl-material-private.h | 2 +-
clutter/cogl/cogl/cogl-program-private.h | 78 +++
clutter/cogl/cogl/cogl-program.c | 683 +++++++++++++++++++++
clutter/cogl/cogl/cogl-shader-private.h | 1 -
clutter/cogl/cogl/cogl-shader.c | 56 +-
.../cogl/driver/gl/cogl-feature-functions-gl.h | 11 +
clutter/cogl/cogl/driver/gl/cogl-program-gl.c | 488 ---------------
clutter/cogl/cogl/driver/gl/cogl-program-gl.h | 46 --
clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.c | 194 ++----
clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.h | 9 +-
clutter/cogl/cogl/driver/gles/cogl-program-gles.c | 437 -------------
clutter/cogl/cogl/driver/gles/cogl-program-gles.h | 52 --
18 files changed, 1307 insertions(+), 1324 deletions(-)
commit 65d7a113eeb0de08ccb402fe4ade14fe82fcaff1
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Oct 27 15:07:03 2010 +0100
cogl: Use separate materials for set_source_color and texture
Previously cogl_set_source_color and cogl_set_source_texture modified
a single global material. If an application then mixes using
cogl_set_source_color and texture then the material will constantly
need a new ARBfp program because the numbers of layers alternates
between 0 and 1. This patch just adds a second global material that is
only used for cogl_set_source_texture. I think it would still end up
flushing the journal if cogl_set_source_texture is used with multiple
different textures but at least it should avoid a recompile unless the
texture target also changes. It might be nice to somehow attach a
material to the CoglTexture for use with cogl_set_source_texture but
it would be difficult to implement this without creating a circular
reference.
clutter/cogl/cogl/cogl-context.c | 3 +++
clutter/cogl/cogl/cogl-context.h | 3 ++-
clutter/cogl/cogl/cogl.c | 11 ++---------
3 files changed, 7 insertions(+), 10 deletions(-)
commit 89cedc78009cee86ffe025cd7c2343d69b199928
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Oct 12 12:53:44 2010 +0100
Move IndicesType and VerticesMode typedefs to cogl-types.h
This moves the CoglIndicesType and CoglVerticesMode typedefs from
cogl-vertex-buffer.h to cogl-types.h so they can be shared with the
anticipated cogl vertex attribute API.
clutter/cogl/cogl/cogl-types.h | 48 ++++++++++++++++++++++++++++++++++
clutter/cogl/cogl/cogl-vertex-buffer.h | 47 ---------------------------------
2 files changed, 48 insertions(+), 47 deletions(-)
commit e3bf83eab527d1dfbd697da1cc13dda2bb8b7d30
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Oct 26 16:05:00 2010 +0100
buffer: BufferBindTarget + BufferUsageHint enum renaming
This renames the BufferBindTarget + BufferUsageHint enums to match the
anticipated new APIs for "index arrays" and "vertex arrays" as opposed
to using the terms "vertices" or "indices".
clutter/cogl/cogl/cogl-buffer-private.h | 5 +++--
clutter/cogl/cogl/cogl-buffer.c | 2 +-
2 files changed, 4 insertions(+), 3 deletions(-)
commit 9efe7ca5bc66d2889c45ac998115d3df04bfebb4
Author: Robert Bragg <robert@linux.intel.com>
Date: Mon Oct 18 18:50:02 2010 +0100
buffer: warn if (offset + size) > buffer->size
previously we would silently bail out if the given offset + data size
would overflow the buffer size. Now we use g_return_val_if_fail so we
get a warning if we hit this case.
clutter/cogl/cogl/cogl-buffer.c | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
commit b2963b4eef2aba6b3b62983b1b23ff7abfa221e1
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Oct 12 13:25:05 2010 +0100
pixel-array: Remove some benign variables
There were some completely unused static global variables declared in
cogl-pixel-array.c which this patch removes.
clutter/cogl/cogl/cogl-pixel-array.c | 7 -------
1 file changed, 7 deletions(-)
commit 902c18ad874694b2f3f5fffa67d8f5aa576d79a2
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Oct 12 13:23:44 2010 +0100
pixel-array: Remove flags member and flag macros
There are no flags associated with pixel-arrays so we don't need the
flags member or flag macros.
clutter/cogl/cogl/cogl-pixel-array-private.h | 18 ------------------
clutter/cogl/cogl/cogl-pixel-array.c | 2 --
2 files changed, 20 deletions(-)
commit 1c8b355bbb6f1aa466a8ca0b2a4732135413661b
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Oct 26 16:06:46 2010 +0100
buffer: Add a store_created bit field member
This adds a store_created bit field to CoglBuffer so we know if the
underlying buffer has been allocated yet. Previously the code was trying
to do something really wrong by accidentally using the
COGL_PIXEL_ARRAY_FLAG_IS_SET macro (note "PIXEL_ARRAY") and what is more
odd was the declaration of a CoglPixelArray *pixel_array in
cogl-buffer.c which the buffer was being cast too before calling using
the macro. Probably this was the fall-out of some previous code
re-factoring.
clutter/cogl/cogl/cogl-buffer-private.h | 2 ++
clutter/cogl/cogl/cogl-buffer.c | 25 +++++++++++--------------
2 files changed, 13 insertions(+), 14 deletions(-)
commit d5188c26b6dc928639d0779ba4910ad5f4fa7fcc
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Oct 12 11:46:29 2010 +0100
buffer: remove flag macros
All the macros get used for are to |= (a new flag bit), &= ~(a flag bit)
or use the & operator to test if a flag bit is set. I haven't found the
code more readable with these macros, but several times now I've felt
the need to double check if these macros do anything else behind the
hood or I've forgotten what flags are available so I've had to go to the
macro definition to see what the full enum names are for the flags (the
macros use symbol concatenation) so I can search for the definition of
all the flags. It turns out they are defined next to the macro so you
don't have to search far, but without the macro that wouldn't have been
necessary.
The more common use of the _IS_SET macro is actually more concise
expanded and imho since it doesn't hide anything in a separate header
file the code is more readable without the macro.
clutter/cogl/cogl/cogl-bitmap.c | 4 ++--
clutter/cogl/cogl/cogl-buffer-private.h | 9 ---------
clutter/cogl/cogl/cogl-buffer.c | 20 ++++++++++----------
3 files changed, 12 insertions(+), 21 deletions(-)
commit bc3a26d03552273ddb61004364a6897057415732
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Oct 12 12:35:47 2010 +0100
material: Adds _cogl_material_get_layer_texture
This is a counter part for _cogl_material_layer_get_texture which takes
a layer index instead of a direct CoglMaterialLayer pointer. The aim is
to phase out code that directly iterates the internal layer pointers of
a material since the layer pointers can change if any property of any
layer is changed making direct layer pointers very fragile.
clutter/cogl/cogl/cogl-material-private.h | 4 ++++
clutter/cogl/cogl/cogl-material.c | 9 +++++++++
2 files changed, 13 insertions(+)
commit 0288ba39110b46a51be7d1efc2de0a5a64e0d1e0
Author: Robert Bragg <robert@linux.intel.com>
Date: Mon Oct 18 19:00:50 2010 +0100
material: add internal layer filter getters
This adds internal _cogl_material_get_layer_filters and
_cogl_material_get_layer_{min,mag}_filter functions which can be used to
query the filters associated with a layer using a layer_index, as
opposed to a layer pointer. Accessing layer pointers is considered
deprecated so we need to provide layer_index based replacements.
clutter/cogl/cogl/cogl-material-private.h | 14 ++++++++++
clutter/cogl/cogl/cogl-material.c | 45 +++++++++++++++++++++++++++++++
2 files changed, 59 insertions(+)
commit 6fd26630bae6a30f97e523f4c2e6f21889111930
Author: Robert Bragg <robert@linux.intel.com>
Date: Sun Aug 1 23:05:28 2010 +0100
material: Adds missing get_layer_wrap_mode_xyz prototypes
This adds missing getter function prototypes for
cogl_material_get_layer_wrap_mode_{s,t,p}
clutter/cogl/cogl/cogl-material.h | 52 +++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
commit 32ae904d81684c1affd919fd1ccb024d18636bc8
Author: Robert Bragg <robert@linux.intel.com>
Date: Sun Aug 1 16:07:38 2010 +0100
vertex-buffer: remove the unstrided CBO type
When we come to submitting the users given attributes we sort them into
different types of buffers. Previously we had three types; strided,
unstrided and multi-pack. Really though unstrided was just a limited
form of multi-pack buffer and didn't imply any hind of special
optimization so this patch consolidates some code by reducing to just
two types; strided and multi-pack.
clutter/cogl/cogl/cogl-vertex-buffer-private.h | 5 ++--
clutter/cogl/cogl/cogl-vertex-buffer.c | 33 +++++---------------------
2 files changed, 8 insertions(+), 30 deletions(-)
commit 94e06197856c9959580c837985eb114150d402a3
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Jul 28 13:59:34 2010 +0100
material: Adds _cogl_material_pre_paint_for_layer
This is a counter part for _cogl_material_layer_pre_paint which takes a
layer index instead of a direct CoglMaterialLayer pointer. The aim is to
phase out code that directly iterates the internal layer pointers of a
material since the layer pointers can change if any property of any
layer is changed making direct layer pointers very fragile.
clutter/cogl/cogl/cogl-material-private.h | 9 +++++++++
clutter/cogl/cogl/cogl-material.c | 8 ++++++++
2 files changed, 17 insertions(+)
commit 701a69366142f5c2389110daa0426abdb8691f6d
Author: Robert Bragg <robert@linux.intel.com>
Date: Mon Oct 25 13:25:21 2010 +0100
cogl: Adds {push,pop,get}_source functions
This exposes the idea of a stack of source materials instead of just
having a single current material. This allows the writing of orthogonal
code that can change the current source material and restore it to its
previous state. It also allows the implementation of new composite
primitives that may want to validate the current source material and
possibly make override changes in a derived material.
clutter/cogl/cogl/cogl-clip-stack.c | 7 +-
clutter/cogl/cogl/cogl-context.c | 6 +-
clutter/cogl/cogl/cogl-context.h | 2 +-
clutter/cogl/cogl/cogl-material-private.h | 3 +
clutter/cogl/cogl/cogl-path.c | 41 ++++++-----
clutter/cogl/cogl/cogl-primitives.c | 99 +++++++++++++--------------
clutter/cogl/cogl/cogl-texture.c | 7 +-
clutter/cogl/cogl/cogl-vertex-buffer.c | 38 +++++++----
clutter/cogl/cogl/cogl.c | 109 +++++++++++++++++++++++++++---
clutter/cogl/cogl/cogl.h | 58 +++++++++++++---
doc/reference/cogl/cogl-sections.txt | 3 +
11 files changed, 252 insertions(+), 121 deletions(-)
commit bf6c635e9dfa28470fa31b6459c6636afe70c95e
Merge: b16ff0359 cf46c8197
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Oct 25 23:44:53 2010 +0100
Merge branch 'private-cleanup'
* private-cleanup:
Add copyright notices
Clean up clutter-private.h/6
Clean up clutter-private.h/5
Clean up clutter-private.h/4
Clean up clutter-private.h/3
Clean up clutter-private.h/2
Clean up clutter-private.h/1
commit b16ff0359ac53bfd6650256c874677e44b93a746
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Oct 25 17:44:27 2010 +0100
Post-release version bump to 1.5.5
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit cba230400a4d92f6c97f029326d68fa5798b1214
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Oct 25 17:30:52 2010 +0100
Release Clutter 1.5.4
configure.ac | 2 +-
po/clutter-1.0.pot | 792 ++++++++++++++++++++++++------------------------
po/de.po | 822 +++++++++++++++++++++++++-------------------------
po/fr.po | 860 +++++++++++++++++++++++++++--------------------------
po/id.po | 799 ++++++++++++++++++++++++-------------------------
po/it.po | 790 ++++++++++++++++++++++++------------------------
po/pl.po | 812 ++++++++++++++++++++++++++------------------------
po/zh_CN.po | 800 ++++++++++++++++++++++++-------------------------
8 files changed, 2867 insertions(+), 2810 deletions(-)
commit cb7d2943eafd65a2526f7da0f9e5d8bf1a176f32
Author: Chris Lord <chris@linux.intel.com>
Date: Fri Oct 22 17:41:06 2010 +0100
state: Correct the documentation
Correct the argument order and replace all occurrences of
clutter_state_change() with the appropriate clutter_state_set_state() or
clutter_state_warp_to_state().
clutter/clutter-state.c | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
commit bfc1583d76548f9882a4d77df39d32733883814d
Author: Chris Lord <chris@linux.intel.com>
Date: Fri Oct 22 16:32:05 2010 +0100
state: Fix warping to the current state during transitions
If you warp to a state, it should be immediately set. Check if the
animation is in progress when warping to a state and don't short-circuit
in the already-set check if we're not animating.
clutter/clutter-state.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
commit 35c35de55c27ff212d819e202b6081859510ee3d
Author: Chris Lord <chris@linux.intel.com>
Date: Fri Oct 22 16:13:16 2010 +0100
state: Handle setting keys for the current target state
Add special behaviour when you set the key of the current target state:
- If the state is transitioning, add/modify the interval so that the new
key transitions from the current time (taking into account pre-delay) to
its target final property
- If the state is set but has already finished animating/was warped to,
set the property immediately
clutter/clutter-state.c | 73 ++++++++++++++++++++++++++++++++++++++++++++++---
1 file changed, 69 insertions(+), 4 deletions(-)
commit 73dcbedc8067fac25e43d833036f8c76f7c01282
Author: Chris Lord <chris@linux.intel.com>
Date: Fri Oct 22 15:24:49 2010 +0100
state: Fix crasher when removing the last key of a transitioning state
If ClutterState is in the middle of a transition and you remove all the
keys from the target state, the target state will be destroyed without
stopping the animation/unsetting the target state. This caused an invalid
memory access.
clutter/clutter-state.c | 4 ++++
1 file changed, 4 insertions(+)
commit 5700b34b9cd894e6847dc8973e358104b47fdae5
Author: Chris Lord <chris@linux.intel.com>
Date: Thu Oct 21 16:51:45 2010 +0100
state: Allow setting a NULL state
Allow setting a %NULL state. This has the effect of unsetting the current
state and stopping all animation. This allows you to, for example, start
a state transition, set the state to NULL, alter the state transition
and then resume it again, by just setting it.
clutter/clutter-state.c | 22 ++++++++++++++++++----
1 file changed, 18 insertions(+), 4 deletions(-)
commit 9c5f09f32d291aac58fa7e7456302272e4c2a49e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Oct 25 17:16:24 2010 +0100
Update NEWS
NEWS | 3 +++
1 file changed, 3 insertions(+)
commit ef6b46d8262cb9910dc70afa3cff2c2443f65d69
Merge: 0cb2ef434 f6ab7eccd
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Oct 25 17:09:46 2010 +0100
Merge branch 'wip/path-constraint'
* wip/path-constraint:
docs: Add PathConstraint
tests: Add a PathConstraint interactive test
Add ClutterPathConstraint
actor-box: Add setters for origin and size
commit f6ab7eccd9c946c75b5b4f4eba0c4a834f31804a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Oct 25 16:09:40 2010 +0100
docs: Add PathConstraint
clutter/clutter-path-constraint.c | 68 ++++++++++++++++++++++++++++++
clutter/clutter-path-constraint.h | 2 +-
doc/reference/clutter/clutter-sections.txt | 16 +++++++
3 files changed, 85 insertions(+), 1 deletion(-)
commit 6f8e46e0b356ab5f367a1042be04392fe0775cba
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Oct 25 15:47:15 2010 +0100
tests: Add a PathConstraint interactive test
tests/interactive/Makefile.am | 3 +-
tests/interactive/test-path-constraint.c | 63 ++++++++++++++++++++++++++++++++
2 files changed, 65 insertions(+), 1 deletion(-)
commit 6b2cbb990835f366060e59344db9019d271b2a89
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Oct 25 15:46:04 2010 +0100
Add ClutterPathConstraint
ClutterPathConstraint is a simple Constraint implementation that
modifies the allocation of the Actor to which is has been applied using
a progress value and a ClutterPath.
clutter/Makefile.am | 2 +
clutter/clutter-path-constraint.c | 287 ++++++++++++++++++++++++++++++++++++++
clutter/clutter-path-constraint.h | 65 +++++++++
clutter/clutter.h | 1 +
4 files changed, 355 insertions(+)
commit 3f6ec0ba5a153f8185db8e481f823b49030bd8bc
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Oct 25 15:45:35 2010 +0100
actor-box: Add setters for origin and size
clutter/clutter-actor-box.c | 49 ++++++++++++++++++++++++++++++
clutter/clutter-types.h | 7 +++++
doc/reference/clutter/clutter-sections.txt | 2 ++
3 files changed, 58 insertions(+)
commit 0cb2ef434b371d5d372040e03ec6705f2991ad39
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Thu Oct 14 11:48:00 2010 -0400
eglnative: Fix the type of stage for eglnative
CLUTTER_TYPE_STAGE_EGLNATIVE does not exist any more, use
CUTTER_TYPE_STAGE_EGL instead.
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 6da18b6e4f93bb1430698959d6280cb53f9e2ff2
Author: Neil Roberts <neil@linux.intel.com>
Date: Thu Oct 21 17:20:44 2010 +0100
win32: Fix clutter_win32_disable_event_retrieval
There was previously a flag that gets set when this function was
called but nothing checked it so the function effectively did
nothing. Also the flag was a member of the backend struct but this
can't be used because the function should be called before
clutter_init so the backend is not ready yet. This patch makes the
event disabling work more like the X11 backend and set a global
variable instead.
clutter/win32/clutter-backend-win32.c | 30 ++++++++++++++++++++++++++++--
clutter/win32/clutter-backend-win32.h | 1 -
clutter/win32/clutter-event-win32.c | 20 --------------------
3 files changed, 28 insertions(+), 23 deletions(-)
commit e6099cdd4bd08d81cab51ff4fc291c839d7f37e3
Author: Ole André Vadla Ravnås <oravnas@cisco.com>
Date: Thu Oct 14 15:30:54 2010 +0200
win32: Use _clutter_actor_rerealize() like X11 backend does
http://bugzilla.clutter-project.org/show_bug.cgi?id=1654
clutter/win32/clutter-stage-win32.c | 90 +++++++++++++++++++++++++++----------
1 file changed, 66 insertions(+), 24 deletions(-)
commit e66c679e84fd604d714828dceba1a50105790181
Author: Neil Roberts <neil@linux.intel.com>
Date: Fri Aug 27 15:54:21 2010 +0100
win32: Add a public clutter_win32_handle_event function
This function handles a single windows message. The idea is that it
could be used by clutter-gtk to forward on events from a
GdkEventFilter. The function replaces the old message_translate()
function. That function didn't translate the event anymore anyway and
instead it could generate multiple events so
clutter_win32_handle_event seems like a more appropriate name. The
function returns TRUE or FALSE depending on whether the event was
completely handled instead of setting call_window_proc.
clutter/win32/clutter-event-win32.c | 70 +++++++++++++++++++-----------
clutter/win32/clutter-win32.h | 2 +
doc/reference/clutter/clutter-sections.txt | 1 +
3 files changed, 47 insertions(+), 26 deletions(-)
commit 52744c0d9db6d7f9738d31b6d9f774c0912fcad0
Author: Neil Roberts <neil@linux.intel.com>
Date: Thu Oct 21 16:27:17 2010 +0100
clutter-stage: Set the Cogl framebuffer size after allocating
When handling an allocation on the stage, Clutter uses the oppurtunity
to inform Cogl of the new size of the framebuffer so that it can
handle the viewport correctly. It queries the size of the window
implementation using a backend virtual function. However it was doing
this before letting the backend handle the allocation so on Win32 it
would end up using the previous framebuffer size. This wasn't
affecting the X11 backend because in that case the resizes are
asynchronous so setting the stage size causes one allocation which
ends up sending a window size request. Eventually a ConfigureNotify is
received which causes the size of the stage to be set again and
another allocation is fired meaning the framebuffer size will be set
again this time with the correct size. In Win32 the resizes are
synchronous so we don't have this second allocation.
clutter/clutter-stage.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
commit cc7977988c92ad7fa96f0a1dd0a8581432f090ca
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Oct 25 13:15:01 2010 +0100
cogl-context-winsys: Avoid zero-length arrays
When compiling for non-glx platforms the winsys feature data array
ends up empty. Empty arrays cause problems for MSVC so this patch adds
a stub entry so that the array always has at least one entry.
Based on a patch by Ole André Vadla Ravnås
clutter/cogl/cogl/winsys/cogl-context-winsys.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
commit f1752ff3ba1828873f7f97f3842eadcc389e87a1
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Oct 25 13:08:52 2010 +0100
Avoid mixing declarations and code
Mixing declarations and code causes problems for MSVC as it is a C99
feature so we should try to avoid it.
clutter/cally/cally-actor.c | 66 +++++++++++++++++---------------
clutter/clutter-stage.c | 3 +-
clutter/cogl/cogl/cogl-material-opengl.c | 9 ++++-
clutter/cogl/cogl/cogl-material.c | 4 +-
clutter/x11/clutter-event-x11.c | 5 ++-
tests/conform/test-cogl-blend-strings.c | 8 ++--
tests/conform/test-cogl-depth-test.c | 8 ++--
tests/conform/test-cogl-materials.c | 8 ++--
tests/conform/test-cogl-premult.c | 8 ++--
9 files changed, 68 insertions(+), 51 deletions(-)
commit 8e3674dcc12654e48e9c85e5aff2d56642512321
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Oct 25 13:07:50 2010 +0100
Avoid variable length arrays in clutter-backend-x11
There was an array whose length was define by a static const int
variable. GCC seems to consider this a variable-length array so it
will cause warnings now that -Wvla is enabled. We might as well make
this constant a #define instead to avoid the warning.
clutter/x11/clutter-backend-x11.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
commit c3f47fa7d03ec3e7a5f963ced0457f27c3ec41ee
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Oct 25 13:03:39 2010 +0100
Add -Wdeclaration-after-statement and -Wvla to maintainer CFLAGS
These warnings pick up C99 extensions that are commonly accidentally
used and which cause problems when compiling with MSVC.
configure.ac | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
commit 164af55a6e52075afbc335a3ff15fe9b48ac9f31
Author: Giovanni Campagna <gcampagna@src.gnome.org>
Date: Sun Oct 24 14:45:16 2010 +0200
Avoid warnings on ClutterClone with a NULL source
clutter_clone_apply_transform should check the source before calling
methods on it, else criticals will be emitted.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2381
clutter/clutter-clone.c | 4 ++++
1 file changed, 4 insertions(+)
commit c7bfe27e96ccc6295d0e774dacf3597ec7df146c
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Oct 25 12:31:50 2010 +0100
Update NEWS
NEWS | 39 +++++++++++++++++++++++++++++++++++++++
1 file changed, 39 insertions(+)
commit 276acf5854c0e589eae9a76c78ef1faa50c46caa
Author: Ole André Vadla Ravnås <oravnas@cisco.com>
Date: Sat Oct 9 23:07:26 2010 +0200
binding-pool: Use the correct marshaller
clutter/clutter-binding-pool.c | 8 ++++----
clutter/clutter-marshal.list | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
commit c792431538e02c05f90f12bd4c36c72cf3f3eab4
Author: Ole André Vadla Ravnås <oravnas@cisco.com>
Date: Thu Oct 14 13:11:46 2010 +0200
interval: Remember to chain up to parent in finalize()
clutter/clutter-interval.c | 2 ++
1 file changed, 2 insertions(+)
commit d5634e37a262012f66022071d862ad9e5a8fbe53
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Oct 4 14:34:24 2010 +0100
cogl-texture-2d-sliced: Use the other backends for the slices
Instead of directly manipulating GL textures itself,
CoglTexture2DSliced now works in terms of CoglHandles. It creates the
texture slices using cogl_texture_new_with_size which should always
end up creating a CoglTexture2D because the size should fit. This
allows us to avoid replicating some code such as the first pixel
mipmap tracking and it better enforces the separation that each
texture backend is the only place that contains code dealing with each
texture target.
clutter/cogl/cogl/cogl-texture-2d-sliced-private.h | 20 +-
clutter/cogl/cogl/cogl-texture-2d-sliced.c | 1103 ++++++++------------
2 files changed, 462 insertions(+), 661 deletions(-)
commit 61f2f1c024a01368ff99e6639518463b175ff2c0
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Oct 4 15:27:38 2010 +0100
Support foreign textures in the texture-2d and rectangle backends
This adds two new internal functions to create a foreign texture for
the texture 2d and rectangle backends. cogl_texture_new_from_foreign
will now use one of these backends directly if there is no waste
instead of always using the sliced texture backend.
clutter/cogl/cogl/cogl-texture-2d-private.h | 7 ++
clutter/cogl/cogl/cogl-texture-2d.c | 135 +++++++++++++++++++--
clutter/cogl/cogl/cogl-texture-rectangle-private.h | 7 ++
clutter/cogl/cogl/cogl-texture-rectangle.c | 118 +++++++++++++++++-
clutter/cogl/cogl/cogl-texture.c | 42 +++++--
5 files changed, 287 insertions(+), 22 deletions(-)
commit 7b7b655e6ef45e5bdda25fe7b416ea632a0da25f
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Fri Oct 22 06:52:27 2010 +0100
build: Dist cookbook.xsl
cookbook.xsl was not in EXTRA_DIST, so the cookbook was not buildable
with released tarballs.
doc/common/Makefile.am | 1 +
1 file changed, 1 insertion(+)
commit cf46c8197e678bd53d3592307b326fa984c93eb9
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Oct 21 13:13:00 2010 +0100
Add copyright notices
clutter/clutter-actor-meta-private.h | 24 ++++++++++++++++++++++++
clutter/clutter-actor-meta.c | 24 ++++++++++++++++++++++++
clutter/clutter-actor-meta.h | 24 ++++++++++++++++++++++++
clutter/clutter-actor-private.h | 21 +++++++++++++++++++++
clutter/clutter-backend-private.h | 21 +++++++++++++++++++++
clutter/clutter-device-manager-private.h | 24 ++++++++++++++++++++++++
clutter/clutter-paint-volume-private.h | 21 +++++++++++++++++++++
clutter/clutter-stage-manager-private.h | 24 ++++++++++++++++++++++++
clutter/clutter-stage-private.h | 21 +++++++++++++++++++++
9 files changed, 204 insertions(+)
commit 46c597a1f674394d94ac9bdd61b3521d8bb0905a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Oct 21 12:16:05 2010 +0100
Clean up clutter-private.h/6
Move all Actor private API to a separate file.
clutter/Makefile.am | 1 +
clutter/clutter-actor-box.c | 2 +
clutter/clutter-actor-private.h | 97 +++++++++++++++++++++++++++++
clutter/clutter-actor.c | 2 +-
clutter/clutter-animator.c | 2 +
clutter/clutter-behaviour-ellipse.c | 6 +-
clutter/clutter-bind-constraint.c | 2 +
clutter/clutter-cairo-texture.c | 1 +
clutter/clutter-clone.c | 1 +
clutter/clutter-desaturate-effect.c | 2 +
clutter/clutter-input-device.c | 1 +
clutter/clutter-master-clock.c | 1 +
clutter/clutter-offscreen-effect.c | 1 +
clutter/clutter-page-turn-effect.c | 2 +
clutter/clutter-paint-volume.c | 1 +
clutter/clutter-path.c | 3 +-
clutter/clutter-private.h | 102 +------------------------------
clutter/clutter-rectangle.c | 1 +
clutter/clutter-stage.c | 1 +
clutter/clutter-text.c | 2 +
clutter/clutter-texture.c | 1 +
clutter/clutter-units.c | 2 +
clutter/glx/clutter-stage-glx.c | 1 +
clutter/wayland/clutter-stage-wayland.c | 7 ++-
clutter/win32/clutter-stage-win32.c | 1 +
clutter/x11/clutter-event-x11.c | 3 +-
clutter/x11/clutter-stage-x11.c | 1 +
clutter/x11/clutter-x11-texture-pixmap.c | 1 +
28 files changed, 138 insertions(+), 110 deletions(-)
commit cf3a29f224644b718458576191a6246883ba6485
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Oct 21 11:59:50 2010 +0100
Clean up clutter-private.h/5
Move PaintVolume private API to a separate header.
clutter/Makefile.am | 1 +
clutter/clutter-actor.c | 1 +
clutter/clutter-clone.c | 2 +-
clutter/clutter-paint-volume-private.h | 104 +++++++++++++++++++++++++++++++
clutter/clutter-paint-volume.c | 3 +
clutter/clutter-private.h | 93 ---------------------------
clutter/clutter-stage.c | 19 +++---
clutter/x11/clutter-event-x11.c | 1 +
clutter/x11/clutter-x11-texture-pixmap.c | 4 +-
9 files changed, 124 insertions(+), 104 deletions(-)
commit 43edfc940038f9582902d83e798b9985f8790f57
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Oct 21 11:49:37 2010 +0100
Clean up clutter-private.h/4
Move the private Backend API to a separate header.
This also allows us to finally move the class vtable and instance
structure to a separate file and plug the visibility hole that left
the Backend class bare for everyone to poke into.
clutter/Makefile.am | 1 +
clutter/clutter-backend-private.h | 99 +++++++++++++++++++++++++++++++
clutter/clutter-backend.c | 2 +-
clutter/clutter-backend.h | 50 ----------------
clutter/clutter-device-manager.c | 1 +
clutter/clutter-event.c | 5 +-
clutter/clutter-feature.c | 1 +
clutter/clutter-main.c | 16 ++---
clutter/clutter-private.h | 37 ------------
clutter/clutter-stage.c | 2 +-
clutter/clutter-units.c | 5 +-
clutter/egl/clutter-backend-egl.h | 3 +-
clutter/fruity/clutter-backend-fruity.h | 5 +-
clutter/osx/clutter-backend-osx.h | 2 +-
clutter/wayland/clutter-backend-wayland.h | 3 +-
clutter/win32/clutter-backend-win32.h | 3 +-
clutter/x11/clutter-backend-x11.h | 3 +-
17 files changed, 129 insertions(+), 109 deletions(-)
commit 8613013ab086668360d4ce625fe7b896ca5ae0e0
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Oct 21 11:29:09 2010 +0100
Clean up clutter-private.h/3
Move Stage private API to a separate header.
clutter/Makefile.am | 1 +
clutter/clutter-actor.c | 2 +-
clutter/clutter-backend.c | 2 +
clutter/clutter-input-device.c | 1 +
clutter/clutter-main.c | 2 +-
clutter/clutter-master-clock.c | 1 +
clutter/clutter-offscreen-effect.c | 1 +
clutter/clutter-private.h | 69 -------------------------------
clutter/clutter-stage-manager-private.h | 7 ++++
clutter/clutter-stage-private.h | 64 ++++++++++++++++++++++++++++
clutter/clutter-stage.c | 2 +-
clutter/clutter-texture.c | 1 +
clutter/egl/clutter-backend-egl.c | 9 ++--
clutter/egl/clutter-stage-egl.c | 19 ++++-----
clutter/fruity/clutter-backend-fruity.c | 8 ++--
clutter/glx/clutter-backend-glx.c | 11 ++---
clutter/glx/clutter-event-glx.c | 2 +
clutter/glx/clutter-stage-glx.c | 21 ++++------
clutter/osx/clutter-backend-osx.c | 7 +++-
clutter/osx/clutter-stage-osx.c | 8 ++--
clutter/wayland/clutter-backend-wayland.c | 11 ++---
clutter/wayland/clutter-stage-wayland.c | 20 ++++-----
clutter/win32/clutter-backend-win32.c | 13 +++---
clutter/win32/clutter-event-win32.c | 1 +
clutter/win32/clutter-stage-win32.c | 19 ++++-----
clutter/x11/clutter-backend-x11.c | 6 +--
clutter/x11/clutter-event-x11.c | 1 +
clutter/x11/clutter-stage-x11.c | 17 ++++----
28 files changed, 162 insertions(+), 164 deletions(-)
commit 999c0637848bc36b2a668f52ff58125a1f298dd8
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Oct 21 10:59:49 2010 +0100
Clean up clutter-private.h/2
Move StageManager private API to a different header.
clutter/Makefile.am | 1 +
clutter/clutter-private.h | 8 --------
clutter/clutter-stage-manager-private.h | 18 ++++++++++++++++++
clutter/clutter-stage-manager.c | 13 ++-----------
clutter/clutter-stage.c | 2 +-
5 files changed, 22 insertions(+), 20 deletions(-)
commit c1771d152eaaa54017e80f370b2163eadc8c2fdc
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Oct 21 10:54:14 2010 +0100
Clean up clutter-private.h/1
Move DeviceManager/InputDevice private API to a different header.
clutter/Makefile.am | 23 ++++-----
clutter/clutter-device-manager-private.h | 68 ++++++++++++++++++++++++++
clutter/clutter-device-manager.c | 2 +-
clutter/clutter-event.c | 4 +-
clutter/clutter-input-device.c | 1 +
clutter/clutter-main.c | 1 +
clutter/clutter-private.h | 58 ----------------------
clutter/clutter-stage.c | 2 +-
clutter/wayland/clutter-input-device-wayland.c | 7 +--
clutter/win32/clutter-device-manager-win32.c | 2 +-
clutter/win32/clutter-event-win32.c | 13 ++---
clutter/x11/clutter-device-manager-x11.c | 2 +-
clutter/x11/clutter-event-x11.c | 11 +++--
clutter/x11/clutter-input-device-x11.c | 6 ++-
14 files changed, 109 insertions(+), 91 deletions(-)
commit f709664f2338302f3ad09427d97847c21518cc1d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Oct 20 09:42:34 2010 +0100
build: Go back to autoreconf
After testing and distchecking, I verified that autoreconf can still be
used to rebuild the autotools setup.
Thanks to Javier Jardón for the second pair of eyes.
autogen.sh | 91 ++++++--------------------------------------------------------
1 file changed, 8 insertions(+), 83 deletions(-)
commit 68156c24c1e951f06a12feca4f13b9cd1627df61
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Oct 19 17:48:15 2010 +0100
build: Remove unused Makefile.am
We switched to a non-recursive layout, hence we don't need Makefile.am
in the osx/ and fruity/ sub-directories.
clutter/fruity/Makefile.am | 24 ------------------------
clutter/osx/Makefile.am | 25 -------------------------
2 files changed, 49 deletions(-)
commit ce3311df2683dae46b3b63a760ae87353f9f59b6
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Oct 19 12:32:02 2010 +0100
conform: Remove unnecessary destroy() calls
Unparented actors are owned by the Script instance, and if that goes
away then the actors go away with it. The fact that we needed an
explicit destroy() before was a hint of a memory management issue that I
blissfully - and regretfully - ignored for the sake of a passing test
suite.
tests/conform/test-script-parser.c | 5 -----
1 file changed, 5 deletions(-)
commit b5bbdd6cecc47beb0d299fdcf92aa58f71aabb1e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Oct 19 11:03:13 2010 +0100
build: Add test wrappers to the main ignore file
They are generated at configure time, so it's a good idea to have them
in the main ignore file instead of adding them to the built ignore files
under tests.
.gitignore | 2 ++
tests/conform/Makefile.am | 1 -
tests/interactive/Makefile.am | 1 -
3 files changed, 2 insertions(+), 2 deletions(-)
commit e80825535adf57db6d7faa16b81eddb7b5d6b065
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Oct 19 10:48:39 2010 +0100
build: Show whether we have XComposite
Since we're doing it for other optional X11 extensions as well.
configure.ac | 1 +
1 file changed, 1 insertion(+)
commit dd2f55c6f6bbc2f0a12b70ccf90cf7840b6e2212
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Oct 19 10:40:57 2010 +0100
x11: Protect XComposite API calls
Since we allow compiling Clutter without the XComposite extension
available, we need to protect the calls to the XComposite API with
the guards provided by the configure script.
clutter/x11/clutter-backend-x11.c | 8 +++++++-
clutter/x11/clutter-x11-texture-pixmap.c | 16 ++++++++++++----
2 files changed, 19 insertions(+), 5 deletions(-)
commit 21eb49098a7e90007b9043917a8dcf816db765b7
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Sep 13 23:29:52 2010 +0300
script: Fix the memory management
Currently, the memory management in ClutterScript is overly complicated.
The basic design tenet should be:
- ClutterScript owns a reference on every object it creates
This allows the Script instance to reliably handle the lifetime of the
instances from creation to disposal.
In case of unmerge, the Script instance should destroy any Actor
instance, except for the Stage, and release the reference it owns. The
Stage is special because it's really owned by Clutter itself, and it
should be destroyed explicitly.
When disposing the Script itself, it should just release the reference;
any parented actor, or any InitiallyUnowned instance, will then be
managed by the parent object, as they should, while every GObject
instance will go away, as documented.
This commit is based on a patch by:
Henrik Hedberg <hhedberg@innologies.fi>
http://bugzilla.clutter-project.org/show_bug.cgi?id=2316
clutter/clutter-script-parser.c | 30 ++++++++++++++++++++++--------
clutter/clutter-script-private.h | 3 ++-
clutter/clutter-script.c | 20 +++++---------------
3 files changed, 29 insertions(+), 24 deletions(-)
commit 20a359cc530bac6a27bfa46839b49a88e1bec3d6
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Oct 19 01:41:05 2010 +0100
debug: Do not use '&' in the messages
Use ':' as a separator between G_STRLOC and the debug message, like we
do for warnings.
clutter/clutter-debug.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
commit 78d4073f8ebb115d4e02f5ffea11260ed286719f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Oct 19 01:40:44 2010 +0100
Remove unused variables
clutter/clutter-script.c | 1 -
clutter/clutter-shader-effect.c | 1 -
2 files changed, 2 deletions(-)
commit 1c9dcdaeb295867d86a447cfc3df44d4e74d3ae0
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Thu Oct 14 15:33:17 2010 +0100
build: Fix CLUTTER_EGL_BACKEND definition for eglnative and cex100
CLUTTER_EGL_BACKEND is used to define a special EGL native backend to
use and was introduced for the CEX100 EGL backend. Unfortunately
CLUTTER_EGL_BACKEND was defined to "cex100" for eglnative, which is
obviously wrong.
The paches defines the right values for CLUTTER_EGL_BACKEND for the
eglnative and cex100 flavours.
configure.ac | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
commit 32270730bdcc20d9ac19c5b66cfda08e8e839937
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Thu Oct 14 16:32:13 2010 +0100
build: Fix EGL/CEX100 build with GLES2
Some headers files have been renamed or removed and the gles(2) did not
compile anymore, fix that.
clutter/cogl/cogl/driver/gles/cogl-gles.c | 2 +-
clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
commit 0f613ea134b7369a214e1bb0056e3a21233982f9
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Oct 15 17:35:41 2010 +0100
cairo-texture: Allow overriding the surface creation
By using a new signal, ::create-surface (width, height), it should be
possible for third party code and sub-classes to override the default
surface creation code in CairoSurface.
This commit takes a bit of the patch from:
http://bugzilla.clutter-project.org/show_bug.cgi?id=1878
which cleans up CairoTexture; the idea, mutuated from that bug, is that
the CairoTexture actor checks whether the surface it has it's an image
one, and in that case it uses a Cogl texture as the backing store. In
case the surface is not an image one we assume that the surface itself
has some way of updating the GL state and flush the surface.
clutter/clutter-cairo-texture.c | 303 ++++++++++++---------
clutter/clutter-cairo-texture.h | 7 +-
clutter/clutter-marshal.list | 1 +
tests/interactive/Makefile.am | 2 +-
...lutter-cairo-flowers.c => test-cairo-flowers.c} | 3 +-
5 files changed, 182 insertions(+), 134 deletions(-)
commit 63e314b07e8212089c2c50aab015790fe8908e6a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Oct 15 16:09:19 2010 +0100
build: Depend on cairo-gobject
Starting from version 1.10, Cairo ships GTypes for its data types.
README | 2 +-
configure.ac | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
commit 8729c01377d11874107bdee5d53dbcb23874db20
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Oct 15 16:09:12 2010 +0100
build: Remove unnecessary g-i version check
configure.ac | 7 -------
1 file changed, 7 deletions(-)
commit 050e775da27209c5720d5ba8bffde786add562cd
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Oct 15 15:24:27 2010 +0100
Move more classes to install_properties()
clutter/clutter-actor-meta.c | 51 ++++++-----
clutter/clutter-align-constraint.c | 56 ++++++------
clutter/clutter-alpha.c | 20 ++---
clutter/clutter-animation.c | 86 +++++++++----------
clutter/clutter-animator.c | 33 ++++----
clutter/clutter-behaviour.c | 18 ++--
clutter/clutter-bin-layout.c | 104 +++++++++++------------
clutter/clutter-bind-constraint.c | 51 ++++++-----
clutter/clutter-binding-pool.c | 20 +++--
clutter/clutter-cairo-texture.c | 39 ++++-----
clutter/clutter-child-meta.c | 35 ++++----
clutter/clutter-click-action.c | 31 +++----
clutter/clutter-clone.c | 20 +++--
clutter/clutter-colorize-effect.c | 18 ++--
clutter/clutter-deform-effect.c | 55 ++++++------
clutter/clutter-desaturate-effect.c | 28 +++---
clutter/clutter-device-manager.c | 20 ++---
clutter/clutter-flow-layout.c | 165 ++++++++++++++++++------------------
clutter/clutter-script.c | 36 ++++----
clutter/clutter-shader-effect.c | 25 +++---
clutter/clutter-timeline.c | 72 ++++++++--------
21 files changed, 492 insertions(+), 491 deletions(-)
commit 8429aa8d755b268975c2870978f8d8484f584542
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Oct 8 15:47:00 2010 +0100
Remove unnecessary GLib version checks
We now depend on a newer version of GLib than those checks tested for.
clutter/clutter-animation.c | 6 ------
clutter/clutter-animator.c | 5 -----
clutter/clutter-box.c | 5 -----
clutter/clutter-container.c | 5 -----
clutter/clutter-frame-source.c | 3 ---
clutter/clutter-interval.c | 10 ----------
clutter/clutter-layout-manager.c | 5 -----
clutter/clutter-master-clock.c | 2 --
clutter/clutter-state.c | 5 -----
clutter/clutter-timeout-pool.c | 2 --
clutter/x11/clutter-event-x11.c | 3 ---
11 files changed, 51 deletions(-)
commit 7dd09e21861bd1b7ceaea112b6e4fb69aeebbf1e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Oct 8 15:21:57 2010 +0100
Use G_DEFINE_BOXED_TYPE for all boxed types
We actually need a couple more macros for registering GValue
transformation functions. Those should be added to upstream
GLib.
clutter/clutter-actor-box.c | 60 +++++++++++-----------------
clutter/clutter-actor.c | 88 ++++++++++++++----------------------------
clutter/clutter-animator.c | 16 ++------
clutter/clutter-behaviour.c | 18 ++-------
clutter/clutter-color.c | 29 +++-----------
clutter/clutter-event.c | 16 ++------
clutter/clutter-paint-volume.c | 16 ++------
clutter/clutter-path.c | 48 +++++++----------------
clutter/clutter-private.h | 24 +++++++++---
clutter/clutter-stage.c | 27 ++-----------
clutter/clutter-state.c | 15 ++-----
clutter/clutter-state.h | 1 +
clutter/clutter-units.c | 45 +++++----------------
13 files changed, 123 insertions(+), 280 deletions(-)
commit 09a830d2945456d882cbf8b326264041b172fea9
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Oct 8 14:49:47 2010 +0100
Remove conditional wrappers for property installation/notification
For the time being, just keep the #define's.
clutter/clutter-drag-action.c | 11 ++++++-----
clutter/clutter-private.h | 27 ++-------------------------
2 files changed, 8 insertions(+), 30 deletions(-)
commit 9caf11f2d8f7120830da9f10a694ccc8f30ebee1
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Oct 8 14:47:46 2010 +0100
Use G_DEFINE_INTERFACE
GObject provides us with a nice, safe macro for defining interface
types.
clutter/clutter-animatable.c | 16 +-
clutter/clutter-container.c | 178 +++++++++-----------
clutter/clutter-media.c | 368 +++++++++++++++++++----------------------
clutter/clutter-scriptable.c | 20 +--
clutter/clutter-stage-window.c | 25 +--
5 files changed, 263 insertions(+), 344 deletions(-)
commit 8f5d6cb790a426536b462297e76be9159109e245
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Oct 8 14:47:13 2010 +0100
build: Depend on GLib ≥ 2.26.0
We are going to need some new macros and API.
README | 2 +-
configure.ac | 3 ++-
2 files changed, 3 insertions(+), 2 deletions(-)
commit 2b4ee9ab548a58784da7ccc710cbbd213a6c45c9
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Oct 15 16:05:44 2010 +0100
actor: Add more checks to the redraw queue
clutter/clutter-actor.c | 4 ++--
clutter/clutter-stage.c | 14 ++++++++++----
2 files changed, 12 insertions(+), 6 deletions(-)
commit ad0e7a9e15a18f26b1002056427ded9a9f011e86
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Oct 15 15:24:58 2010 +0100
moduleset: Add Atk as a Clutter dependency
build/clutter.modules | 1 +
1 file changed, 1 insertion(+)
commit 56c89bd86b61f3c2ecba04d8a3afd4aa6250cf09
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Oct 15 12:40:43 2010 +0100
osx: Fix glib.h include path
The fix for removing glib/gmain.h introduced the wrong path for glib.h.
clutter/osx/clutter-event-osx.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
commit d8426197554f4745bc2489c81435b9510b62d21a
Author: Roland Peffer <gdevel@clixxun.com>
Date: Thu Oct 14 18:23:02 2010 +0100
osx: Add button mask to the modifier state translation
The modifier state translation is missing the CLUTTER_BUTTON*_MASK.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2365
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
clutter/osx/clutter-event-osx.c | 8 ++++++++
1 file changed, 8 insertions(+)
commit 134ce072e793834c7fe08a270c03ee5b2efbe998
Author: Kristian Høgsberg <krh@bitplanet.net>
Date: Wed Sep 29 17:10:44 2010 -0400
The amazing lazy-copy-back-repaint-page-flip
Always use pageflipping, but avoid full repaint by copying back dirty
regions from front to back. Additionally, we dealy copying back until
we're ready to paint the new frame, so we can avoid copying areas that
will be repainted anyway.
This is the least amount of copying per frame we can get away with at all
and at the same time we don't have to worry about stalling the GPU on
synchronized blits since we always pageflip.
clutter/wayland/clutter-backend-wayland.c | 8 +
clutter/wayland/clutter-stage-wayland.c | 295 +++++++++++++++++++++++-------
clutter/wayland/clutter-stage-wayland.h | 4 +-
3 files changed, 241 insertions(+), 66 deletions(-)
commit cb5582c4ab1207738a2b5dc4c94fb4551e696c20
Author: Kristian Høgsberg <krh@bitplanet.net>
Date: Tue Sep 28 10:17:46 2010 -0400
Add wayland backend
This adds a clutter backend for running under the wayland window system.
Initial cogl framebuffer integration by Robert Bragg.
clutter/Makefile.am | 19 +
clutter/cogl/cogl/Makefile.am | 4 +
clutter/cogl/cogl/winsys/cogl-egl.c | 10 +-
clutter/wayland/clutter-backend-wayland.c | 552 +++++++++++++++++++++++++
clutter/wayland/clutter-backend-wayland.h | 94 +++++
clutter/wayland/clutter-event-wayland.c | 148 +++++++
clutter/wayland/clutter-input-device-wayland.c | 340 +++++++++++++++
clutter/wayland/clutter-stage-wayland.c | 368 +++++++++++++++++
clutter/wayland/clutter-stage-wayland.h | 94 +++++
clutter/wayland/clutter-wayland.h | 60 +++
configure.ac | 61 ++-
11 files changed, 1738 insertions(+), 12 deletions(-)
commit a7cf98ebfc9ca13e3f84bbe33171a2218cfe039b
Author: Kristian Høgsberg <krh@bitplanet.net>
Date: Mon Sep 27 13:25:50 2010 -0400
Initialize color masks lazily
When we don't use a window system drawable, we can't query the color
masks at context initialization time. Do it lazily so we're sure to have
a current context with a valid framebuffer.
clutter/clutter-main.c | 35 ++++++++++++++++++++---------------
1 file changed, 20 insertions(+), 15 deletions(-)
commit f456116c18dac24454f9c46b02677a51f79e4052
Author: Robert Bragg <robert@linux.intel.com>
Date: Thu Oct 14 16:19:55 2010 +0100
When unparenting an actor, remove queued redraws for all descendants
We need to make sure that redraws queued for actors on a stage are for
actors actually in the stage. So in clutter_actor_unparent() descend
through the children and remove redraws. Just removing the actor itself
isn't good enough since an entire hierarchy can be removed from the
stage without breaking it up into individual actors.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2359
This is based on an original patch from Owen Taylor who debugged the
root cause of this bug; thanks.
clutter/clutter-actor.c | 24 +++++++++++++++++++-----
1 file changed, 19 insertions(+), 5 deletions(-)
commit 07f2dba7e24abd7b25327cf6b6b3f60dc17091d2
Author: Robert Bragg <robert@linux.intel.com>
Date: Thu Sep 30 18:42:40 2010 +0100
stage: handle unclipped redraw following clipped
In the case that an unclipped redraw of an actor is queued after a
clipped we should update any existing ClutterStageQueueRedrawEntry
so entry->has_clip = FALSE and free the previous clip.
clutter/clutter-stage.c | 5 +++++
1 file changed, 5 insertions(+)
commit d032b9b2bf21c9c7c02f1a1b11d4e4a1bc7472b6
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Oct 12 17:31:15 2010 +0100
conform: Start cleaning up the conformance test suite
Re-order the units into a sensible list, with basic tests at the
beginning, and per-class tests at the end - with Cogl last.
Also, start renaming the unit functions from test_<foo> to <foo>,
so that the executable wrappers and the reports have sensible names.
tests/conform/test-actor-destroy.c | 18 ++++++-
tests/conform/test-actor-invariants.c | 7 ---
tests/conform/test-actor-size.c | 6 +--
tests/conform/test-anchors.c | 6 +--
tests/conform/test-clutter-text.c | 46 +++++-------------
tests/conform/test-conform-main.c | 80 ++++++++++++++++---------------
tests/conform/test-pick.c | 4 +-
tests/conform/test-text-cache.c | 3 +-
tests/conform/test-timeline-interpolate.c | 3 +-
tests/conform/test-timeline-rewind.c | 3 +-
10 files changed, 77 insertions(+), 99 deletions(-)
commit b5d5b9628ed8f683231134ac36b75efe80022f06
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Oct 12 17:11:52 2010 +0100
conform: Implement TEST_CONFORM_TODO() correctly
The TODO() macro for adding new tests to the test suite has always meant
to be implemented like the TODO block in Test::More, i.e. a test that is
assumed to fail, and which warns if it unexpectedly succeeds.
Since GTest lacks the expressivity of Test::More, the implementation
just verifies that the tests marked as TODO actually fail, and will fail
if they happen to succeed - at which point the developer will have to
change the macro to SIMPLE or SKIP.
tests/conform/ADDING_NEW_TESTS | 70 ++++++++++++++++++++++++++---------
tests/conform/Makefile.am | 6 ++-
tests/conform/test-actor-invariants.c | 7 ++++
tests/conform/test-conform-common.h | 6 +++
tests/conform/test-conform-main.c | 30 +++++++++++++--
5 files changed, 96 insertions(+), 23 deletions(-)
commit 2a23bab8191678f33f10f0bd15fc05c7b05c89d3
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Oct 12 15:43:42 2010 +0100
conform: Save the revision and date inside the test report
Even if gtester-report doesn't use that information (yet), we should
store the revision of Clutter that generated the report, and the date in
which the test suite was ran.
tests/conform/Makefile.am | 41 +++++++++++++++++++++++++++++------------
1 file changed, 29 insertions(+), 12 deletions(-)
commit e6418a9dec874b55d51afede7b039d3fd31908d4
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Oct 12 15:43:27 2010 +0100
constraints: Remove unused variable
clutter/clutter-align-constraint.c | 1 -
clutter/clutter-bind-constraint.c | 1 -
2 files changed, 2 deletions(-)
commit 7fd6273c25569fe4f37ad371532d93e5170e51f7
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Oct 11 16:16:45 2010 +0100
tests: Generate the stub scripts using sed
Instead of trying to run ./test-conformance with the -l option to
generate a list of available tests it now runs sed on the
test-conform-main.c file instead. Running the generated executable is
a pain for cross-compiling so it would be nice to avoid it unless it's
absolutely necessary. Although you could tell people who are cross
compiling to just disable the conformance tests, this seems a shame
because they could still be useful along with the wrappers for example
if the cross compile is built to a shared network folder where the
tests can be run on the actual device.
The sed script is a little more ugly than it could be because it tries
to avoid using the GNU extensions '\+' and '\|'.
The script ends up placing restrictions on the format of the C file
because the tests must all be listed on one line each. There is now a
comment to explain this. Hopefully the trade off is worth it.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2363
tests/conform/Makefile.am | 6 ++++--
tests/conform/test-conform-main.c | 5 +++++
2 files changed, 9 insertions(+), 2 deletions(-)
commit 100d541f479d070660905fa763b625853f17bfee
Author: Neil Roberts <neil@linux.intel.com>
Date: Tue Oct 12 14:43:10 2010 +0100
tests: Re-enable the test-anchors conformance test
This test was disabled in b5d58213. The commit message doesn't mention
this so I'm guessing it was a mistake. In any case the test appears to
work now anyway so it should be re-enabled.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2363
tests/conform/test-conform-main.c | 2 --
1 file changed, 2 deletions(-)
commit 2831addcf5ef1e4070fd2fabbe1ce71385b53062
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Oct 12 14:53:20 2010 +0100
test-flow-layout: Track stage size by default
Instead of requiring a special command line switch.
tests/interactive/test-flow-layout.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
commit 4e724aed46cd7ad0ad7718b584a0f1691b12a09f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Oct 12 14:09:47 2010 +0100
bind-constraint: Use ::queue-relayout
Instead of using the allocation-changed signal, use the queue-relayout
signal on the source to queue a relayout on the actor to which the
BindConstraint has been attached to.
The ::allocation-changed signal is not always enough, given that a
BindConstraint can use the position as well as the size of an actor to
drive the allocation of another; in this regard, it's much similar
to a ClutterClone, which requires a notification on every change, even
potential, and not just real ones, given the short-circuiting done
inside ClutterActor.
clutter/clutter-bind-constraint.c | 12 +++++-------
1 file changed, 5 insertions(+), 7 deletions(-)
commit 5c82b2551c2053f76bfb09b6d36a5ea4c4e93104
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Oct 12 14:09:17 2010 +0100
constraints: Do not check for :enabled
ClutterActor will do it for us.
clutter/clutter-align-constraint.c | 3 ---
clutter/clutter-bind-constraint.c | 3 ---
2 files changed, 6 deletions(-)
commit 3f27afde2484a01c71e0b484d2f485e5ce15f5d7
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Oct 12 14:08:07 2010 +0100
actor: Use an explicit check for NULL
Follow the coding style, and don't use the implicit C boolean
equivalence for NULL pointers.
clutter/clutter-actor.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
commit 3b72fdb20cca143f386d9a81dc42fc5ac64c48e7
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Oct 12 14:07:27 2010 +0100
actor: Queue a relayout when adding/removing constraints
Constraints change the way an actor is allocated; this warrants a
relayout.
clutter/clutter-actor.c | 3 +++
1 file changed, 3 insertions(+)
commit 91a9a355c32e86e597c57f3fd8b4deaecad0b9a4
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Oct 12 14:04:21 2010 +0100
actor: Check CluterActorMeta:enabled
Instead of delegating the check for the ActorMeta:enabled property to
the sub-classes of ClutterActorMeta, ClutterActor can do the check prior
to using the ClutterActorMeta instances.
clutter/clutter-actor.c | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
commit 3f6b82c9c9e75be6ba174f5964c85809ab0746cc
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Oct 12 14:04:05 2010 +0100
actor: Add debugging note for allocation changes
clutter/clutter-actor.c | 3 +++
1 file changed, 3 insertions(+)
commit 89a389cd2bdfa78768b5901a8a2865cb7d1a8c83
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Oct 11 15:57:22 2010 +0100
actor-box: Split out ActorBox into its own file
clutter-actor.c is getting way too large, so splitting it up wherever
possible makes sense.
clutter/Makefile.am | 1 +
clutter/clutter-actor-box.c | 440 ++++++++++++++++++++++++++++++++++++++++++++
clutter/clutter-actor.c | 438 -------------------------------------------
3 files changed, 441 insertions(+), 438 deletions(-)
commit 7a54bdc65dcb9eb3d4d30020f65c255ef6f86f29
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Oct 11 15:52:50 2010 +0100
vertex: Register progress function
This allows animating properties storing a ClutterVertex.
clutter/clutter-actor.c | 32 ++++++++++++++++++++++++++++----
1 file changed, 28 insertions(+), 4 deletions(-)
commit 4931802feea47c2fd89aa171a8fd05ebbfa087b4
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Oct 11 15:44:09 2010 +0100
geometry: Register a progress function
This allows animating properties storing a ClutterGeometry.
clutter/clutter-actor.c | 34 ++++++++++++++++++++++++++++++----
1 file changed, 30 insertions(+), 4 deletions(-)
commit a5fc90d4d99cf904abd60ed0be0356ecb1efb40a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Oct 11 15:20:25 2010 +0100
actor-box: Register a progress function
So that we can animate properties storing ClutterActorBox.
clutter/clutter-actor.c | 32 ++++++++++++++++++++++++++++----
1 file changed, 28 insertions(+), 4 deletions(-)
commit 2f21c851eafbe217661c3010ad6388414e27a56b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Oct 11 15:07:06 2010 +0100
script: Fix annotation for get_object()'s return value
clutter/clutter-script.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit dcf266261645fd2deda5c68ded438160bccd7235
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Oct 11 15:06:11 2010 +0100
interval: Remove special casing for ClutterColor
ClutterColor registers a progress function on type initialization, so we
don't need to special case it any more.
clutter/clutter-interval.c | 17 -----------------
1 file changed, 17 deletions(-)
commit d5376bf317b5b682d85e64f1815f7c308da2ffda
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Oct 11 15:04:54 2010 +0100
color: Add Color.interpolate() method
The interpolate() method does what it says on the tin: it interpolates
between two colors using the given factor.
ClutterColor uses it to register a progress function for Intervals.
clutter/clutter-color.c | 48 ++++++++++++++++++++++++++++++
clutter/clutter-color.h | 5 ++++
doc/reference/clutter/clutter-sections.txt | 1 +
3 files changed, 54 insertions(+)
commit 7e112472b5ad9deea9b0ad1fda47aa16199a780a
Author: Neil Roberts <neil@linux.intel.com>
Date: Tue Oct 5 17:17:53 2010 +0100
cogl-texture-2d-sliced: Use the smallest possible waste
When picking a size for the last slice in a texture, Cogl would always
pick the biggest power of two size that doesn't create too much
waste and is less than or equal to the previous slice size. However
this can end up creating a texture that is bigger than needed if there
is a smaller power of two.
For example, if the maximum waste is 127 (the current default) and we
try to create a texture that is 257 pixels wide it will decide that
the next power of two (512) is too much waste (255) so it will create
the first slice at 256 pixels wide. Then we only have 1 pixel left to
allocate but Cogl would pick the next smaller size that has a small
enough waste which is 128. But of course 1 is already a power of two
so that's redundantly oversized by 127.
This patch fixes it so that whenever it finds a size that would be big
enough, instead of using exactly that it picks the next power of two
up from the size we need to fill.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2355
clutter/cogl/cogl/cogl-texture-2d-sliced.c | 4 ++++
1 file changed, 4 insertions(+)
commit 1f106b35a99e3784e441feca2df983efafa9fbd9
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Oct 11 13:52:09 2010 +0100
Whitespace alignment fixes
clutter/clutter-paint-volume.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
commit 68d656c61badd7a88d7271600a59f24b05fbc36e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Oct 11 13:51:12 2010 +0100
paint-volume: Add arguments checks
In some cases we access the arguments in public functions without, or
prior to checking the arguments.
clutter/clutter-paint-volume.c | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
commit 8089af3c1b0e9d9501ee5fad4249a3af1bfdb5dc
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date: Thu Oct 7 16:00:47 2010 -0400
ClutterClone: Handle clone_source == NULL for get_paint_volume()
It's valid to have a ClutterClone without a clone source; in this
case the paint volume is empty.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2360
clutter/clutter-clone.c | 4 ++++
1 file changed, 4 insertions(+)
commit e0058925349046e315e45e14747879e05bdab262
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Oct 11 13:32:26 2010 +0100
clone: Remove unnecessary G_UNLIKELY macros
A Clone:source property might be NULL, and we should not penalize
performance when we can just bail out early, because that would kind of
defeat the point.
clutter/clutter-clone.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
commit 12f80db8b8e826db245880c28f05facd0189c0f8
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Oct 11 12:00:18 2010 +0100
docs: Update the README
Add a minimal building reference, and point to git-bz for filing
patches to Bugzilla.
README | 28 ++++++++++++++++++++++++++--
1 file changed, 26 insertions(+), 2 deletions(-)
commit f8af2da4c8b2e428baba750fac18a38904f55c35
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sun Oct 10 09:31:55 2010 +0100
osx: Compilation fixes
Replace deprecated symbols with the correct ones.
clutter/osx/clutter-backend-osx.c | 8 ++-
clutter/osx/clutter-event-osx.c | 104 +++++++++++++++++++++++++-------------
clutter/osx/clutter-stage-osx.c | 2 +-
3 files changed, 77 insertions(+), 37 deletions(-)
commit 981fed1f63ecd1cc077c50869e9814c439ccf407
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Oct 8 13:29:49 2010 +0100
box-layout: Plug a memory leak
Similar to commit 4724be167f19fe58cb38179e6f3b34b6797ff639 for
TableLayout.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2358
clutter/clutter-box-layout.c | 39 +++++++++++++--------------------------
1 file changed, 13 insertions(+), 26 deletions(-)
commit 4724be167f19fe58cb38179e6f3b34b6797ff639
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Oct 6 16:01:03 2010 +0100
Plug a memory leak in clutter-table-layout
Whenever the allocation is changed on a child of a ClutterTableLayout
and animations are not in effect then it would store a copy of the
allocation in the child meta data. However it was not freeing the old
copy of the allocation so it would end up with a small leak.
Instead of just changing it to free the old value this patch makes it
store the allocation inline in the meta data struct because it seems
that the size of an actor box is already quite small compared to the
size of the meta data struct so it is probably not worth having a
separate allocation for it. To detect the case when there has not yet
been an allocation a separate boolean is used instead of storing NULL.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2358
clutter/clutter-table-layout.c | 39 ++++++++++++++++-----------------------
1 file changed, 16 insertions(+), 23 deletions(-)
commit 42dac6c9971fc33acae95f02d6e3605324a8d7f3
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Oct 7 18:01:53 2010 +0100
autogen.sh: libtool 2.4 has been released
autogen.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit eec1a5fb7ad0c5d5f6169abbd1825bd083a940c0
Author: Damien Lespiau <damien.lespiau@gmail.com>
Date: Thu Oct 7 12:17:33 2010 +0100
po: Update French localization
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
po/fr.po | 264 +++++++++++++++++++++++++++++++--------------------------------
1 file changed, 132 insertions(+), 132 deletions(-)
commit 7bdbbe6a8c372e902753151cfacb2a6d7505b96c
Author: Andika Triwidada <andika@gmail.com>
Date: Tue Oct 5 17:23:37 2010 +0100
po: Update Indonesian localization
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
po/id.po | 223 ++++++++++++++++++++++++---------------------------------------
1 file changed, 84 insertions(+), 139 deletions(-)
commit 12119ff063f0a7d71c2d7431697004a620d154ab
Author: Damien Lespiau <damien.lespiau@gmail.com>
Date: Tue Oct 5 17:22:56 2010 +0100
po: Add French localization
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
po/fr.po | 1836 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 1836 insertions(+)
commit 3cb0436c42ca9369e3d804b8519d2dd40dac86e5
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Tue Oct 5 14:30:01 2010 +0100
clutter.modules: Update Cairo and Pixman
build/clutter.modules | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
commit 155bde24650eb613824319f7186bd0a0d690932d
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Tue Oct 5 08:35:19 2010 +0100
texture: Fix the typos in the blurbs and make them not end with '.'
All the nifty things you discover when translating strings not exposed
to anyone. First the clutter-wide record of the number of typos in one
string. Second, ClutterTexture happened to have the only property blurbs
ending with a '.', remove them.
clutter/clutter-texture.c | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
commit 2d56ed637c3c71516498c5a9dc11bf521db37f6f
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Tue Oct 5 08:25:06 2010 +0100
text: Rename the nick of the position property "Cursor Position"
the "position" property of ClutterText is really the position of the
cursor. Rename the nick accordingly not to confuse it with the position
of the actor itself and be consistent with all the other cursor-related
properties.
clutter/clutter-text.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit a13182c740c9d61e897c8f41d958ca31ebbe6797
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Tue Oct 5 08:03:19 2010 +0100
cogl: Use Cogl (not COGL) consistently
If I remember correctly, Robert wants to name Cogl, Cogl (not COGL) so
start by having a consistent naming in the code.
clutter/clutter-texture.c | 16 ++++++++--------
clutter/cogl/cogl/cogl-debug.c | 8 ++++----
configure.ac | 4 ++--
3 files changed, 14 insertions(+), 14 deletions(-)
commit 24577a053868bfa39c7758dea2173cf090230de2
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Tue Oct 5 07:44:49 2010 +0100
bin-layer: Fix the property blurbs
The descriptions for the 'y-align' and 'x-align' properties talk about a
layer and a layer manager. It seems that these properties are the
alignement factors relative to the BinLayout, so document them
accordingly.
clutter/clutter-bin-layout.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
commit 9ae1729f37fde328b738972c39db52673a28999e
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Mon Oct 4 18:35:13 2010 +0100
box-layout: Fix missing spaces in the blurbs of vertical and homogeneous
clutter/clutter-box-layout.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
commit 9258f9bebb33bd7677f11872fa2c928296399832
Author: Damien Lespiau <damien.lespiau@intel.com>
Date: Mon Oct 4 17:20:30 2010 +0100
deform-effect: Fix Horiontal/Horizontal typo
clutter/clutter-deform-effect.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit cd7df1b42133cef69de123986f336767f7a14978
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Oct 4 15:47:53 2010 +0100
build: Fix the release-message target
Generate the SHA256 checksum file during release-upload and then copy it
to the build directory.
build/autotools/Makefile.am.release | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
commit 75e016ac20528c9fded515a620962cae1d96e5f6
Author: Andika Triwidada <andika@gmail.com>
Date: Mon Oct 4 15:43:54 2010 +0100
po: Add Indonesian localization
po/id.po | 2041 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 2041 insertions(+)
commit c32c25e4576ef125d83ad74d3ac6c3ae90d098ab
Author: Piotr Drąg <piotrdrag@gmail.com>
Date: Mon Oct 4 15:43:16 2010 +0100
po: Update Polish localization
po/pl.po | 708 ++++++++++++++++++++++++++++++++-------------------------------
1 file changed, 365 insertions(+), 343 deletions(-)
commit 55121d0f35a8f713973254a4a56ef6cdf79f0ea9
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Oct 4 15:20:44 2010 +0100
Post-release version bump to 1.5.3
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit ca5188edbf962e065dd80726a4a4e92ccc8cfacf
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Oct 4 14:53:55 2010 +0100
Release Clutter 1.5.2 (snapshot)
NEWS | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
configure.ac | 2 +-
2 files changed, 53 insertions(+), 1 deletion(-)
commit 6af0ee2cbe2d6584b523809f160f56daf16eb583
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Oct 4 14:12:21 2010 +0100
cogl-x11: Trap glXDestroyPixmap()
There are ordering issues in the pixmap destruction with current and
past X11 server, Mesa and dri2. Under some circumstances, an X pixmap
might be destroyed with the GLX pixmap still referencing it, and thus
the X server will decide to destroy the GLX pixmap as well; then, when
Cogl tries to destroy the GLX pixmap, it gets BadDrawable errors.
Clutter 1.2 used to trap + sync all calls to glXDestroyPixmap(), but
then we assumed that the ordering issue had been solved. So, we're back
to square 1.
I left a Big Fat Comment™ right above the glXDestroyPixmap() call
referencing the bug and the reasoning behind the trap, so that we don't
go and remove it in the future without checking that the issue has been
in fact solved.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2324
clutter/cogl/cogl/winsys/cogl-texture-pixmap-x11.c | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
commit f5aeabadd5faf699ab04ec24d6db12297ee6ee30
Author: Alejandro Piñeiro <apinheiro@igalia.com>
Date: Mon Oct 4 02:17:40 2010 +0200
Fixing cally.pc.in and moving include headers to previous directory
After commit 8dd8fbdb some errors appear if you try work directly
against cally:
* cally.pc.in removed some elements. After install clutter, doing
pkg-config --cflags cally-1.0
fails due missing winsys
* cally headers were moved from clutter-1.0/cally to
clutter-1.0/clutter/cally. Applications using it (yes I know,
nobody is officially using it) would require to:
* Change their include.
* Add directly a dependency to cally, in order to use the cally.pc
file with the correct directory include.
Note: Take into account that accessibility support still works (ie:
clutter_get_accessibility_enabled). This bug only prevents
applications to work directly against cally (ie: create a CallyActor
subclass)
http://bugzilla.clutter-project.org/show_bug.cgi?id=2353
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
clutter/Makefile.am | 5 +++--
clutter/cally/cally.pc.in | 6 ++++++
2 files changed, 9 insertions(+), 2 deletions(-)
commit d3b6dd5ec7dda1557b2f5e5f14d3a73c02781683
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Oct 4 11:30:32 2010 +0100
effect: Fix up the class ABI
Landing the paint-box branch accidentally added two slots to the
ClutterEffectClass vtable, plus the get_paint_volume() function
pointer. This is an ABI break from 1.4.
clutter/clutter-effect.h | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
commit e1a1050a39a607aee4c97c4558c0a637136f6b52
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Oct 4 11:27:16 2010 +0100
actor-box: Constify arguments for union
The input arguments for clutter_actor_box_union() should be constified,
since they will not be modified by the function.
clutter/clutter-actor.c | 14 +++++++-------
clutter/clutter-types.h | 4 ++--
2 files changed, 9 insertions(+), 9 deletions(-)
commit 45b6d7d47a943faad8d82e0b196be058a1c45193
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Oct 4 11:26:46 2010 +0100
docs: Fix the annotations of ActorClass
clutter/clutter-actor.h | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
commit bdb24701f04cec42d388fe415aba16b29c2678e5
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Oct 4 10:52:36 2010 +0100
build: Add -xobjective-c to the fruity backend section
Like we do for the Quartz backend, we should turn on the -xobjective-c
compiler flag for the Fruity backend.
This does not mean that the backend actually works.
clutter/Makefile.am | 5 +++++
1 file changed, 5 insertions(+)
commit db5e33d4a547862c772e93efbfd041baaebd6423
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Oct 4 10:44:00 2010 +0100
docs: Remove TODO
Clutter has long since moved all the RFE and roadmap tracking to
Bugzilla. The TODO is just a relic of an ancient past, where men
were real men, women were real women, and fuzzy little creatures
from Alpha Centauri were fuzzy little creatures from Alpha Centauri.
TODO | 7 -------
1 file changed, 7 deletions(-)
commit 0cf2f50ba60d9268f162da89a19f2387b1d6e9cb
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Oct 4 09:09:13 2010 +0100
build: Remove redundant EXTRA_DISTs
The files for the backend that we conditionally compile are
automatically added to the dist process by automake.
clutter/Makefile.am | 37 ++-----------------------------------
1 file changed, 2 insertions(+), 35 deletions(-)
commit 7728ea951b0675ef3f97c160f212eb9ae72ce45e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Oct 4 09:08:07 2010 +0100
docs: Add unused symbols to the Clutter API reference
doc/reference/clutter/clutter-sections.txt | 5 +++++
1 file changed, 5 insertions(+)
commit a29623e8388c949b0c18853ce8c9f0e494a4317d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Oct 4 08:57:29 2010 +0100
build: Unconditionally add GLES2 shaders to EXTRA_DIST
clutter/cogl/cogl/Makefile.am | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
commit ba09e9c6df28bbd57a400de3d6acbe14fd53b7f6
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sun Oct 3 17:21:10 2010 +0100
build: Generate a stub announcement email when releasing
build/autotools/Makefile.am.release | 42 +++++++++++++++++++++++++++++++++----
1 file changed, 38 insertions(+), 4 deletions(-)
commit df5702e463769c53a8badf725d158fe4ed94c76e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sun Oct 3 16:37:41 2010 +0100
docs: Update the RELEASING checklist
doc/RELEASING | 60 ++++++++++++++++++++++++++++++++---------------------------
1 file changed, 33 insertions(+), 27 deletions(-)
commit 2ed2b7eb83aeb813a8d3d734dd870bf739ef345a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sun Oct 3 16:13:02 2010 +0100
build: Only generate bzip2 tarballs
Don't generate both bz2 and gz tarballs: we only use the former anyway,
and the latter just adds time for distcheck to complete.
The gz tarball will be generated by the remote installation scripts when
publishing the release.
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 939333b4f2dcd5fd7045af7c57db4e21de06d57b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sun Oct 3 16:10:44 2010 +0100
build: Dist every backend file
All backend files should be present in the tarball generated by `make
dist`, to allow building Clutter on different platforms.
clutter/Makefile.am | 150 +++++++++++++++++++++++++++++++++++++++++-----------
1 file changed, 118 insertions(+), 32 deletions(-)
commit 6df136ae7cadea1df48d531af0730bf3867f3463
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sun Oct 3 15:28:14 2010 +0100
container: Do not emit a signal in the class handler
Yes, I am that stupid.
clutter/clutter-container.c | 12 +++++-------
1 file changed, 5 insertions(+), 7 deletions(-)
commit e8d3ab4fd3d85b31230be4a59463338438c5621a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sun Oct 3 15:16:41 2010 +0100
introspection: Skip Script.connect_signals_full()
It's meant to be used by language bindings, not by applications.
clutter/clutter-script.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 19b93a94aef1700c83edb9e555f1507fcee2f249
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sun Oct 3 15:12:01 2010 +0100
container: Fix the marshaller for ::child-notify
The marshaller was defined as OBJECT,OBJECT,PARAM but the signal
definition used only two arguments. Since the signal never worked
and we never got any report about it, nobody could be possibly
using the ::child-notify signal.
clutter/clutter-container.c | 2 +-
clutter/clutter-marshal.list | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
commit 96db215ed3bb79915bfb5b9e037d116c83876a8d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sun Oct 3 14:53:14 2010 +0100
build: Automate the release process
Makefile.am | 12 ++++---
build/autotools/Makefile.am | 1 +
build/autotools/Makefile.am.release | 68 +++++++++++++++++++++++++++++++++++++
3 files changed, 77 insertions(+), 4 deletions(-)
commit 87bb089b572071632f3b8c2a63756a07e5d5a73a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sun Oct 3 11:02:56 2010 +0100
docs: Update the coding style
Resynchronize with gtk+'s coding style document, since they switched to
ours.
doc/CODING_STYLE | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 88 insertions(+)
commit c4668f04f745f30657379727424137b62d44248d
Author: Aron Xu <aronxu@gnome.org>
Date: Thu Sep 30 15:20:05 2010 +0800
Update zh_CN translation.
Signed-off-by: Aron Xu <aronxu@gnome.org>
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
po/zh_CN.po | 290 ++++++++++++++++++++++++++++++------------------------------
1 file changed, 143 insertions(+), 147 deletions(-)
commit 7ac84cf7a3695aa495ca28dbf172c8f4f6e48780
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Sep 30 14:58:23 2010 +0100
container: Add child_notify() wrapper
The child_notify() virtual function on ClutterContainer does not have a
wrapper for implementations to call.
clutter/clutter-container.c | 28 ++++++++++++++++++++++++++++
clutter/clutter-container.h | 3 +++
doc/reference/clutter/clutter-sections.txt | 1 +
3 files changed, 32 insertions(+)
commit fc344fb93a153f91ea4bafd9fe25dd88d27e8082
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Sep 30 13:11:05 2010 +0100
container: Implement ::child-notify
Since we added child properties to the Container interface we made a
guarantee that the ::child-notify signal would be emitted whenever a
property was set using clutter_container_child_set*().
We were lying.
The child_notify virtual function was not implemented, and the signal
was never emitted.
We also used a G_LIKELY() macro while checking for non-NULL on a
function pointer that was by default set to NULL, thus making the
setting of child properties far less efficient than needed.
clutter/clutter-container.c | 21 ++++++++++++++++++---
1 file changed, 18 insertions(+), 3 deletions(-)
commit 18ff73c24471694eb951c7192f15528b594f09b5
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Sep 30 12:43:10 2010 +0100
build: Add more metadata to the introspection files
clutter/Makefile.am | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
commit 6a95457b3f0927ec0adaebc9c91499f28ef804a0
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Sep 30 12:32:08 2010 +0100
cookbook: Remove unused variable from the animator example
doc/cookbook/examples/animations-moving-animator.c | 1 -
1 file changed, 1 deletion(-)
commit fde6efc690e6378eb1999267e5b15dc7c8accd43
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Sep 30 12:31:28 2010 +0100
build: Make Cally.gir depend on Cogl.gir
Since Cally's introspection data depends on it.
clutter/Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit c202156794289d210ed4bdf9c9fe6d522685fafd
Merge: 077a5b4c3 cb191ff6f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Sep 30 12:24:32 2010 +0100
Merge remote branch 'elliot/events-buttons'
* elliot/events-buttons:
cookbook: Add recipe about handling button events
cookbook: Example of using button press and release events
cookbook: Example of ClutterClickAction
cookbook: Example of simple handling of button events
commit 077a5b4c34d7b52d8831ccce4c572c7dcae04a6e
Author: Colin Walters <walters@verbum.org>
Date: Wed Sep 29 13:18:03 2010 -0400
introspection: Update to changed variables for header file names
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
clutter/Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 32d647ddd15ebddf91aa15b092fdcdf14d31ec4f
Author: Ray Strode <rstrode@redhat.com>
Date: Wed Sep 29 18:43:30 2010 -0400
actor: sync entry has_clip member to clip state
The clutter stage has a list of entries of actors waiting to be redrawn.
Each entry has a "clip" ClutterPaintVolume member which represents which
how much of the actor needs to get redrawn. It's possible for there to
be no clip associated with the entry. In this case, the clip member is
invalid, the has_clip member should be set to false.
This commit fixes a bug where the has_clip member was not being
initially, explicitly set to false for new entries, and not being
explicitly set to false in the event the clip associated with the entry
is freed.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2350
Signed-off-by: Robert Bragg <robert@linux.intel.com>
clutter/clutter-stage.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
commit fba633529148e65b9e136ea082fa7f853b789d96
Author: Robert Bragg <robert@linux.intel.com>
Date: Thu Sep 30 11:18:23 2010 +0100
actor: don't ignore clip for clipped redraws
In all the changes made recently to how we handle redraws and adding
support for paint-volumes we stopped looking at explicit clip regions
passed to _clutter_actor_queue_redraw_with_clip.
In _clutter_actor_finish_queue_redraw we had started always trying to
clip the redraw to the paint-volume of the actor, but forgot to consider
that the user may have already determined the clip region for us!
Now we first check if the given clip != NUll and if so we don't need to
calculate the paint-volume of the actor.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2349
clutter/clutter-actor.c | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
commit 471659ed4b2f16749c050701bcdc911405e9e018
Author: Robert Bragg <robert@linux.intel.com>
Date: Thu Sep 30 02:37:24 2010 +0100
test-pixmap: add timeout to draw arcs on pixmap
As a convenient test that clipped redraws are working correctly in
response to X pixmap damage this updates test-pixmap to have a repeating
1 second timeout that draws arcs on the pixmap.
tests/interactive/test-pixmap.c | 26 +++++++++++++++++---------
1 file changed, 17 insertions(+), 9 deletions(-)
commit 18e3273fb1e3ba231d370294f13f180b5df68158
Author: Robert Bragg <robert@linux.intel.com>
Date: Thu Sep 30 02:00:24 2010 +0100
x11-tfp: Implement get_paint_volume virtual
One of the later changes made on the paint volume branch before merging
with master was to make paint volumes opt in only since we couldn't make
any safe assumptions about how custom actors may constrain their
painting. We added very conservative implementations for the existing
Clutter actors - including for ClutterTexture which
ClutterX11TexturePixmap is a sub-class of - but we were conservative to
the extent of explicitly checking the GType of the actor so we would
avoid making any assumptions about sub-classes. The upshot was that we
neglected to implement the get_paint_volume vfunc for
ClutterX11TexturePixmap.
This patch provides an implementation that simply reports the actor's
allocation as its paint volume. Also unlike for other core actors it
doesn't explicitly check the GType so we are assuming that all existing
sub-classes of ClutterX11TexturePixmap constrain their drawing to the
actor's transformed allocation. If anyone does want to draw outside the
allocation in future sub-classes, then they should also provide an
updated get_paint_volume implementation.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2349
clutter/x11/clutter-x11-texture-pixmap.c | 10 ++++++++++
1 file changed, 10 insertions(+)
commit 83eb5ab88cb31fc85016975055d28165300b9867
Author: Robert Bragg <robert@linux.intel.com>
Date: Fri Sep 24 01:01:33 2010 +0100
material: tweak dot file debug code
When using the debug function _cogl_debug_dump_materials_dot_file to
write a dot file representing the sparse graph of material state we now
only show a link between materials and layers when the material directly
owns that layer reference (i.e. just those referenced in
material->layer_differences) This makes it possible to see when
ancestors of a material are being deferred too for layer state.
For example when looking at the graph if you see that a material has an
n_layers of 3 but there is only a link to 2 layers, then you know you
need to look at it's ancestors to find the last layer.
clutter/cogl/cogl/cogl-material.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
commit cb191ff6f18e291810077271f853658c8d679e3d
Author: Elliot Smith <elliot.smith@intel.com>
Date: Thu Sep 30 11:12:14 2010 +0100
cookbook: Add recipe about handling button events
Recipe covers adding handlers for button-press-event and
button-release-event signals on actors, and how to
examine the content of a ClutterButtonEvent via API functions.
The discussion section explains about click count
(the criteria for how clicks get counted, including
distance and time settings); how button numbers are reported;
and how to use ClutterClickAction as an alternative
for press + release in certain scenarios.
doc/cookbook/events.xml | 388 ++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 388 insertions(+)
commit d8a9026b842655d23d839a639540bb134f734d84
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Sep 29 17:04:25 2010 +0100
win32: Fix the CLUTTER_* keysym macros
In 4ee05f8e21d the namespace for the clutter keysym macros were
changed to CLUTTER_KEY_* but the win32 events backend was still
referring to the old names.
clutter/win32/clutter-event-win32.c | 110 ++++++++++++++++++------------------
1 file changed, 55 insertions(+), 55 deletions(-)
commit 94439e55265d91e0c5419306115d2af02378e75e
Author: Elliot Smith <elliot.smith@intel.com>
Date: Tue Sep 28 16:53:30 2010 +0100
cookbook: Example of using button press and release events
A longer example of using button press and release events
to draw rectangles with random colors.
doc/cookbook/examples/Makefile.am | 2 +
doc/cookbook/examples/events-buttons-lasso.c | 154 +++++++++++++++++++++++++++
2 files changed, 156 insertions(+)
commit 0cda6c006b5909da5919c4e3a1492a32895c596c
Author: Elliot Smith <elliot.smith@intel.com>
Date: Tue Sep 28 16:37:26 2010 +0100
cookbook: Example of ClutterClickAction
Example of handling clicks on an actor; part of the recipe on
handling button events.
doc/cookbook/examples/Makefile.am | 2 +
doc/cookbook/examples/events-buttons-click.c | 66 ++++++++++++++++++++++++++++
2 files changed, 68 insertions(+)
commit fc9ecdf82ed13cf14be9e8fd5fda9787f8972205
Author: Elliot Smith <elliot.smith@intel.com>
Date: Mon Sep 27 16:36:16 2010 +0100
cookbook: Example of simple handling of button events
Added an example showing how to examine the content
of a ClutterButtonEvent in a signal handler.
doc/cookbook/examples/Makefile.am | 2 +
doc/cookbook/examples/events-buttons.c | 107 +++++++++++++++++++++++++++++++++
2 files changed, 109 insertions(+)
commit f753b0c4a15421e984cf3b2fcb1ccce7f0e6a61d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Sep 30 10:29:00 2010 +0100
Wrap g_object_class_install_properties()
GObject ≥ 2.26.0 added a nice convenience call for installing properties
from an array of GParamSpec. Since we're already storing all GParamSpec
in an array in order to use them with g_object_notify_by_pspec(), this
turns out nicely for us.
Since we do not depend on GLib 2.26 (yet), we need to provide a simple
private wrapper that implements the fall back to the default
g_object_class_install_property() call.
ClutterDragAction has been converted as a proof of concept.
clutter/clutter-drag-action.c | 71 +++++++++++++++++++++----------------------
clutter/clutter-private.h | 17 +++++++++++
2 files changed, 51 insertions(+), 37 deletions(-)
commit f090c3ea496b2bf79b2fb0c7ab6a80299c59aed1
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Sep 30 10:27:10 2010 +0100
stage: Add more checks on the stage window retrieval
During destruction, the StageWindow implementation associated to a Stage
might be NULL. We need to add more checks for a) the IN_DESTRUCTION flag
being set and b) the StageWindow pointer being NULL. Otherwise, we will
get warnings during the destruction of the Stage.
clutter/clutter-stage.c | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
commit 52c4d6fa0c5f5260de5093967cdd1036e351050c
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Sep 29 17:32:57 2010 +0100
build: Use platform detection to add -no-undefined
Instead of relying on the flavour passed to the configure script.
configure.ac | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
commit 7aaef8abeed4d3903465ac9d8fd0a916d17aab79
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Sep 29 16:46:06 2010 +0100
modules: Use the stable branch of json-glib
build/clutter.modules | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit a278a1f94053372d49fb31f82cac551f186a28f4
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Sep 29 15:40:22 2010 +0100
cogl-texture-2d-sliced: Don't create the slice textures twice
Both of the cogl_texture_2d_sliced_new functions called the
slices_create function which creates the underlying GL
textures. However this was also called by init_base so the textures
would end up being created twice. This would make it leak the GL
textures and the arrays which point to them.
clutter/cogl/cogl/cogl-texture-2d-sliced.c | 18 ------------------
1 file changed, 18 deletions(-)
commit 54f5e168ecd67838d9fae08912e37f47d786f45e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Sep 29 16:05:55 2010 +0100
Bump up dependency of json-glib to 0.12.0
New stable release.
README | 2 +-
configure.ac | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
commit 66b0c1969c72ad49482befb3136b3e8478b07c58
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Sep 22 12:56:33 2010 +0100
Remove the internal copy of JSON-GLib
The internal copy of JSON-GLib was meant to go away right after the 1.0
release, given that JSON-GLib was still young and relatively unknown.
Nowadays, many projects started depending on this little library, and
distributions ship it and keep it up to date.
Keeping a copy of JSON-GLib means keeping it up to date; unfortunately,
this would also imply updating the code not just for the API but for the
internal implementations.
Starting with the 1.2 release, Clutter preferably dependend on the
system copy; with the 1.4 release we stopped falling back automatically.
The 1.6 cycle finally removes the internal copy and requires a copy of
JSON-GLib installed on the target system in order to compile Clutter.
README | 15 +-
clutter/Makefile.am | 66 +--
clutter/clutter-json.h.in | 11 -
clutter/clutter-script-private.h | 3 +-
clutter/clutter-script.c | 2 -
clutter/clutter-scriptable.h | 2 +-
clutter/json/json-array.c | 725 ------------------------
clutter/json/json-generator.c | 646 ---------------------
clutter/json/json-generator.h | 83 ---
clutter/json/json-glib.h | 12 -
clutter/json/json-marshal.c | 130 -----
clutter/json/json-marshal.h | 37 --
clutter/json/json-node.c | 770 -------------------------
clutter/json/json-object.c | 888 -----------------------------
clutter/json/json-parser.c | 1124 -------------------------------------
clutter/json/json-parser.h | 147 -----
clutter/json/json-types-private.h | 61 --
clutter/json/json-types.h | 288 ----------
configure.ac | 90 +--
doc/reference/clutter/Makefile.am | 2 -
20 files changed, 13 insertions(+), 5089 deletions(-)
commit e36cc40a49a9f0c2e200a0326451333dbb68b4ac
Merge: 0f22e922e 8dd8fbdbd
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Sep 29 15:55:58 2010 +0100
Merge branch 'wip/non-recursive'
* wip/non-recursive:
build: Start moving to a non-recursive layout
commit 0f22e922e3d03bfa9e7272aa6d2819748c3913c7
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Sep 29 15:44:51 2010 +0100
modules: Fix up mesa module
build/clutter.modules | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
commit e072d797b1b5cbdc3c448f1e1acdd6adac0c833b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Sep 29 15:23:53 2010 +0100
modules: Add mesa and wayland to the moduleset
build/clutter.modules | 13 +++++++++++++
1 file changed, 13 insertions(+)
commit 42f6364cac945e451725fc4aeeccf28ee5019ff3
Author: Robert Bragg <robert@linux.intel.com>
Date: Fri Sep 24 02:24:36 2010 +0100
actor: don't dirty pick buffer in _real_queue_redraw
Since re-working how redraws are queued it is no longer necessary to
dirty the pick buffer in _clutter_actor_real_queue_redraw since this
should now reliably be handled in _clutter_stage_queue_actor_redraw.
clutter/clutter-actor.c | 9 +--------
1 file changed, 1 insertion(+), 8 deletions(-)
commit 51fca9d96807b227d00b0bc58e6e5f216024cf91
Author: Robert Bragg <robert@linux.intel.com>
Date: Mon Sep 13 00:33:23 2010 +0100
actor: Adds private _clutter_actor_traverse API
This adds two internal functions relating to explicit traversal of the
scenegraph:
_clutter_actor_foreach_child
_clutter_actor_traverse
_clutter_actor_foreach_child just iterates the immediate children of an
actor, and with a new ClutterForeachCallback type it allows the
callbacks to break iteration early.
_clutter_actor_traverse traverses the given actor and all of its
decendants. Again traversal can be stopped early if a callback returns
FALSE.
The first intended use for _clutter_actor_traverse is to maintain a
cache pointer to the stage for all actors. In this case we will need to
update the pointer for all descendants of an actor when an actor is
reparented in any way.
clutter/clutter-actor.c | 64 +++++++++++++++++++++++++++++++++++++++++++++++
clutter/clutter-private.h | 32 ++++++++++++++++++++++++
2 files changed, 96 insertions(+)
commit 9a1abbc713537b3ef381e8e9ea1a5e910613567e
Author: Robert Bragg <robert@linux.intel.com>
Date: Sun Sep 12 23:49:02 2010 +0100
actor: Adds private _clutter_actor_get_n_children
This adds a private getter to query the number of children an actor has.
One use planned for this API is to avoid calling get_paint_volume on
such actors. (It's not clear what the best semantics for
get_paint_volume are for actors with children, so we are considering
leaving the semantics undefined for the initial clutter 1.4 release)
clutter/clutter-actor.c | 7 +++++++
clutter/clutter-private.h | 1 +
2 files changed, 8 insertions(+)
commit 239d83f952aa077622ca79c390842be271baddcd
Author: Robert Bragg <robert@linux.intel.com>
Date: Sun Sep 12 23:31:39 2010 +0100
actor: explicitly track children in clutter-actor.c
We now explicitly track the list of children each actor has in a private
GList. This gives us a reliable way to know how many children an actor
has - even for composite actors that don't implement the container
interface. This also will allow us to directly traverse the scenegraph
in a more generalized fashion. Previously the scenegraph was
more-or-less represented implicitly according the implementation of
paint methods.
clutter/clutter-actor.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
commit b3edd3e922e3a3a2dafc5a7a1c02bb22a5ffec94
Author: Robert Bragg <robert@linux.intel.com>
Date: Sat Sep 11 02:48:18 2010 +0100
debug: fix blue outlines for paint-volumes debug opt
When using the CLUTTER_PAINT=paint-volumes debug option we try and show
when a paint volume couldn't be determined by drawing a blue outline of
the allocation instead. There was a typo though and instead we were
drawing an outline the size of the stage instead of for the given actor.
This fixes that and removes a FIXME comment relating to the blue outline
that is now implemented.
clutter/clutter-actor.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
commit 1a8d577168ef48a9fcef21415b44b2b8c2f9a26c
Author: Robert Bragg <robert@linux.intel.com>
Date: Sat Sep 11 02:39:23 2010 +0100
clone: Implement get_paint_volume virtual
To allow Clutter to queue clipped redraws when a clone actor changes we
need to be able to report a paint volume for clone actors. This patch
makes ClutterClones query the paint volume of their source actor and
masquerade it as their own volume.
clutter/clutter-clone.c | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
commit f6ba69f82dba0fdb46998c93929f3c68ebf11cb1
Author: Robert Bragg <robert@linux.intel.com>
Date: Fri Sep 10 02:18:16 2010 +0100
Revert "actor: don't immediately queue redraw when queuing relayout"
This reverts commit ca44c6a7d8abe9f2c548bee817559ea8adaa7a80.
In reality there are probably lots of actors that depend on the exact
semantics as they are documented so this change isn't really acceptable.
For example when the font changes in ClutterText we only queue a
relayout, and since it's possible that the font will have the same size
and the actor won't get a new allocation it wouldn't otherwise queue a
redraw.
Since queue_redraw requests now get deferred until just before a paint
run it is actually no longer a problem to queue the redraw here.
clutter/clutter-actor.c | 20 --------------------
1 file changed, 20 deletions(-)
commit 3b789490d2cee54652d65950a71fe55736c6a433
Author: Robert Bragg <robert@linux.intel.com>
Date: Fri Sep 10 01:33:02 2010 +0100
actor: defer queue-redraw signaling
Instead of immediately, recursively emitting the "queue-redraw" signal
when clutter_actor_queue_redraw is called we now defer this process
until all stage updates are complete. This allows us to aggregate
repeated _queue_redraw requests for the same actor avoiding redundant
paint volume transformations. By deferring we also increase the
likelihood that the actor will have a valid paint volume since it will
have an up to date allocation; this in turn means we will more often be
able to automatically queue clipped redraws which can have a big impact
on performance.
Here's an outline of the actor queue redraw mechanism:
The process starts in clutter_actor_queue_redraw or
_clutter_actor_queue_redraw_with_clip.
These functions queue an entry in a list associated with the stage which
is a list of actors that queued a redraw while updating the timelines,
performing layouting and processing other mainloop sources before the
next paint starts.
We aim to minimize the processing done at this point because there is a
good chance other events will happen while updating the scenegraph that
would invalidate any expensive work we might otherwise try to do here.
For example we don't try and resolve the screen space bounding box of an
actor at this stage so as to minimize how much of the screen redraw
because it's possible something else will happen which will force a full
redraw anyway.
When all updates are complete and we come to paint the stage (see
_clutter_stage_do_update) then we iterate this list and actually emit
the "queue-redraw" signals for each of the listed actors which will
bubble up to the stage for each actor and at that point we will
transform the actors paint volume into screen coordinates to determine
the clip region for what needs to be redrawn in the next paint.
Note: actors are allowed to queue a redraw in reseponse to a
queue-redraw signal so we repeat the processing of the list until it
remains empty. An example of when this happens is for Clone actors or
clutter_texture_new_from_actor actors which need to queue a redraw if
their source queues a redraw.
clutter/clutter-actor.c | 223 ++++++++++++++++++++++++++++++++--------------
clutter/clutter-private.h | 21 +++--
clutter/clutter-stage.c | 173 +++++++++++++++++++++++++++++------
3 files changed, 320 insertions(+), 97 deletions(-)
commit 7d8effd5e26495dc3e01ba741a0389364183fc5f
Author: Robert Bragg <robert@linux.intel.com>
Date: Thu Sep 9 18:51:17 2010 +0100
paint_volume: add private api to change reference actor
For Clone actors we will need a way to report the volume of the source
actor as the volume of the clone actor. To make this work though we need
to be able to replace the reference to the source actor with a reference
to the clone actor instead. This adds a private
_clutter_paint_volume_set_reference_actor function to do that.
clutter/clutter-paint-volume.c | 15 +++++++++++++++
clutter/clutter-private.h | 38 ++++++++++++++++++++------------------
2 files changed, 35 insertions(+), 18 deletions(-)
commit 2d895816be659a86d999748ecf631422b9e9176f
Author: Robert Bragg <robert@linux.intel.com>
Date: Thu Sep 9 17:53:29 2010 +0100
paint_volume: Adds _clutter_paint_volume_set_from_volume
This adds a way to initialize a paint volume from another source paint
volume. This lets us for instance pass the contents of one paint volume
back through the out param of a get_paint_volume implementation.
clutter/clutter-paint-volume.c | 12 ++++++++++++
clutter/clutter-private.h | 3 +++
2 files changed, 15 insertions(+)
commit bfacca30119ed51517bac39c362a927ef39291ec
Author: Robert Bragg <robert@linux.intel.com>
Date: Thu Sep 9 14:30:38 2010 +0100
actor: don't queue_redraw actors not descended from stage
This makes clutter_actor_queue_redraw simply bail out early if the actor
isn't a descendant of a ClutterStage since the request isn't meaningful
and it avoids a crash when trying to queue a clipped redraw against the
stage to clear the actors old location.
clutter/clutter-actor.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
commit b77d9a6d2c0cc02519c79efe9dd4c8c184f73b36
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Sep 9 13:11:11 2010 +0100
paint-volume: Add convenience function for using an allocation
Classes overriding ClutterActor::get_paint_volume() that wish to use
their allocation as the paint volume should have an idiomatic way of
doing so.
clutter/clutter-paint-volume.c | 37 +++++++++++++++++++++++++++++++++++++
clutter/clutter-types.h | 39 +++++++++++++++++++++------------------
2 files changed, 58 insertions(+), 18 deletions(-)
commit 5640a65046e5fbf5b7283315b457e39331fa028b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Sep 9 12:38:25 2010 +0100
text: Update get_paint_volume() implementation
In commit 9818eee4646e49e99beb5a43f1dafcbdcca41f94 I forgot to update
ClutterText as well as the other actors.
clutter/clutter-text.c | 24 ++++--------------------
1 file changed, 4 insertions(+), 20 deletions(-)
commit 16f7ee13f2efb545d7cfd33774f42bab92f0e1e6
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Sep 9 12:30:29 2010 +0100
Move default paint volume computation into a function
This should reduce the amount of copy and paste for actor sub-classes
that use the default paint volume from the allocation.
clutter/clutter-cairo-texture.c | 24 ++++-----------------
clutter/clutter-paint-volume.c | 46 +++++++++++++++++++++++++++++++++++++++++
clutter/clutter-private.h | 4 ++++
clutter/clutter-rectangle.c | 24 ++++-----------------
clutter/clutter-texture.c | 24 ++++-----------------
5 files changed, 62 insertions(+), 60 deletions(-)
commit fd41024d29f093afe2fe1f0292c7ec5965ba5801
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Sep 8 21:01:37 2010 +0100
paint_volume: assert non-NULL pv in _volume_copy
Instead of carefully checking if the user passes NULL to
clutter_paint_volume_copy we now simply use g_return_val_if_fail.
clutter/clutter-paint-volume.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
commit 3040b140bce59ac2e70de325e0afa98ec8fa7ce7
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Sep 8 20:39:15 2010 +0100
paint_volume: Splits out clutter_paint_volume code
This splits out all the clutter_paint_volume code from clutter-actor.c
into clutter-paint-volume.c. Since clutter-actor.c and
clutter-paint-volume.c both needed the functionality of
_fully_transform_vertices, this function has now been moved to
clutter-utils.c as _clutter_util_fully_transform_vertices.
clutter/Makefile.am | 1 +
clutter/clutter-actor.c | 838 +----------------------------------------
clutter/clutter-paint-volume.c | 817 +++++++++++++++++++++++++++++++++++++++
clutter/clutter-private.h | 14 +-
clutter/clutter-util.c | 45 +++
5 files changed, 882 insertions(+), 833 deletions(-)
commit 72eeb8e809492524dc146cb92e0b4e3a5347f628
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Sep 8 19:47:11 2010 +0100
actor: make default get_paint_volume more conservative
There are too many examples where the default assumption that an actor
paints inside its allocation isn't true, so we now return FALSE in the
base implementation instead. This means that by default we are saying
"we don't know the paint volume of the actor", so developers need to
implement the get_paint_volume virtual to take advantage of culling and
clipped redraws with their actors.
This patch provides very conservative get_paint_volume implementations
for ClutterTexture, ClutterCairoTexture, ClutterRectangle and
ClutterText which all explicitly check the actor's object type to avoid
making any assumptions about subclasses.
clutter/clutter-actor.c | 14 +-------------
clutter/clutter-cairo-texture.c | 28 ++++++++++++++++++++++++++++
clutter/clutter-rectangle.c | 28 +++++++++++++++++++++++++++-
clutter/clutter-text.c | 26 ++++++++++++++++++++++++++
clutter/clutter-texture.c | 34 ++++++++++++++++++++++++++++++----
5 files changed, 112 insertions(+), 18 deletions(-)
commit d9a7f1b03b8527becd0251e51b8abacd710a1f8d
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Sep 8 18:20:54 2010 +0100
actor: don't always check needs_allocation for clipped redraw
We were always explicitly checking priv->needs_allocation in
_clutter_actor_queue_redraw_with_clip, but we only need to do that if
the CLUTTER_REDRAW_CLIPPED_TO_ALLOCATION flag is used.
clutter/clutter-actor.c | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
commit 072595a1bfe084e00e7bc6f7cc074c89a9914ce6
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Sep 8 18:17:27 2010 +0100
actor: new actors should start with an empty paint box
This initializes priv->last_paint_box with a degenerate box, so a newly
allocated actor added to the scenegraph and made visible only needs to
trigger a redraw of its initial position. If we don't have a valid
last_paint_box though we would instead trigger a full stage redraw.
clutter/clutter-actor.c | 7 +++++++
1 file changed, 7 insertions(+)
commit c2ea35b5cab98a5c2eca305b5199c7d3b44be70c
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Sep 8 18:14:04 2010 +0100
actor: when culling/clipped redraws disable ignore paint box
To make comparing the performance with culling/clipped redraws
enabled/disabled fairer we now avoid querying the paint box when they
are disabled, so that results should reflect how the cost of
transforming paint volumes into screen space etc gets offset against the
benefit of culling.
clutter/clutter-actor.c | 76 ++++++++++++++++++++++++++++---------------------
1 file changed, 44 insertions(+), 32 deletions(-)
commit 5d1600d6036941885a6ad2a4372f35678696d549
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Sep 8 11:32:29 2010 +0100
stage: only update viewport when allocation changes
In clutter_stage_allocate at the end we were always querying the latest
allocation set and using the geometry to assert the viewport and then
kicking a full redraw. These only need to be done when the allocation
really changes, so we now read the previous allocation at the start of
the function and compare at the end. This was stopping clipped redraws
from being used in a lot of cases.
clutter/clutter-stage.c | 18 ++++++++++++------
1 file changed, 12 insertions(+), 6 deletions(-)
commit 1e7f22db3b7cdf9c8154ec7c3ae7cb9b83ac0655
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Sep 8 01:18:30 2010 +0100
glx: queue full redraws for the first 2 frames
To consider that we've see a number of drivers that can struggle to get
going and may produce a bad first frame we now force the first 2 frames
to be full redraws. This became a serious issue after we started using
clipped redraws more aggressively because we assumed that after the
first frame the full framebuffer was valid and we only redraw the
content that changes. With buggy drivers though, applications would be
left with junk covering a lot of the stage until some event triggered a
full redraw.
clutter/glx/clutter-stage-glx.c | 5 +++++
clutter/glx/clutter-stage-glx.h | 5 +++++
2 files changed, 10 insertions(+)
commit 771348b3696b9f9a0f7de41d9b71abee6309f07b
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Sep 8 01:15:00 2010 +0100
x11: minimize nasty artefacts when resizing windows
This is a workaround for a race condition when resizing windows while
there are in-flight glXCopySubBuffer blits happening.
The problem stems from the fact that rectangles for the blits are
described relative to the bottom left of the window and because we can't
guarantee control over the X window gravity used when resizing so the
gravity is typically NorthWest not SouthWest.
This means if you grow a window vertically the server will make sure to
place the old contents of the window at the top-left/north-west of your
new larger window, but that may happen asynchronous to GLX preparing to
do a blit specified relative to the bottom-left/south-west of the window
(based on the old smaller window geometry).
When the GLX issued blit finally happens relative to the new bottom of
your window, the destination will have shifted relative to the top-left
where all the pixels you care about are so it will result in a nasty
artefact making resizing look very ugly!
We can't currently fix this completely, in-part because the window
manager tends to trample any gravity we might set. This workaround
instead simply disables blits for a while if we are notified of any
resizes happening so if the user is resizing a window via the window
manager then they may see an artefact for one frame but then we will
fallback to redrawing the full stage until the cooling off period is
over.
clutter/glx/clutter-stage-glx.c | 6 +++++-
clutter/x11/clutter-event-x11.c | 47 +++++++++++++++++++++++++++++++++++++++++
clutter/x11/clutter-stage-x11.h | 2 ++
3 files changed, 54 insertions(+), 1 deletion(-)
commit 012e4ab153337cb973a623d6b03c274231ef68b5
Author: Robert Bragg <robert@linux.intel.com>
Date: Wed Sep 8 01:03:15 2010 +0100
x11: Queue clipped redraws for Expose events
Instead of triggering a full stage redraw for Expose events we use the
geometry of the exposed region given in the event to queue a clipped
redraw of the stage.
clutter/x11/clutter-event-x11.c | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
commit 105451d1bea329edff85a5727f0bc4fd3b8e5504
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Sep 7 23:35:26 2010 +0100
cogl: removes unused _cogl_setup_viewport
Clutter has now taken responsibility for managing its viewport,
projection matrix and view transform as part of ClutterStage so
_cogl_setup_viewport is no longer used by anything, and since it's quite
an obscure API anyway it's we've taken the opportunity to remove the
function.
clutter/cogl/cogl/cogl.c | 74 ------------------------------------------------
clutter/cogl/cogl/cogl.h | 26 -----------------
2 files changed, 100 deletions(-)
commit 95ff71d01c44b1d93fdecadb8f233cd05d051d9f
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Sep 7 23:25:18 2010 +0100
stage: Sometimes really force a full redraw
Since clutter_actor_queue_redraw now automatically clips redraws
according to the paint volume of the actor we have to be careful to
ensure we really force a full redraw when the stage is allocated a new
size or the stage viewport changes.
clutter/clutter-stage.c | 20 ++++++++++++++++++--
1 file changed, 18 insertions(+), 2 deletions(-)
commit 2235e705859a880415da4d57c76596cef0b9026f
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Sep 7 23:09:06 2010 +0100
actor: don't immediately queue redraw when queuing relayout
We have bent the originally documented semantics a bit so now where we
say "Queueing a new layout automatically queues a redraw as well" it
might be clearer to say "Queuing a new layout implicitly queues a redraw
as well if anything in the layout changes".
This should be close enough to the original semantics to not cause any
problems.
Without this change then we we fail to take advantage of clipped redraws
in a lot of cases because queuing a redraw with priv->needs_allocation
== TRUE will automatically be promoted to a full stage redraw since it's
not possible to determine a valid paint-volume.
Also queuing a redraw here will end up registering a redundant clipped
redraw for the current location, doing quite a lot of redundant
transforms, and then later when re-allocated during layouting another
queue redraw would happen with the correct paint-volume.
clutter/clutter-actor.c | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
commit b499696d83c4f37b1513929ea62323abbaaa5940
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Sep 7 22:21:28 2010 +0100
Use paint volumes to do automatic culling
This uses actor paint volumes to perform culling during
clutter_actor_paint.
When performing a clipped redraw (because only a few localized actors
changed) then as we traverse the scenegraph painting the actors we can
now ignore actors that don't intersect the clip region. Early testing
shows this can have a big performance benefit; e.g. 100% fps improvement
for test-state with culling enabled and we hope that there are even much
more compelling examples than that in the real world,
Most Clutter applications are 2Dish interfaces and have quite a lot of
actors that get continuously painted when anything is animated. The
dynamic actors are often localized to an area of user focus though so
with culling we can completely avoid painting any of the static actors
outside the current clip region.
Obviously the cost of culling has to be offset against the cost of
painting to determine if it's a win, but our (limited) testing suggests
it should be a win for most applications.
Note: we hope we will be able to also bring another performance bump
from culling with another iteration - hopefully in the 1.6 cycle - to
avoid doing the culling in screen space and instead do it in the stage's
model space. This will hopefully let us minimize the cost of
transforming the actor volumes for culling.
clutter/clutter-actor.c | 53 ++++++++++++++++++++++++++++++++-
clutter/clutter-debug.h | 3 +-
clutter/clutter-main.c | 3 +-
clutter/clutter-private.h | 6 +++-
clutter/clutter-stage.c | 20 ++++++++++++-
clutter/egl/clutter-stage-egl.c | 2 +-
clutter/fruity/clutter-backend-fruity.c | 2 +-
clutter/glx/clutter-stage-glx.c | 4 +--
clutter/osx/clutter-stage-osx.c | 2 +-
clutter/win32/clutter-backend-win32.c | 2 +-
10 files changed, 86 insertions(+), 11 deletions(-)
commit ef8be9e25ebe77fc63055191cc48af53d731c108
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Sep 7 22:11:28 2010 +0100
actor: Use paint volumes to always queue clipped redraws
This makes clutter_actor_queue_redraw transparently use an actor's paint
volume to queue a clipped redraw.
We save the actors paint box each time it is painted so that when
clutter_actor_queue_redraw is called we can determine the old and new
location of the actor so we know the full bounds of what must be redrawn
to clear its old view and show the new.
clutter/clutter-actor.c | 75 +++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 75 insertions(+)
commit 13c4d7b95d4a9068322cf1d2b292d4bc98bbecfd
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Sep 7 21:43:50 2010 +0100
actor: make _transform_and_project_box static
This makes _clutter_actor_transform_and_project_box a static function
and removes the prototype from clutter-private.h since it is no longer
used outside clutter-actor.c
clutter/clutter-actor.c | 2 +-
clutter/clutter-private.h | 4 ----
2 files changed, 1 insertion(+), 5 deletions(-)
commit 120d7595e3128a233c1fdffd762327b5b74a54d1
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Sep 7 21:47:01 2010 +0100
actor: _real_queue_relayout shouldn't queue redraw
The base implementation for the actor queue_relayout method was queuing
an implicit redraw, but there shouldn't be anything implied from the
mere process of queuing a redraw that should force us to queue a redraw.
If actors are moved as a part of relayouting later then they will queue
a redraw. Also clutter_actor_queue_relayout() still also explicitly
queues a redraw so I think this may have been doubly redundant.
clutter/clutter-actor.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
commit dc976922714ab74f37c69a9ea109ad4e145fce92
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Sep 7 21:56:33 2010 +0100
actor: re-allocation implies need to redraw
If clutter_actor_allocate finds it necessary to update an actors
allocation then it now also queue a redraw of that actor. Currently we
queue redraws for actors very early on when queuing a relayout instead
of waiting to determine the final outcome of relayouting to determine if
a redraw is really required. With this in place we can move away from
preemptive queuing of redraws.
clutter/clutter-actor.c | 18 +++++++++++++-----
1 file changed, 13 insertions(+), 5 deletions(-)
commit 267e458a433b819f98ca47557c0a899d8c4dd357
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Sep 7 20:29:01 2010 +0100
actor: separate the queue redraw code
clutter_actor_queue_relayout currently queues a relayout and a redraw,
but the plan is to change it to only queue a relayout and honour the
documentation by assuming that the process of relayouting will
result queuing redraws for any actors whos allocation changes.
This doesn't make that change it just adds an internal
_clutter_actor_queue_only_relayout function which
clutter_actor_queue_relayout now uses as well as calling
clutter_actor_queue_redraw.
clutter/clutter-actor.c | 38 ++++++++++++++++++++++++--------------
1 file changed, 24 insertions(+), 14 deletions(-)
commit 6d5f6449ddeb47a9bb814f675843d12ae9f7882e
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Sep 7 20:08:00 2010 +0100
stage: make it possible to queue a relayout only
This adds a private ->relayout_pending boolean similar in spirit to
redraw_pending. This will allow us to queue a relayout without
implicitly queueing a redraw; instead we can depend on the actions
of a relayout to queue any necessary redraw.
clutter/clutter-main.c | 44 --------------------------
clutter/clutter-stage.c | 82 +++++++++++++++++++++++++++++++++++++++++++------
2 files changed, 73 insertions(+), 53 deletions(-)
commit f8a6e36f1bd1989eaabca81db14dd8bad879fba7
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Sep 7 19:40:28 2010 +0100
texture: Forward queue redraw/relayout for fbos
When clutter_texture_new_from_actor is use we need to track when the
source actor queues a redraw or a relayout so we can also queue a redraw
or relayout for the texture actor.
clutter/clutter-texture.c | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)
commit 1ea7145efc46e246610a0db70cb71c57cdf55e2b
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Sep 7 19:31:27 2010 +0100
Queue clipped redraws work in terms of paint volumes
There is an internal _clutter_actor_queue_redraw_with_clip API that gets
used for texture-from-pixmap to minimize what we redraw in response to
Damage events. It was previously working in terms of a ClutterActorBox
but it has now been changed so an actor can queue a redraw of volume
instead.
The plan is that clutter_actor_queue_redraw will start to transparently
use _clutter_actor_queue_redraw_with_clip when it can determine a paint
volume for the actor.
clutter/clutter-actor.c | 78 ++++++++++++++++++++++----------
clutter/clutter-actor.h | 19 --------
clutter/clutter-private.h | 23 ++++++++--
clutter/clutter-stage.c | 57 ++++++++++++-----------
clutter/x11/clutter-x11-texture-pixmap.c | 20 ++++----
5 files changed, 115 insertions(+), 82 deletions(-)
commit f3bffe5cab61efceaaadc5ba81129860b7b5c1a6
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Sep 7 19:07:19 2010 +0100
blur-effect: fix paint volume padding
For the blur effect we use a BLUR_PADDING constant to pad out the volume
of the source actor on the x and y axis. Previously we were offsetting
the origin negatively using BLUR_PADDING and then adding BLUR_PADDING
to the width and height, but we should have been adding 2*BLUR_PADDING
instead.
clutter/clutter-blur-effect.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
commit f60703cb1da1158c7d263210ca198203293b9576
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Sep 7 23:07:52 2010 +0100
debug: CLUTTER_DEBUG_REDRAWS: disable clipped redraws
This ensures that clipped redraws are disabled when using
CLUTTER_PAINT=redraws. This may seem unintuitive given that this option
is for debugging clipped redraws, but we can't draw an outline outside
the clip region and anything we draw inside the clip region is liable to
leave a trailing mess on the screen since it won't be cleared up by
later clipped redraws.
clutter/clutter-main.c | 7 +++
clutter/glx/clutter-stage-glx.c | 105 +++++++++++++++++++++++-----------------
2 files changed, 68 insertions(+), 44 deletions(-)
commit 066220f983d4e27020c9b5340aa7d7bfaace9928
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Sep 7 18:50:29 2010 +0100
paint volumes: CLUTTER_PAINT=paint-volumes debug option
This adds a debug option to visualize the paint volumes of all actors.
When CLUTTER_PAINT=paint-volumes is exported in the environment before
running a Clutter application then all actors will have their bounding
volume drawn in green with a label corresponding to the actors type.
clutter/clutter-actor.c | 96 +++++++++++++++++++++++++++++++++++++++++++++++++
clutter/clutter-debug.h | 3 +-
clutter/clutter-main.c | 7 +++-
3 files changed, 104 insertions(+), 2 deletions(-)
commit 3540d222e1ebba80bbe6cdfe32e97af052304d77
Author: Robert Bragg <robert@linux.intel.com>
Date: Tue Sep 7 18:04:19 2010 +0100
paint volumes: another pass at the design
This is a fairly extensive second pass at exposing paint volumes for
actors.
The API has changed to allow clutter_actor_get_paint_volume to fail
since there are times - such as when an actor isn't a descendent of the
stage - when the volume can't be determined. Another example is when
something has connected to the "paint" signal of the actor and we simply
have no way of knowing what might be drawn in that handler.
The API has also be changed to return a const ClutterPaintVolume pointer
(transfer none) so we can avoid having to dynamically allocate the
volumes in the most common/performance critical code paths. Profiling was
showing the slice allocation of volumes taking about 1% of an apps time,
for some fairly basic tests. Most volumes can now simply be allocated on
the stack; for clutter_actor_get_paint_volume we return a pointer to
&priv->paint_volume and if we need a more dynamic allocation there is
now a _clutter_stage_paint_volume_stack_allocate() mechanism which lets
us allocate data which expires at the start of the next frame.
The API has been extended to make it easier to implement
get_paint_volume for containers by using
clutter_actor_get_transformed_paint_volume and
clutter_paint_volume_union. The first allows you to query the paint
volume of a child but transformed into parent actor coordinates. The
second lets you combine volumes together so you can union all the
volumes for a container's children and report that as the container's
own volume.
The representation of paint volumes has been updated to consider that
2D actors are the most common.
The effect apis, clutter-texture and clutter-group have been update
accordingly.
clutter/clutter-actor.c | 920 ++++++++++++++++++++++++++------
clutter/clutter-actor.h | 10 +-
clutter/clutter-blur-effect.c | 4 +-
clutter/clutter-effect.c | 11 +-
clutter/clutter-effect.h | 2 +-
clutter/clutter-group.c | 25 +
clutter/clutter-main.c | 2 +-
clutter/clutter-offscreen-effect.c | 94 ++--
clutter/clutter-private.h | 94 +++-
clutter/clutter-stage.c | 47 ++
clutter/clutter-texture.c | 109 +++-
clutter/clutter-types.h | 18 +
clutter/egl/clutter-stage-egl.c | 2 +-
clutter/fruity/clutter-backend-fruity.c | 2 +-
clutter/glx/clutter-stage-glx.c | 4 +-
clutter/osx/clutter-stage-osx.c | 2 +-
clutter/win32/clutter-backend-win32.c | 2 +-
17 files changed, 1089 insertions(+), 259 deletions(-)
commit 48a24a2e08d5978e538e31c8480fa3d7b9b0b291
Author: Robert Bragg <robert@linux.intel.com>
Date: Thu Aug 19 15:38:15 2010 +0100
actor-box: Adds clutter_actor_box_union utility
When using ClutterActorBoxs for representing clip regions it can be
convenient to be able to union multiple boxes together.
clutter/clutter-actor.c | 28 ++++++++++++++++++++++++++++
clutter/clutter-types.h | 3 +++
2 files changed, 31 insertions(+)
commit 2da127dcff2c272e4d3b4ed5fc06919700fbc036
Author: Robert Bragg <robert@linux.intel.com>
Date: Thu Aug 19 15:26:19 2010 +0100
texture: size fbos using clutter_actor_get_paint_box
Previously we used the transformed allocation but that doesn't take
into account actors with depth which may be projected outside the
area covered by the transformed allocation.
clutter/clutter-texture.c | 48 +++++++++++++++--------------------------------
1 file changed, 15 insertions(+), 33 deletions(-)
commit 044809edb89a736f2aa5ecba54972cdea6d724c4
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Aug 19 15:27:51 2010 +0100
docs: Add PaintVolume to the API reference
And document the various related functions.
clutter/clutter-actor.c | 166 +++++++++++++++++++++++++++++
doc/reference/clutter/clutter-sections.txt | 16 +++
2 files changed, 182 insertions(+)
commit a6e5ecebe3c7e593257a5c3d4dc052561d4147f9
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Aug 19 14:06:52 2010 +0100
blur-effect: Add padding to account for the blur
The blur effect will sample pixels on the edges of the offscreen buffer,
so we want to add a padding to avoid clamping the blur.
We do this by creating a larger target texture, and updating the paint
volume of the actor during paint to take that padding into account.
clutter/clutter-blur-effect.c | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)
commit 5d97ca5f87a621b33129a675b5a4342c2b7a1dc7
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Thu Aug 19 14:05:45 2010 +0100
offscreen-effect: Use the paint box to size the FBO
We should be using the real, on-screen, transformed size of the actor to
size and position the offscreen buffer we use to paint the actor for an
effect.
clutter/clutter-offscreen-effect.c | 45 ++++++++++++++++----------------------
1 file changed, 19 insertions(+), 26 deletions(-)
commit 25abdf09b76fb594f8e64295a93aad241bcc3941
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Aug 16 17:02:15 2010 +0100
effect: Allow any effect to override the paint volume
An Effect implementation might override the paint volume of the actor to
which it is applied to. The get_paint_volume() virtual function should
be added to the Effect class vtable so that any effect can get the
current paint volume and update it.
The clutter_actor_get_paint_volume() function becomes context aware, and
does the right thing if called from within a ClutterEffect pre_paint()
or post_paint() implementation, by allowing all effects in the chain up
to the caller to modify the paint volume.
clutter/clutter-actor.c | 54 +++++++++++++++++++++++++++++++++++++++++++++--
clutter/clutter-effect.c | 17 +++++++++++++++
clutter/clutter-effect.h | 9 ++++++--
clutter/clutter-private.h | 6 ++++--
4 files changed, 80 insertions(+), 6 deletions(-)
commit 94ce747f83b09c93351a06db233742f3b9255380
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Aug 16 15:53:28 2010 +0100
actor: Allow querying the paint volume
An actor has an implicit "paint volume", that is the volume in 3D space
occupied when painting itself.
The paint volume is defined as a cuboid with the origin placed at the
top-left corner of the actor; the size of the cuboid is given by three
vectors: width, height and depth.
ClutterActor provides API to convert the paint volume into a 2D box in
screen coordinates, to compute the on-screen area that an actor will
occupy when painted.
Actors can override the default implementation of the get_paint_volume()
virtual function to provide a different volume.
clutter/clutter-actor.c | 269 ++++++++++++++++++++++++++++++++++++++++++++++
clutter/clutter-actor.h | 8 +-
clutter/clutter-private.h | 4 +
clutter/clutter-types.h | 29 ++++-
4 files changed, 305 insertions(+), 5 deletions(-)
commit 8dd8fbdbdf940258ff6b5ce616534bf8f8fd356a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Sep 13 11:30:30 2010 +0100
build: Start moving to a non-recursive layout
*** WARNING: THIS COMMIT CHANGES THE BUILD ***
Do not recurse into the backend directories to build private, internal
libraries.
We only recurse from clutter/ into the cogl sub-directory; from there,
we don't recurse any further. All the backend-specific code in Cogl and
Clutter is compiled conditionally depending on the macros defined by the
configure script.
We still recurse from the top-level directory into doc, clutter and
tests, because gtk-doc and tests do not deal nicely with non-recursive
layouts.
This change makes Clutter compile slightly faster, and cleans up the
build system, especially when dealing with introspection data.
Ideally, we also want to make Cogl part of the top-level build, so that
we can finally drop the sed trick to change the shared library from the
GIR before compiling it.
Currently disabled:
‣ OSX backend
‣ Fruity backend
Currently enabled but untested:
‣ EGL backend
‣ Windows backend
.gitignore | 7 +-
Makefile.am | 19 +-
autogen.sh | 1 -
build/Makefile.am | 2 +-
.../cogl/cogl/driver/gles => build}/stringify.sh | 0
clutter/Makefile.am | 521 +++++++++++++++------
clutter/cally/Makefile.am | 80 ----
clutter/cally/cally.pc.in | 9 +-
clutter.pc.in => clutter/clutter.pc.in | 0
clutter/cogl/cogl/Makefile.am | 136 ++++--
clutter/cogl/cogl/cogl-context.h | 10 +-
clutter/cogl/cogl/cogl-material-arbfp.c | 9 +-
clutter/cogl/cogl/cogl-material-fixed.c | 9 +-
clutter/cogl/cogl/cogl-material-glsl.c | 8 +-
clutter/cogl/cogl/cogl-material-opengl.c | 9 +-
clutter/cogl/cogl/driver/gl/Makefile.am | 34 --
...l-context-driver.c => cogl-context-driver-gl.c} | 2 +-
...l-context-driver.h => cogl-context-driver-gl.h} | 2 +-
...ure-functions.h => cogl-feature-functions-gl.h} | 0
clutter/cogl/cogl/driver/gl/{cogl.c => cogl-gl.c} | 4 +-
.../gl/{cogl-program.c => cogl-program-gl.c} | 2 +-
.../gl/{cogl-program.h => cogl-program-gl.h} | 0
...l-texture-driver.c => cogl-texture-driver-gl.c} | 0
clutter/cogl/cogl/driver/gles/Makefile.am | 57 ---
...context-driver.c => cogl-context-driver-gles.c} | 2 +-
...context-driver.h => cogl-context-driver-gles.h} | 2 +-
...e-functions.h => cogl-feature-functions-gles.h} | 0
.../cogl/cogl/driver/gles/{cogl.c => cogl-gles.c} | 2 +-
clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.c | 1 -
clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.h | 2 +-
.../gles/{cogl-program.c => cogl-program-gles.c} | 2 +-
.../gles/{cogl-program.h => cogl-program-gles.h} | 0
...texture-driver.c => cogl-texture-driver-gles.c} | 0
clutter/egl/Makefile.am | 46 --
clutter/glx/Makefile.am | 36 --
clutter/json/Makefile.am | 39 --
clutter/win32/Makefile.am | 38 --
clutter/win32/clutter-win32.pc.in | 16 -
clutter/x11/Makefile.am | 74 ---
clutter/x11/clutter-backend-x11.c | 16 +-
clutter/x11/clutter-x11-enum-types.c.in | 31 --
clutter/x11/clutter-x11-enum-types.h.in | 26 -
clutter/x11/clutter-x11.h | 1 -
clutter/x11/clutter-x11.pc.in | 16 -
configure.ac | 102 ++--
45 files changed, 574 insertions(+), 799 deletions(-)
commit 27aebb5c9d4a39e3f8e252b40cbf664d9981bbeb
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Sep 29 14:10:38 2010 +0100
cally: Do not use deprecated functions
The function g_strcasecmp() has been deprecated since GLib 2.2.
clutter/cally/cally-actor.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
commit e798047ca043fea204851ab22faf67a3222fa6d0
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Wed Sep 29 11:44:46 2010 +0100
animator: Code style fixes
clutter/clutter-animator.c | 30 +++++++++++++++---------------
1 file changed, 15 insertions(+), 15 deletions(-)
commit 3fe10e0bb1a7d6d9ad1f28ab50d609d2a0af55fb
Author: Stephen Kennedy <sk4425@googlemail.com>
Date: Wed Sep 29 10:56:48 2010 +0100
ClutterAnimator doesn't ref timeline properly
ClutterAnimator currently has a number of bugs related to its
referencing of its internal timeline.
1) The default timeline created in _init is not unreffed (it appears the
programmer has wrongly thought ClutterTimeline has a floating reference
based on the use of g_object_ref_sink in _set_timeline)
2) The timeline and slave_timeline vars are unreffed in finalize instead
of dispose
3) The signal handlers set up in _set_timeline are not disconnected when
the animator is disposed
http://bugzilla.clutter-project.org/show_bug.cgi?id=2347
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
clutter/clutter-animator.c | 23 ++++++++++++++++++-----
1 file changed, 18 insertions(+), 5 deletions(-)
commit d0cab85673a885b9aba317d282dd1bd5518fa241
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Sep 27 22:17:12 2010 +0100
Add a conformance test for clutter_actor_contains
This adds a conformance test for clutter_actor_contains to assert that
it gets the expected results for the given tree of actors.
tests/conform/test-actor-invariants.c | 66 +++++++++++++++++++++++++++++++++++
tests/conform/test-conform-main.c | 1 +
2 files changed, 67 insertions(+)
commit 306852075256906d268d5e0cb49957963f2e6a87
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Sep 27 17:51:01 2010 +0100
Simplify the loop for clutter_actor_contains
This reorganizes the loop for clutter_actor_contains so that it is a
for loop rather than a while loop. Although this is mostly just
nitpicking, I think this change could make the loop slightly faster if
not optimized because it doesn't perform the self == descendant check
twice and it is clearer.
clutter/clutter-actor.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
commit 99adb88e9b2cddd65b4fd960444f26a5b52ce3c1
Author: Neil Roberts <neil@linux.intel.com>
Date: Mon Sep 27 17:47:38 2010 +0100
Document what happens when self==descendant in clutter_actor_contains
The documentation for clutter_actor_contains didn't specify what
happens when self==descendant. A strict reading of it might lead you
to think that it would return FALSE because in that case the
descendant isn't an immediate child or a deeper descendant. The code
actually would return TRUE. I think this is more useful so this patch
fixes the docs rather than the code.
clutter/clutter-actor.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
commit bba1424a444816f61865c5caffb17e56e0eb478b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Mon Sep 27 16:46:26 2010 +0100
Post-branch version bump to 1.5.1
configure.ac | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
commit 1971581dfa4c4ec1c37ed85f4087800fb28a2e20
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sun Sep 26 18:48:04 2010 +0100
doap: Remove mallum from the maintainers list
clutter.doap | 7 -------
1 file changed, 7 deletions(-)
commit 43e85836b48636fe1a5217cb5fce6517e07ed3d0
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sun Sep 26 16:52:58 2010 +0100
actor: Dispose all constrains
We are leaking the ClutterMetaGroup with all the constraints when
disposing an Actor.
clutter/clutter-actor.c | 6 ++++++
1 file changed, 6 insertions(+)
commit fda1f3a8ba053aaa98882788b6098acbf7875bd3
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Sat Sep 25 20:23:41 2010 +0100
json: Allow NULL as a value for strings, arrays and objects
We should not warn when asking for a string, array or object if the
contents were 'null'.
Patch from JSON-GLib.
clutter/json/json-array.c | 42 +++++++++++++++++++++++++++++++++---------
clutter/json/json-object.c | 45 ++++++++++++++++++++++++++++++++++++---------
2 files changed, 69 insertions(+), 18 deletions(-)
commit 8fe9f3a37db72dcb1dfdf0589135310a78b0174e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Sep 24 16:21:06 2010 +0100
test-clutter-units: Force a known resolution to avoid fuzzyness
Instead of taking the current resolution, whatever it may be, use a
known DPI. This should alleviate fuzzyness and create consistent
results.
tests/conform/test-clutter-units.c | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
commit 51a4af92628287b491cd2539ce7bda0811976527
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date: Fri Sep 24 15:25:15 2010 +0100
Post-release version bump to 1.4.1
configure.ac | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
|