Blog
Clutter 1.9.2 - developers snapshot
Good news, everyone!
The first Clutter developers snapshot towards the 1.10 stable release is now available at:
http://source.clutter-project.org/sources/clutter/1.9/
http://download.gnome.org/sources/clutter/1.9/
SHA256 Checksum:
90d5bf72d34b3163c57010484a27d22955dacbb2cd7872391960de160a1d3a4d clutter-1.9.2.tar.xz
Clutter is a library for creating compelling, dynamic and portable graphical user interfaces. Clutter is released under the terms of the GNU Lesser General Public License, version 2.1 or (at your option) later.
Release Notes
- This version of Clutter is the first unstable release of the 1.9 cycle.
- This version is API and ABI compatible with the current stable release of Clutter.
- There is no stability guarantee for the API that has been added during an unstable cycle.
- Installing the contents of this release will overwrite the files from the installation of the current release of Clutter.
- Bugs should be reported on the Clutter Bugzilla product, at: http://bugzilla.gnome.org/enter_bug.cgi?product=clutter.
List of changes since Clutter 1.8.0
- Multi-backend build, and run-time backend selection
- Clutter can be built with support for multiple backends in the same shared library; the backend singleton is determined at run-time, either with the default backend for the platform, or using the value of the CLUTTER_BACKEND environment variable.
- GDK windowing system backend
- A new backend has been added, which uses the GDK API for creating the drawing surface, as well as receiving the windowing system and input events.
- Show a hint when ClutterText is in password mode
- If the password-hint-time ClutterSettings property is set to a non zero value, the last character entered inside a ClutterText actor when in password mode will be shown in plain for the duration of the timeout, before being replaced by the glyph chosen as the password character.
- Improve Windows build support
- Clutter now provides project files to build the library using Visual Studio 9 and Visual Studio 10. Also, the scripts to build Clutter using MinGW have been improved.
- Remove the requirement for using clutter_threads_init()
- Threads are initialized by default (depending on the platform), so there is no need to call clutter_threads_init().
- Deprecate the default ClutterStage
- The semantics of the default Stage were not obvious, and had the tendency to confuse the user.
- Move the deprecated headers into their own directory
- This should help developers identify the deprecated API.
- Change deprecation policy
- Deprecated functions are now marked using compiler annotations, instead of being forcibly disabled through pre-processor directives from the headers. Deprecations will cause compiler warnings, and thus are enabled by default. If you're building your project with compiler flags that consider every warning a fatal error, you can use the symbol CLUTTER_DISABLE_DEPRECATION_WARNINGS to disable the deprecation warnings.
- Translation updates
- Portuguese, Assamese, Punjabi, Tamil, Oriya, Telugu, French, German, Danish, Traditional Chinese (Hong Kong and Taiwan), Catalan, Esperanto, Lithuanian, Galician, Norwegian bokmål, Slovenian, Hebrew, Bulgarian.
List of bug fixes since Clutter 1.8.0
[bugzilla.gnome.org]
- 652588 - add support for password hint in ClutterText
- 659625 - mingw32: Update the build script to compile 1.8.0
- 659601 - offscreen effects on children of containers also with an offscreen effect get a wrong viewport
- 659928 - Two strings are not marked as translatable
- 659893 - clutter-main: Reword translator comment for default:LTR
- 656663 - Remove internal usage of ClutterGeometry in StageWindow
- 660354 - Add paint-deform-tiles option to CLUTTER_DEBUG
- 660471 - ClutterActor: Add clutter_actor_has_effects
- 660512 - ClutterShaderEffect recompiles the shader for every instance
- 660623 - clutter-actor-meta: Fix _clutter_meta_group_has_metas_no_internal
- 660985 - memory leak in clutter_box_layout.c
- 661015 - Add clutter_unicode_to_keyval function
- 660786 - Deprecate clutter_[sg]et_font_flags()
- 661887 - auto-resize of ClutterCairoTexture does not work correctly
- 657434 - Add a GDK backend to Clutter
- 663332 - orca reads my password in gnome-shell policykit dialogs
- 663594 - Minor whitespace parsing bug in clutter_color_from_string
- 663733 - clutter-stage-x11: Make sure to set geometry x and y
- 651718 - Make tests work on platforms supporting only a single stage
- 663999 - The removal of per-backend CLUTTER_VBLANK envvar had unwanted cruft in the Win32 backend
- 663720 - DeformEffect: Avoid redrawing actors on vertices invalidation
- 663636 - Use newer Cogl API in ClutterDeformEffect
Special thanks to
Chun-wei Fan, for building, testing, and keeping up to date the Visual Studio project files.
Many thanks to
Neil Roberts, Rico Tzschichholz, Robert Bragg, Adel Gadllah, Lionel Landwerlin, Alexandre Franke, Colin Walters, Daniel Mustieles, Giovanni Campagna, Piotr Drąg, krishnababu k, A S Alam, Alexander Shopov, Algimantas Margevičius, Ask H. Larsen, Bruno Brouard, Carles Ferrando, Chao-Hsiung Liao, Craig R. Hughes, Damien Lespiau, Duarte Loreto, Florian Müllner, Fran Dieguez, Fran Diéguez, Håkon Løvdal, I Felix, Jasper St. Pierre, Jorge González, Joseph Scheuhammer, Kjartan Maraas, Kristjan SCHMIDT, Manoj Kumar Giri, Marc-André Lureau, Mario Blättermann, Matej Urbančič, Matthias Clasen, Nilamdyuti Goswami, Sunjin Yang, Tomeu Vizoso, Yaron Shahrabani, Zan Dobersek, Мирослав Николић.
Have fun with Clutter!
Who Wrote Clutter 1.8?
Continuing the series from the previous instalment, let's see who contributed to Clutter during the 1.7 cycle that led to the Clutter 1.8.0 release.
Clutter 1.8's development cycle saw 747 changes from 62 distinct committers, including translators. A grand total of 173815 lines were added, and 181354 were removed — giving us a delta of 7539 lines removed from the overall count. Obviously, a lot of this churn is due to the move of Cogl to a separate repository.
Let's see the breakdown for developers.
| Developers with the most changesets | ||
|---|---|---|
| Emmanuele Bassi | 346 | 46.3% |
| Robert Bragg | 115 | 15.4% |
| Neil Roberts | 87 | 11.6% |
| nobled | 18 | 2.4% |
| Alejandro Piñeiro | 11 | 1.5% |
| Tomeu Vizoso | 9 | 1.2% |
| Philippe Normand | 9 | 1.2% |
| Jasper St. Pierre | 6 | 0.8% |
| Elliot Smith | 6 | 0.8% |
| Chris Lord | 5 | 0.7% |
| Damien Lespiau | 4 | 0.5% |
| Øyvind Kolås | 4 | 0.5% |
| Peter Ward | 4 | 0.5% |
| Kirk A. Baker | 3 | 0.4% |
| James Athey | 3 | 0.4% |
| Craig R. Hughes | 2 | 0.3% |
| Dan Winship | 2 | 0.3% |
| Samuel Degrande | 2 | 0.3% |
| Adam Jackson | 2 | 0.3% |
| Rui Matos | 1 | 0.1% |
| Matthias Clasen | 1 | 0.1% |
| Alejo Pacin | 1 | 0.1% |
| Evan Nemerson | 1 | 0.1% |
| Bastian Winkler | 1 | 0.1% |
| Carlos Garnacho | 1 | 0.1% |
| Dinh Bowman | 1 | 0.1% |
| Colin Walters | 1 | 0.1% |
| Alexandre Franke | 1 | 0.1% |
| Dioselin | 1 | 0.1% |
| Adel Gadllah | 1 | 0.1% |
| Viatcheslav Gachkaylo | 1 | 0.1% |
| Developers with the most changed lines | ||
|---|---|---|
| Robert Bragg | 98093 | 36.1% |
| Emmanuele Bassi | 62750 | 23.1% |
| Neil Roberts | 5367 | 2.0% |
| Elliot Smith | 3026 | 1.1% |
| Tomeu Vizoso | 1808 | 0.7% |
| Øyvind Kolås | 1616 | 0.6% |
| Alejandro Piñeiro | 1069 | 0.4% |
| Philippe Normand | 1022 | 0.4% |
| Jasper St. Pierre | 650 | 0.2% |
| nobled | 638 | 0.2% |
| Jorge González | 583 | 0.2% |
| Chris Lord | 99 | 0.0% |
| Craig R. Hughes | 87 | 0.0% |
| Damien Lespiau | 57 | 0.0% |
| Kirk A. Baker | 51 | 0.0% |
| Carlos Garnacho | 46 | 0.0% |
| Samuel Degrande | 31 | 0.0% |
| Viatcheslav Gachkaylo | 24 | 0.0% |
| James Athey | 22 | 0.0% |
| Colin Walters | 22 | 0.0% |
| Evan Nemerson | 20 | 0.0% |
| Peter Ward | 15 | 0.0% |
| Dioselin | 12 | 0.0% |
| Adel Gadllah | 8 | 0.0% |
| Adam Jackson | 7 | 0.0% |
| Alejo Pacin | 5 | 0.0% |
| Dan Winship | 4 | 0.0% |
| Matthias Clasen | 4 | 0.0% |
| Rui Matos | 2 | 0.0% |
| Bastian Winkler | 2 | 0.0% |
| Dinh Bowman | 1 | 0.0% |
| Alexandre Franke | 1 | 0.0% |
| Developers with the most lines removed | ||
|---|---|---|
| Robert Bragg | 85173 | 47.0% |
| James Athey | 3 | 0.0% |
| Adel Gadllah | 1 | 0.0% |
| Dan Winship | 1 | 0.0% |
Robert was the major responsible for moving the ~80 thousand lines of Cogl from out of the Clutter repository, as well as re-organizing the repository before the split.
| Top changeset contributors by employer | ||
|---|---|---|
| Intel | 567 | 75.9% |
| (Unknown) | 107 | 14.3% |
| GNOME | 21 | 2.8% |
| Igalia | 21 | 2.8% |
| Red Hat | 14 | 1.9% |
| Collabora Ltd | 9 | 1.2% |
| Lille's Computer Science Laboratory (LIFL) | 2 | 0.3% |
| Top lines changed by employer | ||
|---|---|---|
| Intel | 180690 | 66.5% |
| (Unknown) | 63617 | 23.4% |
| GNOME | 15553 | 5.7% |
| Red Hat | 7396 | 2.7% |
| Igalia | 2432 | 0.9% |
| Collabora Ltd | 1809 | 0.7% |
| Lille's Computer Science Laboratory (LIFL) | 31 | 0.0% |
| Employers with the most hackers (total 62) | ||
|---|---|---|
| (Unknown) | 35 | 56.5% |
| GNOME | 8 | 12.9% |
| Intel | 7 | 11.3% |
| Red Hat | 7 | 11.3% |
| Igalia | 3 | 4.8% |
| Collabora Ltd | 1 | 1.6% |
| Lille's Computer Science Laboratory (LIFL) | 1 | 1.6% |
The GNOME translators community has been spectacular in picking up Clutter and localize it in 37 languages. Since Intel is still funding the work of the Clutter team, the amount of changes coming from Intel employees is still the big chunk of the overall changes; various companies in the GNOME ecosystem, though, have picked up steam — with Red Hat, Collabora, and Igalia contributing to Clutter as well as to Mx.
Clutter 1.8.2 - stable release
Good news, everyone!
The new Clutter stable release is now available at:
http://source.clutter-project.org/sources/clutter/1.8/
http://download.gnome.org/sources/clutter/1.8/
SHA256 Checksum:
dc899f26448f31cb31e72d80650b8c8ae05acacd5b5d5a44798eabaca0ddfa2f clutter-1.8.2.tar.xz
Clutter is a library for creating compelling, dynamic and portable graphical user interfaces. Clutter is released under the terms of the GNU Lesser General Public License, version 2.1 or (at your option) later.
Release Notes
- This version of Clutter is the second stable release of the 1.8 release.
- This version is API and ABI compatible with the current stable release of Clutter.
- Installing the contents of this release will overwrite the files from the installation of the current release of Clutter.
- Bugs should be reported on the Clutter Bugzilla product, at: http://bugzilla.gnome.org/enter_bug.cgi?product=clutter.
List of changes since Clutter 1.8.0
- Plug memory leaks in ClutterBoxLayout
- The list of children retrieved from the container was not being freed in each size negotiation cycle.
- Fix the handling of out-of-stage actors in OffscreenEffect
- The expansion of the viewport needed for out-of-stage actors when computing the size and position of the offscreen buffer was failing with nested effects.
- Do not complete a PaintVolume multiple times
- A missing guard was causing the lazily computed vertices of the cube to be trampled over; this caused visual artefacts as the stage-relative bounding box became unstable, leading to the wrong clip region to be used when painting.
- Update the MingW cross-compilation script
- Updated translations
- Danish, Brazilian, Serbian, Punjabi, Telugu, Assamese, German, Oriya, Esperanto, Tamil, Portuguese, Ukrainian, Traditional Chinese (Hong Kong and Taiwan), Catalan, French.
List of bug fixes since Clutter 1.8.0
[bugzilla.gnome.org]
- 659625 - mingw32: Update the build script to compile 1.8.0
- 659893 - clutter-main: Reword translator comment for default:LTR
- 659601 - offscreen effects on children of containers also with an offscreen effect get a wrong viewport
- 660985 - memory leak in clutter_box_layout.
- 661022 - Mark clutter_state_set_key() source_state_name as nullable
Many thanks to
Bruno Brouard, Neil Roberts, Carles Ferrando, Chao-Hsiung Liao, Colin Walters, Damien Lespiau, Daniel Korostil, Duarte Loreto, I Felix, Kristjan SCHMIDT, Manoj Kumar Giri, Marc-André Lureau, Mario Blättermann, Nilamdyuti Goswami, Sunjin Yang, krishnababu k, A S Alam, Мирослав Николић, Adorilson Bezerra, Ask H. Larsen.
Have fun with Clutter!
Clutter 1.8.0 - stable release
Good news, everyone!
The new Clutter stable release is now available at:
http://source.clutter-project.org/sources/clutter/1.8/
http://download.gnome.org/sources/clutter/1.8/
SHA256 Checksum:
c8bd379154d40400b19932934dfa05e8a02057bbff2455f09afda7aa6c4b5ef8 clutter-1.8.0.tar.xz
Clutter is a library for creating compelling, dynamic and portable graphical user interfaces. Clutter is released under the terms of the GNU Lesser General Public License, version 2.1 or (at your option) later.
Release Notes
- This version of Clutter is the first stable release of the 1.8 release.
- This version is API and ABI compatible with the current stable release of Clutter.
- Installing the contents of this release will overwrite the files from the installation of the current release of Clutter.
- Bugs should be reported on the Clutter Bugzilla product, at: http://bugzilla.gnome.org/enter_bug.cgi?product=clutter.
List of changes since Clutter 1.6
- Cogl moved out of tree
- The Clutter OpenGL abstraction API has been moved to a separate repository and can be used as a stand-alone shared library for GPU programming. Clutter has been modified to depend on Cogl's experimental API.
- Added ClutterGestureAction and ClutterSwipeAction
- ClutterGestureAction is a generic "pointer gesture" action; it doesn't provide an implementation: it's up to the developer to add the gesture recognition code. ClutterSwipeAction is a GestureAction sub-class that implements the "swipe" gesture. The GestureAction API is already future proof for multi-device/multi-touch, even though the multi-touch isn't currently implemented.
- Allow connecting signals to ClutterState states in ClutterScript
- When defining a scene using ClutterScript it's possible to directly connect a state inside a ClutterState object (both defined in ClutterScript or in code) to an object's signal, without using an explicit signal handler in the code.
- Add ClutterDropAction
- The ClutterDropAction is an action for allowing ClutterActors to react when an actor being dragged through ClutterDragAction crosses, or is dropped over, them.
- Mark the OSX backend as non-experimental
- The OSX backend is being developed, and maintained, so it should not be considered experimental.
- ImproveClutterCairoTexture
- Make drawing using Cairo on a ClutterCairoTexture easier to implement, by removing the requirement of handling the
cairo_tcontext manually, and by using invalidations and signals. - Documentation fixes
- New recipes were added to the Cookbook, and example code was added in the API reference of various classes.
List of changes since Clutter 1.7.90
- Add debug options to catch out-of-band transformations
- Transformations performed outside of the
::apply_transform()virtual function are problematic for Clutter, as they might break paint volume, culling, and event handling. The "oob-transform" debug mode will add a check and a warning if the expected modelview matrix as computed by Clutter is not the current modelview matrix set when painting an actor. This debug mode should help when debugging some hard to pinpoint redraw issue. - Implicitly clip to the stage viewport
- This should avoid degenerate clip regions.
- Paint editable Text actors even when empty
- If the cursor is visible we need to actually paint it.
- Do not fall back to the text color for the selection color
- This avoids invisible text in case the selected-text-color property is not set in ClutterText.
- Add a fall back to wildcard source durations in ClutterState
- This allows having wildcard sources to provide a duration for other transitions.
- Translations updates
- Indonesia, Lithuanian, Catalan, Tamil, Slovenian, Hindi, Kannada.
List of bug fixes since Clutter 1.7.90
[bugzilla.gnome.org]
- 659069 - text: Take out a nonsense fallback
- 659116 - text: We still have to paint the actor if the cursor is visible
- 659200 - [PATCH] Use correct duration on ClutterState transitions with wildcard source
- 659501 - Queue a redraw when removing an effect by name
Many thanks to all contributors of the 1.7 development cycle
Robert Bragg, Neil Roberts, Daniel Mustieles, nobled, Alejandro Piñeiro, Philippe Normand, Tomeu Vizoso, Marek Černocký, Matej Urbančič, Elliot Smith, Jasper St. Pierre, Piotr Drąg, Chris Lord, Damien Lespiau, Kjartan Maraas, Muhammet Kara, Peter Ward, Shankar Prasad, Øyvind Kolås, Andika Triwidada, Gil Forcada, James Athey, Kirk A. Baker, Adam Jackson, Andrej Žnidaršič, Aurimas Černius, Christian Kirbach, Craig R. Hughes, Dan Winship, Fran Dieguez, Manoj Kumar Giri, Mario Blättermann, Rajesh Ranjan, Samuel Degrande, Adel Gadllah, Alejo Pacin, Alexandre Franke, Bastian Winkler, Bruce Cowan, Carlos Garnacho, Chao-Hsiung Liao, Colin Walters, Daniel Nylander, Dinh Bowman, Dioselin, Edvaldo de Souza Cruz, Evan Nemerson, I Felix, Jorge González, Kenneth Nielsen, Kristjan SCHMIDT, Martin Srebotnjak, Matthias Clasen, Miguel Bouzada, Og B. Maciel, Ray Wang, Rudolfs Mazurs, Rui Matos, Viatcheslav Gachkaylo, Xandru Armesto, Yuri Myasoedov.
Have fun with Clutter!
Clutter 1.7.90 (release candidate)
Good news, everyone!
A new Clutter snapshot is now available at:
http://source.clutter-project.org/sources/clutter/1.7/
http://download.gnome.org/sources/clutter/1.7/
SHA256 Checksum:
36b98d400ce9397e66e7b4f6f424a7185dadba0350651ae20964f494ec40b190 clutter-1.7.90.tar.xz
Clutter is a library for creating compelling, dynamic and portable graphical user interfaces. Clutter is released under the terms of the GNU Lesser General Public License, version 2.1 or (at your option) later.
Release Notes
- This version of Clutter is the first release candidate for the 1.8 release.
- The API added during the 1.7 development cycle should be considered frozen.
- This version is API and ABI compatible with the current stable release of Clutter.
- Installing the contents of this release will overwrite the files from the installation of the current release of Clutter.
- Bugs should be reported on the Clutter Bugzilla product, at: http://bugzilla.gnome.org/enter_bug.cgi?product=clutter.
List of changes since Clutter 1.7.14
- Make sure that setting :use-markup does not depend on the order
- Setting the :use-markup property should yield the same results regardless of whether the :text property is also set before or after. This applies to ClutterText defined using ClutterScript as well.
- Protect against multiple unrealize call on ClutterStage
- This should fix a segmentation fault in clutter-gtk when unrealize() is called multiple times on an already unrealized stage.
- Fortify ATK event listener
- Make sure that we subscribe only to the events we want to, and avoid warnings caused by AT-SPI, as well as a leak.
- Documentation fixes
- Translation updates
- Indonesian, British English, Brazilian Portuguese, Oriya, Polish, Latvian, Hindi, Danish, Chinese (Simplified), Lithuanian, Turkish, Russian, Spanish, Asturian.
List of bug fixes since Clutter 1.7.14
[bugzilla.gnome.org]
- #651940 - "use-markup" is ignored when set after "text"
- #658721 - cally: Fix up event listener registration minimally
[buzgilla.clutter-project.org]
- #2629 - ClutterText thinks priv->text can be NULL, but it can't
Many thanks to
Muhammet Kara, Andika Triwidada, Manoj Kumar Giri, Piotr Drąg, Aurimas Černius, Bruce Cowan, Edvaldo de Souza Cruz, Jorge González, Kenneth Nielsen, Matthias Clasen, Neil Roberts, Og B. Maciel, Rajesh Ranjan, Ray Wang, Rudolfs Mazurs, Xandru Armesto, Yuri Myasoedov
Have fun with Clutter!
Clutter 1.7.14 (snapshot)
Good news, everyone!
A new Clutter snapshot is now available at:
http://source.clutter-project.org/sources/clutter/1.7/ http://download.gnome.org/sources/clutter/1.7/
SHA256 Checksum:
a2ad6f09df6dc6cf4c495446053fc0b48e9fc1d9b4d1a63a0a0003a3a92bcae1 clutter-1.7.14.tar.xz
Clutter is a library for creating compelling, dynamic and portable graphical user interfaces. Clutter is released under the terms of the GNU Lesser General Public License, version 2.1 or (at your option) later.
Release Notes
- This is an unstable snapshot of Clutter; there are no compatibility guarantees for API added during a development cycle.
- This version is API "slushy": the API added during this cycle is to be considered generally frozen, unless issues arise before the 1.8.0 release.
- This version is API and ABI compatible with the current stable release of Clutter.
- Installing the contents of this release will overwrite the files from the installation of the current release of Clutter.
- Bugs should be reported on the Clutter Bugzilla product, at: http://bugzilla.gnome.org/enter_bug.cgi?product=clutter.
List of changes since Clutter 1.7.12
- Use newer version of ATK
- Cally now depends on the latest version of ATK, to reduce the amount of ad hoc code needed and to use newer features that simplify the implementation of accessible objects in Clutter.
- Allow using Layout Managers with generic containers
- Layout managers should not assume that they are allocating the whole area available from the Actor using them; this allows actors that support concepts like padding or margin to use a LayoutManager internally for its children.
- Cookbook updates
- Add a recipe on how to bind a ClutterState to the signals of objects defined in ClutterScript. We also install the cookbook examples inside the
$datadir/clutter-1.0/cookbook/examplesdirectory. - Improve examples in the API reference
- Some of the interactive test suite units are actually good examples of how to use the Clutter API; we can use the XInclude tags to include the source code inside the API reference.
- Ensure thread safety of the repaint functions add/removal
- Fix a long standing issue where adding or removing repaint functions was not acquiring a lock; now it's safe to manipulate the repaint functions list from different threads.
- Make the ClutterText:line-wrap property work again
- In 1.2 the :line-wrap property was broken, and ClutterText would paint a PangoLayout wrapping until it fit the height of the allocation regardless of whether the :line-wrap property was set to FALSE or TRUE. Now we clip the PangoLayout before rendering it, if the :line-wrap property is set to FALSE and there is no ellipsization policy set.
- Disable redirection to offscreen buffer by default
- Whenever a ClutterActor with children was not fully opaque, the actor was redirected to an FBO, to perform correct opacity computations. Sadly, this can lead to 3x slowdowns, given the amount of framebuffer objects created and the state changes that have to be performed. We decided to turn off this feature by default, to avoid the performance hit. It is still possible to enable this feature on a per-actor basis, though, and will work to reduce the hit in future versions of Cogl, Clutter and the drivers.
List of bug fixes since Clutter 1.7.2
[bugzilla.gnome.org]
- 657681 - Crash when destroying an actor while dragging it
[buzgilla.clutter-project.org]
- 2339 - ClutterText in 1.4 line-wraps even if line-wrap is disabled
Many thanks to
Alejandro Piñeiro, Shankar Prasad, Chao-Hsiung Liao, Dan Winship, Daniel Mustieles, Daniel Nylander, Fran Dieguez, Marek Černocký, Robert Bragg
Have fun with Clutter!
Cogl 1.7.8
Good news, everyone!
A new Cogl snapshot is now available at:
http://source.clutter-project.org/sources/cogl/1.7/
http://download.gnome.org/sources/cogl/1.7/
Cogl is a small open source library for using 3D graphics hardware to draw pretty pictures. The API departs from the flat state machine style of OpenGL and is designed to make it easy to write orthogonal components that can render without stepping on each others toes.
As well as aiming for a nice API, we think having a single library as opposed to an API specification like OpenGL has a few advantages too; like being able to paper over the inconsistencies/bugs of different OpenGL implementations in a centralized place, not to mention the myriad of OpenGL extensions. It also means we are in a better position to provide utility APIs that help software developers since they only need to be implemented once and there is no risk of inconsistency between implementations.
Having other backends, besides OpenGL, such as drm, Gallium or D3D are options we are interested in for the future.
REQUIREMENTS
Cogl currently only requires:
- GLib ≥ 2.26.0
- OpenGL ≥ 1.3 (or 1.2 + multitexturing), or OpenGL ES 2.0 (or 1.1)
- GLX, AGL, WGL or an EGL implementation
Cogl also has optional dependencies:
- GDK-Pixbuf ≥ 2.0 — for image loading
- Cairo ≥ 1.10 — for debugging texture atlasing (debug builds only)
The optional Cogl Pango library requires:
- Cairo ≥ 1.10
- PangoCairo ≥ 1.20
On X11, Cogl depends on the following extensions
- XComposite ≥ 0.4
- XDamage
- XExt
- XFixes ≥ 3
When running with OpenGL, Cogl requires at least version 1.3 or 1.2 with the multitexturing extension. However to build Cogl
you will need the latest GL headers which can be obtained from the Khronos website.
DOCUMENTATION
The 1.x API is documented here: http://docs.clutter-project.org/docs/cogl/1.7
The experimental 2.0 API is documented here: http://docs.clutter-project.org/docs/cogl-2.0-experimental/1.7
RELEASE NOTES
- This is a development snapshot release so there are not API or ABI stability guarantees at this point for new APIs since the last stable release.
- This Cogl release exports a 1.x API (For third-party Clutter developers to write custom actors) and an experimental 2.0 API which allows standalone application development.
- Internally Clutter depends on the Cogl 2.0 experimental API so we maintain runtime compatibility between the 1.x API and experimental 2.0 APIs, which means developers can mix-and-match their use of the APIs in the same process. API selection is done per-file by including a line like:
#define COGL_ENABLE_EXPERIMENTAL_2_0_APIbefore including cogl.h or clutter.h. - We recommend using the 2.0 API if you don't mind updating your code once in a while as this API evolves and stabilizes. We promise not to break the 2.0 API during a 1.x stable cycle and hope that will encourage people to experiment with it and give critical feedback! For example after releasing 1.8, the 2.0 API will be stable for 1.8.1, 1.8.2, 1.8.3 etc, but may update for 1.9/1.10.
- Because we export the 1.x and 2.0 APIs from one libcogl.so the library versioning, and thus ABI, can only be considered as stable as our 2.0 API — i.e. during a stable release 1.x cycle.
- Please report bugs using the Cogl Bugzilla product.
Clutter 1.7.4 (snapshot)
Good news, everyone!
A new Clutter snapshot is now available at:
http://source.clutter-project.org/sources/clutter/1.7/
http://download.gnome.org/sources/clutter/1.7/
SHA256 Checksum:
faab725d0e1d8908fc11abfe07cf48e08b19eec028e0d8909dc8e90c0fd2ef6f clutter-1.7.4.tar.xz
Clutter is a library for creating compelling, dynamic and portable graphical user interfaces. Clutter is released under the terms of the GNU Lesser General Public License, version 2.1 or (at your option) later.
Release Notes
- This is an unstable snapshot of Clutter; there are no compatibility guarantees for API added during a development cycle.
- This version is API and ABI compatible with the current stable release of Clutter.
- Installing the contents of this release will overwrite the files from the installation of the current release of Clutter.
- Bugs should be reported on the Clutter Bugzilla product, at: http://bugzilla.gnome.org/enter_bug.cgi?product=clutter.
List of changes since Clutter 1.7.2
- Unify the GLX and EGL backends to be a single code base
- The GLX and EGL backends shared most of their code, and with the split out Cogl, we can unify the code base into a single backend. The API as well as the ABI are preserved.
- Restore a wider range of Z values for actors
- The computation for the near and far planes given the perspective transformation used to set up the viewport was broken in 1.7.2, and the distance from the focal point was greatly reduced. This has now been fixed.
- Bump up the dependency of Cogl
- New windowing system API in Cogl required bumping the minimum version to the latest development snapshot, 1.7.2.
- Add ClutterDropAction
- The ClutterDropAction is an action for allowing ClutterActors to react when an actor being dragged through ClutterDragAction crosses, or is dropped over, them.
- Add a performance test suite
- This suite is an addition to our conformance and interactive test suites; the infrastructure can be used by buildbots and report tools to track performance regressions across various commits.
- Documentation and annotation fixes
- Build fixes
List of bug fixes since Clutter 1.7.2
[bugzilla.gnome.org]
- #650329 - ClutterModifierType: Port fix from GDK to clutter's GDK copy
- #652566 - Clutter-CRITICAL **: _clutter_stage_get_window: assertion `CLUTTER_IS_STAGE (stage)' failed
- #651784 - transition=spin / transition=spin-text is broken in pinpoint with Clutter master
- #652842 - Add a Drop action
- #653066 - ClutterDragAction does not support multiple pointers
- #653307 - Change the signature of ClutterTexture::load-finished to give a GError, instead of a gpointer
- #653607 - Arrays not annotated as such for introspection bindings
- #651079 - ClutterText "blinks" when deleting text after going out of bounds
- #650675 - clutter-media: mention the asynchronous behavior of set_playing()
[buzgilla.clutter-project.org]
- #2625 - The furthest visible z value is really low
Many thanks to:
Robert Bragg, Neil Roberts, Peter Ward, Colin Walters, Daniel Mustieles, Jasper St. Pierre, Samuel Degrande, Øyvind Kolås
Have fun with Clutter!
Clutter 1.7.2 (snapshot)
Good news, everyone!
A new Clutter snapshot is now available at:
http://source.clutter-project.org/sources/clutter/1.7/ http://download.gnome.org/sources/clutter/1.7/
SHA256 Checksum:
7b9b24d82ccb28fdb94b7ee879d8f102e810ae00364f9071d46b0aca0d562ce7 clutter-1.7.2.tar.bz2
Clutter is a library for creating compelling, dynamic and portable graphical user interfaces. Clutter is released under the terms of the GNU Lesser General Public License, version 2.1 or (at your option) later.
Release Notes
- This is an unstable snapshot of Clutter; there are no compatibility guarantees for API added during a development cycle.
- This version is API and ABI compatible with the current stable release of Clutter.
- Installing the contents of this release will overwrite the files from the installation of the current release of Clutter.
- Bugs should be reported on the Clutter Bugzilla product, at: http://bugzilla.gnome.org/enter_bug.cgi?product=clutter.
List of changes since Clutter 1.6.0
- Cogl moved out of tree
- The Clutter OpenGL abstraction library has been moved to a separate repository and can be used as a stand-alone shared library. Clutter has been modified to depend on Cogl's experimental API.
- Correctly composite non fully opaque children
- Non fully opauqe actors with non fully opaque children will automatically redirect children paint operations to offscreen buffers, which allows correct composition taking into account the overall opacity of the scene's sub-graph. The same mechanism can be used to create a paint cache, and paint that cache when the actor or its children do not change, instead of painting the whole sub-graph again.
- Allow connecting signals to ClutterState states in ClutterScript
- When defining a scene using ClutterScript it's possible to directly connect a state inside a ClutterState object (both defined in ClutterScript or in code) to an object's signal, without using an explicit signal handler in the code.
- Long-press handling in ClutterClickAction
- ClutterClickAction will detect a long-press gesture and emit signals to query, activation and cancellation.
- Added ClutterGestureAction and ClutterSwipeAction
- ClutterGestureAction is a generic "pointer gesture" action; it doesn't provide an implementation: it's up to the developer to add the gesture recognition code. ClutterSwipeAction is a GestureAction sub-class that implement the "swipe" gesture. The GestureAction API is already future proof for multi-device/multi-touch, even though the multi-touch isn't currently implemented.
- Allow Effects to influence picking
- Effects that change the geometry of a ClutterActor should also be allowed to change the picking code to make sure that event handling keeps working. ClutterEffect has a new pick() virtual function for these cases.
List of bugs fixes since Clutter 1.6.0
[bugzilla.clutter-project.org]
#2257 - clutter fails to link on OS X (10.6)
#2447 - atkevents example crashes is the accessibility is disabled
#2482 - Cally should avoid to provide a default name and description
#2484 - It would be nice to have the old cally Changelog
#2553 - new ClutterText API to access the Pango layout offsets
#2555 - Per-framebuffer journal causes corruptions
#2562 - Crash upon running Clutter-based programs
#2585 - add ClutterAction for slide gestures
#2588 - Assertion failure in _cogl_pipeline_set_layer_texture_target
#2595 - clutter-text: Add a selected-text-color
#2597 - CallyStage doesn't have a proper parent
#2599 - The paint volume for ClutterText is wrong
#2602 - Expose events ignored when doing clipped redraws
#2610 - Add recipe about implementing a ClutterEffect
#2619 - Removes the addition of the .exe extension to unit-test scripts, on win32.
#2620 - _cogl_offscreen_new_to_texture_full() leaks reference when failing
#2621 - Clutter segfaults if you queue a redraw of an unmapped actor inside the notify::mapped callback
#2631 - [PATCH] Enable evdev ClutterInputDevice objects on creation, as the other backends do
#2632 - [PATCH] GL_IMG_TEXTURE_NPOT enables non-power-of-two features
#2633 - Make the pick id pool a per-Stage resource
#2640 - [patch] allow single-bit imprecision in some conformance tests
#2644 - Quartz backend: "Bare" modifier keypresses not generating events
#2652 - clutter_actor_queue_redraw() on destroyed stage
#2655 - segfault when disposing a slave device without a master
#2656 - Clutter can crash when destroying a stage from an event
#2667 - git head won't build under Win32
[bugzilla.gnome.org]
#650665 - CallyActor shouldn't add by default "press", "release" and "click"
#647875 - Use Cairo to dump the pick buffers
#647876 - Make the pick if pool a per-Stage resource
#650487 - Sync allocation in ClutterBoxLayout with the one in GtkBox
#650597 - clutter-id-pool: fix warning on bad pick
#650650 - clutter-offscreen-effect: use target size when setting up the viewport
#651700 - Give a chance to effects for running when picking
#652129 - Use "const" instead of G_CONST_RETURN
Many thanks to
Neil Roberts, Robert Bragg, nobled, Daniel Mustieles, Elliot Smith, Matej Urbančič, Alejandro Piñeiro, Chris Lord, Marek Černocký, Tomeu Vizoso, Jasper St. Pierre, James Athey, Piotr Drąg, Øyvind Kolås, Adam Jackson, Andrej Žnidaršič, Kjartan Maraas, Adel Gadllah, Alexandre Franke, Christian Kirbach, Craig R. Hughes, Dan Winship, Dioselin, Kristjan SCHMIDT, Mario Blättermann, Miguel Bouzada, Peter Ward, Philippe Normand, Samuel Degrande, Viatcheslav Gachkaylo
Have fun with Clutter!
Presenting: a Media Explorer
Chris has finally been able to reveal what he and others have been working on:
the Media Explorer is using Clutter and Mx, alongside with other GNOME technologies like GStreamer and Grilo. the development resulted in various bug fixes in Clutter that will help other projects as well, so if you're using Clutter make sure to buy a beer to Chris, Thomas, Damien, Lionel and Michael. :-)
Change of the Git repositories for Clutter
hi all;
as you might have been aware, for the past couple of weeks the Git repositories at clutter-project.org have had issues with the anongit protocol (git:// URIs) support. we've had some help from the MeeGo infrastructure team, but they advised moving the repositories to another hosting for various reasons (resources and unresolved hw and sw issues at the top).
I want to personally apologize for the issues this service outage has caused to all Clutter users. we've been having these issues for the best part of these three months, and I'd like to personally thank the OTC infrastructure team for their help.
even though since the beginning Clutter has been catering for different platforms, we always considered ourselves to be a part of the GNOME project: the technologies we use, and the contributions we receive are a proof of that. on top of that, as soon as we started having issues, the GNOME infrastructure team graciously offered their help and support.
for these reasons, we decided to move the Git repositories and the Bugzilla products over to the gnome.org infrastructure.
the authoritative repository for the Core Clutter API becomes, as of today git.gnome.org. the URIs change to:
read-only: git://git.gnome.org/clutter
read-write: ssh://USERNAME@git.gnome.org/git/clutter
if you have a clone of the repository, you can point it to the new URI simply by doing:
# read-only
git remote set-url origin git://git.gnome.org/clutter
# read-write:
git remote set-url origin ssh://USERNAME@git.gnome.org/git/clutter
the Bugzilla migration is in progress; we're moving all the bugs filed on clutter-project.org, and it will take some time. I'll do another
announcement as soon as the products are available, and I'll close bugzilla.clutter-project.org once that happens.
while this obviously holds for Clutter Core, we are hosting other modules on clutter-project.org; we've already started migrating some of them to git.gnome.org and other hosting services. the authoritative repositories are listed on the wiki.
the wiki page will be updated during the migration, and it will be the authoritative source for the repositories.
again, I'd like to apologize for the issues, and would like to thank the OTC team for their support over the past couple of years, and the GNOME infrastructure team for the assistance.
now, hopefully, you'll be able to resume having fun with Clutter. :-)
Clutter 1.6.2 - stable release
good news, everyone!
here's to you the second stable release of Clutter 1.6:
Download
Clutter 1.6.2 is now available for download at:
http://source.clutter-project.org/sources/clutter/1.6/
A mirror is also available here:
http://download.gnome.org/sources/clutter/1.6/
SHA256 Checksums:
55583104a7039e32cd70307db5e1dde553f80ced54de8b9dddee7b9afe1e30ec clutter-1.6.2.tar.bz2
Clutter is an open source software library for creating portable, fast, compelling and dynamic graphical user interfaces. Clutter is licensed under the terms of the GNU Lesser General Public License version 2.1.
Requirements
- GLib >= 2.26.0
- JSON-GLib >= 0.12
- Cairo >= 1.10
- Pango >= 1.20
- Atk >= 1.7
- OpenGL >= 1.3 (or 1.2 + multi-texturing), OpenGL|ES 1.1 or OpenGL|ES 2.0
- GLX, WGL, Quartz or an EGL Implementation
Depending on the platform and the configuration options Clutter also depends on:
- GDK-Pixbuf >= 2.0
- UProf >= 0.3
Release Notes
- This is the second stable release of the 1.6 cycle.
- This version is API and ABI compatible with the current stable release of Clutter.
- Installing the contents of this release will overwrite the files from the installation of the current stable release of Clutter.
- Bugs should be reported on the Clutter Project bugzilla.
What's new in Clutter 1.6.2 since Clutter 1.6.0
- Fix building the Clutter Cookbook from the released tarballs.
- Set the input device field in ClutterEvent even when they have been allocated by Clutter.
- Fix the color comparison when setting the layer combine constant.
- Fix memory corruption when removing the last reference on a Cogl vertex buffer object.
- Fixes for the OSX backend.
List of bugs fixed since Clutter 1.6.0
- #2540 - coobook examples do not build from tarball
- #2544 - Using vertex buffers causes memory corruption when you unref the CoglHandle
- #2545 - Broken event handling in OS X backend
- #2549 - Fix lib locations in *.pc.in
Many thanks to
Neil Roberts, Viatcheslav Gachkaylo
Have fun with Clutter!
Clutter 1.6.0 - stable release
good news, everyone!
here's to you the first stable release of Clutter 1.6:
Download
Clutter 1.6.0 is now available for download at:
http://source.clutter-project.org/sources/clutter/1.6/
A mirror is also available here:
http://download.gnome.org/sources/clutter/1.6/
SHA256 Checksums:
7e956fad7b8f7aa78500c155c824584201e2b8c4117da61a1f7ec2c120945400 clutter-1.6.0.tar.bz2
Clutter is an open source software library for creating portable, fast, compelling and dynamic graphical user interfaces. Clutter is licensed under the terms of the GNU Lesser General Public License version 2.1.
Requirements
- GLib >= 2.26.0
- JSON-GLib >= 0.12
- Cairo >= 1.10
- Pango >= 1.20
- Atk >= 1.7
- OpenGL >= 1.3 (or 1.2 + multi-texturing), OpenGL|ES 1.1 or OpenGL|ES 2.0
- GLX, WGL, Quartz or an EGL Implementation
Depending on the platform and the configuration options Clutter also depends on:
- GDK-Pixbuf >= 2.0
- UProf >= 0.3
Release Notes
- This is the first stable release of the 1.6 cycle.
- This version is API and ABI compatible with the current stable release of Clutter.
- Installing the contents of this release will overwrite the files from the installation of the current stable release of Clutter.
- Bugs should be reported on the Clutter Project bugzilla.
What's new in Clutter 1.6 since Clutter 1.4
For individual developers snapshot announcements, see the clutter-announce archives: 1.5.2, 1.5.4, 1.5.6, 1.5.8, 1.5.10, 1.5.12, 1.5.14.
- ClutterActor implementations can now define the 3D volume they occupy during paint. This allows Clutter to correctly size FBOs and to perform clipped updates of the stage, along with client-side culling, to improve performance while painting a scene.
- Add ClutterPathConstraint and ClutterSnapConstraint, two constraints that can be used to simplify building user interfaces.
- Deprecate ClutterBehaviour and its sub-classes; all functionality should now be available through the animation framework API.
- Provide a ClutterTimeline:auto-reverse property, for automatically reverse the direction of a timeline when it's complete.
- Add an experimental Wayland backend.
- Parse CSS3 color definitions for ClutterColor, and provide a list of globally allocated color definitions.
- Provide a software-based fast path for picking.
- Implement generation of GLSL shaders for describing the state of the pipeline; this is the default backend for GLES 2.0, but it can also be used instead of the ARBfp default backend for GL.
- Allow the full description of column types and row values of ClutterListModel in ClutterScript definitions.
- Allow using XI2 for event handling on X11, and fill out per-event axis data on pointer devices.
- Enable VBO on GLES 2.0, and clipped redraws on EGL.
What's new in Clutter 1.6.0 since Clutter 1.5.14
- Remove more private symbols from the X11 backend.
- Add CLUTTER_BIND_POSITION and CLUTTER_BIND_SIZE values to the ClutterBindCoordinate enumeration; these are short-hand values for binding both X and Y, or width and height, instead of requiring two ClutterBindConstraint instances.
- Clean up in the X11 backend to reduce indirection.
- Small clean ups in the Win32 backend.
- Make Shift+Backspace behave like Backspace in ClutterText.
- Emit the ::new-frame signal even on the first frame of ClutterTimeline, to allow setting up the initial state of an animation.
- Fix an invalid memory access in ClutterAnimator.
- Flush the per-framebuffer journal when switching between framebuffers.
- Generalize updating GLES2 uniforms.
- Add debug code for tracing clipping in Cogl.
- Improve the OSX event loop, re-using the same implementation as GDK. Also, provide simple, core-like device support.
List of bugs fixed since Clutter 1.5.12
- #2490 - OS X backend event loop improved
- #2530 - animator: Animator uses key after freeing it
- #2534 - Incorrect description of function 'clutter_actor_pop_internal'
Many thanks to all contributors to Clutter 1.6:
Robert Bragg, Neil Roberts, Damien Lespiau, Elliot Smith, Chris Lord, Owen W. Taylor, Bastian Winkler, Tomeu Vizoso, Kristian Høgsberg, nobled, Lucas Rocha, Ole André Vadla Ravnås, Adel Gadllah, Alexandre Quessy, Andika Triwidada, Johan Bilien, Jussi Kukkonen, Piotr Drąg, Alejandro Piñeiro, Aron Xu, Colin Walters, Evan Nemerson, Giovanni Campagna, Maxim Ermilov, Mike Owens, Nguyễn Thái Ngọc Duy, Ray Strode, Rob Bradford, Roland Peffer, Stephen Kennedy, Viatcheslav Gachkaylo, muflone.
Have fun with Clutter!
Clutter 1.5.14 - 1.6.0 release candidate
good news, everyone!
here's to you the sixth developers snapshot of Clutter 1.5
Download
Clutter 1.5.14 is now available for download at:
http://source.clutter-project.org/sources/clutter/1.5/
A mirror is also available here:
http://download.gnome.org/sources/clutter/1.5/
SHA256 Checksums:
0f80b4992bd63b6580e698687b64b8025a0de9dccdfcd0bcf960cb0d36ad56a3 clutter-1.5.14.tar.bz2
Clutter is an open source software library for creating portable, fast, compelling and dynamic graphical user interfaces. Clutter is licensed under the terms of the GNU Lesser General Public License version 2.1.
Requirements
- GLib >= 2.26.0
- JSON-GLib >= 0.12
- Cairo >= 1.10
- Pango >= 1.20
- Atk >= 1.7
- OpenGL >= 1.2 + multi-texturing, OpenGL|ES 1.1 or OpenGL|ES 2.0
- GLX, WGL, Quartz or an EGL Implementation
Depending on the platform and the configuration options Clutter also depends on:
- GDK-Pixbuf >= 2.0
- UProf >= 0.3
Release Notes
- This is the seventh developers snapshot of the 1.5 cycle leading to the 1.6 stable release, and the first release candidate for 1.6.0.
- This version is API and ABI compatible with the current stable release of Clutter.
- Installing the contents of this release will overwrite the files from the installation of the current stable release of Clutter.
- Bugs should be reported on the Clutter Project bugzilla.
What's new in Clutter 1.5.14
- Allow getting the state modifiers from a ClutterClickAction.
- Fix ClutterDragAction to never leave the event delivery in an unwanted state.
- Optimize state changes for texture and data states.
- Enable VBO support in Cogl for GLES2.
- Fix compilation on GLES1.1.
- Documentation fixes.
- ClutterGLXTexturePixmap has been deprecated; its parent class ClutterX11TexturePixmap and the low level CoglTexturePixmapX11 API provide access to the same features.
- Be more resilient against timelines controlling the state of other timelines during the clock tick.
- Provide defines for the windowing platforms, to allow portable applications to include the correct header and select the correct API depending on the target.
- Introduce a fast path for cogl_read_pixels() that uses the journal to determine the position of a single pixel on the stage; this fast path gracefully degrades to the usual render-based approach, and should speed up picking considerably in the case of opaque quads batched together.
- Support XInput axis data on valuator devices, and introduce XInput2 support for event translation and device hotplugging. The support for XI and XI2 must still be explicitly enabled by the developer, but it is now compiled in by default. It can be disabled at compile time by passing --disable-xinput to the configure script.
- Clean up the unintentionally leaked internal symbols in the X11 and GLX backends.
- Allow defining the contents of the rows of a ListModel using ClutterScript. This completes the ability to fully define a ClutterListModel inside a UI definition file.
List of bugs fixed since Clutter 1.5.12
- #1422, key input handler for eglnative
- #1456, Hinting mishandling
- #1721, XInput2 support
- #2268, EGL backend dependent on X11 headers
- #2400, Don't enable GL_POINT_SPRITE on GLES
- #2497, should not throw away a program when just the texture object has changed
- #2512, shader: Don't notify properties when finalizing shaders
- #2513, script-parser: Also honor properties of type GType
- #2516, [PATCH] Fails to compile with --with-gles=1.1
- #2518, introspection: Add missing (out) annotations for get_color()
- #2520, Add API to get modifier type in ClutterClickAction
- #2522, ClutterDragAction might indefinitely disable motion events
- #2524, It's possible to receive a new-frame signal after stopping a timeline
- #2526, model: Fix some GObject-Introspection annotations
- #2527, model: Change the column argument type to gint for clutter_model_set_sort
- #2528, model: Add support to define rows in ClutterScript
Many thanks to:
Robert Bragg, Neil Roberts, Bastian Winkler, Lucas Rocha, Adel Gadllah, Chris Lord, Damien Lespiau
Have fun with Clutter!
Clutter 1.5.12 - developers snapshot
good news, everyone!
here's to you the sixth developers snapshot of Clutter 1.5
Download
Clutter 1.5.12 is now available for download at:
http://source.clutter-project.org/sources/clutter/1.5/
A mirror is also available here:
http://download.gnome.org/sources/clutter/1.5/
SHA256 Checksums:
9dbb6fc8b4c68100384a7eba775db6680025c930db5b2d0ce423cdaf83630e79 clutter-1.5.12.tar.bz2
Clutter is an open source software library for creating portable, fast, compelling and dynamic graphical user interfaces. Clutter is licensed under the terms of the GNU Lesser General Public License version 2.1.
Requirements
- GLib >= 2.26.0
- JSON-GLib >= 0.12
- Cairo >= 1.10
- Pango >= 1.20
- Atk >= 1.7
- OpenGL >= 1.2 + multi-texturing, OpenGL|ES 1.1 or OpenGL|ES 2.0
- GLX, WGL, Quartz or an EGL Implementation
Depending on the platform and the configuration options Clutter also depends on:
- GDK-Pixbuf >= 2.0
- UProf >= 0.3
Release Notes
- This is the sixth developers snapshot of the 1.5 cycle leading to the 1.6 stable release
- This version is API and ABI compatible with the current stable release of Clutter.
- Installing the contents of this release will overwrite the files from the installation of the current stable release of Clutter.
- Bugs should be reported on the Clutter Project bugzilla.
What's new in Clutter 1.5.12
- Allow disabling the focus when showing a ClutterStage; this also makes Clutter more compliant to the X11 window manager specifications.
- Avoid state corruption in relayout cycles.
- Do not crash when destroying actors during CLUTTER_LEAVE events.
- Remove signal handlers when disposing constraints.
- Keep the pixel alignment for ClutterAlignConstraint.
- Do not release compiled ClutterShader during their finalization to avoid a warning.
- Revert an ABI break on the ClutterContainer pre-requisites.
- Fix the name of the cogl_normal_in attribute.
- Do not assume CoglBitmaps are allocated to height * rowstride.
- Fix the core device list creation on X11.
- Avoid enabling blending in the Cogl journal, if possible.
- Documentation fixes.
- Build fixes for mixed autotools version environment.
- Improve the performance of getting the number of rows of a ClutterListModel.
- Don't use obsolete API internally.
- Build fix for compiling EGL backend with OpenGL under X11.
- Parse GType object properties in ClutterScript.
Many thanks to:
Neil Roberts, Johan Bilien, nobled, Adel Gadllah, Damien Lespiau, Kristian Høgsberg, Nguyễn Thái Ngọc Duy, Tomeu Vizoso, Bastian Winkler
Have fun with Clutter!
Who Wrote Clutter 1.6?
in the same vein as the "who wrote the Linux kernel" series written by Jonathan Corbet and featured on LWN, here's my personal "who wrote Clutter" post for the 1.5 development cycle.
Clutter 1.6 will be out of the door by the end of January 2011, so we can start mining some data out of the Git repository, and see who contributed and how much the code changed during the 1.5 development cycle.
to provide you with a point of comparison let's take the current stable version, 1.4. Clutter 1.4.0 was released on September 24, 2010. the code base at the time was 114,384 SLOC (40,598 of which were Cogl); the test suite was 20,524 SLOC. The development of 1.4 led to 1121 changesets from 37 developers.
now, let's look at Clutter 1.6. currently, Clutter master is 1.5.11. the code base at the time of writing is 121,718 SLOC (45,246 of which are Cogl). the test suite is 20,777 SLOC. the changesets are 600 - a bit over a half of the 1.4 changesets - from 29 developers.
the changes from Clutter 1.4.0 and 1.5.11 can be quantified as a total of 59046 lines added, 38234 removed (with a net growth of 20812 lines of code, documentation and examples).
overall, this development cycle has seen fewer changes than the 1.3 one, though there's still a month to go until API freeze and the release of 1.6.0. the biggest change was implementing the paint volume detection, and enabling culling and clipped redraws to improve redrawing performance. this work was done in a branch in the final weeks of 1.4, and landed immediately after the 1.4.0 release, thus skeweing the statistics a little bit. a lot of effort went into stabilizing this code post-merge, as soon as the GNOME Shell started taking advantage of it.
| Developers with the most changesets | ||
|---|---|---|
| Emmanuele Bassi | 227 | 37.8% |
| Robert Bragg | 134 | 22.3% |
| Neil Roberts | 118 | 19.7% |
| Damien Lespiau | 37 | 6.2% |
| Elliot Smith | 21 | 3.5% |
| Owen W. Taylor | 9 | 1.5% |
| Chris Lord | 8 | 1.3% |
| Tomeu Vizoso | 5 | 0.8% |
| Ole André Vadla Ravnås | 3 | 0.5% |
| Kristian Høgsberg | 3 | 0.5% |
| Johan Bilien | 2 | 0.3% |
| Alexandre Quessy | 2 | 0.3% |
| Jussi Kukkonen | 2 | 0.3% |
| Nguyễn Thái Ngọc Duy | 1 | 0.2% |
| Mike Owens | 1 | 0.2% |
| Evan Nemerson | 1 | 0.2% |
| Lucas Rocha | 1 | 0.2% |
| Maxim Ermilov | 1 | 0.2% |
| Giovanni Campagna | 1 | 0.2% |
| Roland Peffer | 1 | 0.2% |
| Alejandro Piñeiro | 1 | 0.2% |
| Colin Walters | 1 | 0.2% |
| Ray Strode | 1 | 0.2% |
| Stephen Kennedy | 1 | 0.2% |
| Developers with the most changed lines | ||
|---|---|---|
| Robert Bragg | 19572 | 27.9% |
| Emmanuele Bassi | 16946 | 24.1% |
| Neil Roberts | 10289 | 14.6% |
| Damien Lespiau | 4040 | 5.8% |
| Elliot Smith | 3417 | 4.9% |
| Kristian Høgsberg | 1999 | 2.8% |
| Owen W. Taylor | 393 | 0.6% |
| Chris Lord | 131 | 0.2% |
| Ole André Vadla Ravnås | 73 | 0.1% |
| Lucas Rocha | 67 | 0.1% |
| Tomeu Vizoso | 51 | 0.1% |
| Jussi Kukkonen | 41 | 0.1% |
| Stephen Kennedy | 18 | 0.0% |
| Johan Bilien | 11 | 0.0% |
| Alexandre Quessy | 10 | 0.0% |
| Alejandro Piñeiro | 9 | 0.0% |
| Roland Peffer | 8 | 0.0% |
| Ray Strode | 6 | 0.0% |
| nobled | 5 | 0.0% |
| Giovanni Campagna | 4 | 0.0% |
| Mike Owens | 3 | 0.0% |
| Maxim Ermilov | 2 | 0.0% |
| Nguyễn Thái Ngọc Duy | 1 | 0.0% |
| Evan Nemerson | 1 | 0.0% |
| Colin Walters | 1 | 0.0% |
Elliot Smith has been working on the Clutter Cookbook, by writing new recipes and new examples. Damien Lespiau landed the evdev input source for the EGL-based backends. Kristian Høgsberg wrote, along with Robert Bragg, the Wayland client backend. Old André Vadla Ravnås contributed to the Windows backend.
the development of Clutter has been supported by various employers:
| Top changeset contributors by employer | ||
|---|---|---|
| Intel | 550 | 91.7% |
| (Unknown) | 15 | 2.5% |
| Red Hat | 11 | 1.8% |
| Collabora Ltd | 5 | 0.8% |
| GNOME | 3 | 0.5% |
| Cisco | 3 | 0.5% |
| litl, LLC | 2 | 0.3% |
| Igalia | 1 | 0.2% |
| Top lines changed by employer | ||
|---|---|---|
| Intel | 66356 | 94.5% |
| (Unknown) | 3052 | 4.3% |
| Red Hat | 484 | 0.7% |
| GNOME | 218 | 0.3% |
| Cisco | 73 | 0.1% |
| Collabora Ltd | 52 | 0.1% |
| litl, LLC | 11 | 0.0% |
| Igalia | 9 | 0.0% |
while Intel remains the biggest contributor to Clutter, Red Hat employees are increasing the number of patches and bug fixes as part the overall effort for the GNOME 3.0 user experience, which is based on Clutter. other well known names in the GNOME ecosystem are Collabora and Igalia. Cisco employers contributed the Windows backend updates, and litl employees are pushing bug fixes upstream.
as for bug statistics: since Clutter 1.4 was released, 127 were filed and 87 bugs were resolved as fixed (over a total of 115 bugs closed as "resolved"). of the newly filed bugs, 38 are still open.
Clutter 1.5.10 - developers snapshot
good news, everyone!
here's to you the fifth developers snapshot of Clutter 1.5
Download
Clutter 1.5.10 is now available for download at:
http://source.clutter-project.org/sources/clutter/1.5/
A mirror is also available here:
http://download.gnome.org/sources/clutter/1.5/
SHA256 Checksums:
21e68f4fc36f1d73e714fe6f873ef3e03e5b205872a2cfcdd8dcefa0e5fbf9ab clutter-1.5.10.tar.bz2
Clutter is an open source software library for creating portable, fast, compelling and dynamic graphical user interfaces. Clutter is licensed under the terms of the GNU Lesser General Public License version 2.1.
Requirements
- GLib >= 2.26.0
- JSON-GLib >= 0.12
- Cairo >= 1.10
- Pango >= 1.20
- Atk >= 1.7
- OpenGL >= 1.2 + multi-texturing, OpenGL|ES 1.1 or OpenGL|ES 2.0
- GLX, WGL, Quartz or an EGL Implementation
Depending on the platform and the configuration options Clutter also depends on:
- GDK-Pixbuf >= 2.0
- UProf >= 0.3
Release Notes
- This is the fifth developers snapshot of the 1.5 cycle leading to the 1.6 stable release
- This version is API and ABI compatible with the current stable release of Clutter.
- Installing the contents of this release will overwrite the files from the installation of the current stable release of Clutter.
- Bugs should be reported on the Clutter Project bugzilla.
What's new in Clutter 1.5.10
- Add an evdev input backend; this adds support for input devices on Linux when using the EGL-based backends.
- Update the build scripts for compiling the Windows backend.
- Updates for the Cookbook and the API references.
- Fix ClutterModel::get_iter_at_row() for filtered ClutterListModels.
- Scores of fixes to the pipeline state object for GLES2.
- Add code that tries to perform manual clipping to avoid breaking up batches of primitives.
- Keep a cache of ARBfp programs indexed by the pipeline state that led to their generation.
- Accept
G_TYPE_DOUBLEvalues in ClutterShaderEffect uniforms. - Update the Wayland client backend.
- Update the build for Windows.
- Rename the ClutterTimeline:reverse property introduced in Clutter 1.5.6 to ClutterTimeline:auto-reverse.
- Clean up the interactive tests suite.
Many thanks to:
Neil Roberts, Damien Lespiau, Robert Bragg, Elliot Smith, Jussi Kukkonen, nobled, Alexandre Quessy, Mike Owens, Tomeu Vizoso.
Have fun with Clutter!
Clutter 1.5.8 - developers snapshot
good news, everyone!
here's to you the fourth developers snapshot of Clutter 1.5
Download
Clutter 1.5.8 is now available for download at:
http://source.clutter-project.org/sources/clutter/1.5/
A mirror is also available here:
http://download.gnome.org/sources/clutter/1.5/
SHA256 Checksums:
f342b57027a94f3266060aaaae73ea06f4bf0be66196bfc0cacf17240e14139c clutter-1.5.8.tar.bz2
Clutter is an open source software library for creating portable, fast, compelling and dynamic graphical user interfaces. Clutter is licensed under the terms of the GNU Lesser General Public License version 2.1.
Requirements
- GLib >= 2.26.0
- JSON-GLib >= 0.12
- Cairo >= 1.10
- Pango >= 1.20
- Atk >= 1.7
- OpenGL >= 1.2 + multi-texturing, OpenGL|ES 1.1 or OpenGL|ES 2.0
- GLX, WGL, Quartz or an EGL Implementation
Depending on the platform and the configuration options Clutter also depends on:
- GDK-Pixbuf >= 2.0
- UProf >= 0.3
Release Notes
- This is the fourth developers snapshot of the 1.5 cycle leading to the 1.6 stable release
- This version is API and ABI compatible with the current stable release of Clutter.
- Installing the contents of this release will overwrite the files from the installation of the current stable release of Clutter.
- Bugs should be reported on the Clutter Project bugzilla.
What's new in Clutter 1.5.8
- Add a migration guide for code using Behaviours.
- Allow parsing rgb(), rgba(), hls() and hlsa() color definitions.
- Performance improvements for the
ClutterX11TexturePixmap. - For caching purposes, do not discard the Material or the compiled shaders for Offscreen and Shader effects.
- Fix image height in 3D Cogl textures.
- Create a GLSL generation backend for materials, similar to the ARBfp one; this backend is the default for GLES2.
- Use FBOs and
cogl_read_pixels()to efficiently read back partial texture data. - Various fixes in paint volumes computation and caching.
- Use the internal scene graph walk API to remove the map/unmap implementation requirement for composite actors and for containers with internal children.
- Simplify the backend notification of layer changes.
- Queue clipped redraws for Expose events on X11.
- Plug leaks.
- Add a recipe on scaling animations in the Cookbook.
Many thanks to:
Neil Roberts, Robert Bragg, Owen W. Taylor, Tomeu Vizoso, Chris Lord,
Alexandre Quessy, Evan Nemerson, Elliot Smith
Have fun with Clutter!
Clutter 1.5.6 - developers snapshot
good news, everyone!
here's to you the third developers snapshot of Clutter 1.5
Download
Clutter 1.5.6 is now available for download at:
http://source.clutter-project.org/sources/clutter/1.5/
A mirror is also available here:
http://download.gnome.org/sources/clutter/1.5/
SHA256 Checksums:
Clutter is an open source software library for creating portable, fast, compelling and dynamic graphical user interfaces. Clutter is licensed under the terms of the GNU Lesser General Public License version 2.1.
Requirements
- GLib >= 2.26.0
- JSON-GLib >= 0.12
- Cairo >= 1.10
- Pango >= 1.20
- Atk >= 1.7
- OpenGL >= 1.2 + multi-texturing, OpenGL|ES 1.1 or OpenGL|ES 2.0
- GLX, WGL, Quartz or an EGL Implementation
Depending on the platform and the configuration options Clutter also depends on:
- GDK-Pixbuf >= 2.0
- UProf >= 0.3
Release Notes
- This is the third developers snapshot of the 1.5 cycle leading to the 1.6 stable release
- This version is API and ABI compatible with the current stable release of Clutter.
- Installing the contents of this release will overwrite the files from the installation of the current stable release of Clutter.
- Bugs should be reported on the Clutter Project bugzilla.
What's new in Clutter 1.5.6
- Deprecate ClutterBehaviour and its sub-classes: the same functionality is available using the animation framework.
- Add ClutterSnapConstraint, a constraint implementation that snaps together the edges of two actors.
- Add ClutterPathConstraint::node-reached.
- Deprecate ClutterTimeoutPool and ClutterFrameSource: this API is not used internally any more, and since it's not integrated with the master clock it's of relative use.
- Add a named, global color palette.
- Add the ClutterTimeline:reverse property, for automatically reversing the direction of a timeline after the emission of the ::completed signal.
- Performance improvements in the clip stack.
- Do not use pointer grabs in ClutterClickAction.
- Improve the internally used Cogl API for primitives, paths and buffers; this is the first step towards Cogl 2.0.
- Allow using the COGL_DEBUG environment variable to disable the NPOTs support.
- Plug a nasty infinite loop in the XSETTINGS implementation.
- Internally rename CoglMaterial to CoglPipeline; this should make it clearer that the API refers to the state of the GPU pipeline.
- Add support for clipped redraws on EGL using the NOK_swap_region extension.
- Build fixes.
- Use the monotonic clock API if compiling against GLib >= 2.27.3.
- Update examples in the Cookbook.
- Add a Cookbook recipe for looping animations.
- Add more documentation on Constraints.
- Documentation fixes.
Many thanks to:
Robert Bragg, Neil Roberts, Elliot Smith, Owen W. Taylor,
Damien Lespiau, Lucas Rocha, Maxim Ermilov, Piotr Drąg,
Tomeu Vizoso, muflone
Have fun with Clutter!
Clutter 1.5.2 - developers snapshot
good news, everyone!
here's to you the first developers snapshot of Clutter 1.5
Download
Clutter 1.5.2 is now available for download at:
http://source.clutter-project.org/sources/clutter/1.5/
A mirror is also available here:
http://download.gnome.org/sources/clutter/1.5/
SHA256 Checksums:
18ab1a9b5f32f4d8c72408bd3edd6dbec6aba25c4e072a2c2d77102e7932a002 clutter-1.4.0.tar.gz
bcdb2c55a083b8f18b0205e816c303605926b03e19f380294a203ae19ec02c96 clutter-1.4.0.tar.bz2
Clutter is an open source software library for creating portable, fast, compelling and dynamic graphical user interfaces. Clutter is licensed under the terms of the GNU Lesser General Public License version 2.1.
Requirements
- GLib >= 2.18.0
- Cairo >= 1.4
- Pango >= 1.20
- Atk >= 1.7
- OpenGL >= 1.2 + multi-texturing, OpenGL|ES 1.1 or OpenGL|ES 2.0
- GLX, WGL, Quartz or an EGL Implementation
Depending on the platform and the configuration options Clutter also depends on:
- GDK-Pixbuf >= 2.0
- JSON-GLib >= 0.10
Release Notes
- This is the first developers snapshot of the 1.5 cycle leading to the 1.6 stable release
- This version is API and ABI compatible with the current stable release of Clutter.
- Installing the contents of this release will overwrite the files from the installation of the current stable release of Clutter.
- Bugs should be reported on the Clutter Project bugzilla.
What's new in Clutter 1.5.2
List of changes since Clutter 1.4.0:
- Add API to ClutterActor to allow any actor to define its 3D paint volume and its stage-relative 2D bounding box; the paint volume is the 3D space occupied by an actor during the paint sequence. This allows better sizing of the FBOs, and opens the door to scenegraph culling and accurate clipped redraws. The mechanism is opt-in: actors have to implement the get_paint_volume() virtual function. Callbacks attached to the ::paint signal will also disable any culling and clipped redraw in place internally.
- Plug a leak in ClutterActor by disposing all constraints.
- Rework the build system to be as non-recursive as possible; this should speed up the build of Clutter, and makes the build layout easier to understand and update.
- Remove the internal copy of JSON-GLib; the internal copy was falling behind at a spectacular level, and it was actually making the build rather complicated — also by adding an unwanted, but needed, introspection data generation. The required JSON-GLib has also been bumped to the new stable release, 0.12.0.
- Use
g_object_install_properties()with GLib 2.26. - Implement ClutterContainer::child-notify, which slipped through the cracks of many development cycles without anyone noticing.
- Document and test clutter_actor_contains(), especially the corner cases.
- Plug a leak in CoglTexture2DSliced.
- Plug a leak in ClutterAnimator's handling of timelines.
- Trap glXDestroyPixmap() in CoglTexturePixmapX11 to avoid BadDrawable errors when the GLX pixmap is destroyed behind Cogl's back.
Many thanks to:
Robert Bragg, Neil Roberts, Elliot Smith,
Alejandro Piñeiro, Aron Xu, Colin Walters,
Ray Strode, Stephen Kennedy
Have fun with Clutter!