Clutter 0.5.4 (25/01/2008)
==========================

 * List of changes between 0.5.2 and 0.5.4

   o A clutter-x11-<major>.<minor> pkg-config file is installed along
     with the clutter-<major>.<minor> and clutter-<backend>-<major>.<minor>
     ones, for libraries and applications depending on the X11-based
     backends (GLX and EGLX).

   o Textures are correctly unrealized before changing and freeing the
     main GL context.

   o It is now possible to block the automatic call to clutter_main_quit()
     when closing the stage window using the frame controls by connecting
     an handler for the ::event signal on the Clutter stage and checking
     for the CLUTTER_DELETE event type and returning TRUE. This allows
     the usage of other main loops with GLib reactors (like Python's twisted)
     with Clutter without triggering assertions by closing the stage window.

 * List of bugs fixed

   o #564 - Add more precise clutter_qdivx() [Gwenole Beauchesne]
   o #614 - ClutterActor API inconsistencies
   o #640 - ClutterTexture unrealized with no GL context
   o #654 - Under heavy load clutter sometimes drops the last frame of
     a timeline [Johan Bilien]
   o #672 - Event handling in osx backend is broken [Tommi Komulainen]
   o #684 - Improve test-scale by also using anchor point [Jaap A. Haitsma]
   o #695 - clutter-shader: Invalid format string for
     gssize [Tommi Komulainen]
   o #696 - cogl_get_proc_address requires GLX [Tommi Komulainen]
   o #709 - clutter_effect_scale inconsistent with clutter_actor_set_scale
   o #714 - clutter_event_copy for enter/leave event generates
     extra unref [Neil Roberts]
   o #715 - Type errors in test-shader
   o #720 - BehaviourScale not working in python after recent
     API change [Josh Stewart]

Clutter 0.5.2 (14/01/2008)
==========================

 * List of changes between 0.5.0 and 0.5.2

   o ClutterModelDefault has been renamed to ClutterListModel

   o ClutterModel now has vector-based variants for append, prepend and
     insert methods; these methods are useful for bindings

   o Add units-based variant for clutter_actor_move_by()

 * List of bugs fixed

   o #694 - Handle GLhandleARB on OS X [Tommi Komulainen]
   o #700 - Fix for clutter_effect_rotate() [Neil Roberts]

Clutter 0.5.0 (02/01/2008)
==========================

 * List of changes between 0.4.2 and 0.5.0

   o New event handling system: every actor with the CLUTTER_ACTOR_REACTIVE
     flag set will receive events from the underlying backend; the event
     propagation chain will be walked in two directions (from the actor to
     the top-level container and back) with the ability to block it in
     both phases.

   o ClutterShader, an abstraction over the programmable OpenGL pipeline.

   o ClutterScore, an object for controlling timelines; using a score
     instance is possible to start multiple timelines at once, or start
     a timeline after another has emitted the ::complete signal.

   o ClutterScript, an object for parsing a scene from an external file or
     a buffer; the scene is described using JSON (JavaScript Object Notation):
     every object is defined using its class and properties, and container
     objects can have their children defined as well. It is also possible
     do describe top-level objects such as timelines and behaviours, and to
     automatically connect signal handlers to signal names.

   o ClutterTimelines duration can now be set in milliseconds using the
     :duration property; the default framerate will be used to compute the
     actual duration in frames. The default framerate will be set by the
     backend, and can be overridden by the application.

   o ClutterTimelines direction can now be set using the :direction
     property; a timeline can be set to proceed forward or backward,
     and the direction can also be change while the timeline is still
     running.

   o New, experimental OSX backend.

   o Build environment for MS VisualStudio 2005.

   o ClutterModel, a generic list-based model object that can be used to
     implement actors following the Model-Viewer-Controller design pattern.
     Clutter provides a default implementation of ClutterModel, called
     ClutterModelDefault and using the GSequence data structure from GLib
     to optimize insertion and look up.

   o Add the ability to grab pointer and keyboard events: if an actor
     is set to have a grab it'll be the only one receiving events until
     it releases the grab.

   o Add the ability for an actor to receive the key focus; an actor
     with key focus will always receive the key events, even if it did
     not acquire the keyboard grab.

   o It is now possible to set the GL "fog" (also known as "depth cueing")
     effect on the ClutterStage; if the fog is enabled, actors farther
     away from the view point will fade into the stage background color.

   o Each actor now has an "anchor point", a point defined in the actor's
     coordinate space that will be used as the origin when scaling and
     rotation transformations.

   o Every pixel-based API has been doubled with a corresponding
     ClutterUnits-based function (postfixed with a '-u'), for instance:

       clutter_actor_set_position() - clutter_actor_set_positionu()
       clutter_actor_set_size()     - clutter_actor_set_sizeu()
       clutter_actor_set_depth()    - clutter_actor_set_depthu()

     This allows sub-pixel precision and device independence.

   o The ClutterLabel actor now tries very hard to provide a sane
     default size, if no bounding box has been requested; this fixes
     the :alignment property and allows the addition of the :justify
     property.

   o The SDL backend can now be compiled under win32 with MingW; this
     backend is still marked as experimental.

   o The OSX backend allows the compilation of Clutter under OS X; this
     backend is experimental.

 * List of bugs fixed

   o #423 - All actors should emit events rather than just the stage
   o #424 - Interface definition files
   o #443 - ClutterModel implementation
   o #480 - Uninitialized variable in
     path_alpha_to_position() [Gwenole Beauchesne]
   o #511 - clutter_stage_get_actor_at_pos problem
   o #512 - clutter window moves when stage actor is scaled
   o #518 - XEMBED not supported in eglx backend
   o #519 - Should have an Atom cache initialized on start up
   o #520 - Delete after multibyte unicode chars in
     ClutterEntry [Tommi Komulainen]
   o #522 - Array out of bounds indexing [Tommi Komulainen]
   o #523 - cogl portability fixes [Tommi Komulainen]
   o #524 - missing config.h includes [Tommi Komulainen]
   o #525 - Redundant include in cogl/gl [Tommi Komulainen]
   o #531 - Extraneous "new-frame" signal generated
   o #532 - clutter_actor_set_scale_with_gravityx()
     precision [Gwenole Beauchesne]
   o #544 - clutter_color_to_hlsx is broken [Neil Roberts]
   o #546 - ClutterStageState doesn't make sense
   o #550 - Wanted: Set Actor's position based on center or other
     edges/corners of quadrangle
   o #557 - ClutterScript should support complex properties for third
     party classes
   o #558 - Unmerge UI definitions
   o #566 - ClutterEntry does not scroll the text to the
     right [Gwenole Beauchesne]
   o #577 - Inconsistent naming of behaviour properties
   o #580 - Fix call to cogl_enable() [Gwenole Beauchesne]
   o #582 - api naming inconsistence between
            clutter_behaviour_path_append_knots and
            clutter_behaviour_bspline_append
   o #584 - Typo on clutter_effect_rotate_x documentation page
   o #592 - Fix build on trunk [Gwenole Beauchesne]
   o #596 - ClutterTexture tileing logic is a little borked 
   o #597 - ClutterGroups not pickable
   o #600 - fix ClutterLabel layout computing when no box has been set
   o #604 - Color param for Label constructor should be
     const [Jonathon Jongsma]
   o #606 - enable depth test in GL
   o #608 - Control motion events frequency
   o #614 - ClutterActor API inconsistencies
   o #616 - ClutterTexture doesn't respect width set from clutterscript
   o #617 - ClutterEffect Improvements
   o #618 - ClutterScript name/id confusion
   o #619 - clutter_behavior_rotate angle properties should accept
     negative values
   o #628 - clutter_actor_rotate_x() is a setter, not a modifier
   o #629 - There is no clutter_actor_get_position()
   o #634 - clutter_behaviour_path_new() documentation unclear
   o #637 - add depth cueing support to the stage
   o #645 - Fix crash in clutter_label_new_full() [Gwenole Beauchesne]
   o #647 - Cannot hide the stage
   o #648 - Hidden fullscreen stage doesn't come back as fullscreen
   o #652 - reference needed on actor being source of last motion_event
   o #661 - clutter_actor_set_width() documentation is vague
   o #662 - clutter_actor_set_opacity() documentation doesn't describe values
   o #665 - ClutterBehaviourEllipse tilts are broken
   o #670 - Fix clutter_container_lower_child() [Gwenole Beauchesne]
   o #673 - ClutterActor "captured-events" signal documentation wrong
   o #674 - ClutterActor::get_depth() and set_depth() vfuncs not
     used [Murray Cumming]
   o #675 - update subregions of cluttertextures
   o #678 - ClutterLabel size allocation still bogus

Clutter 0.4.0 (07/08/2007)
========================

 * List of changes between 0.3.1 and 0.4.0

   o Many documentation additions and improvements.

   o Display DPI now honours on backends its can be queried.

   o Various big endian related fixes.

   o ClutterBehaviourEllipse and ClutterBehaviourRotate API and
   internals improvements.

   o Add basic tslib support to eglnative backend (for touchscreen events)

   o clutter_stage_get_actor_at_pos should now work on 16bpp displays.

   o New ClutterEffect rotation calls.

   o Allowing user resizing of the stage now optional.
    (implemented by glx backend only currently)

   o ClutterEntry UTF8 fixes and improved automatic initial sizing.

   o Make ClutterActor GInitiallyUnowned.

   o New ClutterBox API: each box has now a colour and a margin (distance
     between the inner-border and the children); plus, each packed child
     has a padding. Margins and paddings are expressed in ClutterUnits,
     to ease the transition to the device independent units. You can use
     clutter_box_set_default_padding() if you want the same padding for
     each child.

 * List of bug fixed
   o #390 - clutter_stage_get_actor_at_pos broken on 16bpp displays.
   o #398 - inconsistent type for return value of clutter_event_get_state
   o #403 - Critical error when removing texture actor
   o #404 - Solaris build error with OpenGL, missing
            GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB and GL_TEXTURE_RECTANGLE_ARB
   o #409 - depth mismatch between visual (32) and window (24)
   o #407 - metadata-available signal #ifdef'ed out
   o #413 - Clutter compile error with Sun Studio C compiler
   o #426 - typo in sdl_backend
   o #414 - ClutterEntry invisible if size not set
   o #434 - clutter_color_from_pixel incorrectly interprets alpha value
   o #435 - clutter_color_subtract does the opposite of its documentation
   o #436 - clutter-behaviour-depth always perform "from deep to shallow"

Clutter 0.3.1 (06/07/2007)
========================

 * List of changes between 0.3 and 0.3.1
   o EGL. There are now 2 experimental EGL backends;
     - 'eglx', the former EGL on X11 implementation (now renamed)
     - 'eglnative', a new EGL 'native' backend which supporting non
       X11 EGL implementations (i.e framebuffer).

   o ClutterGroup now returns correct size when a child is removed.

   o Missing redhand.png added to distro tarball (fixing tests that require
     it)

   o Fix picking in ClutterBox

   o Rectangle border creation fixed.

   o Fix overflow in Exponential Alpha funcs.

   o Many API documentation fixes and improvements.

   o ClutterEffect cleanups.

   o ClutterEntry cleanups.

   o Check for versioned XFixes library (GLX backend).

   o More X error traps in GLX backend.

Clutter 0.3 (29/06/2007)
========================

 * List of changes between 0.2.3 and 0.3
   o Clutter now supports both switchable windowing system and GL backends.
     Window systems supported include GLX, EGL and SDL.

     GL support includes OpenGL 1.2+ and OpenGL ES 1.1. This is
     provided by a small basic abstraction layer 'cogl.h'. Cogl is not
     yet documented - usage external to Clutter is not yet advised.

     Backends may provide specific command line options.

     Notes;

     GLX
     ---
     The GLX backend is built by default and is currently the most
     developed, supported and featured windowing system backend. Only
     OpenGL is supported via GLX.

     SDL
     ---
     Clutter has experimental support for using SDL. Open GL is supported as
     is OpenGL ES via Dogles (very experimental).

     EGL
     ---
     Clutter has experimental support for using EGL. Only Open GL ES
     is supported by EGL.

     EGL support assumes an EGL implementation running atop X Windows.

     Open GL ES.
     -----------

     Clutter now has experimental support for Open GL ES.
     Current known issues;

     + Unrealising a ClutterTexture will not move pixel data from video
       into system memory but simply destroy it.
     + BGRA, YUV Texture data not currently supported.

     (Use the clutter_feature API to probe for above at runtime)

     Open Source ES implementations this has been tested against
     include `Vincent' and `dgles'.  Support for commerical
     implementations may require modifications to the configure.ac
     script.

     vincent: http://ogl-es.sourceforge.net/
              (Also see: http://svn.o-hand.com/repos/misc/trunk/ogles/ )

     dgles: http://developer.hybrid.fi/dgles/index.html

   o New ClutterEffect class provides a simplified (and thus less flexible)
     API wrapping around behaviours, alphas and timelines.
   o New Behaviours - bspline, ellipsis, rotation.
   o New built in Alpha functions;
      CLUTTER_ALPHA_SINE_INC
      CLUTTER_ALPHA_SINE_DEC
      CLUTTER_ALPHA_SINE_HALF
      CLUTTER_ALPHA_SQUARE
      CLUTTER_ALPHA_SMOOTHSTEP_INC
      CLUTTER_ALPHA_SMOOTHSTEP_DEC
      CLUTTER_ALPHA_EXP_INC
      CLUTTER_ALPHA_EXP_DEC
   o New Actors and interfaces
     + ClutterLayout, for writing extended layout support in actors
     + ClutterContainer, for generic container actors
     + ClutterBox, ClutterVBox and ClutterHBox layout actors.
     + ClutterEntry, text entry actor
   o ClutterTexture now handles BGRA, YUV and premultiplied alpha data.
   o All internal math now fixed point based.
   o Clutter now has it own internal event queue.
   o ClutterStage new features;
     + Title property for naming in window decorations.
     + Perspective setting - The stages perspective can now be modified.
   o New Clutter_actor *project API calls allow for querying of tranformed
     actor vertices and points.
   o New Clutter Feature checks.
   o Initial ClutterUnit implementation for device independant positioning.
 * List of Bugs fixed
   o Various issues with very poor performance and Intel drivers.
   o #138 Fix typo in x rotation transform.

Clutter 0.2.3 (2007-04-11)
==========================

 * List of changed between 0.2.2 and 0.2.3
   o Fixes to tile based textures and again clutter_texture_get_pixbuf(). [Matthew]
   o Implement Gravity for ClutterScaleBehaviour. [Matthew, Rob]

Clutter 0.2.2 (2007-03-22)
==========================

 * List of changed between 0.2.1 and 0.2.2
   o Addition of basic XEMBED support for clutter stage. [Matthew]
   o Fixes to clutter_texture_get_pixbuf(). [Matthew]
   o Export clutter_group_remove_all and add associated fixes. [Matthew]

Clutter 0.2.1 (2007-02-07)
==========================

 * List of changed between 0.2.0 and 0.2.1
   o Add even faster double to integer (and back) conversion
     functions. [Tomas]
   o Fix some errors in the fixed point sine waveform
     function. [Tomas]
   o Use fixed point math in the Pango renderer. [Tomas]
   o Improve the GL version check. [Matthew]
   o Add a square waveform function. [Emmanuele]
 * List of bugs fixed
   o #215 - macro CLUTTER_MARK() not disabled for non-debug builds

Clutter 0.2 (18-01-2007)
========================

 * List of changes between 0.2 and 0.1
   o Bindings, GStreamer and GTK+ dependencies moved out of tree:
     now Clutter strictly depends on Xlibs, OpenGL and GdkPixbuf only.
   o Actors now have an initial floating reference; this means you
     don't have to explicitely unref them: every memory an actor
     allocates will be freed when the group containing the actor will
     be destroyed.
   o Add basic run-time detection of GL features.
     + Use GL_TEXTURE_RECTANGLE_ARB if available.
     + Attempt to set up sync to vblank (set CLUTTER_VBLANK=none to disable)
   o Add API for behaviours. A ClutterBehaviour is an object which
     drives a set of actors using one or more properties depending
     on the value of an "alpha" function.
     + Provide simple behaviours: ClutterBehaviourOpacity,
       ClutterBehaviourPath and ClutterBehaviourScale.
     + Provide simple alpha functions for ramps and sine waveforms.
   o Add fixed point API for embedded platforms with no FPU.
   o Add support for command line switches to Clutter, like debug
     flags and abort on warnings; also allow application to hook up
     into the initialisation sequence to add their own command line
     switches.
   o Add Pango GL renderer for Clutter, and use it to render text
     inside the ClutterLabel actor; this decrease texture memory
     usage.
   o Redo Clutter Label widget, using the new Pango renderer.
   o Clutter Textures do not store local pixbuf copy (of texture).
   o Redo group and actor scale/sizing API and functionality.
   o Add memory management API for ClutterColor, and string parsing.
 * List of bug fixed
   o #199 - Little group handling fix?
   o #198 - Detect NPOT support on more systems
   o #197 - Tiled textures are broken
   o #196 - Rebuild the examples when the library changes
   o #156 - clutter_actor_set_position not using the absolute size
   o #155 - Don't test for XInitThreads [Bastien Nocera]
   o #154 - Key presses not working in super-oh example [Bastien Nocera]
   o #152 - Misc fixes [Bastien Nocera]
   o #143 - Faulty ref-counting in clutter_group_remove [Frederic Riss]
   o #141 - Copy-pasto in clutter_media_set_volume [Frederic Riss]
   o #101 - No package 'x11' found -- wrong configure [Tomasz Torcz]
   o  #98 - Enabling trails in super-oh crashes

Clutter 0.1 (22/06/2006)
========================

 * First 'official' release, expect bugs aplenty.
 * Contains:
   o Hopefully enough functionality to build things.
   o Basic gstreamer 0.10 video playback support.
   o Fairly stable API, though in no way totally stable.
     Expect CHANGES in future versions.
   o Some simple examples ( also see OPT ).
   o An experimental GTK-Clutter widget.
   o Fairly complete Python bindings.
   o Non complete but hopefully useful API documentation.
 * If you want to help out see the TODO file.