Release Clutter 1.3.12 (developers snapshot)
[profile/ivi/clutter.git] / NEWS
1 Clutter 1.3.12 (16/08/2010)
2 ===============================================================================
3
4   • List of changes since Clutter 1.3.10
5
6     » New recipes in the Cookbook:
7       - create and animate sub-textures
8       - layout managers
9       - scroll events
10
11     » Set the ClutterTexture:filename property to also be readable.
12
13     » Avoid layout cycles when creating ClutterLayoutMeta objects
14       during the ::allocate implementation
15
16     » Add a ClutterTableLayout, a layout manager for tabular layouts.
17
18     » Capture ENTER and LEAVE events on the stage within the DragAction.
19
20     » Plug memory leaks.
21
22     » Use g_object_notify_by_pspec(), if available, to speed up the
23       emission of the ::notify signal on property changes.
24
25     » Re-use the Cogl texture atlas for the CoglPango glyphs cache,
26       and improve the performance with large font sizes.
27
28     » Various fixes in the Materials comparison and inheritance.
29
30     » Add the ability to associate a user program to a material.
31
32 Many thanks to:
33
34   Neil Roberts
35   Elliot Smith
36   Robert Bragg
37   Damien Lespiau
38   José Dapena Paz
39   Owen W. Taylor
40
41 Clutter 1.3.10 (04/08/2010)
42 ===============================================================================
43
44   • List of changes since Clutter 1.3.8
45
46     » Fix a locale-dependent conversion from double to string when
47       generating ARBfp programs for the materials.
48
49     » Use the XKB extension on X11 platforms to convert between hardware
50       keys to key symbols.
51
52     » Documentation fixes in the API reference.
53
54     » More recipes, with videos and full examples, in the Cookbook.
55
56     » Add localization support and initial translations of error messages
57       that might be visualized in a user interface.
58
59     » Improve debugging output.
60
61     » Fix build of the GLX backend on OSX.
62
63     » Multiple fixes to the native OSX backend.
64
65     » Add support for 3D textures in Cogl.
66
67     » Fix shader-related issues and leaks in the new Material code.
68
69     » Unify GLSL support in the GL and GLES 2.0 drivers.
70
71     » Allow specifying an hint to disable clearing the stage before each
72       paint cycle.
73
74 Many thanks to:
75
76   Neil Roberts
77   Roman Kudiyarov
78   Elliot Smith
79   Robert Bragg
80   Chris Kühl
81   Chris Leick
82   Nate Stedman
83   happyaron
84   raven
85   Øyvind Kolås
86
87 Clutter 1.3.8 (12/07/2010)
88 ===============================================================================
89
90   • List of changes since Clutter 1.3.6
91
92     » Merge Cally, the Clutter Accessibility Library, in the Clutter tree.
93
94     » Take into consideration the source actor's position in the
95       AlignConstraint logic.
96
97     » Update the internal COGL tesselator with the latest GLU code.
98
99     » Fix CoglTexture data readback.
100
101     » Use GL_MAX_TEXTURE_SIZE on GLES when checking the supported texture size.
102
103     » Add missing public functions from COGL headers.
104
105     » Fix GLES build after the Cogl material changes.
106
107     » Rename the experimental CoglPixelBuffer API to CoglPixelArray.
108
109     » Split the clutter_state_change() method into two:
110     clutter_state_set_state(), for animated state changes; and
111     clutter_state_warp_to_state() for immediate state changes.
112
113     » Documentation and introspection fixes.
114
115     » Build fixes
116
117 Many thanks to:
118
119   Robert Bragg
120   Neil Roberts
121   Elliot Smith
122   Alejandro Piñeiro
123   Øyvind Kolås
124   Damien Lespiau
125   Alexandros Frantzis
126
127 Clutter 1.3.6 (30/06/2010)
128 ===============================================================================
129
130   • List of changes since Clutter 1.3.4
131
132     » Provide a fallback on GLX if the MESA_copy_sub_buffer extension is not
133       available, by using EXT_framebuffer_blit. Both mechanisms are also
134       throttled to avoid taking all resources when using them in a compositor
135       like Mutter.
136
137     » Use (and cache) fragment shaders instead of texture combiners inside
138       Cogl materials. Cogl will automatically fall back from GLSL to ARBfp
139       to fixed functions depending on the level of support of the underlying
140       GL implementation.
141
142     » Implement a new design for materials; this allows scaling up the
143       number of materials in a scene, and also makes copying materials
144       less expensive.
145
146     » Make Cogl materials responsible for depth testing, and add new
147       experimental API.
148
149     » Use the (modified) GLU tesselator to draw paths to a vertex buffer
150       object instead of using the stencil buffer, or the scanline rasterizer
151       on platforms without a stencil buffer.
152
153     » Add ClutterDeformEffect, a base class for effects that deform an
154       actor's geometry when painting it; ClutterPageTurnEffect is an
155       implementation of a "page curl" deformation using the DeformEffect
156       API.
157
158     » Always use scissoring when clipping, to reduce the amount of buffer
159       that has to be cleared.
160
161     » Allow ClutterShaderEffect sub-classes to use vertex shaders by setting
162       a constructor property; the default remains fragment shader.
163
164     » Remove the button of the press event from the DragAction::drag-begin
165       and DragAction::drag-end signals. This is an API break from 1.3.4.
166
167     » Do not promote clipped redraws to full redraws.
168
169     » Improve the consistency of the default state name in ClutterState,
170       both in the API and in the serialization format.
171
172     » Fix a rounding error with the Text layout size.
173
174     » Add utility functions for CoglMatrix and CoglColor.
175
176     » Avoid a re-allocation cycle warning when resizing the surface of
177       a CairoTexture actor from within the allocate() implementation.
178
179     » Do not add the GL libraries for the EGL X11 backend.
180
181     » Add more checks for size of data passed to the shader types GValue
182       functions.
183
184     » Add width and height to the BindConstraint.
185
186     » Parse actions, constraints and effects inside an actor definition
187       for ClutterScript.
188
189     » Merge the code of native and x11 backends for EGL into a single
190       backend; also allow creating GL context with the EGL backend.
191
192     » Use XSETTINGS to set up the backend configuration options, like
193       the font name, resolution, font options and double click options,
194       on X11; this also allows ClutterText actors created using the
195       default font name to be updated when the font name and options
196       change; similarly, this allows ClutterUnits to be updated when
197       the screen resolution changes.
198
199     » Implement the texture_from_pixmap extension support inside Cogl
200       itself, and unify ClutterX11TexturePixmap and ClutterGLXTexturePixmap.
201
202     » Documentation improvements in the API reference and in the cookbook.
203
204     » Use the -Bsymbolic-functions linker option on supported platforms
205       to avoid intra-library PLT jumps.
206
207     » Fix painting transparent stages on X11 using the :use-alpha property
208       of ClutterStage.
209
210     » Fix emission of scroll events on Windows.
211
212 Many thanks to:
213
214   Robert Bragg
215   Neil Roberts
216   Øyvind Kolås
217   Damien Lespiau
218   Elliot Smith
219   Chris Lord
220   Johan Bilien
221   Richard Hughes
222   Adel Gadllah
223   Alejandro Piñeiro
224   Colin Walters
225   Dan Winship
226   Kristian Høgsberg
227   Sunil Sadasivan
228
229 Clutter 1.3.4 (07/06/2010)
230 ===============================================================================
231
232   • List of changes since Clutter 1.3.2
233
234     » Add ClutterEffect, a ClutterActorMeta sub-class that affects the
235       way an actor paints itself.
236
237         » Clutter provides a base class for effects painting to an
238           offscreen buffer, and a base class for effects using the
239           GL programmable pipeline (through the GLSL shader language).
240
241         » Clutter also provides some simple, shader-based effects:
242           ClutterBlurEffect, ClutterColorizeEffect and
243           ClutterDesaturateEffect.
244
245         » Effects can be applied to any actor, and can also be stacked.
246
247     » Add ClutterClickAction, an action that provides "button-like"
248       semantics for any ClutterActor.
249
250     » ClutterDragAction now moves the actor to which it has been applied
251       by default, using a class handler for the ::drag-motion signal.
252
253     » Add the :pick-with-alpha property to ClutterTexture; this property
254       allows using the alpha channel of a texture when picking it.
255
256     » Regenerate the mipmaps on COGL textures when a texture is modified.
257
258     » Documentation and build fixes.
259
260 Many thanks to:
261
262   Robert Bragg
263   Damien Lespiau
264   Neil Roberts
265   Colin Walters
266
267 Clutter 1.3.2 (24/05/2010)
268 ===============================================================================
269
270   • List of changes since Clutter 1.2
271
272     » Add ActorMeta, a class for run-time composition of actions and
273       constraints on a ClutterActor:
274
275         » Add ClutterAction, a class for implementing business logic
276           related to event handling.
277
278         » Add ClutterConstraint, a class for implementing business
279           logic related to sizing and positioning.
280
281         » ClutterDragAction is an Action sub-class that implements
282           signals and properties for dragging actors.
283
284         » ClutterAlignConstraint and ClutterBindConstraint are two
285           Constraint sub-classes that allow relative positioning
286           with fixed layout managers.
287
288     » Add ClutterState, an object for defining state transitions.
289
290     » Add ClutterBoxLayout:homogeneous property.
291
292     » Implement retained clip stacks.
293
294     » Support retained paths.
295
296     » Add an experimental vector3 API.
297
298     » Require GLib >= 2.18.
299
300     » Require Atk >= 1.7.
301
302     » Make ClutterActor implement AtkImplementor, and allow retrieving
303       an AtkObject from a ClutterActor.
304
305     » Improve ClutterText's Pango layout caching mechanism.
306
307     » Fix set up of the GLX_SGI_swap_control extension.
308
309     » Fix EGLX backend.
310
311     » Documentation fixes for Clutter and COGL.
312
313     » Fix the conformance test suite by executing every test unit in
314       a separate process.
315
316     » Add platform-dependent defines for Cogl.
317
318     » Update the MingW cross-compilation script.
319
320     » New recipe in the Cookbook.
321
322 Many thanks to:
323
324   Neil Roberts
325   Robert Bragg
326   Øyvind Kolås
327   Owen W. Taylor
328   Brian Tarricone
329   Damien Lespiau
330   Adel Gadllah
331   Chris Lord
332   Fridrich Strba
333   José Dapena Paz
334   Jussi Kukkonen
335   Rob Bradford
336
337 Clutter 1.2.2 (15/03/2010)
338 ===============================================================================
339
340   • List of changes since Clutter 1.2.0
341
342     » Fix introspection annotations for ClutterBox
343
344     » Compilation fixes for the EGL native backend
345
346     » Fix ClutterX11TexturePixmap ::queue-damage-redraw default handler
347       registration to avoid a run-time warning
348
349     » Handle TEXTURE_RECTANGLE_ARB in the 2D sliced textures, and add
350       a test case for that extension to avoid regressions
351
352     » Improve the strictness of the JSON parser in the internal copy
353       of JSON-GLib to which we fall back in the absence of the system
354       one
355
356     » Fix a crasher on NVidia drivers when enabling the ARGB visuals
357       by default on GLX.
358
359 Many thanks to:
360
361   José Dapena Paz
362   Neil Roberts
363   Owen W. Taylor
364   Øyvind Kolås
365
366 Clutter 1.2.0 (02/03/2010)
367 ===============================================================================
368
369   • List of changes since Clutter 1.1.14
370
371     » Improve the Animator API for consistency, and the implementation
372       to match the intended behaviour, as documented
373
374     » Add initial (and internal) support for queueing clipped region updates
375       and let the GLX texture-from-pixmap actor take advantage of it
376
377     » Support any pixel format in cogl_read_pixels()
378
379     » Conditionally use G_VALUE_COLLECT_INIT() in functions using variadic
380       arguments lists
381
382     » Consistently use :min-width and :min-height inside the Stage to define
383       the minimum size of the Stage window
384
385     » Implement the Scriptable interface for ClutterModel sub-classes; this
386       allows setting ClutterModel columns (both types and names) in
387       ClutterScript definitions
388
389     » Add support for unsigned integer indices in the VertexBuffer API
390
391     » Documentation fixes for Clutter: the coverage is now 100%
392
393     » Fixes for the EGL native backend
394
395     » Require libtool >= 2.2.6
396
397     » Improve tests coverage
398
399 Many thanks to:
400
401   Neil Roberts
402   Øyvind Kolås
403   Robert Bragg
404   Bastian Winkler
405   Chris Lord
406   Owen W. Taylor
407
408 Clutter 1.1.14 (24/02/2010)
409 ===============================================================================
410
411   • List of changes since Clutter 1.1.12
412
413     » Fix interaction between user resizable Stages and fullscreen on X11
414
415     » Define the semantics of ENTER and LEAVE events when actors are on the
416       border of the Stage window
417
418     » Take the InputDevice of an event into consideration when throttling
419       MOTION events
420
421     » Round the coordinates when clipping to a rectangle in window coordinates
422
423     » Always trust the user-provided coordinates when creating a CoglTexture
424       from a foreign GL texture
425
426     » Split Clutter's debug annotations from the pick and paint mode
427       behavioural modifiers
428
429     » Improve the usage of the CLUTTER_ACTOR_NO_LAYOUT flag so that every
430       actor using a ClutterFixedLayout manager will automatically benefit
431       from it
432
433     » Fix the packing order of ClutterBox so that the convention of
434       first-in-first-painted is maintained
435
436     » Documentation fixes
437
438 Many thanks to:
439
440   Robert Bragg
441   Chris Lord
442   Neil Roberts
443
444 Clutter 1.1.12 (16/02/2010)
445 ===============================================================================
446
447   • List of changes since Clutter 1.1.10
448
449     » Fix compilation on 64bit platforms
450
451     » Fix some races of the Stage resizing on X11
452
453     » Documentation fixes for Cogl: the coverage is now 100%
454
455     » Fix rounding errors in the preferred height of the ClutterText
456       actor
457
458     » Remove redundant type checks in clutter_actor_get_paint_opacity()
459
460     » Add support for the GLX_INTEL_swap_event extension; when using this
461       extension on GLX the glXSwapBuffers() call becomes non-blocking and
462       Clutter will use an event to control the master clock.
463
464     » Improve consistency between ClutterBox and ClutterGroup.
465
466     » On X11, do not set the _NET_WM_PID and WM_TITLE properties on a
467       Stage X window if the window was not created by Clutter itself
468
469     » Improve caching of GL constant values
470
471     » Optimize creating sub-textures of sub-textures
472
473     » Various fixes for the atlas and the journal
474
475     » Disable the atlas if FBOs are not supported
476
477 Many thanks to:
478
479   Robert Bragg
480   Neil Roberts
481   Damien Lespiau
482   Bastian Winkler
483   Chris Lord
484
485 Clutter 1.1.10 (09/02/2010)
486 ===============================================================================
487
488   • List of changes since Clutter 1.1.8
489
490     » Fixed a regression in textures that caused all the textures to be
491       drawn as white rectangles.
492
493     » Fixed compilation with the Sun C compiler.
494
495     » Use SSE2 instructions to premultiply RGBA images, if available.
496
497     » Improve readability of ClutterActor::raise/::lower warnings.
498
499 Many thanks to:
500
501   Neil Roberts
502   Halton Huo
503
504 Clutter 1.1.8 (08/02/2010)
505 ===============================================================================
506
507   • List of changes since Clutter 1.1.6
508
509     » Added ClutterAnimator, a class that allows defining complex
510       implicit animations involving multiple actors and states; this
511       class is mostly meant to be used through the ClutterScript
512       definition format, but it provides a convenience C API for
513       easily building animations.
514
515     » New experimental COGL API to expose "hardware" buffers such as PBOs or
516       drm surfaces. This API can be used, for instance, to make texture
517       uploading faster.
518
519     » Fixed the issues with resizable stages getting a 1x1 window with
520       the X11 backends
521
522     » Expose input devices for every event; by default, X11 and Windows
523       backends expose the core devices only.
524
525     » Add the ClutterStage:key-focus property, for key focus tracking.
526
527     » Allow setting transformable value types in ClutterAnimation when
528       calling clutter_animation_bind() and clutter_animation_update().
529
530     » Delay the creation of the default Stage until clutter_stage_get_default()
531       is actually called; this reduces the work of clutter_init().
532
533     » Implement Ctrl+Delete and Ctrl+Backspace in ClutterText
534
535     » Improve the extendability of CoglTexture with internal backends.
536
537     » Add implicit texture atlasing; Cogl will try to put every texture
538       inside the same texture atlas by default, to avoid state changes
539       in the driver and (hopefully) improve performance.
540
541     » Fix notification of the cursor and selection changes in ClutterText;
542       this improves the usage of Clutter from A11Y toolkits.
543
544     » Do not wait for a frame if the system clock goes backwards.
545
546     » Fix the dirtying of the clip state; this unbreaks cogl_path_fill().
547
548     » Documentation and build fixes.
549
550 Many thanks to:
551
552   Neil Roberts
553   Chris Lord
554   Damien Lespiau
555   Alejandro Piñeiro
556   Jussi Kukkonen
557   Kristian Høgsberg
558   Robert Bragg
559   Øyvind Kolås
560
561 Clutter 1.1.6 (18/01/2010)
562 ===============================================================================
563
564   • List of changes since Clutter 1.1.4
565
566     » Some fixes for the Win32 backend (bug #1905).
567
568     » Profiling support via the UProf library. Configure with
569       --enable-profile to get a report after each Clutter application is
570       run.
571
572     » Improved conformance tests with coverage reports via gcov.
573
574     » ClutterTexture no longer tries to read back texture data into
575       g_malloc'd memory on unrealize (bug #1842).
576
577     » The CGL_• defines from cogl-defines.h have been removed. These
578       should not have been used by any applications, but if they were
579       being used then please replace them either with the Cogl enums or
580       with the appropriate GL_• enum if you are using GL directly.
581
582     » Added a delete-event signal to the stage.
583
584     » Fix for using cogl_rectangle with different texture coordinates
585       for multiple layers (bug #1937).
586
587     » Fix for using stencil and depth buffers in FBOs on Intel drivers
588       in Mesa (bug #1873).
589
590     » Support for subtitles in ClutterMedia.
591
592     » ClutterGLX will now use an RGB visual by default. For
593       applications (and toolkit integration libraries) that want to
594       enable the ClutterStage:use-alpha property there is a new
595       function: clutter_x11_set_use_argb_visual().
596
597     » Fix ClutterText to allow using Pango markup and attributes in
598       the same actor (bug #1940).
599
600 Many thanks to:
601
602      Alejandro Piñeiro
603      Damien Lespiau
604      Emmanuele Bassi
605      Gord Allot
606      Halton Huo
607      Robert Bragg
608      Samuel Degrande
609
610 Clutter 1.1.4 (03/01/2010)
611 ===============================================================================
612
613   • List of changes since Clutter 1.1.2
614
615     » Update the ClutterScript parser to be more resilient, and support
616       constructor and ChildMeta properties. The parser also respects the
617       order of the properties in the UI definitions when applying them,
618       and will apply the properties of an Actor after building the scene
619       graph.
620
621     » Simplified the implementation of LayoutManager sub-classes, and added
622       support for animating a layout manager.
623
624     » Allow short-circuiting some layout operations by setting a specific
625       flag on ClutterActor.
626
627     » Improve caching of the preferred size of a ClutterActor.
628
629     » Allow declaring "internal children" for a ClutterContainer
630       implementation: the memory management of these actors will be deferred
631       entirely to the Container.
632
633     » Let the ClutterStage honour the :opacity property and the alpha component
634       of the stage color. This requires support in the Clutter backend used.
635
636     » Improve Windows and OSX backends.
637
638     » Simplify the feature detection code for OpenGL; this also reduced the
639       required OpenGL version to 1.2.
640
641     » Improve the matrix stack handling code. The matrices can be debugged by
642       using the COGL_DEBUG environment variable, assuming that Clutter was
643       compiled with the right configure-time switch.
644
645     » Improve COGL API for draw buffers, and for offscreen buffer support.
646
647     » Add support for text direction to ClutterActor.
648
649     » Documentation, introspection and build fixes.
650
651 Many thanks to:
652
653   Robert Bragg
654   Neil Roberts
655   Damien Lespiau
656   Joshua Lock
657   Bastian Winkler
658   Rob Bradford
659   Samuel Degrande
660   Christian Persch
661   Colin Walters
662   Johan Bilien
663   Raymond Liu
664   Tim Horton
665
666 Clutter 1.1.2 (23/10/2009)
667 ===============================================================================
668
669   • List of changes since Clutter 1.0
670
671     » Add ClutterLayoutManager, an abstract proxy class for easily
672       writing layout management policies; also add ClutterLayoutMeta,
673       a class for storing layout properties.
674
675     » Add ClutterBox, a generic container actor that relies on a
676       ClutterLayoutManager instance to manage the layout of its
677       children.
678
679     » Add the following layout managers:
680
681       - ClutterFixedLayout - a layout manager implementing the
682         policy used by ClutterGroup
683
684       - ClutterBinLayout - a layout manager for packing actors
685         as layers inside the same area, with per-actor alignment
686
687       - ClutterFlowLayout - a layout manager arranging actors as
688         a reflowing grid
689
690       - ClutterBoxLayout - a layout manager arranging actors as
691         a single line
692
693     » Remove the requirement for the backend-specific implementation
694       of ClutterStage to be a ClutterActor: a Stage implementation must
695       only implement the ClutterStageWindow interface. This cleans up
696       the backend code.
697
698     » COGL source tree clean up and rationalization; COGL now
699       knows the platform, and not only the driver (GL or GLES) so
700       we can migrate part of the low-level backend code from Clutter
701       to COGL where it makes sense.
702
703     » Remove code duplication across whole COGL.
704
705     » The GLES 2.0 driver for COGL, and the EGLX backend for Clutter
706       have been fixed and confirmed working.
707
708     » Add "dump-pick-buffer" to CLUTTER_DEBUG: this debug options
709       dumps the contents of each pick() buffer into a PNG file, for
710       debugging purposes.
711
712     » Allow interpolating intervals of ClutterUnits for animating
713       unit-based properties.
714
715     » Increase strictness and correctness of the ClutterUnits
716       grammar parser.
717
718     » Add GValue transformation functions for ClutterPath to and
719       from a string.
720
721     » Fix word movement in ClutterText; implement GObject getter for
722       :use-markup; emit notification for :position; decouple the
723       :text property from the :use-markup property.
724
725     » Do not queue redraws or relayouts on actors currently being
726       destroyed. 
727
728     » Support #rrggbb and #rgb notations for ClutterColor.
729
730     » Multiple bug fixes.
731
732     » Provide _NET_WM_PID on the X11 stage implementation.
733
734     » Documentation and Introspection annotation fixes.
735
736     » Add test units for the ClutterActor size requesition.
737
738     » Build fixes.
739
740     » Use AM_SILENT_RULES if Automake 1.11 is detected, and fall
741       back to Shave on older Automake versions.
742
743 Many thanks to:
744
745   Robert Bragg
746   Damien Lespiau
747   Neil Roberts
748   Thomas Wood
749   Owen W. Taylor
750   Øyvind Kolås
751   Götz Waschk
752   Zhou Jiangwei
753   Colin Walters
754   Jonas Bonn
755   Joshua Lock
756   Jussi Kukkonen
757   Samuel Degrande
758   Vladimir Nadvornik
759   Xu Li
760
761 Clutter 1.0.0 (28/07/2009)
762 ===============================================================================
763
764   • List of changes since 0.9.8
765
766     » Allow per-stage disabling of motion event throttling; this should allow
767       platforms or applications that require all the motion events not for
768       drawing purposes to get them exactly like Clutter gets them from the
769       windowing system.
770
771     » Various documentation fixes.
772
773     » Add per-word key navigation inside ClutterText.
774
775     » Fix the RGB<->HLS conversion.
776
777     » Various fixes for the OSX backend.
778
779     » Various build-related fixes.
780
781 Many thanks to:
782
783   Geoff Gustafson
784   Michael Mortensen
785   Owen W. Taylor
786
787 Clutter 0.9.8 (17/07/2009)
788 ===============================================================================
789
790   • List of changes since 0.9.6
791
792     » Add more introspection annotations for language bindings.
793
794     » Fix a bug in clutter_animation_set_alpha(), which also broke the
795       clutter_actor_animate_with_alpha() function.
796
797     » Check if the stage requires a relayout before showing it; this fixes
798       a bug in the X11-based backends, especially under compositing window
799       managers, where a 640x480 window would flicker before the default
800       stage was shown for the first time.
801
802     » Performance fixes for Cogl.
803
804     » Sliced textures were broken by the COGL journalling.
805
806     » Use the redraw cycle when asynchronously loading textures from
807       files.
808
809     » Miscellaneous compilation fixes for the OS X and Windows backends.
810
811     » Allow querying from within the paint function of an Actor whether
812       the actor is currently being directly painted or by a Clone actor.
813
814     » In the GLX backend, when using the non-implicit sync-to-vblank inside
815       glXSwapBuffers(), call glFinish() to avoid potential tearing.
816
817 Many thanks to:
818
819   Colin Walters
820   Evan Martin
821   Marcos
822   Owen W. Taylor
823   Xu Li
824
825 Clutter 0.9.6 (01/07/2009)
826 ===============================================================================
827
828   • List of changes since 0.9.4:
829
830     » Allow the manipulation of the actor's transformation matrix, so that is
831       is possible to apply additional transformations in a way that is
832       compatible with the transformations already applied by the scene graph.
833
834     » Fix a race in the X11 backend that happened between resizing the stage
835       drawable and the call to glViewport().
836
837     » Merge the cogl-journal-batching branch; this branch implements batching
838       the geometry of the elements of the scene graph before sending it to
839       OpenGL, thus minimizing the number of state changes and improving the
840       overall performance of Clutter-based applications.
841
842     » Add more debugging states for Clutter and COGL, which allow the developer
843       to track the state of the journal; to check the VBO fallback paths; to
844       disable picking for reliable profiling; to disable software-side matrix
845       transformations in favour of the driver/GPU ones.
846
847     » Improve the ability to "break out" of COGL by using gl_begin/gl_end
848       semantics; applications that drop into raw GL are, though, ignoring all
849       the caching performed by COGL and might incur in performance issues.
850
851     » Fixed the :load-async and :load-data-async properties of Texture by
852       removing the unneeded G_PARAM_CONSTRUCT flag.
853
854     » Added an initial migration guide that shows the porting process from
855       older releases of Clutter to the 1.0 API; the first chapter deals with
856       the migration from ClutterEffect to the new implicit animations API.
857
858     » Fixed MT-safety for the master clock.
859
860 Many thanks to:
861
862   Ole André Vadla Ravnås
863   Tim Horton
864
865 Clutter 0.9.4 (19/06/2009)
866 ===============================================================================
867
868   • List of changes since 0.9.2:
869
870     » Set the layout height in ClutterText, so that wrapping and ellipsization
871       work correctly to fill all the allocated area.
872
873     » Remove all the units-based API, and migrate all the positional and
874       dimensional accessors to use floating point values when dealing with
875       pixels. All the properties dealing with pixels now that a floating
876       point value as well.
877
878     » Add the ability to track wether an actor is going to be painted or not,
879       using the "mapped" flag. This also allows Clutter to be more strict
880       in the handling of the scenegraph, ensuring correctness and avoiding
881       wasting resources on nodes that won't be painted.
882
883     » Add debugging facilities for COGL, similar to those of Clutter; through
884       them is also possible to have an on screen debugging mode that shows the
885       boundaries of each rectangle sent to the GPU.
886
887     » Rework "units" into real logical distance units that can be converted
888       between millimeters, typographic points and ems into pixels.
889
890     » Simplify the Animation class to avoid redundancy and the possibility
891       of it going out of sync with the Timeline and Alpha instances it uses.
892
893     » Move every operation into a single "master clock" source that advances
894       the timelines, dispatches events and redraws the stages in a predictable
895       sequence, thus avoiding unneeded redraws. The default is to follow the
896       sync-to-vblank cycle, if it is supported by the drivers.
897
898     » Cache the glyphs geometry into a vertex buffer object to avoid
899       resubmitting too much information to the GPU.
900
901     » Rework the behaviour of ClutterModel when a filter is applied.
902
903     » Allow submitting premultiplied texture data; this removes the need
904       for unpremultiplying data in CairoTexture.
905
906     » Add a simple API for submitting blending and texture combining modes
907       through a string description.
908
909     » Move Timelines to pure time-based objects.
910
911     » Lots of performance improvements.
912
913     » Removal of all the deprecated API.
914
915     » Removal of all the fixed point entry points.
916
917     » Lots of documentation fixes - the coverage is now 99% of the exported
918       1600 symbols for Clutter and 80%+ of the 300 exported symbols for COGL.
919
920     » Generate the GObject Introspection data for both Clutter and COGL
921       at build time.
922
923     » Build environment fixes.
924
925 Many thanks to:
926
927     Owen W. Taylor <otaylor@fishsoup.net>
928     Thomas Wood <thomas.wood@intel.com>
929     Havoc Pennington <hp@pobox.com>
930     Bastian Winkler <buz@netbuz.org>
931     Chris Lord <chris@linux.intel.com>
932     Garry Bodsworth <gjb@camvine.com>
933     Rob Bradford <rob@linux.intel.com>
934     Johan Bilien <jobi@litl.com>
935     Jonas Bonn <jonas@southpole.se>
936     Raymond Liu <raymond.liu@intel.com>
937     Damien Lespiau <damien.lespiau@gmail.com>
938     Dan Winship <danw@gnome.org>
939     Marc-André Lureau <marcandre.lureau@gmail.com>
940     Robert Staudinger <robsta@gnome.org>
941     Tommi Komulainen <tko@litl.com>
942
943 Clutter 0.9.2 (16/03/2009)
944 ===============================================================================
945
946 Bastian Winkler (2):
947       [media] Fix the interface cast macro
948       Remove redundant declaration in clutter-text.h
949
950 Chris Lord (1):
951       [actor] Force a relayout on set_parent()
952
953 Christian Persch (1):
954       Bug 1429 - Redundant declaration in clutter-x11.h
955
956 Colin Walters (3):
957       Bug 1491 - Fix hardcoded lib path in .pc files
958       Typo in clutter-win32.pc.in introduced by commit 24ce19383
959       [animation] Enhance the bind API
960
961 Damien Lespiau (6):
962       [gitignore] update gitignore files for tests/
963       [build] Beautify autotools' output
964       [build] Add dolt
965       [build] Fix interaction between shave, gtk-doc and libtool 1.x
966       [build] Fix dist for the newly introduced m4 macro directory
967       Update shave
968
969 Emmanuele Bassi (111):
970       Post-release bump to 0.9.1
971       [text] Merge the attributes with markup enabled
972       [tests] Update the text-field interactive test
973       Add Actor::create_pango_layout()
974       [docs] Add clutter_text_set_markup()
975       [clone] Allow cloning unparented actors
976       [text] Use create_pango_layout()
977       [text] Rename :alignment to :line-alignment
978       [texture] Consolidate the quality to filter conversions
979       [texture] Check if the material is valid
980       [event] Extend KeyEvent for multi-input support
981       [actor] Check out parameters before setting them
982       [list-model] Make ClutterListModel subclassable
983       Bug 1440 - Add clutter_get_current_event_time()
984       [tests] Add TEST_CONFORM_SKIP() macro
985       [tests] Add conformance tests for ClutterModel
986       [ignore] Add the newly created conformance units
987       [actor] Revert part of commit 402e022c
988       [animation] Do not bind construct-only properties
989       [x11] Add backend-specific get_current_event_time()
990       Initialize a variable to avoid warnings
991       [cogl] Add cogl_is_material to cogl-material.h
992       [cogl] Provide GTypes for COGL types
993       [texture] Use COGL_TYPE_HANDLE for the handle properties
994       [docs] Clarify the set_cogl_texture() documentation
995       Merge branch 'build-enhancements'
996       [docs] Add a missing "return" annotation
997       [build] Pass the -s switch to cmp
998       Remove type functions for removed types
999       [docs] Update the sections file
1000       [tests] Add TEST_CONFORM_TODO macro
1001       [build] Show pkg-config file being generated
1002       [build] Reference the headers with their full path
1003       [docs] Update build for COGL API reference
1004       [build] Update the EXTRA_DIST list
1005       [build] Fix the ChangeLog generation rule
1006       [build] Do not overwrite BUILT_SOURCES
1007       [behaviour] Do not notify empty behaviours
1008       [path] Do not accept NULL descriptions
1009       [timeline] Set the n_markers out paramater
1010       Do not use GL types in Clutter headers
1011       [docs] Require gtk-doc 1.11
1012       [docs] Use the --name-space option
1013       [docs] Add the 1.0 symbols index
1014       [docs] Rename cogl-docs from sgml to xml
1015       Add build machinery for gobject-introspection data
1016       [backend] Update the viewport when updating the GL context
1017       [build] Move all the compiler flags to AM_CFLAGS
1018       [ignore] Update with the introspection files
1019       Add runtime debug messages for COGL
1020       [actor] Remove usage of ClutterFixed
1021       Make disable text mipmapping a command line switch
1022       Make fuzzy picking a command line switch
1023       [docs] Document envvars and command line switches
1024       Remove stray fixed point macro usage
1025       Use a dynamic array for the actors when delivering events
1026       [media] Add sub-second resolution for the duration
1027       [build] Put the X11 pc dependencies in another variable
1028       [build] Do not shave typelib generation
1029       Intern the ClutterScriptable type name
1030       [backend] Constify font options
1031       [cogl] Add a PANGO debug flag for CoglPango use
1032       Clean up of the ClutterColor API
1033       [shader] Unify code paths
1034       Add pkg-config file for COGL
1035       [build] Various fixes for distcheck
1036       [docs] Clarify clutter_actor_animate() behaviour
1037       [docs] Note that grabs are evil
1038       [cogl-fixed] Add a double-to-fixed conversion macro
1039       Move BehaviourScale to CoglFixed
1040       Move ClutterBehaviourEllipse to CoglFixed
1041       Move ClutterBehaviourRotate to CoglFixed
1042       Move ClutterTimeline to CoglFixed
1043       [cogl-fixed] Implement the CoglFixed fundamental GType
1044       [tests] Test CoglFixed, not ClutterFixed
1045       [interval] Update fixed-point handling
1046       [stage] Coalesce fog and perspective API
1047       [texture] Fix ClutterFixed usage
1048       [text] Convert units to the right type
1049       [tests] Use floats, not ClutterFixed
1050       [units] Add more conversion functions
1051       [fixed] Remove ClutterFixed API
1052       [cogl] Fix hardcoded paths in the pc file
1053       [docs] Remove ClutterFixed from the documentation
1054       [docs] Update API reference
1055       [animation] Add vector variants for ::animate()
1056       [cogl] Initialize boolean flag in CoglContext
1057       [cogl] Initialize all members of CoglContext
1058       [color] Fixed HLS to RGB conversion
1059       [docs] Calling g_object_ref() will not dispose an object
1060       [docs] Document the commit message format
1061       [tests] Animate the color during easing
1062       [docs] Reword some of the coding practices
1063       [docs] Add a bindings coding practices
1064       Add more deprecation notices
1065       [deprecated] Add Effect deprecation
1066       Do not cause more size requisitions than necessary
1067       [cogl] Avoid shadowing math.h symbols
1068       [docs] Clarify Animation memory management
1069       [animation] Add an emitter for ::completed
1070       [animation] Add Animation getter
1071       [tests] Remove unused variables
1072       [docs] Add description of queue_redraw
1073       [docs] Update after Animation API changes
1074       [animation] Enhance consistency of the Animation API
1075       [docs] Bring down the undocumented symbols to 2%
1076       Fix release date of 0.9.0
1077       Update release notes
1078       [docs] Fix naming of the interval parameter
1079       [docs] Ignore the TimeoutInterval internal API
1080       Update release notes
1081
1082 Geoff Gustafson (1):
1083       [animation] Broken fixed:: properties
1084
1085 Gordon Williams (1):
1086       [group] Output the group name when debugging paint
1087
1088 Havoc Pennington (4):
1089       Virtualize GL matrix operations and use a client-side matrix when GL is indirect
1090       [actor] Add :clip-to-allocation property
1091       [actor] Add ::queue-redraw signal
1092       [cogl] Flush matrix before clip planes
1093
1094 Jonathan Matthew (1):
1095       Declare the EnumValues for PixelFormat static
1096
1097 Neil Roberts (36):
1098       [cogl-material] Always bind the new texture handle
1099       Fix building GLES 2 after the material branch merge
1100       [cogl-texture] Fix the count for the number of enabled arrays
1101       [cogl-gles2-wrapper] Remove the FIXME to adjust the fragment color
1102       [clutter-clone] Override the parent opacity to self not self->parent
1103       [clutter-texture] Release the temporary ref taken when setting a texture
1104       [clutter-texture] Unref the Cogl material on dispose
1105       [clutter-texture] Fix the no_slice property
1106       [cogl-texture] Fix offset to next quad when flushing the log
1107       [cogl-texture] Move the destruction of the material to _finalize
1108       [cogl-texture] Fix uninitialised priv var in texture_finalize
1109       Added a test for non-power-of-two sized textures
1110       Emit CLUTTER_LEAVE events when the pointer leaves the stage
1111       Call glActiveTexture and glClientActiveTexture through cogl_get_proc_address
1112       [win32] Track mouse leave messages
1113       [clutter-main] Fix the input device passed to set_motion_last_actor
1114       Override the opacity when painting a clone instead of combining
1115       Allow rotation angle properties to be negative
1116       [ClutterBehaviourRotate] Fix up some breakage from the cogl-float branch merge
1117       [tests/conform] Copy in redhand.png
1118       Replaced ClutterFixed constants in color_{darken,lighten} with float
1119       [cogl-gles2-wrapper] Convert texture unit settings to be a static sized array
1120       [cogl-gles2-wrapper] Actually call glActiveTexture
1121       Add an environment variable to disable mipmapped text
1122       [tests/tools] Don't install libdisable-npots.so
1123       [clutter-texture] Use a GThreadPool for loading async textures
1124       [cogl-pango-glyph-cache] Fix compiler warning on 64-bit
1125       Fix warning in clutter-backend-sdl
1126       [eglnative] Add -I flags for the clutter dir in the src and build dirs
1127       Set the mapped flag on the stage in the SDL and eglnative backends
1128       Fix out of tree builds
1129       Remove use of $(builddir)
1130       [README] Small typo fix
1131       Change cogl_path_rectangle and cogl_path_round_rectangle to take x1,y1,x2,y2
1132       [cogl-path] Minor fix to gtk-doc
1133       Count timeline frames using the FPS instead of an integer interval
1134
1135 Owen W. Taylor (7):
1136       Honor ACLOCAL_FLAGS in autogen.sh
1137       Add gobject-introspection annotations
1138       Fix x/y confusion for GL_TEXTURE_RECTANGLE_ARB
1139       Use COGL to establish GL state for ClutterGLXTexturePixmap
1140       Add (out) annotations for ClutterActor
1141       Allow NULL for clutter_text_set_text()
1142       Avoid drawing twice if relayout queues a draw
1143
1144 Raymond Liu (2):
1145       [text] Crash when multi-byte utf8 text exceeds max_length
1146       [text] Insertion of multi-byte characters broken
1147
1148 Robert Bragg (28):
1149       [Cogl] Renames cogl_fog_set to cogl_set_fog for consistency
1150       [cogl-material] Fixes some dirty flag checks
1151       [cogl-vertex-buffer] Some fixes for texturing and color arrays
1152       [docs] Various gtk-doc updates for Cogl
1153       [tests] Some improvements for test-pixmap
1154       [Cogl] cogl_clip_{set•,unset} renamed to cogl_clip_{push*,pop}
1155       [Cogl] Renames cogl_paint_init to cogl_clear and adds a cogl_disable_fog function
1156       [cogl-color.c] #include fix for the cogl_set_source_color prototype
1157       [Cogl] the cogl_get_•_matrix functions now work with CoglMatrix types
1158       [Cogl] Fixes automatic handling of the GL blend enable state.
1159       [cogl-material] Always glBindTexture when flushing material state
1160       [Cogl] Remove a debugging assert that was triggering on false positives
1161       [test-vertex-buffer-contiguous] Improves the texturing test
1162       [cogl-matrix] Adds padding to CoglMatrix
1163       [cogl-matrix] Documents that CoglMatrix members should be considered read only
1164       Removes need for casting (const float •) to (GLfloat *) in _cogl_set_clip_planes
1165       80 char fix
1166       Avoid casting CoglMatrix to a GLfloat • when calling glGetFloatv
1167       Explicitly make the modelview-matrix current in cogl_{rotate,transform,etc}
1168       Use Cogl enum when making modelview-matrix current in cogl_{rotate,transform,etc}
1169       Finish GLES{1,2} support for client side matrix stacks
1170       Maintain the Cogl assumption that the modelview matrix is normally current
1171       Merge branch 'cogl-client-matrix-stacks'
1172       [cogl-vertex-buffer] Add a flush of attribute changes in the •_draw() functions
1173       [cogl-vertex-buffer] Allow querying back the number of vertices a buffer represents
1174       [cogl-vertex-buffer] fix cogl_vertex_buffer_draw_elements prototype
1175       [tests] Adds an interactive cogl vertex buffer unit test
1176       [cogl] Don't endlessly print the same warning regarding layer fallbacks
1177
1178 Robert Staudinger (1):
1179       [build] Add cogl.h to the built sources list
1180
1181 Shane Bryan (1):
1182       Bug 1434 - _NET_WM_NAME not set before realize
1183
1184 Tomas Frydrych (3):
1185       Fixed handling of enter and leave events in clutter_x11_handle_event()
1186       Fix clutter_x11_texture_pixmap_get/set_property() following change of PROP_WINDOW type
1187       [x11] Only update cached last event time if we have a real timestamp.
1188
1189 Øyvind Kolås (11):
1190       Added a mutex for clutter asynchronous textures threads.
1191       Bail early in clutter_texture_paint if opacity == 0
1192       Add a warning for recursive emit_event
1193       Change the default size of thread pool from 3 to 1
1194       [tests] Added test-texture-async
1195       [clutter-texture] add option to not block on size for loaded images
1196       [clutter-texture] remove load-size-async property
1197       Merge commit 'origin/async-texture-thread-pool' into async-size
1198       [clutter-texture] updated documentation.
1199       [clutter-texture] fixed gtk-doc formatting, and init threads in test.
1200       Merge branch 'async-texture-thread-pool'
1201
1202 Clutter 0.9.0 (30/01/2009)
1203 ===============================================================================
1204
1205  • List of changes between 0.8.6 and 0.9.0
1206
1207    » ClutterText is a new actor allowing text display, text editing
1208      both in multi-line and single-line modes, and text selection using
1209      the pointer devices and the keyboard. ClutterText supercedes both
1210      ClutterLabel and ClutterEntry.
1211    » ClutterClone is a new actor that allows cloning of other actors,
1212      both simple and composite. ClutterClone supercedes ClutterCloneTexture.
1213    » ClutterBindingPool is a new API that allows to easily add key bindings
1214      to an actor.
1215    » ClutterAnimation is a new API for implicit animations, similar to
1216      the tweening API used in toolkits like jQuery, Tween and Flash. This
1217      new API supercedes the ClutterEffect API.
1218    » ClutterAlpha uses "animation modes" instead of raw function
1219      pointers; it is still possible to pass alpha functions. The alpha
1220      functions provided by Clutter have been removed from the public
1221      API. It is possible to register global alpha functions and use
1222      them though a logical id.
1223    » The interval of the ClutterAlpha:alpha property has been changed
1224      to a floating point value in the [ -1.0, 2.0 ] range; this allowed
1225      the addition of "overshooting" easing modes.
1226    » COGL now supports backface culling.
1227    » The COGL-based Pango renderer is public API and it is accessible
1228      to developers. It is also possible to access the PangoContext used
1229      by Clutter in order to create PangoLayouts to render text.
1230    » The ClutterFixed API has been moved to COGL.
1231    » COGL does not depend on Clutter data types anymore.
1232    » The ClutterMedia interface has been overhauled: implementations
1233      now must only override the interface properties. The ranges of
1234      some properties have been changed to normalized values.
1235    » COGL now exposes only floating point entry points, and reserves
1236      the eventual conversion to fixed point only when needed. The
1237      fixed point type and macros are publicly available for developers
1238      concerned about floating point operations.
1239    » COGL has a new Vertex Attribues API that allows submitting an
1240      extensible number of vertex attributes to OpenGL in a way that
1241      does not require format conversions and allows fast re-use.
1242    » COGL has a new Material API that decouples paths from fills; it
1243      is possible to create an arbitrary path and fill it with a COGL
1244      texture. The Material API also allows setting multiple texture
1245      layers and defining the blend modes and colors.
1246    » ClutterTexture has the ability to use a worker thread to asynchronously
1247      load an image from a file, as long as the GLib threading support has
1248      been enabled prior to calling clutter_init().
1249    » Clutter now supports localization of the help output, and it
1250      also supports globally setting the text direction for non left to
1251      right locales.
1252    » ClutterCairoTexture is a new actor that allows using Cairo
1253      to draw on a ClutterTexture; since Cairo does not have an OpenGL
1254      backend, the drawing is not hardware accelerated.
1255    » Clutter has a unit testing suite, based on the GLib unit test
1256      framework, which can be used to track regressions.
1257    » A ClutterPath object has been added, and it is used by the
1258      BehaviourPath. The Path object allows defining paths using a set
1259      of coordinates and operations. A Path can be "painted" either using
1260      COGL primitives or using Cairo primitives, allowing an easier way
1261      to paint non-rectangular shaped actors.
1262    » ClutterInterval is a simple object, used by ClutterAnimation, that
1263      describes an interval between two values, and interpolates between
1264      the initial and final values of the interval.
1265
1266  • List of bugs fixed since 0.8.6
1267
1268    » #835 - Optimize clutter_actor_real_pick()
1269    » #851 - setting anchor point causes picking problem
1270    » #883 - Outstanding COGL merge issues
1271    » #1003 - Add clutter_actor_take_key_focus
1272    » #1014 - Clutter Animation API Improvements.
1273    » #1049 - Clutter doesn't support most GLSL uniforms
1274    » #1051 - WebKit/Clutter product/component?
1275    » #1058 - Build clutter-box2d with Clutter 0.8
1276    » #1066 - Clipping regression in 0.8
1277    » #1086 - virtualize stage_queue_redraw
1278    » #1105 - low level access to PangoClutter
1279    » #1106 - ClutterText instead of ClutterLabel and ClutterEntry
1280    » #1108 - Enter/Leave events logics wrt. skipped motion events
1281    » #1109 - clutter-0.8.0 fails to compile
1282    » #1123 - Crash when FBO actor is used and the stage is MINIMIZED
1283    » #1144 - Provide an option to load images asynchronously in ClutterTexture
1284    » #1162 - Add unit testing for Clutter
1285    » #1164 - Mesh API
1286    » #1172 - Disjoint paths and clip to path
1287    » #1189 - Backface culling
1288    » #1209 - Move fixed point API in COGL
1289    » #1210 - Add CoglColor API
1290    » #1211 - Drop ClutterFeatureFlags usage from COGL
1291    » #1212 - Allow only a single include file for Clutter
1292    » #1215 - Move the Pango renderer to the public API
1293    » #1219 - Clean up cogl.h
1294    » #1231 - Build fails in gles flavour in revision 3442
1295    » #1233 - CLUTTER_ALPHA_SINE_INC is broken in trunk
1296    » #1251 - Merge the Cairo texture actor in core
1297    » #1252 - Merge ClutterBehaviourPath and ClutterBehaviourBspline
1298    » #1261 - [patch] Minimize differences between gl/cogl-texture.c and
1299      gles/cogl-texture.c
1300    » #1269 - mingw32 building failed at clutter-media.c
1301    » #1270 - Update to mingw-cross-compile.sh
1302    » #1271 - mingw compiling failed:  undefined reference to
1303      `_glDrawRangeElements@24'
1304    » #1284 - Return something reasonable from clutter_x11_handle_event()
1305    » #1300 - clutter_score_remove and clutter_score_remove_all  are different
1306      in object remove
1307    » #1310 - font rendering problem
1308    » #1313 - Fix computation of camera distance
1309    » #1314 - clutter_sinx() is more inaccurate than it needs to be
1310    » #1321 - Get Matrix in float
1311    » #1323 - ClutterBehaviorDepth conflicts with other behaviors
1312    » #1325 - ClutterPath to cairo_path_t conversion functions
1313    » #1330 - We should not queue redraw for non-visible actors
1314    » #1334 - Default value for ClutterLabel::text should be "" instead of NULL
1315    » #1344 - clutter_actor_transform_stage_point gives invalid coordinates
1316      for big actors
1317    » #1352 - Weird cogl-pango.h includes in clutter-[entry|label].c
1318    » #1354 - Floating point exception when set fps>1000 and start timeline
1319    » #1361 - Unused ClutterStage::get_resolution() methods
1320    » #1365 - ClutterEntry doesn't get the cursor when it should
1321    » #1366 - disable-npots fails to build on mac
1322    » #1380 - Return booleans from CLUTTER_ACTOR_IS_• macros
1323    » #1386 - Wrong clipping dimensions for larger actors
1324    » #1387 - Clarify new-frame signal emission with advance()
1325    » #1388 - Clarify signal emission for advance_to_marker()
1326    » #1395 - behaviour_apply and behaviour_get_nth_actor are opposite on
1327      actors sequence
1328    » #1397 - clutter command line is not localized.
1329    » #1402 - Change default tile-waste from 64 to 63
1330    » #1403 - ClutterMedia::get_uri() should return allocated string
1331    » #1404 - ClutterMedia issues
1332    » #1405 - Fix properties that have X11 types to be 'long'
1333    » #1409 - Use G_SIGNAL_RUN_LAST with ::queue-redraw signal
1334    » #1410 - [patch] Implements a generic ClutterActorClone class without fbos
1335    » #1414 - avoid relayout of ClutterTexture if not syncing size
1336    » #1415 - short-circuit setting same clip again
1337
1338 Clutter 0.8.2 (25/09/2008)
1339 ===============================================================================
1340
1341  • List of changes between 0.8.0 and 0.8.2
1342
1343    » Add constructor-only properties for the :container and :actor
1344      properties of ClutterChildMeta
1345    » Resync the Clutter keysyms with X.org ones.
1346    » Documentation fixes and improvements
1347    » Allow defining ClutterColor as an object or an array inside
1348      ClutterScript UI definitions
1349    » Added the missing :perspective property to ClutterStage
1350    » Fixed the upper and lower boundaries for ClutterUnit and
1351      ClutterFixed properties
1352    » Fix a bug that prevented disabling sorting on ClutterModel
1353    » Fix a bug in clutter_timeline_list_markers()
1354    » Queue a redraw when the clip is changed
1355    » Optimize calls to push and pop the matrix when painting
1356    » Add a variable to the pkgconfig file for extracting the
1357      COGL backend, for configure-time checks
1358    » Fix a typo in cogl_path_rel_curve_to()
1359    » Fix showing the cursor after it being hidden once
1360    » Add a function for obtaining Clutter's option group without
1361      initializing Clutter
1362
1363  • List of bugs fixed since 0.8.0
1364
1365    » #856 - Teardown sequence is borked
1366    » #945 - Clipping+fbo cloning bugs
1367    » #1010 - ClutterLabel does not update the layout (again)
1368    » #1020 - TFP resyncing on MapNotify/ConfigureNotify [Andy Wingo]
1369    » #1033 - Manually parsing command line options prevents
1370      initializing clutter
1371    » #1034 - Picking doesn't work on Eee PC
1372    » #1038 - Clutter 0.8 won't build due to redefined functions
1373    » #1044 - cogl_get_viewport error
1374    » #1047 - API documentation from release tarball is not
1375      installed by "make install" [Mirco Müller]
1376    » #1048 - SIGFPE in cogl_texture_set_region() with
1377      nvidia [Gwenole Beauchesne]
1378    » #1062 - clutter_actor_query_coords() replacement in
1379      0.8 [Gwenole Beauchesne]
1380    » #1069 - Warnings with ClutterScore
1381    » #1071 - clutter_timeline_get_duration doesn't always work
1382    » #1075 - Difficult to bind clutter_stage_new
1383    » #1080 - clutter_stage_read_pixels has upside-down y coordinate
1384    » #1082 - Texture bitmap is destroyed in wrong way
1385    » #1085 - Cursor is in wrong position on ClutterEntry if set
1386      x-align property
1387    » #1090 - Label somtimes returns natural_width < min_width [Johan Bilien]
1388    » #1091 - WM_MOUSEWHEEL (scroll-event) not handled
1389      correctly [Roman Yazmin]
1390    » #1099 - No ClutterScript API to get a list of IDs in a given
1391      file [Noah Gibbs]
1392    » #1100 - WM_SIZE not handled correctly, user_resize and
1393      window_style correction
1394    » #1103 - Two typos in clutter documentation
1395    » #1121 - Setting anchor point doesn't work if set too early
1396    » #1124 - Clutter causes an additional size request in each
1397      allocation [Johan Bilien]
1398    » #1125 - Save an extra pango_layout_get_size in many
1399      cases [Johan Bilien]
1400    » #1130 - CLUTTER_MOTION is not emitted when time goes
1401      backwards. [Pierce Liu]
1402    » #1137 - Setting the anchor point does not trigger a re-paint
1403    » #1145 - Flicker on resize the window
1404    » #1154 - clutter_timeout_pool_new() documentation doesn't say
1405      how to free [Murray Cumming]
1406
1407 Clutter 0.8.0 (10/07/2008)
1408 ===============================================================================
1409
1410  • List of changes between 0.7.6 and 0.8.0
1411
1412    » Assume that non-power-of-two sized textures are always supported
1413      if texture-from-pixmap support is present.
1414
1415    » Increase documentation coverage.
1416
1417    » Disable the XINPUT support by default.
1418
1419    » Improve the behaviour of clutter_actor_get_transformed_size().
1420
1421    » Fix a copy-and-paste bug which broke the vertex shaders.
1422
1423  • List of bugs fixed since 0.7.6
1424
1425    » #983 - cogl-bitmap-fallback.c compiler error/warning due to cast issue
1426    » #985 - MSC math.h / M_PI issue
1427    » #998 - clutter always captures X input events
1428    » #1000 - clutter-x11 should define gtypes for its enumerations
1429    » #1004 - Fix "edge-detect" shader
1430    » #1007 - Fix TFP fallback mechanism
1431    » #1008 - tfp still a bit borked
1432    » #1010 - ClutterLabel does not update the layout
1433    » #1011 - Fix TFP fallback mechanism (take 2)
1434    » #1012 - clutter_stage_read_pixels() has incorrect alpha data
1435              on some (most?) cards"
1436    » #1013 - Per device grabs are not obeyed in pointer device propagation.
1437    » #1015 - Cloning unparented actors with FBOs doesn't work with new
1438              layout code
1439    » #1016 - Changing window-redirect-automatic property after creating
1440              ClutterX11TexturePixmap doesn't work
1441    » #1019 - clutter-frame-source.h not included by clutter.h
1442    » #1022 - extern inline functions in clutter-fixed.h
1443    » #1033 - Manually parsing command line options prevents initializing
1444              Clutter
1445
1446 Clutter 0.7.6 (27/06/2008)
1447 ===============================================================================
1448
1449  • List of changes between 0.7.4 and 0.7.6
1450
1451    » Removed the ClutterBackend::get_display_size() and wrappers.
1452
1453    » Verify that the vertex shaders are successfully compiled when binding
1454      them.
1455
1456    » Increase safety of the ClutterGLXTexturePixmap
1457
1458  • List of bugs fixed since 0.7.4
1459
1460    » #993 - Underline colors are sometimes wrong
1461
1462 Clutter 0.7.4 (25/06/2008), "Killer Koi"
1463 ===============================================================================
1464
1465  • List of changes between 0.7.2 and 0.7.4
1466
1467    » Fix the ClutterEntry actor after the clip API changes in COGL.
1468
1469    » Update the shaders generated for GLES 2.0.
1470
1471    » Add the ability to add search paths and look up files from
1472      ClutterScript. This allows defining directories to store the
1473      images to be loaded by a ClutterTexture.
1474
1475    » Fix the GLES 1.1 support.
1476
1477    » Warn if no usable pointer device are available on X11 backends.
1478
1479    » Improve the request for the best pixel format on win32.
1480
1481    » Fix a regression when sizing the ClutterStage on backends that
1482      only support fixed size stages; now setting any size will result
1483      in Clutter ignoring the request, like it happened in Clutter 0.6.
1484
1485    » Add a method to ClutterBackend to retrieve the display size.
1486
1487    » Fix clutter_sinx() for angles > CFX_2PI - CFX_ONE.
1488
1489  • List of bugs fixed
1490
1491    » #833 - ClutterEntry should clip glyphs rather than itself
1492    » #858 - Support for multiple devices (using XINPUT)
1493    » #879 - sampler2DRect used by test-shader.c doen't work with non-rect textures
1494    » #979 - Wrong call convension for SwapIntervalProc in win32 backend
1495    » #987 - clutter-event.c c99 variable declaration
1496    » #988 - cursor position wrong with multibyte invisible char
1497    » #989 - Add a search path for clutter script assets
1498
1499 Clutter 0.7.2 (23/06/2008), "Kedoke"
1500 ===============================================================================
1501
1502  • List of changes between 0.7.0 and 0.7.2
1503
1504    » ClutterTexture has a new :keep-aspect-ratio property; when it is set
1505      to TRUE the texture will return a preferred width maintaining the
1506      aspect ratio with the given height and a preferred height maintaining
1507      the aspect ratio with the given width. This allows to set the width or
1508      the height and have the texture automatically request the height or the
1509      width respectively while maintaining the aspect ratio of the original
1510      image.
1511
1512    » Added XINPUT support on the X11 backends; this provides an initial
1513      support for multiple input devices. The API is X11-specific, and
1514      provides support for querying at run-time support for XINPUT, for
1515      getting a list of input devices and for getting the type of each
1516      input device. 
1517  
1518    » The 'fruity' backend also features multiple device support.
1519
1520  • List of bugs fixed
1521
1522    » #816 - clutter_actor_request_coords() should take a const box.
1523    » #836 - Optimize clutter_label_query_coords()
1524    » #905 - Paint cursor directly
1525    » #918 - Group doesn't clip if it's children are clipped
1526    » #953 - Actors are not hidden before unrealized or disposed
1527    » #960 - PangoContext creation code should not be duplicated
1528    » #970 - clutter_actor_get_paint_area confusion
1529    » #971 - Minor ClutterActor cleanups
1530    » #972 - Better parenting
1531    » #973 - unreffing ClutterScore may segfault
1532    » #981 - clutter_stage_read_pixels temprow fix
1533    » #982 - __COGL_GET_CONTEXT MS compiler issue
1534    » #984 - pango_clutter_render_layout() declared void
1535
1536 Clutter 0.7.0 (13/06/2008), "Booska"
1537 ===============================================================================
1538
1539  • List of changes between 0.6 and 0.7.0
1540
1541    » COGL, the underlying GL abstraction layer in Clutter, has been
1542      completely rewritten from the ground up. Its no longer a conceptual
1543      hack but a documented, fully featured library pretty much in its
1544      own right. COGL abstracts over Open GL, Open GL ES 1.1 and now
1545      OpenGL ES 2.0, providing a smart uniform API over these libraries
1546      with various utility features such as texture tiling abstractions,
1547      paths and primitive rendering, FBO, shaders, etc.
1548
1549    » Clutter now provides an experimental backend for the Apple(tm)
1550      iPhone and iPod Touch families of products.
1551
1552    » The Windows platform is now natively supported instead of
1553      relying on the SDL libraries. The win32 backend is still
1554      experimental.
1555
1556    » The X11 based backends now feature support for Actors that wrap
1557      external X drawables (i.e the texture-from-pixmap extension and
1558      fallbacks)
1559
1560    » Clutter now seamlessly supports multiple stages on the backends
1561      that allow this feature.
1562
1563    » The custom Pango renderer has been completely rewritten, now using
1564      the more modern and maintained PangoCairo (instead of FT2), and avoids
1565      nasty subclassing hacks, supports smooth fast scaling of text, has
1566      many edge case issues fixed and it still is very efficient (using
1567      a texture glyph cache). It is even a little bit faster.
1568
1569    » Better texture support, timeline improvements, ClutterLabel and
1570      ClutterEntry improvements, and container child properties are among
1571      the new features - too many to fit in the NEWS file.
1572
1573  • List of bug fixes
1574
1575    » #358 - "window resizing doesn't show scaled stage"
1576    » #425 - "COGL enhancements"
1577    » #439 - "timing related pong lockup due to timeline_rewind somtimes
1578             being ignored by timeline_timeout_func"
1579    » #450 - "ClutterScore API enhancements"
1580    » #641 - "add markers to timelines"
1581    » #666 - "Large font size leads to missing ""W"" and wrong ""J"" character"
1582    » #713 - "texture from pixmap"
1583    » #791 - "default actors to visible"
1584    » #800 - "CLUTTER_ALPHA_EXP_INC overflows"
1585    » #804 - "clutter_actor_get_opacity returns composited alpha"
1586    » #810 - "100 % CPU load with clutter_main()"
1587    » #815 - "Split up request
1588    » #816 - "clutter_actor_request_coords() should take a const box."
1589    » #822 - "Fix clutter_actor_lower()"
1590    » #823 - "Clean-up GLism's in clutter-core (below cogl)"
1591    » #824 - "ClutterEntry should handle its own key events"
1592    » #825 - "Removes GLisms from clutter-main.c"
1593    » #831 - "configure.ac missing osx flavour help"
1594    » #834 - "add ability to set anchor in json"
1595    » #836 - "Optimize clutter_label_query_coords()"
1596    » #839 - "Crash if put cursor over topmost pixel"
1597    » #840 - "Implement prepare-paint and finish-paint signals."
1598    » #848 - "Events dispatch doesn't work in GLX Xephyr"
1599    » #850 - "Impossible to set ClutterRectangle border opacity to a value
1600             different from the surface opacity"
1601    » #857 - "cogl_color doesn't work in PowerVR PC Viewer"
1602    » #860 - "ClutterAlpha leaks"
1603    » #864 - "Allow instantiating and subclassing of ClutterStage"
1604    » #871 - "Two problems with closing stages"
1605    » #873 - "clutter_x11/glx_texture_pixmap issues"
1606    » #874 - "Clipping on GL ES"
1607    » #875 - "Clutter Label Issues"
1608    » #881 - "Timelines require precise system timing"
1609    » #882 - "Allow child properties for containers implementing the
1610             ClutterContainer interface"
1611    » #884 - "Add clutter_alpha_set_closure"
1612    » #889 - "Error when building clutter-ivan with eglx"
1613    » #891 - "assertion failed when test-behave exits"
1614    » #892 - "Incorrect results using  rotation-[center|angle] properties"
1615    » #894 - "Artifacts with the pango renderer"
1616    » #900 - "clutter_actor_lower() and friends do not queue redraw"
1617    » #906 - "Implement timing of the events"
1618    » #908 - "Support transform from G_TYPE_INT to ClutterUnit"
1619    » #909 - "OSX: missing NULL pointer handling"
1620    » #910 - "OSX: missing memory pool"
1621    » #911 - "OSX: add multistage support"
1622    » #912 - "Invalid use of int• as parameter for glGetIntegerv"
1623    » #913 - "cogl fails to build on OSX"
1624    » #914 - "ClutterEntry is confused about characters vs. bytes"
1625    » #915 - "clutter_entry_set_max_length(-1) misbehaves"
1626    » #916 - "ClutterKeyEvent:unicode_value is ignored"
1627    » #919 - "Replacement pango renderer"
1628    » #927 - "Created ports for clutter
1629    » #928 - "Reparenting a child that itself is a container doesn't work"
1630    » #930 - "add support for quartz imagebackend"
1631    » #931 - "suspicious size allocation for pixel data"
1632    » #933 - ""X Error of failed request" when attempting to call
1633             clutter_actor_request_coords()"
1634    » #934 - "Update clutter-tutorial to build with clutter from svn trunk."
1635    » #947 - "Destroying a stage is messy"
1636    » #948 - "Remove texture rectangle support"
1637    » #950 - "AltGr not handled"
1638    » #951 - "Fix clutter_entry_init() in trunk"
1639    » #952 - "Fix test-textures in trunk"
1640    » #953 - "Actors are not hidden before unrealized or disposed"
1641    » #955 - "ClutterLabel is missing fallback resolution handling"
1642    » #959 - "Multiple minor improvements"
1643    » #960 - "PangoContext creation code should not be duplicated"
1644    » #961 - "Fails to build on OSX (query/request_coords is gone)"
1645    » #964 - """unrealized"" signal of ClutterActor wrongly named"
1646
1647 Clutter 0.6.0 (18/02/2008)
1648 ==========================
1649
1650  • List of changes between 0.5.6 and 0.6.0
1651
1652    » New documentation sections inside the API reference, describing
1653      the animation framework.
1654
1655    » New API in ClutterActor for computing the actor's vertices in
1656      the plane of a given ancestor and accessors to query whether an
1657      actor is scaled or rotated
1658
1659  • List of bug fixed
1660
1661    » #613 - Extend point transformation API
1662    » #779 - Rounding error in ClutterBehaviourScale [Havoc Pennington]
1663    » #787 - tiled textures are broken
1664    » #796 - segmentation fault when setting label text
1665
1666 Clutter 0.5.6 (11/02/2008)
1667 ==========================
1668
1669  • List of changes between 0.5.4 and 0.5.6
1670
1671    » Reverted a last minute change in the depth sorting function of
1672      ClutterGroup.
1673
1674    » Added the clutter_actor_move_anchor_point() family of functions,
1675      which will set the anchor point at the given coordinates while
1676      adjusting the actor postion so that the relative position of the
1677      actor toward its parent remains the same.
1678
1679    » Provide a fallback for finding the Clutter alpha functions inside
1680      a UI definition for ClutterScript in case g_module_open() fails.
1681
1682    » Add initial Frame Buffer Objects support in ClutterTexture; using
1683      FBOs, where supported by the hardware and drivers, it's possible to
1684      create a ClutterTexture from any actor.
1685
1686  • List of bugs fixed
1687
1688    » #386 - Stage is white unless a timeline is present
1689    » #439 - timing related pong lockup due to timeline rewind...
1690    » #440 - 1 pixel line flickering
1691    » #442 - Shader support
1692    » #451 - Improve font rendering quality (Pango)
1693    » #452 - Textures are shown with distortion on Solaris/SPARC
1694    » #526 - OSX backend
1695    » #533 - Clutter stage is not shown under some conditions
1696    » #540 - ClutterStage isn't always respecting requests to change size
1697    » #549 - Backend offscreen API is broken
1698    » #613 - Extend point transformation API
1699    » #635 - Fix buffer overflow in clutter_texture_get_pixbuf() [Gwenole
1700      Beauchesne]
1701    » #643 - Superfluous "filter-quality" setting in texture_upload_data()?
1702      [Gwenole Beauchesne]
1703    » #689 - Rotating actor through layers does not handle opacity
1704      correctly [Josh Stewart]
1705    » #710 - Make "box-blur" test shader work in some way [Gwenole Beauchesne]
1706    » #719 - X11 backend does not check window field in events [Havoc
1707      Pennington]
1708    » #724 - ClutterLabel reports wrong height when lines > 1
1709    » #749 - "reactive" property does not change
1710    » #751 - missing XSync in clutter-event-x11.c:xembed_set_info() [Havoc
1711      Pennington]
1712    » #756 - clutter_actor_get_abs_size returns bogus values
1713    » #769 - OSX backend fails to build
1714    » #770 - OSX: passing incompatible pointer type
1715
1716 Clutter 0.5.4 (25/01/2008)
1717 ==========================
1718
1719  • List of changes between 0.5.2 and 0.5.4
1720
1721    » A clutter-x11-<major>.<minor> pkg-config file is installed along
1722      with the clutter-<major>.<minor> and clutter-<backend>-<major>.<minor>
1723      ones, for libraries and applications depending on the X11-based
1724      backends (GLX and EGLX).
1725
1726    » Textures are correctly unrealized before changing and freeing the
1727      main GL context.
1728
1729    » It is now possible to block the automatic call to clutter_main_quit()
1730      when closing the stage window using the frame controls by connecting
1731      an handler for the ::event signal on the Clutter stage and checking
1732      for the CLUTTER_DELETE event type and returning TRUE. This allows
1733      the usage of other main loops with GLib reactors (like Python's twisted)
1734      with Clutter without triggering assertions by closing the stage window.
1735
1736  • List of bugs fixed
1737
1738    » #564 - Add more precise clutter_qdivx() [Gwenole Beauchesne]
1739    » #614 - ClutterActor API inconsistencies
1740    » #640 - ClutterTexture unrealized with no GL context
1741    » #654 - Under heavy load clutter sometimes drops the last frame of
1742      a timeline [Johan Bilien]
1743    » #672 - Event handling in osx backend is broken [Tommi Komulainen]
1744    » #684 - Improve test-scale by also using anchor point [Jaap A. Haitsma]
1745    » #695 - clutter-shader: Invalid format string for
1746      gssize [Tommi Komulainen]
1747    » #696 - cogl_get_proc_address requires GLX [Tommi Komulainen]
1748    » #709 - clutter_effect_scale inconsistent with clutter_actor_set_scale
1749    » #714 - clutter_event_copy for enter/leave event generates
1750      extra unref [Neil Roberts]
1751    » #715 - Type errors in test-shader
1752    » #720 - BehaviourScale not working in python after recent
1753      API change [Josh Stewart]
1754
1755 Clutter 0.5.2 (14/01/2008)
1756 ==========================
1757
1758  • List of changes between 0.5.0 and 0.5.2
1759
1760    » ClutterModelDefault has been renamed to ClutterListModel
1761
1762    » ClutterModel now has vector-based variants for append, prepend and
1763      insert methods; these methods are useful for bindings
1764
1765    » Add units-based variant for clutter_actor_move_by()
1766
1767  • List of bugs fixed
1768
1769    » #694 - Handle GLhandleARB on OS X [Tommi Komulainen]
1770    » #700 - Fix for clutter_effect_rotate() [Neil Roberts]
1771
1772 Clutter 0.5.0 (02/01/2008)
1773 ==========================
1774
1775  • List of changes between 0.4.2 and 0.5.0
1776
1777    » New event handling system: every actor with the CLUTTER_ACTOR_REACTIVE
1778      flag set will receive events from the underlying backend; the event
1779      propagation chain will be walked in two directions (from the actor to
1780      the top-level container and back) with the ability to block it in
1781      both phases.
1782
1783    » ClutterShader, an abstraction over the programmable OpenGL pipeline.
1784
1785    » ClutterScore, an object for controlling timelines; using a score
1786      instance is possible to start multiple timelines at once, or start
1787      a timeline after another has emitted the ::complete signal.
1788
1789    » ClutterScript, an object for parsing a scene from an external file or
1790      a buffer; the scene is described using JSON (JavaScript Object Notation):
1791      every object is defined using its class and properties, and container
1792      objects can have their children defined as well. It is also possible
1793      do describe top-level objects such as timelines and behaviours, and to
1794      automatically connect signal handlers to signal names.
1795
1796    » ClutterTimelines duration can now be set in milliseconds using the
1797      :duration property; the default framerate will be used to compute the
1798      actual duration in frames. The default framerate will be set by the
1799      backend, and can be overridden by the application.
1800
1801    » ClutterTimelines direction can now be set using the :direction
1802      property; a timeline can be set to proceed forward or backward,
1803      and the direction can also be change while the timeline is still
1804      running.
1805
1806    » New, experimental OSX backend.
1807
1808    » Build environment for MS VisualStudio 2005.
1809
1810    » ClutterModel, a generic list-based model object that can be used to
1811      implement actors following the Model-Viewer-Controller design pattern.
1812      Clutter provides a default implementation of ClutterModel, called
1813      ClutterModelDefault and using the GSequence data structure from GLib
1814      to optimize insertion and look up.
1815
1816    » Add the ability to grab pointer and keyboard events: if an actor
1817      is set to have a grab it'll be the only one receiving events until
1818      it releases the grab.
1819
1820    » Add the ability for an actor to receive the key focus; an actor
1821      with key focus will always receive the key events, even if it did
1822      not acquire the keyboard grab.
1823
1824    » It is now possible to set the GL "fog" (also known as "depth cueing")
1825      effect on the ClutterStage; if the fog is enabled, actors farther
1826      away from the view point will fade into the stage background color.
1827
1828    » Each actor now has an "anchor point", a point defined in the actor's
1829      coordinate space that will be used as the origin when scaling and
1830      rotation transformations.
1831
1832    » Every pixel-based API has been doubled with a corresponding
1833      ClutterUnits-based function (postfixed with a '-u'), for instance:
1834
1835        clutter_actor_set_position() - clutter_actor_set_positionu()
1836        clutter_actor_set_size()     - clutter_actor_set_sizeu()
1837        clutter_actor_set_depth()    - clutter_actor_set_depthu()
1838
1839      This allows sub-pixel precision and device independence.
1840
1841    » The ClutterLabel actor now tries very hard to provide a sane
1842      default size, if no bounding box has been requested; this fixes
1843      the :alignment property and allows the addition of the :justify
1844      property.
1845
1846    » The SDL backend can now be compiled under win32 with MingW; this
1847      backend is still marked as experimental.
1848
1849    » The OSX backend allows the compilation of Clutter under OS X; this
1850      backend is experimental.
1851
1852  • List of bugs fixed
1853
1854    » #423 - All actors should emit events rather than just the stage
1855    » #424 - Interface definition files
1856    » #443 - ClutterModel implementation
1857    » #480 - Uninitialized variable in
1858      path_alpha_to_position() [Gwenole Beauchesne]
1859    » #511 - clutter_stage_get_actor_at_pos problem
1860    » #512 - clutter window moves when stage actor is scaled
1861    » #518 - XEMBED not supported in eglx backend
1862    » #519 - Should have an Atom cache initialized on start up
1863    » #520 - Delete after multibyte unicode chars in
1864      ClutterEntry [Tommi Komulainen]
1865    » #522 - Array out of bounds indexing [Tommi Komulainen]
1866    » #523 - cogl portability fixes [Tommi Komulainen]
1867    » #524 - missing config.h includes [Tommi Komulainen]
1868    » #525 - Redundant include in cogl/gl [Tommi Komulainen]
1869    » #531 - Extraneous "new-frame" signal generated
1870    » #532 - clutter_actor_set_scale_with_gravityx()
1871      precision [Gwenole Beauchesne]
1872    » #544 - clutter_color_to_hlsx is broken [Neil Roberts]
1873    » #546 - ClutterStageState doesn't make sense
1874    » #550 - Wanted: Set Actor's position based on center or other
1875      edges/corners of quadrangle
1876    » #557 - ClutterScript should support complex properties for third
1877      party classes
1878    » #558 - Unmerge UI definitions
1879    » #566 - ClutterEntry does not scroll the text to the
1880      right [Gwenole Beauchesne]
1881    » #577 - Inconsistent naming of behaviour properties
1882    » #580 - Fix call to cogl_enable() [Gwenole Beauchesne]
1883    » #582 - api naming inconsistence between
1884             clutter_behaviour_path_append_knots and
1885             clutter_behaviour_bspline_append
1886    » #584 - Typo on clutter_effect_rotate_x documentation page
1887    » #592 - Fix build on trunk [Gwenole Beauchesne]
1888    » #596 - ClutterTexture tileing logic is a little borked
1889    » #597 - ClutterGroups not pickable
1890    » #600 - fix ClutterLabel layout computing when no box has been set
1891    » #604 - Color param for Label constructor should be
1892      const [Jonathon Jongsma]
1893    » #606 - enable depth test in GL
1894    » #608 - Control motion events frequency
1895    » #614 - ClutterActor API inconsistencies
1896    » #616 - ClutterTexture doesn't respect width set from clutterscript
1897    » #617 - ClutterEffect Improvements
1898    » #618 - ClutterScript name/id confusion
1899    » #619 - clutter_behavior_rotate angle properties should accept
1900      negative values
1901    » #628 - clutter_actor_rotate_x() is a setter, not a modifier
1902    » #629 - There is no clutter_actor_get_position()
1903    » #634 - clutter_behaviour_path_new() documentation unclear
1904    » #637 - add depth cueing support to the stage
1905    » #645 - Fix crash in clutter_label_new_full() [Gwenole Beauchesne]
1906    » #647 - Cannot hide the stage
1907    » #648 - Hidden fullscreen stage doesn't come back as fullscreen
1908    » #652 - reference needed on actor being source of last motion_event
1909    » #661 - clutter_actor_set_width() documentation is vague
1910    » #662 - clutter_actor_set_opacity() documentation doesn't describe values
1911    » #665 - ClutterBehaviourEllipse tilts are broken
1912    » #670 - Fix clutter_container_lower_child() [Gwenole Beauchesne]
1913    » #673 - ClutterActor "captured-events" signal documentation wrong
1914    » #674 - ClutterActor::get_depth() and set_depth() vfuncs not
1915      used [Murray Cumming]
1916    » #675 - update subregions of cluttertextures
1917    » #678 - ClutterLabel size allocation still bogus
1918
1919 Clutter 0.4.0 (07/08/2007)
1920 ========================
1921
1922  • List of changes between 0.3.1 and 0.4.0
1923
1924    » Many documentation additions and improvements.
1925
1926    » Display DPI now honours on backends its can be queried.
1927
1928    » Various big endian related fixes.
1929
1930    » ClutterBehaviourEllipse and ClutterBehaviourRotate API and
1931    internals improvements.
1932
1933    » Add basic tslib support to eglnative backend (for touchscreen events)
1934
1935    » clutter_stage_get_actor_at_pos should now work on 16bpp displays.
1936
1937    » New ClutterEffect rotation calls.
1938
1939    » Allowing user resizing of the stage now optional.
1940     (implemented by glx backend only currently)
1941
1942    » ClutterEntry UTF8 fixes and improved automatic initial sizing.
1943
1944    » Make ClutterActor GInitiallyUnowned.
1945
1946    » New ClutterBox API: each box has now a colour and a margin (distance
1947      between the inner-border and the children); plus, each packed child
1948      has a padding. Margins and paddings are expressed in ClutterUnits,
1949      to ease the transition to the device independent units. You can use
1950      clutter_box_set_default_padding() if you want the same padding for
1951      each child.
1952
1953  • List of bug fixed
1954    » #390 - clutter_stage_get_actor_at_pos broken on 16bpp displays.
1955    » #398 - inconsistent type for return value of clutter_event_get_state
1956    » #403 - Critical error when removing texture actor
1957    » #404 - Solaris build error with OpenGL, missing
1958             GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB and GL_TEXTURE_RECTANGLE_ARB
1959    » #409 - depth mismatch between visual (32) and window (24)
1960    » #407 - metadata-available signal #ifdef'ed out
1961    » #413 - Clutter compile error with Sun Studio C compiler
1962    » #426 - typo in sdl_backend
1963    » #414 - ClutterEntry invisible if size not set
1964    » #434 - clutter_color_from_pixel incorrectly interprets alpha value
1965    » #435 - clutter_color_subtract does the opposite of its documentation
1966    » #436 - clutter-behaviour-depth always perform "from deep to shallow"
1967
1968 Clutter 0.3.1 (06/07/2007)
1969 ========================
1970
1971  • List of changes between 0.3 and 0.3.1
1972    » EGL. There are now 2 experimental EGL backends;
1973      - 'eglx', the former EGL on X11 implementation (now renamed)
1974      - 'eglnative', a new EGL 'native' backend which supporting non
1975        X11 EGL implementations (i.e framebuffer).
1976
1977    » ClutterGroup now returns correct size when a child is removed.
1978
1979    » Missing redhand.png added to distro tarball (fixing tests that require
1980      it)
1981
1982    » Fix picking in ClutterBox
1983
1984    » Rectangle border creation fixed.
1985
1986    » Fix overflow in Exponential Alpha funcs.
1987
1988    » Many API documentation fixes and improvements.
1989
1990    » ClutterEffect cleanups.
1991
1992    » ClutterEntry cleanups.
1993
1994    » Check for versioned XFixes library (GLX backend).
1995
1996    » More X error traps in GLX backend.
1997
1998 Clutter 0.3 (29/06/2007)
1999 ========================
2000
2001  • List of changes between 0.2.3 and 0.3
2002    » Clutter now supports both switchable windowing system and GL backends.
2003      Window systems supported include GLX, EGL and SDL.
2004
2005      GL support includes OpenGL 1.2+ and OpenGL ES 1.1. This is
2006      provided by a small basic abstraction layer 'cogl.h'. Cogl is not
2007      yet documented - usage external to Clutter is not yet advised.
2008
2009      Backends may provide specific command line options.
2010
2011      Notes;
2012
2013      GLX
2014      ---
2015      The GLX backend is built by default and is currently the most
2016      developed, supported and featured windowing system backend. Only
2017      OpenGL is supported via GLX.
2018
2019      SDL
2020      ---
2021      Clutter has experimental support for using SDL. Open GL is supported as
2022      is OpenGL ES via Dogles (very experimental).
2023
2024      EGL
2025      ---
2026      Clutter has experimental support for using EGL. Only Open GL ES
2027      is supported by EGL.
2028
2029      EGL support assumes an EGL implementation running atop X Windows.
2030
2031      Open GL ES.
2032      -----------
2033
2034      Clutter now has experimental support for Open GL ES.
2035      Current known issues;
2036
2037      + Unrealising a ClutterTexture will not move pixel data from video
2038        into system memory but simply destroy it.
2039      + BGRA, YUV Texture data not currently supported.
2040
2041      (Use the clutter_feature API to probe for above at runtime)
2042
2043      Open Source ES implementations this has been tested against
2044      include `Vincent' and `dgles'.  Support for commerical
2045      implementations may require modifications to the configure.ac
2046      script.
2047
2048      vincent: http://ogl-es.sourceforge.net/
2049               (Also see: http://svn.o-hand.com/repos/misc/trunk/ogles/ )
2050
2051      dgles: http://developer.hybrid.fi/dgles/index.html
2052
2053    » New ClutterEffect class provides a simplified (and thus less flexible)
2054      API wrapping around behaviours, alphas and timelines.
2055    » New Behaviours - bspline, ellipsis, rotation.
2056    » New built in Alpha functions;
2057       CLUTTER_ALPHA_SINE_INC
2058       CLUTTER_ALPHA_SINE_DEC
2059       CLUTTER_ALPHA_SINE_HALF
2060       CLUTTER_ALPHA_SQUARE
2061       CLUTTER_ALPHA_SMOOTHSTEP_INC
2062       CLUTTER_ALPHA_SMOOTHSTEP_DEC
2063       CLUTTER_ALPHA_EXP_INC
2064       CLUTTER_ALPHA_EXP_DEC
2065    » New Actors and interfaces
2066      + ClutterLayout, for writing extended layout support in actors
2067      + ClutterContainer, for generic container actors
2068      + ClutterBox, ClutterVBox and ClutterHBox layout actors.
2069      + ClutterEntry, text entry actor
2070    » ClutterTexture now handles BGRA, YUV and premultiplied alpha data.
2071    » All internal math now fixed point based.
2072    » Clutter now has it own internal event queue.
2073    » ClutterStage new features;
2074      + Title property for naming in window decorations.
2075      + Perspective setting - The stages perspective can now be modified.
2076    » New Clutter_actor •project API calls allow for querying of tranformed
2077      actor vertices and points.
2078    » New Clutter Feature checks.
2079    » Initial ClutterUnit implementation for device independant positioning.
2080  • List of Bugs fixed
2081    » Various issues with very poor performance and Intel drivers.
2082    » #138 Fix typo in x rotation transform.
2083
2084 Clutter 0.2.3 (2007-04-11)
2085 ==========================
2086
2087  • List of changed between 0.2.2 and 0.2.3
2088    » Fixes to tile based textures and again clutter_texture_get_pixbuf(). [Matthew]
2089    » Implement Gravity for ClutterScaleBehaviour. [Matthew, Rob]
2090
2091 Clutter 0.2.2 (2007-03-22)
2092 ==========================
2093
2094  • List of changed between 0.2.1 and 0.2.2
2095    » Addition of basic XEMBED support for clutter stage. [Matthew]
2096    » Fixes to clutter_texture_get_pixbuf(). [Matthew]
2097    » Export clutter_group_remove_all and add associated fixes. [Matthew]
2098
2099 Clutter 0.2.1 (2007-02-07)
2100 ==========================
2101
2102  • List of changed between 0.2.0 and 0.2.1
2103    » Add even faster double to integer (and back) conversion
2104      functions. [Tomas]
2105    » Fix some errors in the fixed point sine waveform
2106      function. [Tomas]
2107    » Use fixed point math in the Pango renderer. [Tomas]
2108    » Improve the GL version check. [Matthew]
2109    » Add a square waveform function. [Emmanuele]
2110  • List of bugs fixed
2111    » #215 - macro CLUTTER_MARK() not disabled for non-debug builds
2112
2113 Clutter 0.2 (18-01-2007)
2114 ========================
2115
2116  • List of changes between 0.2 and 0.1
2117    » Bindings, GStreamer and GTK+ dependencies moved out of tree:
2118      now Clutter strictly depends on Xlibs, OpenGL and GdkPixbuf only.
2119    » Actors now have an initial floating reference; this means you
2120      don't have to explicitely unref them: every memory an actor
2121      allocates will be freed when the group containing the actor will
2122      be destroyed.
2123    » Add basic run-time detection of GL features.
2124      + Use GL_TEXTURE_RECTANGLE_ARB if available.
2125      + Attempt to set up sync to vblank (set CLUTTER_VBLANK=none to disable)
2126    » Add API for behaviours. A ClutterBehaviour is an object which
2127      drives a set of actors using one or more properties depending
2128      on the value of an "alpha" function.
2129      + Provide simple behaviours: ClutterBehaviourOpacity,
2130        ClutterBehaviourPath and ClutterBehaviourScale.
2131      + Provide simple alpha functions for ramps and sine waveforms.
2132    » Add fixed point API for embedded platforms with no FPU.
2133    » Add support for command line switches to Clutter, like debug
2134      flags and abort on warnings; also allow application to hook up
2135      into the initialisation sequence to add their own command line
2136      switches.
2137    » Add Pango GL renderer for Clutter, and use it to render text
2138      inside the ClutterLabel actor; this decrease texture memory
2139      usage.
2140    » Redo Clutter Label widget, using the new Pango renderer.
2141    » Clutter Textures do not store local pixbuf copy (of texture).
2142    » Redo group and actor scale/sizing API and functionality.
2143    » Add memory management API for ClutterColor, and string parsing.
2144  • List of bug fixed
2145    » #199 - Little group handling fix?
2146    » #198 - Detect NPOT support on more systems
2147    » #197 - Tiled textures are broken
2148    » #196 - Rebuild the examples when the library changes
2149    » #156 - clutter_actor_set_position not using the absolute size
2150    » #155 - Don't test for XInitThreads [Bastien Nocera]
2151    » #154 - Key presses not working in super-oh example [Bastien Nocera]
2152    » #152 - Misc fixes [Bastien Nocera]
2153    » #143 - Faulty ref-counting in clutter_group_remove [Frederic Riss]
2154    » #141 - Copy-pasto in clutter_media_set_volume [Frederic Riss]
2155    » #101 - No package 'x11' found -- wrong configure [Tomasz Torcz]
2156    »  #98 - Enabling trails in super-oh crashes
2157
2158 Clutter 0.1 (22/06/2006)
2159 ========================
2160
2161  • First 'official' release, expect bugs aplenty.
2162  • Contains:
2163    » Hopefully enough functionality to build things.
2164    » Basic gstreamer 0.10 video playback support.
2165    » Fairly stable API, though in no way totally stable.
2166      Expect CHANGES in future versions.
2167    » Some simple examples ( also see OPT ).
2168    » An experimental GTK-Clutter widget.
2169    » Fairly complete Python bindings.
2170    » Non complete but hopefully useful API documentation.
2171  • If you want to help out see the TODO file.