Release 0.5.0
[profile/ivi/clutter.git] / NEWS
1 Clutter 0.5.0 (02/01/2008)
2 ========================
3
4  * List of changes between 0.4.2 and 0.5.0
5
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
10      both phases.
11
12    o ClutterShader, an abstraction over the programmable OpenGL pipeline.
13
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.
17
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.
24
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.
29
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
33      running.
34
35    o New, experimental OSX backend.
36
37    o Build environment for MS VisualStudio 2005.
38
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.
44
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
47      it releases the grab.
48
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.
52
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.
56
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.
60
61    o Every pixel-based API has been doubled with a corresponding
62      ClutterUnits-based function (postfixed with a '-u'), for instance:
63
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()
67
68      This allows sub-pixel precision and device independence.
69
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
73      property.
74
75    o The SDL backend can now be compiled under win32 with MingW; this
76      backend is still marked as experimental.
77
78    o The OSX backend allows the compilation of Clutter under OS X; this
79      backend is experimental.
80
81  * List of bugs fixed
82
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
106      party classes
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
129      negative values
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
147
148 Clutter 0.4.0 (07/08/2007)
149 ========================
150
151  * List of changes between 0.3.1 and 0.4.0
152
153    o Many documentation additions and improvements.
154
155    o Display DPI now honours on backends its can be queried.
156
157    o Various big endian related fixes.
158
159    o ClutterBehaviourEllipse and ClutterBehaviourRotate API and
160    internals improvements.
161
162    o Add basic tslib support to eglnative backend (for touchscreen events)
163
164    o clutter_stage_get_actor_at_pos should now work on 16bpp displays.
165
166    o New ClutterEffect rotation calls.
167
168    o Allowing user resizing of the stage now optional.
169     (implemented by glx backend only currently)
170
171    o ClutterEntry UTF8 fixes and improved automatic initial sizing.
172
173    o Make ClutterActor GInitiallyUnowned.
174
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
180      each child.
181
182  * List of bug fixed
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"
196
197 Clutter 0.3.1 (06/07/2007)
198 ========================
199
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).
205
206    o ClutterGroup now returns correct size when a child is removed.
207
208    o Missing redhand.png added to distro tarball (fixing tests that require
209      it)
210
211    o Fix picking in ClutterBox
212
213    o Rectangle border creation fixed.
214
215    o Fix overflow in Exponential Alpha funcs.
216
217    o Many API documentation fixes and improvements.
218
219    o ClutterEffect cleanups.
220
221    o ClutterEntry cleanups.
222
223    o Check for versioned XFixes library (GLX backend).
224
225    o More X error traps in GLX backend.
226
227 Clutter 0.3 (29/06/2007)
228 ========================
229
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.
233
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.
237
238      Backends may provide specific command line options.
239
240      Notes;
241
242      GLX
243      ---
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.
247
248      SDL
249      ---
250      Clutter has experimental support for using SDL. Open GL is supported as
251      is OpenGL ES via Dogles (very experimental).
252
253      EGL
254      ---
255      Clutter has experimental support for using EGL. Only Open GL ES
256      is supported by EGL.
257
258      EGL support assumes an EGL implementation running atop X Windows.
259
260      Open GL ES.
261      -----------
262
263      Clutter now has experimental support for Open GL ES.
264      Current known issues;
265
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.
269
270      (Use the clutter_feature API to probe for above at runtime)
271
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
275      script.
276
277      vincent: http://ogl-es.sourceforge.net/
278               (Also see: http://svn.o-hand.com/repos/misc/trunk/ogles/ )
279
280      dgles: http://developer.hybrid.fi/dgles/index.html
281
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
289       CLUTTER_ALPHA_SQUARE
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.
309  * List of Bugs fixed
310    o Various issues with very poor performance and Intel drivers.
311    o #138 Fix typo in x rotation transform.
312
313 Clutter 0.2.3 (2007-04-11)
314 ==========================
315
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]
319
320 Clutter 0.2.2 (2007-03-22)
321 ==========================
322
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]
327
328 Clutter 0.2.1 (2007-02-07)
329 ==========================
330
331  * List of changed between 0.2.0 and 0.2.1
332    o Add even faster double to integer (and back) conversion
333      functions. [Tomas]
334    o Fix some errors in the fixed point sine waveform
335      function. [Tomas]
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]
339  * List of bugs fixed
340    o #215 - macro CLUTTER_MARK() not disabled for non-debug builds
341
342 Clutter 0.2 (18-01-2007)
343 ========================
344
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
351      be destroyed.
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
365      switches.
366    o Add Pango GL renderer for Clutter, and use it to render text
367      inside the ClutterLabel actor; this decrease texture memory
368      usage.
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.
373  * List of bug fixed
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
386
387 Clutter 0.1 (22/06/2006)
388 ========================
389
390  * First 'official' release, expect bugs aplenty.
391  * Contains:
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.