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.