Clutter 0.9.6 - developers snapshot

July 1st, 2009

hi everyone;

Clutter 0.9.6 is now available for download at:

  http://www.clutter-project.org/sources/clutter/0.9/

MD5 Checksums:

  e8b92cfb5180935f1aba497948f37166  clutter-0.9.6.tar.gz
  30653168bca6d36a560562e14867b804  clutter-0.9.6.tar.bz2

Clutter is an open source software library for creating fast, visually rich and animated graphical user interfaces. Clutter is licensed under the terms of the GNU Lesser General Public License version 2.1.

Clutter currently requires:

  • GLib >= 2.16.0
  • Cairo >= 1.6
  • Pango >= 1.20
  • OpenGL >= 1.4, OpenGL ES 1.1 or OpenGL ES 2.0
  • GLX, SDL, WGL, Quartz or an EGL Implementation

To subscribe to the Clutter mailing list, send mail to: clutter+subscribe_at_o-hand.com
The official mailing list archive is: http://lists.o-hand.com/clutter/
API reference: Clutter, COGL

Notes

  • This is a development release of Clutter 0.9 leading towards the 1.0 stable cycle. It is the second release candidate for the 1.0.0 release: the Clutter high-level API is to be considered frozen, as well as the COGL low-level API.
  • This version is fully API and ABI incompatible with the previous 0.8 releases.
  • This version is parallel installable with Clutter 0.8.
  • Installing this version will overwrite the files from the installation of a git clone of the current development branch (master).
  • Bugs should be reported to: http://bugzilla.o-hand.com

What’s new in Clutter 0.9.6

  • Allow the manipulation of the actor’s transformation matrix, so that it is possible to apply additional transformations in a way that is compatible with the transformations already applied by the scene graph.
  • Fix a race in the X11 backend that happened between resizing the stage drawable and the call to glViewport().
  • Merge the cogl-journal-batching branch; this branch implements batching the geometry of the elements of the scene graph before sending it to OpenGL, thus minimizing the number of state changes and improving the overall performance of Clutter-based applications.
  • Add more debugging states for Clutter and COGL, which allow the developer to track the state of the journal; to check the VBO fallback paths; to disable picking for reliable profiling; to disable software-side matrix transformations in favour of the driver/GPU ones.
  • Improve the ability to “break out” of COGL by using gl_begin/gl_end semantics; applications that drop into raw GL are, though, ignoring all the caching performed by COGL and might incur in performance issues.
  • Fixed the :load-async and :load-data-async properties of Texture by removing the unneeded G_PARAM_CONSTRUCT flag.
  • Added an initial migration guide that shows the porting process from older releases of Clutter to the 1.0 API; the first chapter deals with the migration from ClutterEffect to the new implicit animations API.
  • Fixed MT-safety for the master clock.

Many thanks to:

  Ole André Vadla Ravnås
  Tim Horton

Embedding GTK+ widgets inside a Clutter scene

June 25th, 2009

Alex Larsson of Nautilus and GIO fame, and hacker extraordinaire has really outdone himself, this time.

Alex has been working for a while on the client-side window branch of GTK+, and apart from smooth and flicker-less resizing, simplified backends and transparency support even without the XComposite extension on every supported platform, this branch also allows embedding GTK+ widgets inside other toolkits — toolkits like Clutter.

so, here’s a screencap from Alex showing what it’s going to be possible in the near future:

Clutter Gtk integration from Alexander Larsson on Vimeo.

very exciting times ahead!

The (Irregular) Clutter Weekly Report - w26

June 25th, 2009

ouch: long time, no report. sorry about that. we’ve been incredibly busy — and not just with Clutter: the Moblin 2.0 netbook user interface, written using Clutter, has been released and everyone is incredibly excited about it.

what happened since week 7, then? well:

  • Clutter 0.9.2 has been released
  • Clutter 0.9.4 has been released
  • performance optimizations all over the board
  • clean up of the whole API, with the removal of deprecated and unused entry points
  • ClutterFixed and ClutterUnit have been removed, replaced by CoglFixed and ClutterUnits
  • simplified the internals of ClutterAnimation and made it much more generic; increased the convenience of clutter_actor_animate()
  • ClutterText supports ellipsis after wrapping, to cover the whole assigned area; it also supports double and triple click selection of words and lines, respectively
  • event processing, advancing of timelines, layouting and repainting are now handled by the master clock, which uses the sync-to-vblank (if available) to compress all the operations into discrete packets and removes the potential for starving the main loop with animations and event handling
  • ClutterTimeline is now completely time based — the speed and current frame properties have been removed since it’s all a function of time
  • all the API entry points and structures dealing with size and position are now using floating point for pixels with precision; this reduces the amount of type casting and unifies the API
  • COGL handles blend modes and texture combining using a string-based notation that should greatly simplify the life of developers

and much, much more.

also, Clutter-GTK+ 0.9.2 has been released and Clutter-GStreamer has a new maintainer that already fixed long-standing bugs and added new cool features, like the ability to do colorspace conversion using shaders.

Clutter 0.9.4 - developers snapshot

June 25th, 2009

hi everyone;

Clutter 0.9.4 is now available for download at:

  http://www.clutter-project.org/sources/clutter/0.9/

MD5 Checksums:

  912974d177f748b5dbf2b9c7fd39a57c  clutter-0.9.4.tar.gz
  f2bddf6ceabd7294996463a1e9637b3f  clutter-0.9.4.tar.bz2

Clutter is an open source software library for creating fast, visually rich and animated graphical user interfaces. Clutter is licensed under the terms of the GNU Lesser General Public License version 2.1.

Clutter currently requires:

  • GLib >= 2.16.0
  • Cairo >= 1.6
  • Pango >= 1.20
  • OpenGL >= 1.4, OpenGL ES 1.1 or OpenGL ES 2.0
  • GLX, SDL, WGL, Quartz or an EGL Implementation

To subscribe to the Clutter mailing list, send mail to: clutter+subscribe_at_o-hand.com
The official mailing list archive is: http://lists.o-hand.com/clutter/
API reference: Clutter, COGL

Notes

  • This is a development release of Clutter 0.9 leading towards the 1.0 stable cycle. It is the first release candidate for the 1.0.0 release: the Clutter high-level API is to be considered frozen, though there might be last minutes additions to the COGL low-level API to accommodate the performance improvements done in the cogl-journal-batching branch that is going to be merged next week.
  • This version is fully API and ABI incompatible with the previous 0.8 releases.
  • This version is parallel installable with Clutter 0.8.
  • Installing this version will overwrite the files from the installation of a git clone of the current development branch (master).
  • Bugs should be reported to: http://bugzilla.o-hand.com

What’s new in Clutter 0.9.4

  • Set the layout height in ClutterText, so that wrapping and ellipsization work correctly to fill all the allocated area.
  • Remove all the units-based API from ClutterActor, and migrate all the positional and dimensional accessors to use floating point values when dealing with pixels. All the properties dealing with pixels now take a floating point value as well. This change does have repercussions on functions with variadic arguments like clutter_actor_animate(), g_object_new(), g_object_set() and g_object_get().
  • Add the ability to track whether an actor is going to be painted or not, using the “mapped” flag. This also allows Clutter to be more strict in the handling of the scenegraph, ensuring correctness and avoiding wasting resources on nodes that won’t be painted.
  • Add debugging facilities for COGL, similar to those of Clutter; through them is also possible to have an on screen debugging mode that shows the boundaries of each rectangle sent to the GPU.
  • Rework “units” into real logical distance units that can be converted between millimeters, typographic points and ems, into pixels.
  • Simplify the Animation class to avoid redundancy and the possibility of it going out of sync with the Timeline and Alpha instances it uses.
  • Move every operation into a single “master clock” source that advances the timelines, dispatches events and redraws the stages in a predictable sequence, thus avoiding unneeded redraws. The default is to follow the sync-to-vblank cycle, if it is supported by the drivers.
  • Cache the glyphs geometry into a vertex buffer object to avoid resubmitting too much information to the GPU.
  • Rework the behaviour of ClutterModel when a filter is applied.
  • Allow submitting premultiplied texture data; this removes the need for unpremultiplying data in CairoTexture.
  • Add a simple API for submitting blending and texture combining modes through a string description.
  • Move Timelines to pure time-based objects.
  • The Input devices API has been cleaned up. Currently, the X11 support for XInput 1.x is disabled by default, and Clutter must be configured with –enable-xinput in order to enable it; XInput 1.x is going to be replaced by XInput2, which is a far better API. Support for XInput2 will be added during the 1.x cycle.
  • Lots of performance improvements.
  • Removal of all the deprecated API.
  • Removal of all the fixed point entry points.
  • Lots of documentation fixes - the coverage is now 99% of the exported 1600 symbols for Clutter and 80%+ of the 300 exported symbols for COGL.
  • Generate the GObject Introspection data for both Clutter and COGL at build time.
  • Build environment fixes.

Many thanks to:

    Owen W. Taylor
    Thomas Wood
    Havoc Pennington
    Bastian Winkler
    Chris Lord
    Garry Bodsworth
    Rob Bradford
    Johan Bilien
    Jonas Bonn
    Raymond Liu
    Damien Lespiau
    Dan Winship
    Marc-André Lureau
    Robert Staudinger
    Tommi Komulainen

Clutter 0.9.2 - developers snapshot

March 17th, 2009

Clutter 0.9.2 is now available for download at:

  http://www.clutter-project.org/sources/clutter/0.9/

MD5 Checksums:

  fcc83503478148f722af5cf9a1f30938 clutter-0.9.2.tar.gz
  ad69263ae61b95f575ed55ed5f5b7ddb clutter-0.9.2.tar.bz2

Clutter is an open source software library for creating fast, visually rich and animated graphical user interfaces. Clutter is licensed under the terms of the GNU Lesser General Public License version 2.1.

Clutter currently requires:

  • GLib >= 2.14.0
  • Cairo >= 1.6
  • Pango >= 1.18
  • OpenGL >= 1.4, OpenGL ES 1.1 or OpenGL ES 2.0
  • GLX, SDL, WGL, Quartz or an EGL Implementation

API reference: http://www.clutter-project.org/docs/clutter/unstable/

Notes

  • This is a development release of Clutter 0.9 leading towards the 1.0 stable cycle.
  • This version is fully API and ABI incompatible with the previous 0.8 releases.
  • This version is parallel installable with Clutter 0.8.
  • Installing this version will overwrite the files from the installation of a git clone of the current development branch (master).
  • Bugs should be reported to: http://bugzilla.o-hand.com.
  • The API of Clutter 0.9 is “slushy”: it can still change before the 1.0.0 release - though changes will hopefully be contained and small.

here you can find the announcement and the shortlog for this release.

as always thanks to all the contributors, and have fun with Clutter!

Clutter Weekly Report - w7

January 30th, 2009

it has been pointed out that blogging the weekly report would be a good thing for those not subscribed to the mailing list

good news, everyone! clutter 0.9.0, the first step towards clutter 1.0 has just been released. a tad later than expected, unfortunately, but we decided it was better to try and land as much API changes as possible before the 0.9.0 release, to allow better feedback from application and toolkit developers and fix the eventual API issues before fully committing to the 1.0 API.

development branch: (master)

merged branch ‘cogl-material’
the Materials API in COGL is meant to decouple drawing operations and filling operations; it handles multi-texturing, blending and colors. it’s a whole new set of primitives that moves COGL away from a state machine like GL and makes it a pleasant API to use.
merged branch ‘generic-actor-clone’:
ClutterClone is an actor that can “clone” efficiently any other actor; it is in spirit similar to CloneTexture (which supercedes) and avoids the need to support/use FBOs just to replicate a group.

experimental branches

new experimental branches for 1.0 features that are going to be merged or are being considered for merging:

api-cleanup
coalesces every pixel and unit based entry point of the API into a single entry point taking a float; removes the fixed-point entry points in Clutter; for more information on the rationales and effects, see bug 1417

stable branch: (clutter-0-8)

  • backported fixes for bugs: 1402, 1405
  • backport of a timeline related fix
  • backport of a stage related fix
  • fixed ClutterEntry bug 1365

releases

  • clutter-0.9.0 has been released; it is still in “slushy” state.
  • clutter-0.9.2 is planned in two weeks (w7); this will be the release candidate
  • clutter-1.0.0 is planned in four weeks (w8)

this schedule might change depending on bug fixes requiring API changes

bugzilla

  • 92 bugs opened against Clutter core
  • 9 bugs with 0.8 target milestone (bugs that can, or may be fixed in ‘master’ and backported to the current stable branch)
  • 12 bugs with 1.0 target milestone (bugs that should be fixed in ‘master’ before 1.0.0 is released)

Clutter 0.9.0 - developers snapshot

January 30th, 2009

Clutter 0.9.0 is now available for download at:

  http://www.clutter-project.org/sources/clutter/0.9/

MD5 Checksums:

  48abe304471c568b40735f3430ff1cc9  clutter-0.9.0.tar.gz
  19ec01d56c5eadc9ce7d0b73fce52969  clutter-0.9.0.tar.bz2

Clutter is an open source software library for creating fast, visually rich and animated graphical user interfaces. Clutter is licensed under the terms of the GNU Lesser General Public License version 2.1.

Clutter currently requires:

  • GLib >= 2.14.0
  • Cairo >= 1.6
  • Pango >= 1.18
  • OpenGL >= 1.4, OpenGL ES 1.1 or OpenGL ES 2.0
  • GLX, SDL, WGL, Quartz or an EGL Implementation

API reference: http://www.clutter-project.org/docs/clutter/0.9/

Notes

  • This is a development release of Clutter 0.9 leading towards the 1.0 stable cycle.
  • This version is fully API and ABI incompatible with the previous 0.8 releases.
  • This version is parallel installable with Clutter 0.8.
  • Installing this version will overwrite the files from the installation of a git clone of the current development branch (master).
  • Bugs should be reported to: http://bugzilla.o-hand.com.
  • The API of Clutter 0.9 is “slushy”: it can still change before the 1.0.0 release - though changes will hopefully be contained and small.
  • GLES 2 support is broken, at the moment; it will be fixed before 1.0.0 is released, and as usual patches are most welcome.

What’s new in Clutter 0.9.0

  • ClutterText is a new actor allowing text display, text editing both in multi-line and single-line modes, and text selection using the pointer devices and the keyboard. ClutterText supercedes both ClutterLabel and ClutterEntry.
  • ClutterClone is a new actor that allows cloning of other actors, both simple and composite. ClutterClone supercedes ClutterCloneTexture.
  • ClutterBindingPool is a new API that allows to easily add key bindings to an actor.
  • ClutterAnimation is a new API for implicit animations, similar to the tweening API used in toolkits like jQuery, Tween and Flash. This new API supercedes the ClutterEffect API.
  • ClutterAlpha uses “animation modes” instead of raw function pointers; it is still possible to pass alpha functions. The alpha functions provided by Clutter have been removed from the public API. It is possible to register global alpha functions and use them though a logical id.
  • The interval of the ClutterAlpha:alpha property has been changed to a floating point value in the [ -1.0, 2.0 ] range; this allowed the addition of “overshooting” easing modes.
  • COGL now supports backface culling.
  • The COGL-based Pango renderer is public API and it is accessible to developers. It is also possible to access the PangoContext used by Clutter in order to create PangoLayouts to render text.
  • The ClutterFixed API has been moved to COGL.
  • COGL does not depend on Clutter data types anymore.
  • The ClutterMedia interface has been overhauled: implementations now must only override the interface properties. The ranges of some properties have been changed to normalized values.
  • COGL now exposes only floating point entry points, and reserves the eventual conversion to fixed point only when needed. The fixed point type and macros are publicly available for developers concerned about floating point operations.
  • COGL has a new Vertex Attribues API that allows submitting an extensible number of vertex attributes to OpenGL in a way that does not require format conversions and allows fast re-use.
  • COGL has a new Material API that decouples paths from fills; it is possible to create an arbitrary path and fill it with a COGL texture. The Material API also allows setting multiple texture layers and defining the blend modes and colors.
  • ClutterTexture has the ability to use a worker thread to asynchronously load an image from a file, as long as the GLib threading support has been enabled prior to calling clutter_init().
  • Clutter now supports localization of the help output, and it also supports globally setting the text direction for non left to right locales.
  • ClutterCairoTexture is a new actor that allows using Cairo to draw on a ClutterTexture; since Cairo does not have an OpenGL backend, the drawing is not hardware accelerated.
  • Clutter has a unit testing suite, based on the GLib unit test framework, which can be used to track regressions.
  • A ClutterPath object has been added, and it is used by the BehaviourPath. The Path object allows defining paths using a set of coordinates and operations. A Path can be “painted” either using COGL primitives or using Cairo primitives, allowing an easier way to paint non-rectangular shaped actors.
  • ClutterInterval is a simple object, used by ClutterAnimation, that describes an interval between two values, and interpolates between the initial and final values of the interval.

List of bugs fixed since 0.8

   o #835 - Optimize clutter_actor_real_pick()
   o #851 - setting anchor point causes picking problem
   o #883 - Outstanding COGL merge issues
   o #1003 - Add clutter_actor_take_key_focus
   o #1014 - Clutter Animation API Improvements.
   o #1049 - Clutter doesn't support most GLSL uniforms
   o #1051 - WebKit/Clutter product/component?
   o #1058 - Build clutter-box2d with Clutter 0.8
   o #1066 - Clipping regression in 0.8
   o #1086 - virtualize stage_queue_redraw
   o #1105 - low level access to PangoClutter
   o #1106 - ClutterText instead of ClutterLabel and ClutterEntry
   o #1108 - Enter/Leave events logics wrt. skipped motion events
   o #1109 - clutter-0.8.0 fails to compile
   o #1123 - Crash when FBO actor is used and the stage is MINIMIZED
   o #1144 - Provide an option to load images asynchronously in ClutterTexture
   o #1162 - Add unit testing for Clutter
   o #1164 - Mesh API
   o #1172 - Disjoint paths and clip to path
   o #1189 - Backface culling
   o #1209 - Move fixed point API in COGL
   o #1210 - Add CoglColor API
   o #1211 - Drop ClutterFeatureFlags usage from COGL
   o #1212 - Allow only a single include file for Clutter
   o #1215 - Move the Pango renderer to the public API
   o #1219 - Clean up cogl.h
   o #1231 - Build fails in gles flavour in revision 3442
   o #1233 - CLUTTER_ALPHA_SINE_INC is broken in trunk
   o #1251 - Merge the Cairo texture actor in core
   o #1252 - Merge ClutterBehaviourPath and ClutterBehaviourBspline
   o #1261 - [patch] Minimize differences between gl/cogl-texture.c and
     gles/cogl-texture.c
   o #1269 - mingw32 building failed at clutter-media.c
   o #1270 - Update to mingw-cross-compile.sh
   o #1271 - mingw compiling failed:  undefined reference to
     `_glDrawRangeElements@24'
   o #1284 - Return something reasonable from clutter_x11_handle_event()
   o #1300 - clutter_score_remove and clutter_score_remove_all  are different
     in object remove
   o #1310 - font rendering problem
   o #1313 - Fix computation of camera distance
   o #1314 - clutter_sinx() is more inaccurate than it needs to be
   o #1321 - Get Matrix in float
   o #1323 - ClutterBehaviorDepth conflicts with other behaviors
   o #1325 - ClutterPath to cairo_path_t conversion functions
   o #1330 - We should not queue redraw for non-visible actors
   o #1334 - Default value for ClutterLabel::text should be "" instead of NULL
   o #1344 - clutter_actor_transform_stage_point gives invalid coordinates
     for big actors
   o #1352 - Weird cogl-pango.h includes in clutter-[entry|label].c
   o #1354 - Floating point exception when set fps>1000 and start timeline
   o #1361 - Unused ClutterStage::get_resolution() methods
   o #1365 - ClutterEntry doesn't get the cursor when it should
   o #1366 - disable-npots fails to build on mac
   o #1380 - Return booleans from CLUTTER_ACTOR_IS_* macros
   o #1386 - Wrong clipping dimensions for larger actors
   o #1387 - Clarify new-frame signal emission with advance()
   o #1388 - Clarify signal emission for advance_to_marker()
   o #1395 - behaviour_apply and behaviour_get_nth_actor are opposite on
     actors sequence
   o #1397 - clutter command line is not localized.
   o #1402 - Change default tile-waste from 64 to 63
   o #1403 - ClutterMedia::get_uri() should return allocated string
   o #1404 - ClutterMedia issues
   o #1405 - Fix properties that have X11 types to be 'long'
   o #1409 - Use G_SIGNAL_RUN_LAST with ::queue-redraw signal
   o #1410 - [patch] Implements a generic ClutterActorClone class without fbos
   o #1414 - avoid relayout of ClutterTexture if not syncing size
   o #1415 - short-circuit setting same clip again

have fun with Clutter!

Clutter Weekly Report - week 49

December 6th, 2008

I sent this to the mailing list, but I guess it’ll make the blog readers happy as well

one of the things I’d like to start is writing a short report on what happened over the week in Clutter-land - both in bugzilla and in the repository.

I’ll try and keep doing this every week, in the hope that people will find it useful to keep up with the state of clutter while we approach the 1.0 milestone.

releases

  • clutter-0.8.4, the third stable release of the core library, has been pushed on the server at clutter-project.org. lots of bug fixes and some small new feature backported from trunk.

svn: stable branch (clutter-0-8)

  • fixed for bug 1309, bug 1297, bug 1303, bug 1305 have been backported from trunk to the stable branch. users of mutter and gnome-shell on GPUs that only support ARB_texture_rectangle will be able to see some improvements.

svn: development branch (trunk)

  • Neil merged the ClutterBehaviourPath and ClutterBehaviourBspline behaviours into a single class; this new behaviour will take a Path object that can be described using a set of nodes; a Path can also be described using a notation compatible with the SVG description of a path. this was a 1.0 roadmap item.
  • the disjoint paths and clip-to-path features have landed; it allows you to use cogl to draw multiple paths at the same time, and also to have non-rectangular shaped clips. this was a 1.0 roadmap item.
  • support for using cogl with native textures using ARB_texture_rectangle, and allow the texture-from-pixmap actor to use them if needed.
  • avoid artifacts with non-pixel-aligned NPOT textures
  • more units for the test suite:
    • backface culling

bugzilla

  • 91 bugs opened against Clutter core
    • 30 are marked as enhancements
    • 10 bugs with 0.8 target milestone (bugs that can, or may be fixed in trunk and backported to the current stable branch)
    • 15 bugs with 1.0 target milestone (bugs that should be fixed in trunk before 1.0.0 is released)

Clutter 0.8.4

December 1st, 2008

Clutter 0.8.4 is now available for download at:

http://www.clutter-project.org/sources/clutter/0.8/

MD5 Checksums:

  84bb05824d9b9724c33f5e64493ab169  clutter-0.8.4.tar.gz
  7992b48c5b3a86509903175c2fe0cf1c  clutter-0.8.4.tar.bz2

Clutter is an open source software library for creating fast, visually rich and animated graphical user interfaces. Clutter is licensed under the terms of the GNU Lesser General Public License version 2.1.

Clutter currently requires:

  • GLib >= 2.14.0
  • Pango 1.18
  • OpenGL >= 1.4, OpenGL ES 1.1 or OpenGL ES 2.0
  • GLX, SDL, WGL, Quartz or an EGL Implementation

To subscribe to the Clutter mailing list, send mail to: clutter+subscribe@o-hand.com
The official mailing list archive is: http://lists.o-hand.com/clutter/
API reference: http://www.clutter-project.org/docs/clutter/stable/

Notes

  • This is a stable release of Clutter’s 0.8 cycle.
  • This version is fully API and ABI compatible with the previous 0.8.0 release and further 0.8 releases.
  • This version is parallel installable with Clutter 0.6.
  • Installing this version will overwrite the files from the installation of a release of the 0.8 series or the installation of a SVN checkout of the clutter-0-8 branch.
  • Bugs should be reported to: http://bugzilla.o-hand.com

What’s new in Clutter 0.8.4

  • Documentation improvements
  • Add clutter_actor_get_paint_visibility(), for checking the visibility of an actor taking into account the visibility of its parents
  • Texture-from-pixmap actor improvements
  • Add support for ClutterColor-based properties
  • Remove a stray dependency on gdk-pixbuf-xlib-2.0
  • ClutterGroup will queue a repaint when raising/lowering children

List of bugs fixed since 0.8.2

  • #1043 - COGL calls glTexSubImage2D() with out-of-bounds values (SIGSEGV)
  • #1057 - cogl_texture_rectangle doesn’t support backward coordinates
  • #1074 - FBOs on GLES
  • #1195 - ClutterBehaviourBspline only works for very short paths
  • #1196 - Texture border drawing problems
  • #1197 - Missing const for clutter_init_with_args *
  • #1200 - Crash with invalid DISPLAY
  • #1201 - test-depth.c:14: error: ‘raise’ redeclared as different kind of symbol
  • #1206 - Picking disabled dithering
  • #1207 - Timelines sometime miss markers
  • #1230 - Pick fails on low precision color buffers
  • #1237 - clutter_texture_set_filter_quality calls clutter_texture_[un]realize
  • #1238 - [PATCH] Pack bitfields in ClutterTexturePrivate
  • #1265 - ClutterScore doesn’t emit ’started’ signal.
  • #1280 - clutter_score_append_at_marker lead to segfault
  • #1291 - file name not given when invalid external json structure loaded
  • #1299 - clutter_score_remove will segfault if timelines are more than 52 and continue to remove them

Special thanks to all the contributors

Zang Wei
Kai Wei
Bastian Winkler
Owen Taylor
Guy Zadickario
Thomas Wood
Mihail Naydenov
Michael Boccara
Ross Burton
Laurent Bigonville
Gwenole Beauchesne

Have fun with Clutter!

Clutter 1.0 roadmap

November 16th, 2008

I’ve sent this email to the mailing list as well

as you might have noticed, work on Clutter trunk is progressing quite nicely. obviously, the big question is: “towards what? which features will land in 1.0? will it be called 1.0? when will it be released? what happens next? when do I get a pony?”

well, it was more than one question. actually, those were a lot of questions. apart from the pony one. that was just weird.

anyway.

let’s try to answer some of those questions, shall we? the first answer is: yes, the next stable release of Clutter will be called 1.0. we think it’s time to hit the “big 1″: we feel confident about the API, we feel confident about the feature set and we feel confident that additional features can be added without breaking the API/ABI contract we’ll have in place for the whole duration of the 1.x API series.

here’s the whole features list we are planning for 1.0; some of these already hit trunk:

clean up COGL
the COGL API is still in a bit of a flux; we’re trying to expose more features of the GPUs without resorting to use GL/GLES all the time, but this means dealing with a lot of cruft and dead ends we’d like to remove from the API before it’s sealed shut.
documentation
even though we have a near-100% API coverage in Clutter, some bits are still missing or not explained. we also need a Cookbook-style document, like the one I started for the Perl bindings.
better build
this means: single include file strategy for Clutter and COGL, unit testing, removal of the circular dependency between COGL and Clutter. all of this has landed in trunk in the past couple of weeks, with unit testing getting in on last Friday thanks to Robert Bragg. to break the circular dependency, COGL now has its own fixed-point type, to which ClutterFixed maps transparently; and a Color type, which should be completely opaque to the user (conversion functions are provided). Clutter will still use the ClutterFixed and ClutterColor types and API.

new tweening/simple animation API
this new API should replace the Effects API, hopefully with something more powerful but flexible. the current approach is to use something that looks a lot like the JavaScript tweening API. the bug number with the implementation is: 1014.
unified text actor
this would remove the ClutterLabel and ClutterEntry actors in favour of a generic Text actor, with the ability to be set editable on demand. the separation between editable and non-editable actors is mostly a style/theme issue, and thus should pertain to toolkits written on top of Clutter; this actor would make text displaying and text editing extremely easy for developers, who would then only care about styling. the bug number with the implementation is: 1106.
threaded glXSwapBuffer()
using a separate thread (if the application has threading enabled) to swap the GL buffers on GLX. it has proven to be a performance gain, but it still requires some testing. the bug number with the implementation is: 1118.
asynchronous images loading from disk
along with PBOs and some caching, this would minimize blocking when loading an image from disk into a Texture. the bug number with the implementation is: 1144.
multitexturing support
this would be a COGL feature first, and if time permits, exposed inside
ClutterTexture API. the bug number with the implementation is: 1163.
mesh API in COGL
already discussed on the mailing list, landed in trunk.
disjoint paths and clip-to-path
a change in the semantics in the COGL path API that would make it more Cairo-like, and allow non-rectangular shaped clip areas. the bug number with the implementation is: 1172.
promote the Pango renderer to public API
this has already landed in trunk, under the CoglPango namespace (to avoid eventual namespace collisions).
backface culling
already landed, a simple function the toggles backface culling and that should be used in the paint implementation of an actor.
include the ClutterCairo actor in Clutter core
since Clutter already depends on Cairo for the Pango renderer, we can exploit the dependency to kill off the smallest of the integration libraries. this is still on the “undecided” list of things because it can be a performance hit for Clutter-based applications if the application and toolkit developers are not careful when using cairo. the bug number with the implementation is: 1251

unify the linear and bspline path behaviours
instead of having two behaviours, a single behaviour capable of switching between the two path modes - or even mixing them - would be preferred. the bug number with the implementation is: 1252.
move the repository to git
while technically not a feature, we’re in the process of putting core, all the integration libraries, bindings and toys into a set of git repositories - split up, this time. :-)

since some of the items have already landed in trunk, we might be ableto squeeze in some other GPU-related feature, like exposing the GL lighting API (see bug number: 1254).

the release date for 1.0 depends on the stabilization process of the features that are going to land in this cycle. hopefully, we’ll be able to keep up with the 5/6 months cycle we have followed until now - so 0.9 should be out by December 2008 and 1.0 should be ready by January/February 2009.

after the 1.0 release, the API in Clutter core will be permanently frozen for the 1.x series: only additions and deprecations will be allowed, but no changes or removals. we obviously are going to add features on the stable series, so you can expect a 1.2 and then a 1.4 and then a 1.6 and possibly more. we also know that stagnation is an issue, so we’re going to branch fairly early for the 2.0 cycle (ideally soon after 1.0) so that it will be possible to keep experimenting without ruining the fun of application and integration libraries developers. we don’t have a release date for 2.0 yet, but we expect the 1.x API series to continue for at least a couple of years.

stay tuned for more news from the Clutter team!