Clutter 0.6.0 (18/02/2008) ========================== * List of changes between 0.5.6 and 0.6.0 o New documentation sections inside the API reference, describing the animation framework. o New API in ClutterActor for computing the actor's vertices in the plane of a given ancestor and accessors to query whether an actor is scaled or rotated * List of bug fixed o #613 - Extend point transformation API o #779 - Rounding error in ClutterBehaviourScale [Havoc Pennington] o #787 - tiled textures are broken o #796 - segmentation fault when setting label text Clutter 0.5.6 (11/02/2008) ========================== * List of changes between 0.5.4 and 0.5.6 o Reverted a last minute change in the depth sorting function of ClutterGroup. o Added the clutter_actor_move_anchor_point() family of functions, which will set the anchor point at the given coordinates while adjusting the actor postion so that the relative position of the actor toward its parent remains the same. o Provide a fallback for finding the Clutter alpha functions inside a UI definition for ClutterScript in case g_module_open() fails. o Add initial Frame Buffer Objects support in ClutterTexture; using FBOs, where supported by the hardware and drivers, it's possible to create a ClutterTexture from any actor. * List of bugs fixed o #386 - Stage is white unless a timeline is present o #439 - timing related pong lockup due to timeline rewind... o #440 - 1 pixel line flickering o #442 - Shader support o #451 - Improve font rendering quality (Pango) o #452 - Textures are shown with distortion on Solaris/SPARC o #526 - OSX backend o #533 - Clutter stage is not shown under some conditions o #540 - ClutterStage isn't always respecting requests to change size o #549 - Backend offscreen API is broken o #613 - Extend point transformation API o #635 - Fix buffer overflow in clutter_texture_get_pixbuf() [Gwenole Beauchesne] o #643 - Superfluous "filter-quality" setting in texture_upload_data()? [Gwenole Beauchesne] o #689 - Rotating actor through layers does not handle opacity correctly [Josh Stewart] o #710 - Make "box-blur" test shader work in some way [Gwenole Beauchesne] o #719 - X11 backend does not check window field in events [Havoc Pennington] o #724 - ClutterLabel reports wrong height when lines > 1 o #749 - "reactive" property does not change o #751 - missing XSync in clutter-event-x11.c:xembed_set_info() [Havoc Pennington] o #756 - clutter_actor_get_abs_size returns bogus values o #769 - OSX backend fails to build o #770 - OSX: passing incompatible pointer type Clutter 0.5.4 (25/01/2008) ========================== * List of changes between 0.5.2 and 0.5.4 o A clutter-x11-. pkg-config file is installed along with the clutter-. and clutter--. 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.