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