1 Clutter 0.5.0 (02/01/2008)
2 ========================
4 * List of changes between 0.4.2 and 0.5.0
6 o New event handling system: every actor with the CLUTTER_ACTOR_REACTIVE
7 flag set will receive events from the underlying backend; the event
8 propagation chain will be walked in two directions (from the actor to
9 the top-level container and back) with the ability to block it in
12 o ClutterShader, an abstraction over the programmable OpenGL pipeline.
14 o ClutterScore, an object for controlling timelines; using a score
15 instance is possible to start multiple timelines at once, or start
16 a timeline after another has emitted the ::complete signal.
18 o ClutterScript, an object for parsing a scene from an external file or
19 a buffer; the scene is described using JSON (JavaScript Object Notation):
20 every object is defined using its class and properties, and container
21 objects can have their children defined as well. It is also possible
22 do describe top-level objects such as timelines and behaviours, and to
23 automatically connect signal handlers to signal names.
25 o ClutterTimelines duration can now be set in milliseconds using the
26 :duration property; the default framerate will be used to compute the
27 actual duration in frames. The default framerate will be set by the
28 backend, and can be overridden by the application.
30 o ClutterTimelines direction can now be set using the :direction
31 property; a timeline can be set to proceed forward or backward,
32 and the direction can also be change while the timeline is still
35 o New, experimental OSX backend.
37 o Build environment for MS VisualStudio 2005.
39 o ClutterModel, a generic list-based model object that can be used to
40 implement actors following the Model-Viewer-Controller design pattern.
41 Clutter provides a default implementation of ClutterModel, called
42 ClutterModelDefault and using the GSequence data structure from GLib
43 to optimize insertion and look up.
45 o Add the ability to grab pointer and keyboard events: if an actor
46 is set to have a grab it'll be the only one receiving events until
49 o Add the ability for an actor to receive the key focus; an actor
50 with key focus will always receive the key events, even if it did
51 not acquire the keyboard grab.
53 o It is now possible to set the GL "fog" (also known as "depth cueing")
54 effect on the ClutterStage; if the fog is enabled, actors farther
55 away from the view point will fade into the stage background color.
57 o Each actor now has an "anchor point", a point defined in the actor's
58 coordinate space that will be used as the origin when scaling and
59 rotation transformations.
61 o Every pixel-based API has been doubled with a corresponding
62 ClutterUnits-based function (postfixed with a '-u'), for instance:
64 clutter_actor_set_position() - clutter_actor_set_positionu()
65 clutter_actor_set_size() - clutter_actor_set_sizeu()
66 clutter_actor_set_depth() - clutter_actor_set_depthu()
68 This allows sub-pixel precision and device independence.
70 o The ClutterLabel actor now tries very hard to provide a sane
71 default size, if no bounding box has been requested; this fixes
72 the :alignment property and allows the addition of the :justify
75 o The SDL backend can now be compiled under win32 with MingW; this
76 backend is still marked as experimental.
78 o The OSX backend allows the compilation of Clutter under OS X; this
79 backend is experimental.
83 o #423 - All actors should emit events rather than just the stage
84 o #424 - Interface definition files
85 o #443 - ClutterModel implementation
86 o #480 - Uninitialized variable in
87 path_alpha_to_position() [Gwenole Beauchesne]
88 o #511 - clutter_stage_get_actor_at_pos problem
89 o #512 - clutter window moves when stage actor is scaled
90 o #518 - XEMBED not supported in eglx backend
91 o #519 - Should have an Atom cache initialized on start up
92 o #520 - Delete after multibyte unicode chars in
93 ClutterEntry [Tommi Komulainen]
94 o #522 - Array out of bounds indexing [Tommi Komulainen]
95 o #523 - cogl portability fixes [Tommi Komulainen]
96 o #524 - missing config.h includes [Tommi Komulainen]
97 o #525 - Redundant include in cogl/gl [Tommi Komulainen]
98 o #531 - Extraneous "new-frame" signal generated
99 o #532 - clutter_actor_set_scale_with_gravityx()
100 precision [Gwenole Beauchesne]
101 o #544 - clutter_color_to_hlsx is broken [Neil Roberts]
102 o #546 - ClutterStageState doesn't make sense
103 o #550 - Wanted: Set Actor's position based on center or other
104 edges/corners of quadrangle
105 o #557 - ClutterScript should support complex properties for third
107 o #558 - Unmerge UI definitions
108 o #566 - ClutterEntry does not scroll the text to the
109 right [Gwenole Beauchesne]
110 o #577 - Inconsistent naming of behaviour properties
111 o #580 - Fix call to cogl_enable() [Gwenole Beauchesne]
112 o #582 - api naming inconsistence between
113 clutter_behaviour_path_append_knots and
114 clutter_behaviour_bspline_append
115 o #584 - Typo on clutter_effect_rotate_x documentation page
116 o #592 - Fix build on trunk [Gwenole Beauchesne]
117 o #596 - ClutterTexture tileing logic is a little borked
118 o #597 - ClutterGroups not pickable
119 o #600 - fix ClutterLabel layout computing when no box has been set
120 o #604 - Color param for Label constructor should be
121 const [Jonathon Jongsma]
122 o #606 - enable depth test in GL
123 o #608 - Control motion events frequency
124 o #614 - ClutterActor API inconsistencies
125 o #616 - ClutterTexture doesn't respect width set from clutterscript
126 o #617 - ClutterEffect Improvements
127 o #618 - ClutterScript name/id confusion
128 o #619 - clutter_behavior_rotate angle properties should accept
130 o #628 - clutter_actor_rotate_x() is a setter, not a modifier
131 o #629 - There is no clutter_actor_get_position()
132 o #634 - clutter_behaviour_path_new() documentation unclear
133 o #637 - add depth cueing support to the stage
134 o #645 - Fix crash in clutter_label_new_full() [Gwenole Beauchesne]
135 o #647 - Cannot hide the stage
136 o #648 - Hidden fullscreen stage doesn't come back as fullscreen
137 o #652 - reference needed on actor being source of last motion_event
138 o #661 - clutter_actor_set_width() documentation is vague
139 o #662 - clutter_actor_set_opacity() documentation doesn't describe values
140 o #665 - ClutterBehaviourEllipse tilts are broken
141 o #670 - Fix clutter_container_lower_child() [Gwenole Beauchesne]
142 o #673 - ClutterActor "captured-events" signal documentation wrong
143 o #674 - ClutterActor::get_depth() and set_depth() vfuncs not
144 used [Murray Cumming]
145 o #675 - update subregions of cluttertextures
146 o #678 - ClutterLabel size allocation still bogus
148 Clutter 0.4.0 (07/08/2007)
149 ========================
151 * List of changes between 0.3.1 and 0.4.0
153 o Many documentation additions and improvements.
155 o Display DPI now honours on backends its can be queried.
157 o Various big endian related fixes.
159 o ClutterBehaviourEllipse and ClutterBehaviourRotate API and
160 internals improvements.
162 o Add basic tslib support to eglnative backend (for touchscreen events)
164 o clutter_stage_get_actor_at_pos should now work on 16bpp displays.
166 o New ClutterEffect rotation calls.
168 o Allowing user resizing of the stage now optional.
169 (implemented by glx backend only currently)
171 o ClutterEntry UTF8 fixes and improved automatic initial sizing.
173 o Make ClutterActor GInitiallyUnowned.
175 o New ClutterBox API: each box has now a colour and a margin (distance
176 between the inner-border and the children); plus, each packed child
177 has a padding. Margins and paddings are expressed in ClutterUnits,
178 to ease the transition to the device independent units. You can use
179 clutter_box_set_default_padding() if you want the same padding for
183 o #390 - clutter_stage_get_actor_at_pos broken on 16bpp displays.
184 o #398 - inconsistent type for return value of clutter_event_get_state
185 o #403 - Critical error when removing texture actor
186 o #404 - Solaris build error with OpenGL, missing
187 GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB and GL_TEXTURE_RECTANGLE_ARB
188 o #409 - depth mismatch between visual (32) and window (24)
189 o #407 - metadata-available signal #ifdef'ed out
190 o #413 - Clutter compile error with Sun Studio C compiler
191 o #426 - typo in sdl_backend
192 o #414 - ClutterEntry invisible if size not set
193 o #434 - clutter_color_from_pixel incorrectly interprets alpha value
194 o #435 - clutter_color_subtract does the opposite of its documentation
195 o #436 - clutter-behaviour-depth always perform "from deep to shallow"
197 Clutter 0.3.1 (06/07/2007)
198 ========================
200 * List of changes between 0.3 and 0.3.1
201 o EGL. There are now 2 experimental EGL backends;
202 - 'eglx', the former EGL on X11 implementation (now renamed)
203 - 'eglnative', a new EGL 'native' backend which supporting non
204 X11 EGL implementations (i.e framebuffer).
206 o ClutterGroup now returns correct size when a child is removed.
208 o Missing redhand.png added to distro tarball (fixing tests that require
211 o Fix picking in ClutterBox
213 o Rectangle border creation fixed.
215 o Fix overflow in Exponential Alpha funcs.
217 o Many API documentation fixes and improvements.
219 o ClutterEffect cleanups.
221 o ClutterEntry cleanups.
223 o Check for versioned XFixes library (GLX backend).
225 o More X error traps in GLX backend.
227 Clutter 0.3 (29/06/2007)
228 ========================
230 * List of changes between 0.2.3 and 0.3
231 o Clutter now supports both switchable windowing system and GL backends.
232 Window systems supported include GLX, EGL and SDL.
234 GL support includes OpenGL 1.2+ and OpenGL ES 1.1. This is
235 provided by a small basic abstraction layer 'cogl.h'. Cogl is not
236 yet documented - usage external to Clutter is not yet advised.
238 Backends may provide specific command line options.
244 The GLX backend is built by default and is currently the most
245 developed, supported and featured windowing system backend. Only
246 OpenGL is supported via GLX.
250 Clutter has experimental support for using SDL. Open GL is supported as
251 is OpenGL ES via Dogles (very experimental).
255 Clutter has experimental support for using EGL. Only Open GL ES
258 EGL support assumes an EGL implementation running atop X Windows.
263 Clutter now has experimental support for Open GL ES.
264 Current known issues;
266 + Unrealising a ClutterTexture will not move pixel data from video
267 into system memory but simply destroy it.
268 + BGRA, YUV Texture data not currently supported.
270 (Use the clutter_feature API to probe for above at runtime)
272 Open Source ES implementations this has been tested against
273 include `Vincent' and `dgles'. Support for commerical
274 implementations may require modifications to the configure.ac
277 vincent: http://ogl-es.sourceforge.net/
278 (Also see: http://svn.o-hand.com/repos/misc/trunk/ogles/ )
280 dgles: http://developer.hybrid.fi/dgles/index.html
282 o New ClutterEffect class provides a simplified (and thus less flexible)
283 API wrapping around behaviours, alphas and timelines.
284 o New Behaviours - bspline, ellipsis, rotation.
285 o New built in Alpha functions;
286 CLUTTER_ALPHA_SINE_INC
287 CLUTTER_ALPHA_SINE_DEC
288 CLUTTER_ALPHA_SINE_HALF
290 CLUTTER_ALPHA_SMOOTHSTEP_INC
291 CLUTTER_ALPHA_SMOOTHSTEP_DEC
292 CLUTTER_ALPHA_EXP_INC
293 CLUTTER_ALPHA_EXP_DEC
294 o New Actors and interfaces
295 + ClutterLayout, for writing extended layout support in actors
296 + ClutterContainer, for generic container actors
297 + ClutterBox, ClutterVBox and ClutterHBox layout actors.
298 + ClutterEntry, text entry actor
299 o ClutterTexture now handles BGRA, YUV and premultiplied alpha data.
300 o All internal math now fixed point based.
301 o Clutter now has it own internal event queue.
302 o ClutterStage new features;
303 + Title property for naming in window decorations.
304 + Perspective setting - The stages perspective can now be modified.
305 o New Clutter_actor *project API calls allow for querying of tranformed
306 actor vertices and points.
307 o New Clutter Feature checks.
308 o Initial ClutterUnit implementation for device independant positioning.
310 o Various issues with very poor performance and Intel drivers.
311 o #138 Fix typo in x rotation transform.
313 Clutter 0.2.3 (2007-04-11)
314 ==========================
316 * List of changed between 0.2.2 and 0.2.3
317 o Fixes to tile based textures and again clutter_texture_get_pixbuf(). [Matthew]
318 o Implement Gravity for ClutterScaleBehaviour. [Matthew, Rob]
320 Clutter 0.2.2 (2007-03-22)
321 ==========================
323 * List of changed between 0.2.1 and 0.2.2
324 o Addition of basic XEMBED support for clutter stage. [Matthew]
325 o Fixes to clutter_texture_get_pixbuf(). [Matthew]
326 o Export clutter_group_remove_all and add associated fixes. [Matthew]
328 Clutter 0.2.1 (2007-02-07)
329 ==========================
331 * List of changed between 0.2.0 and 0.2.1
332 o Add even faster double to integer (and back) conversion
334 o Fix some errors in the fixed point sine waveform
336 o Use fixed point math in the Pango renderer. [Tomas]
337 o Improve the GL version check. [Matthew]
338 o Add a square waveform function. [Emmanuele]
340 o #215 - macro CLUTTER_MARK() not disabled for non-debug builds
342 Clutter 0.2 (18-01-2007)
343 ========================
345 * List of changes between 0.2 and 0.1
346 o Bindings, GStreamer and GTK+ dependencies moved out of tree:
347 now Clutter strictly depends on Xlibs, OpenGL and GdkPixbuf only.
348 o Actors now have an initial floating reference; this means you
349 don't have to explicitely unref them: every memory an actor
350 allocates will be freed when the group containing the actor will
352 o Add basic run-time detection of GL features.
353 + Use GL_TEXTURE_RECTANGLE_ARB if available.
354 + Attempt to set up sync to vblank (set CLUTTER_VBLANK=none to disable)
355 o Add API for behaviours. A ClutterBehaviour is an object which
356 drives a set of actors using one or more properties depending
357 on the value of an "alpha" function.
358 + Provide simple behaviours: ClutterBehaviourOpacity,
359 ClutterBehaviourPath and ClutterBehaviourScale.
360 + Provide simple alpha functions for ramps and sine waveforms.
361 o Add fixed point API for embedded platforms with no FPU.
362 o Add support for command line switches to Clutter, like debug
363 flags and abort on warnings; also allow application to hook up
364 into the initialisation sequence to add their own command line
366 o Add Pango GL renderer for Clutter, and use it to render text
367 inside the ClutterLabel actor; this decrease texture memory
369 o Redo Clutter Label widget, using the new Pango renderer.
370 o Clutter Textures do not store local pixbuf copy (of texture).
371 o Redo group and actor scale/sizing API and functionality.
372 o Add memory management API for ClutterColor, and string parsing.
374 o #199 - Little group handling fix?
375 o #198 - Detect NPOT support on more systems
376 o #197 - Tiled textures are broken
377 o #196 - Rebuild the examples when the library changes
378 o #156 - clutter_actor_set_position not using the absolute size
379 o #155 - Don't test for XInitThreads [Bastien Nocera]
380 o #154 - Key presses not working in super-oh example [Bastien Nocera]
381 o #152 - Misc fixes [Bastien Nocera]
382 o #143 - Faulty ref-counting in clutter_group_remove [Frederic Riss]
383 o #141 - Copy-pasto in clutter_media_set_volume [Frederic Riss]
384 o #101 - No package 'x11' found -- wrong configure [Tomasz Torcz]
385 o #98 - Enabling trails in super-oh crashes
387 Clutter 0.1 (22/06/2006)
388 ========================
390 * First 'official' release, expect bugs aplenty.
392 o Hopefully enough functionality to build things.
393 o Basic gstreamer 0.10 video playback support.
394 o Fairly stable API, though in no way totally stable.
395 Expect CHANGES in future versions.
396 o Some simple examples ( also see OPT ).
397 o An experimental GTK-Clutter widget.
398 o Fairly complete Python bindings.
399 o Non complete but hopefully useful API documentation.
400 * If you want to help out see the TODO file.