2008-02-11 Emmanuele Bassi <ebassi@openedhand.com>
[profile/ivi/clutter.git] / NEWS
1 Clutter 0.5.6 (16/02/2008)
2 ==========================
3
4  * List of changes between 0.5.4 and 0.5.6
5
6    o Reverted a last minute change in the depth sorting function of
7      ClutterGroup.
8
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.
13
14    o Provide a fallback for finding the Clutter alpha functions inside
15      a UI definition for ClutterScript in case g_module_open() fails.
16
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.
20
21  * List of bugs fixed
22
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
29    o #526 - OSX backend
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
35      Beauchesne]
36    o #643 - Superfluous "filter-quality" setting in texture_upload_data()?
37      [Gwenole Beauchesne]
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
42      Pennington]
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
46      Pennington]
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
50
51 Clutter 0.5.4 (25/01/2008)
52 ==========================
53
54  * List of changes between 0.5.2 and 0.5.4
55
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).
60
61    o Textures are correctly unrealized before changing and freeing the
62      main GL context.
63
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.
70
71  * List of bugs fixed
72
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]
89
90 Clutter 0.5.2 (14/01/2008)
91 ==========================
92
93  * List of changes between 0.5.0 and 0.5.2
94
95    o ClutterModelDefault has been renamed to ClutterListModel
96
97    o ClutterModel now has vector-based variants for append, prepend and
98      insert methods; these methods are useful for bindings
99
100    o Add units-based variant for clutter_actor_move_by()
101
102  * List of bugs fixed
103
104    o #694 - Handle GLhandleARB on OS X [Tommi Komulainen]
105    o #700 - Fix for clutter_effect_rotate() [Neil Roberts]
106
107 Clutter 0.5.0 (02/01/2008)
108 ==========================
109
110  * List of changes between 0.4.2 and 0.5.0
111
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
116      both phases.
117
118    o ClutterShader, an abstraction over the programmable OpenGL pipeline.
119
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.
123
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.
130
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.
135
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
139      running.
140
141    o New, experimental OSX backend.
142
143    o Build environment for MS VisualStudio 2005.
144
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.
150
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.
154
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.
158
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.
162
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.
166
167    o Every pixel-based API has been doubled with a corresponding
168      ClutterUnits-based function (postfixed with a '-u'), for instance:
169
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()
173
174      This allows sub-pixel precision and device independence.
175
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
179      property.
180
181    o The SDL backend can now be compiled under win32 with MingW; this
182      backend is still marked as experimental.
183
184    o The OSX backend allows the compilation of Clutter under OS X; this
185      backend is experimental.
186
187  * List of bugs fixed
188
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
212      party classes
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
235      negative values
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
253
254 Clutter 0.4.0 (07/08/2007)
255 ========================
256
257  * List of changes between 0.3.1 and 0.4.0
258
259    o Many documentation additions and improvements.
260
261    o Display DPI now honours on backends its can be queried.
262
263    o Various big endian related fixes.
264
265    o ClutterBehaviourEllipse and ClutterBehaviourRotate API and
266    internals improvements.
267
268    o Add basic tslib support to eglnative backend (for touchscreen events)
269
270    o clutter_stage_get_actor_at_pos should now work on 16bpp displays.
271
272    o New ClutterEffect rotation calls.
273
274    o Allowing user resizing of the stage now optional.
275     (implemented by glx backend only currently)
276
277    o ClutterEntry UTF8 fixes and improved automatic initial sizing.
278
279    o Make ClutterActor GInitiallyUnowned.
280
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
286      each child.
287
288  * List of bug fixed
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"
302
303 Clutter 0.3.1 (06/07/2007)
304 ========================
305
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).
311
312    o ClutterGroup now returns correct size when a child is removed.
313
314    o Missing redhand.png added to distro tarball (fixing tests that require
315      it)
316
317    o Fix picking in ClutterBox
318
319    o Rectangle border creation fixed.
320
321    o Fix overflow in Exponential Alpha funcs.
322
323    o Many API documentation fixes and improvements.
324
325    o ClutterEffect cleanups.
326
327    o ClutterEntry cleanups.
328
329    o Check for versioned XFixes library (GLX backend).
330
331    o More X error traps in GLX backend.
332
333 Clutter 0.3 (29/06/2007)
334 ========================
335
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.
339
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.
343
344      Backends may provide specific command line options.
345
346      Notes;
347
348      GLX
349      ---
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.
353
354      SDL
355      ---
356      Clutter has experimental support for using SDL. Open GL is supported as
357      is OpenGL ES via Dogles (very experimental).
358
359      EGL
360      ---
361      Clutter has experimental support for using EGL. Only Open GL ES
362      is supported by EGL.
363
364      EGL support assumes an EGL implementation running atop X Windows.
365
366      Open GL ES.
367      -----------
368
369      Clutter now has experimental support for Open GL ES.
370      Current known issues;
371
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.
375
376      (Use the clutter_feature API to probe for above at runtime)
377
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
381      script.
382
383      vincent: http://ogl-es.sourceforge.net/
384               (Also see: http://svn.o-hand.com/repos/misc/trunk/ogles/ )
385
386      dgles: http://developer.hybrid.fi/dgles/index.html
387
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
395       CLUTTER_ALPHA_SQUARE
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.
415  * List of Bugs fixed
416    o Various issues with very poor performance and Intel drivers.
417    o #138 Fix typo in x rotation transform.
418
419 Clutter 0.2.3 (2007-04-11)
420 ==========================
421
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]
425
426 Clutter 0.2.2 (2007-03-22)
427 ==========================
428
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]
433
434 Clutter 0.2.1 (2007-02-07)
435 ==========================
436
437  * List of changed between 0.2.0 and 0.2.1
438    o Add even faster double to integer (and back) conversion
439      functions. [Tomas]
440    o Fix some errors in the fixed point sine waveform
441      function. [Tomas]
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]
445  * List of bugs fixed
446    o #215 - macro CLUTTER_MARK() not disabled for non-debug builds
447
448 Clutter 0.2 (18-01-2007)
449 ========================
450
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
457      be destroyed.
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
471      switches.
472    o Add Pango GL renderer for Clutter, and use it to render text
473      inside the ClutterLabel actor; this decrease texture memory
474      usage.
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.
479  * List of bug fixed
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
492
493 Clutter 0.1 (22/06/2006)
494 ========================
495
496  * First 'official' release, expect bugs aplenty.
497  * Contains:
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.