Build Clutter with profiling instrumentation. Requires the GNU
C Compiler and the UProf library.
- --enable-conform=[yes/no]
- Build the Clutter conformance test suite.
+ --disable-tests
+ Disable building the Clutter tests suite.
+
+ --disable-examples
+ Disable building the Clutter API reference examples.
--enable-deprecated=[yes/no]
Whether deprecated symbols should be available when compiling Clutter.
--enable-tslib-input=[yes/no]
Enable the TSLib input backend. (default=no) [EXPERIMENTAL]
- --enable-evdev-input=[yes/no/check]
- Enable the evdev input backend. (default=check) [EXPERIMENTAL]
+ --enable-evdev-input=[yes/no]
+ Enable the evdev input backend. (default=no) [EXPERIMENTAL]
See also the INSTALL file generated by autotools for further information.
• what system you're running Clutter on;
• which version of Clutter you are using;
- • which version of GLib and OpenGL (or OpenGL ES) you are using;
+ • which version of GLib, Cogl, and OpenGL (or OpenGL ES) you are using;
• which video card and which drivers you are using, including output of
glxinfo and xdpyinfo (if applicable);
• how to reproduce the bug.
http://git.fishsoup.net/cgit/git-bz/
+Patches submitted against Clutter have to pass the conformance test suite, or,
+if possible, add new unit tests for the conformance test suite in case of new
+features. Ensure you run the conformance test suite every for every patch you
+wish to submit, by using:
+
+ cd tests/conform && make test
+
+and verifying that the test suite passes.
+
RELEASE NOTES
-------------------------------------------------------------------------------
Release Notes for Clutter 1.10
-------------------------------------------------------------------------------
+• The ClutterActor::paint, ClutterActor::queue-redraw, and
+ ClutterActor::queue-relayout signals are now annotated as not allowing
+ signal emission hooks; this enables some optimization inside GLib, and
+ given the amount of emissions these three signals have, we want to get
+ through all the fast paths we can.
+
+• The ClutterActorBox parameter of the ClutterActor::allocation-changed
+ signal is now marked as G_SIGNAL_TYPE_STATIC_SCOPE.
+
+• The clutter-stage-window.h header is not installed any more; this header
+ was never meant to be public in the first place, and nothing could have
+ been implementing the ClutterStageWindow interface and use it with Clutter.
+
+• ClutterActor will call its unmap() implementation when it is removed from
+ its parent. This may happen after the ClutterActor::destroy signal has been
+ emitted, i.e. during its dispose(). Prior to 1.10, calling the
+ clutter_actor_destroy() function would unmap the actor first, and then
+ emit the destroy signal. This means that extra care should be used when
+ overriding the map() and unmap() virtual functions, to avoid dereferencing
+ NULL pointers. It is also worthy of note that since Clutter 1.8, overriding
+ map() or unmap() is not required any more for subclasses of ClutterActor
+ that have children, as ClutterActor will automatically do the right thing
+ inside its own implementation, and map or unmap its children when needed.
+
+• ClutterBox and ClutterGroup have been deprecated. ClutterActor should be
+ used directly, instead. Since ClutterStage inherits from ClutterGroup, the
+ instance and class structures are still available, but subclassing Group
+ is strongly disencouraged.
+
+• ClutterContainer provides default implementations for add(), remove(),
+ foreach(), raise(), lower(), and sort_depth_order(); this means that
+ overriding these virtual functions is now deprecated, and developers
+ should only implement ClutterContainer for classes providing child
+ properties.
+
+• ClutterActor is not an abstract type any more, and can be instantiated
+ either through clutter_actor_new() or through g_object_new().
+
+• ClutterActor now implements ClutterContainer, and takes over the entire API
+ for modifying the scene graph; this means that every actor can have children
+ and it's not necessary any more to implement the ClutterContainer interface.
+ ClutterActor provides new API to replace clutter_actor_set_parent() and
+ clutter_actor_unparent(), as well as a default implementation of every
+ Container virtual function. Existing actors overriding ClutterContainer and
+ providing an alternate implementation will continue to work, even though it
+ is strongly encouraged to port to the new API.
+
+• The ClutterActor::destroy signal is going to be emitted at the beginning
+ of the dispose sequence of a ClutterActor, instead of the end. This allows
+ to access the state of the actor being destroyed, instead of just being
+ able to use its pointer. This may expose bugs in code that does not check
+ for NULL actor pointers.
+
+• The long since broken depth cueing support in ClutterStage has been
+ deprecated; the fixed pipeline fog API has been pretty much useless
+ since the switch to colors and textures with premultiplied alpha
+ channels. Setting ClutterStage:use-fog to TRUE has no visible results,
+ and querying the :use-fog and :fog properties will always yield the
+ default values.
+
+• ClutterDeformEffect switched from using CoglVertexBuffer to using the
+ CoglPrimitive API internally, to improve performance and use non-deprecated
+ Cogl API. CoglPrimitive converts COGL_WRAP_MODE_AUTOMATIC to
+ COGL_WRAP_MODE_CLAMP_TO_EDGE, unlike CoglVertexBuffer which converts it to
+ COGL_WRAP_MODE_REPEAT. This prevents artifacts when sampling texture
+ coordinates outside the [ 0, 1 ] range. This change may cause the back
+ texture to not be painted if its coordinates go outside the allowed range,
+ for instance when using a custom transformation matrix on the back material
+ used by the ClutterDeformEffect.
+
+• The "default stage" has been deprecated; since the 1.0 release, the default
+ stage creation was deferred to the call to clutter_stage_get_default(), and
+ the preferred way for getting a ClutterStage was calling clutter_stage_new()
+ instead. On platforms that do not support multiple stages, attempting to
+ create more than one stage will lead to an error, and Clutter will abort.
+
• Clutter can support multiple backends in the same shared library. Only one
windowing or input backend can be used at run time. As a result of this
change, the shared library name used by Clutter has changed from: