1 Clutter 0.5.6 (16/02/2008)
2 ==========================
4 * List of changes between 0.5.4 and 0.5.6
6 o Reverted a last minute change in the depth sorting function of
9 o Added the clutter_actor_move_anchor_point() family of functions,
10 which will set the anchor point at the given coordinates while
11 adjusting the actor postion so that the relative position of the
12 actor toward its parent remains the same.
14 o Provide a fallback for finding the Clutter alpha functions inside
15 a UI definition for ClutterScript in case g_module_open() fails.
17 o Add initial Frame Buffer Objects support in ClutterTexture; using
18 FBOs, where supported by the hardware and drivers, it's possible to
19 create a ClutterTexture from any actor.
23 o #386 - Stage is white unless a timeline is present
24 o #439 - timing related pong lockup due to timeline rewind...
25 o #440 - 1 pixel line flickering
26 o #442 - Shader support
27 o #451 - Improve font rendering quality (Pango)
28 o #452 - Textures are shown with distortion on Solaris/SPARC
30 o #533 - Clutter stage is not shown under some conditions
31 o #540 - ClutterStage isn't always respecting requests to change size
32 o #549 - Backend offscreen API is broken
33 o #613 - Extend point transformation API
34 o #635 - Fix buffer overflow in clutter_texture_get_pixbuf() [Gwenole
36 o #643 - Superfluous "filter-quality" setting in texture_upload_data()?
38 o #689 - Rotating actor through layers does not handle opacity
39 correctly [Josh Stewart]
40 o #710 - Make "box-blur" test shader work in some way [Gwenole Beauchesne]
41 o #719 - X11 backend does not check window field in events [Havoc
43 o #724 - ClutterLabel reports wrong height when lines > 1
44 o #749 - "reactive" property does not change
45 o #751 - missing XSync in clutter-event-x11.c:xembed_set_info() [Havoc
47 o #756 - clutter_actor_get_abs_size returns bogus values
48 o #769 - OSX backend fails to build
49 o #770 - OSX: passing incompatible pointer type
51 Clutter 0.5.4 (25/01/2008)
52 ==========================
54 * List of changes between 0.5.2 and 0.5.4
56 o A clutter-x11-<major>.<minor> pkg-config file is installed along
57 with the clutter-<major>.<minor> and clutter-<backend>-<major>.<minor>
58 ones, for libraries and applications depending on the X11-based
59 backends (GLX and EGLX).
61 o Textures are correctly unrealized before changing and freeing the
64 o It is now possible to block the automatic call to clutter_main_quit()
65 when closing the stage window using the frame controls by connecting
66 an handler for the ::event signal on the Clutter stage and checking
67 for the CLUTTER_DELETE event type and returning TRUE. This allows
68 the usage of other main loops with GLib reactors (like Python's twisted)
69 with Clutter without triggering assertions by closing the stage window.
73 o #564 - Add more precise clutter_qdivx() [Gwenole Beauchesne]
74 o #614 - ClutterActor API inconsistencies
75 o #640 - ClutterTexture unrealized with no GL context
76 o #654 - Under heavy load clutter sometimes drops the last frame of
77 a timeline [Johan Bilien]
78 o #672 - Event handling in osx backend is broken [Tommi Komulainen]
79 o #684 - Improve test-scale by also using anchor point [Jaap A. Haitsma]
80 o #695 - clutter-shader: Invalid format string for
81 gssize [Tommi Komulainen]
82 o #696 - cogl_get_proc_address requires GLX [Tommi Komulainen]
83 o #709 - clutter_effect_scale inconsistent with clutter_actor_set_scale
84 o #714 - clutter_event_copy for enter/leave event generates
85 extra unref [Neil Roberts]
86 o #715 - Type errors in test-shader
87 o #720 - BehaviourScale not working in python after recent
88 API change [Josh Stewart]
90 Clutter 0.5.2 (14/01/2008)
91 ==========================
93 * List of changes between 0.5.0 and 0.5.2
95 o ClutterModelDefault has been renamed to ClutterListModel
97 o ClutterModel now has vector-based variants for append, prepend and
98 insert methods; these methods are useful for bindings
100 o Add units-based variant for clutter_actor_move_by()
104 o #694 - Handle GLhandleARB on OS X [Tommi Komulainen]
105 o #700 - Fix for clutter_effect_rotate() [Neil Roberts]
107 Clutter 0.5.0 (02/01/2008)
108 ==========================
110 * List of changes between 0.4.2 and 0.5.0
112 o New event handling system: every actor with the CLUTTER_ACTOR_REACTIVE
113 flag set will receive events from the underlying backend; the event
114 propagation chain will be walked in two directions (from the actor to
115 the top-level container and back) with the ability to block it in
118 o ClutterShader, an abstraction over the programmable OpenGL pipeline.
120 o ClutterScore, an object for controlling timelines; using a score
121 instance is possible to start multiple timelines at once, or start
122 a timeline after another has emitted the ::complete signal.
124 o ClutterScript, an object for parsing a scene from an external file or
125 a buffer; the scene is described using JSON (JavaScript Object Notation):
126 every object is defined using its class and properties, and container
127 objects can have their children defined as well. It is also possible
128 do describe top-level objects such as timelines and behaviours, and to
129 automatically connect signal handlers to signal names.
131 o ClutterTimelines duration can now be set in milliseconds using the
132 :duration property; the default framerate will be used to compute the
133 actual duration in frames. The default framerate will be set by the
134 backend, and can be overridden by the application.
136 o ClutterTimelines direction can now be set using the :direction
137 property; a timeline can be set to proceed forward or backward,
138 and the direction can also be change while the timeline is still
141 o New, experimental OSX backend.
143 o Build environment for MS VisualStudio 2005.
145 o ClutterModel, a generic list-based model object that can be used to
146 implement actors following the Model-Viewer-Controller design pattern.
147 Clutter provides a default implementation of ClutterModel, called
148 ClutterModelDefault and using the GSequence data structure from GLib
149 to optimize insertion and look up.
151 o Add the ability to grab pointer and keyboard events: if an actor
152 is set to have a grab it'll be the only one receiving events until
153 it releases the grab.
155 o Add the ability for an actor to receive the key focus; an actor
156 with key focus will always receive the key events, even if it did
157 not acquire the keyboard grab.
159 o It is now possible to set the GL "fog" (also known as "depth cueing")
160 effect on the ClutterStage; if the fog is enabled, actors farther
161 away from the view point will fade into the stage background color.
163 o Each actor now has an "anchor point", a point defined in the actor's
164 coordinate space that will be used as the origin when scaling and
165 rotation transformations.
167 o Every pixel-based API has been doubled with a corresponding
168 ClutterUnits-based function (postfixed with a '-u'), for instance:
170 clutter_actor_set_position() - clutter_actor_set_positionu()
171 clutter_actor_set_size() - clutter_actor_set_sizeu()
172 clutter_actor_set_depth() - clutter_actor_set_depthu()
174 This allows sub-pixel precision and device independence.
176 o The ClutterLabel actor now tries very hard to provide a sane
177 default size, if no bounding box has been requested; this fixes
178 the :alignment property and allows the addition of the :justify
181 o The SDL backend can now be compiled under win32 with MingW; this
182 backend is still marked as experimental.
184 o The OSX backend allows the compilation of Clutter under OS X; this
185 backend is experimental.
189 o #423 - All actors should emit events rather than just the stage
190 o #424 - Interface definition files
191 o #443 - ClutterModel implementation
192 o #480 - Uninitialized variable in
193 path_alpha_to_position() [Gwenole Beauchesne]
194 o #511 - clutter_stage_get_actor_at_pos problem
195 o #512 - clutter window moves when stage actor is scaled
196 o #518 - XEMBED not supported in eglx backend
197 o #519 - Should have an Atom cache initialized on start up
198 o #520 - Delete after multibyte unicode chars in
199 ClutterEntry [Tommi Komulainen]
200 o #522 - Array out of bounds indexing [Tommi Komulainen]
201 o #523 - cogl portability fixes [Tommi Komulainen]
202 o #524 - missing config.h includes [Tommi Komulainen]
203 o #525 - Redundant include in cogl/gl [Tommi Komulainen]
204 o #531 - Extraneous "new-frame" signal generated
205 o #532 - clutter_actor_set_scale_with_gravityx()
206 precision [Gwenole Beauchesne]
207 o #544 - clutter_color_to_hlsx is broken [Neil Roberts]
208 o #546 - ClutterStageState doesn't make sense
209 o #550 - Wanted: Set Actor's position based on center or other
210 edges/corners of quadrangle
211 o #557 - ClutterScript should support complex properties for third
213 o #558 - Unmerge UI definitions
214 o #566 - ClutterEntry does not scroll the text to the
215 right [Gwenole Beauchesne]
216 o #577 - Inconsistent naming of behaviour properties
217 o #580 - Fix call to cogl_enable() [Gwenole Beauchesne]
218 o #582 - api naming inconsistence between
219 clutter_behaviour_path_append_knots and
220 clutter_behaviour_bspline_append
221 o #584 - Typo on clutter_effect_rotate_x documentation page
222 o #592 - Fix build on trunk [Gwenole Beauchesne]
223 o #596 - ClutterTexture tileing logic is a little borked
224 o #597 - ClutterGroups not pickable
225 o #600 - fix ClutterLabel layout computing when no box has been set
226 o #604 - Color param for Label constructor should be
227 const [Jonathon Jongsma]
228 o #606 - enable depth test in GL
229 o #608 - Control motion events frequency
230 o #614 - ClutterActor API inconsistencies
231 o #616 - ClutterTexture doesn't respect width set from clutterscript
232 o #617 - ClutterEffect Improvements
233 o #618 - ClutterScript name/id confusion
234 o #619 - clutter_behavior_rotate angle properties should accept
236 o #628 - clutter_actor_rotate_x() is a setter, not a modifier
237 o #629 - There is no clutter_actor_get_position()
238 o #634 - clutter_behaviour_path_new() documentation unclear
239 o #637 - add depth cueing support to the stage
240 o #645 - Fix crash in clutter_label_new_full() [Gwenole Beauchesne]
241 o #647 - Cannot hide the stage
242 o #648 - Hidden fullscreen stage doesn't come back as fullscreen
243 o #652 - reference needed on actor being source of last motion_event
244 o #661 - clutter_actor_set_width() documentation is vague
245 o #662 - clutter_actor_set_opacity() documentation doesn't describe values
246 o #665 - ClutterBehaviourEllipse tilts are broken
247 o #670 - Fix clutter_container_lower_child() [Gwenole Beauchesne]
248 o #673 - ClutterActor "captured-events" signal documentation wrong
249 o #674 - ClutterActor::get_depth() and set_depth() vfuncs not
250 used [Murray Cumming]
251 o #675 - update subregions of cluttertextures
252 o #678 - ClutterLabel size allocation still bogus
254 Clutter 0.4.0 (07/08/2007)
255 ========================
257 * List of changes between 0.3.1 and 0.4.0
259 o Many documentation additions and improvements.
261 o Display DPI now honours on backends its can be queried.
263 o Various big endian related fixes.
265 o ClutterBehaviourEllipse and ClutterBehaviourRotate API and
266 internals improvements.
268 o Add basic tslib support to eglnative backend (for touchscreen events)
270 o clutter_stage_get_actor_at_pos should now work on 16bpp displays.
272 o New ClutterEffect rotation calls.
274 o Allowing user resizing of the stage now optional.
275 (implemented by glx backend only currently)
277 o ClutterEntry UTF8 fixes and improved automatic initial sizing.
279 o Make ClutterActor GInitiallyUnowned.
281 o New ClutterBox API: each box has now a colour and a margin (distance
282 between the inner-border and the children); plus, each packed child
283 has a padding. Margins and paddings are expressed in ClutterUnits,
284 to ease the transition to the device independent units. You can use
285 clutter_box_set_default_padding() if you want the same padding for
289 o #390 - clutter_stage_get_actor_at_pos broken on 16bpp displays.
290 o #398 - inconsistent type for return value of clutter_event_get_state
291 o #403 - Critical error when removing texture actor
292 o #404 - Solaris build error with OpenGL, missing
293 GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB and GL_TEXTURE_RECTANGLE_ARB
294 o #409 - depth mismatch between visual (32) and window (24)
295 o #407 - metadata-available signal #ifdef'ed out
296 o #413 - Clutter compile error with Sun Studio C compiler
297 o #426 - typo in sdl_backend
298 o #414 - ClutterEntry invisible if size not set
299 o #434 - clutter_color_from_pixel incorrectly interprets alpha value
300 o #435 - clutter_color_subtract does the opposite of its documentation
301 o #436 - clutter-behaviour-depth always perform "from deep to shallow"
303 Clutter 0.3.1 (06/07/2007)
304 ========================
306 * List of changes between 0.3 and 0.3.1
307 o EGL. There are now 2 experimental EGL backends;
308 - 'eglx', the former EGL on X11 implementation (now renamed)
309 - 'eglnative', a new EGL 'native' backend which supporting non
310 X11 EGL implementations (i.e framebuffer).
312 o ClutterGroup now returns correct size when a child is removed.
314 o Missing redhand.png added to distro tarball (fixing tests that require
317 o Fix picking in ClutterBox
319 o Rectangle border creation fixed.
321 o Fix overflow in Exponential Alpha funcs.
323 o Many API documentation fixes and improvements.
325 o ClutterEffect cleanups.
327 o ClutterEntry cleanups.
329 o Check for versioned XFixes library (GLX backend).
331 o More X error traps in GLX backend.
333 Clutter 0.3 (29/06/2007)
334 ========================
336 * List of changes between 0.2.3 and 0.3
337 o Clutter now supports both switchable windowing system and GL backends.
338 Window systems supported include GLX, EGL and SDL.
340 GL support includes OpenGL 1.2+ and OpenGL ES 1.1. This is
341 provided by a small basic abstraction layer 'cogl.h'. Cogl is not
342 yet documented - usage external to Clutter is not yet advised.
344 Backends may provide specific command line options.
350 The GLX backend is built by default and is currently the most
351 developed, supported and featured windowing system backend. Only
352 OpenGL is supported via GLX.
356 Clutter has experimental support for using SDL. Open GL is supported as
357 is OpenGL ES via Dogles (very experimental).
361 Clutter has experimental support for using EGL. Only Open GL ES
364 EGL support assumes an EGL implementation running atop X Windows.
369 Clutter now has experimental support for Open GL ES.
370 Current known issues;
372 + Unrealising a ClutterTexture will not move pixel data from video
373 into system memory but simply destroy it.
374 + BGRA, YUV Texture data not currently supported.
376 (Use the clutter_feature API to probe for above at runtime)
378 Open Source ES implementations this has been tested against
379 include `Vincent' and `dgles'. Support for commerical
380 implementations may require modifications to the configure.ac
383 vincent: http://ogl-es.sourceforge.net/
384 (Also see: http://svn.o-hand.com/repos/misc/trunk/ogles/ )
386 dgles: http://developer.hybrid.fi/dgles/index.html
388 o New ClutterEffect class provides a simplified (and thus less flexible)
389 API wrapping around behaviours, alphas and timelines.
390 o New Behaviours - bspline, ellipsis, rotation.
391 o New built in Alpha functions;
392 CLUTTER_ALPHA_SINE_INC
393 CLUTTER_ALPHA_SINE_DEC
394 CLUTTER_ALPHA_SINE_HALF
396 CLUTTER_ALPHA_SMOOTHSTEP_INC
397 CLUTTER_ALPHA_SMOOTHSTEP_DEC
398 CLUTTER_ALPHA_EXP_INC
399 CLUTTER_ALPHA_EXP_DEC
400 o New Actors and interfaces
401 + ClutterLayout, for writing extended layout support in actors
402 + ClutterContainer, for generic container actors
403 + ClutterBox, ClutterVBox and ClutterHBox layout actors.
404 + ClutterEntry, text entry actor
405 o ClutterTexture now handles BGRA, YUV and premultiplied alpha data.
406 o All internal math now fixed point based.
407 o Clutter now has it own internal event queue.
408 o ClutterStage new features;
409 + Title property for naming in window decorations.
410 + Perspective setting - The stages perspective can now be modified.
411 o New Clutter_actor *project API calls allow for querying of tranformed
412 actor vertices and points.
413 o New Clutter Feature checks.
414 o Initial ClutterUnit implementation for device independant positioning.
416 o Various issues with very poor performance and Intel drivers.
417 o #138 Fix typo in x rotation transform.
419 Clutter 0.2.3 (2007-04-11)
420 ==========================
422 * List of changed between 0.2.2 and 0.2.3
423 o Fixes to tile based textures and again clutter_texture_get_pixbuf(). [Matthew]
424 o Implement Gravity for ClutterScaleBehaviour. [Matthew, Rob]
426 Clutter 0.2.2 (2007-03-22)
427 ==========================
429 * List of changed between 0.2.1 and 0.2.2
430 o Addition of basic XEMBED support for clutter stage. [Matthew]
431 o Fixes to clutter_texture_get_pixbuf(). [Matthew]
432 o Export clutter_group_remove_all and add associated fixes. [Matthew]
434 Clutter 0.2.1 (2007-02-07)
435 ==========================
437 * List of changed between 0.2.0 and 0.2.1
438 o Add even faster double to integer (and back) conversion
440 o Fix some errors in the fixed point sine waveform
442 o Use fixed point math in the Pango renderer. [Tomas]
443 o Improve the GL version check. [Matthew]
444 o Add a square waveform function. [Emmanuele]
446 o #215 - macro CLUTTER_MARK() not disabled for non-debug builds
448 Clutter 0.2 (18-01-2007)
449 ========================
451 * List of changes between 0.2 and 0.1
452 o Bindings, GStreamer and GTK+ dependencies moved out of tree:
453 now Clutter strictly depends on Xlibs, OpenGL and GdkPixbuf only.
454 o Actors now have an initial floating reference; this means you
455 don't have to explicitely unref them: every memory an actor
456 allocates will be freed when the group containing the actor will
458 o Add basic run-time detection of GL features.
459 + Use GL_TEXTURE_RECTANGLE_ARB if available.
460 + Attempt to set up sync to vblank (set CLUTTER_VBLANK=none to disable)
461 o Add API for behaviours. A ClutterBehaviour is an object which
462 drives a set of actors using one or more properties depending
463 on the value of an "alpha" function.
464 + Provide simple behaviours: ClutterBehaviourOpacity,
465 ClutterBehaviourPath and ClutterBehaviourScale.
466 + Provide simple alpha functions for ramps and sine waveforms.
467 o Add fixed point API for embedded platforms with no FPU.
468 o Add support for command line switches to Clutter, like debug
469 flags and abort on warnings; also allow application to hook up
470 into the initialisation sequence to add their own command line
472 o Add Pango GL renderer for Clutter, and use it to render text
473 inside the ClutterLabel actor; this decrease texture memory
475 o Redo Clutter Label widget, using the new Pango renderer.
476 o Clutter Textures do not store local pixbuf copy (of texture).
477 o Redo group and actor scale/sizing API and functionality.
478 o Add memory management API for ClutterColor, and string parsing.
480 o #199 - Little group handling fix?
481 o #198 - Detect NPOT support on more systems
482 o #197 - Tiled textures are broken
483 o #196 - Rebuild the examples when the library changes
484 o #156 - clutter_actor_set_position not using the absolute size
485 o #155 - Don't test for XInitThreads [Bastien Nocera]
486 o #154 - Key presses not working in super-oh example [Bastien Nocera]
487 o #152 - Misc fixes [Bastien Nocera]
488 o #143 - Faulty ref-counting in clutter_group_remove [Frederic Riss]
489 o #141 - Copy-pasto in clutter_media_set_volume [Frederic Riss]
490 o #101 - No package 'x11' found -- wrong configure [Tomasz Torcz]
491 o #98 - Enabling trails in super-oh crashes
493 Clutter 0.1 (22/06/2006)
494 ========================
496 * First 'official' release, expect bugs aplenty.
498 o Hopefully enough functionality to build things.
499 o Basic gstreamer 0.10 video playback support.
500 o Fairly stable API, though in no way totally stable.
501 Expect CHANGES in future versions.
502 o Some simple examples ( also see OPT ).
503 o An experimental GTK-Clutter widget.
504 o Fairly complete Python bindings.
505 o Non complete but hopefully useful API documentation.
506 * If you want to help out see the TODO file.