File: ChangeLog.pre-1.6

package info (click to toggle)
clutter-1.0 1.26.2%2Bdfsg-10
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 33,916 kB
  • sloc: ansic: 128,518; sh: 5,542; makefile: 1,595; xml: 1,248; ruby: 149; perl: 142; sed: 16
file content (12725 lines) | stat: -rw-r--r-- 522,191 bytes parent folder | download
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(-)