2
===============================================================================
4
Clutter is an open source software library for creating fast, visually
5
rich and animated graphical user interfaces.
4
Clutter is an open source software library for creating portable, fast,
5
visually rich and animated graphical user interfaces.
7
7
Clutter currently requires:
12
* OpenGL >= 1.4, OpenGL ES 1.1 or OpenGL ES 2.0
13
* GLX, SDL, WGL or an EGL Implementation
12
• OpenGL >= 1.3 or 1.2+multitexturing, OpenGL ES 1.1 or OpenGL ES 2.0
13
• GLX, SDL, WGL or an EGL Implementation
14
• JSON-GLib >= 0.8 (optional)
15
• GDK-Pixbuf >= 2.0 (optional)
17
When running the OpenGL flavor, Clutter requires at least version 1.3
18
or 1.2 with the multitexturing extension. However to build Clutter
19
you will need the latest GL headers which can be obtained from:
21
http://www.khronos.org
15
23
If you are building the API reference you will also need:
19
27
If you are building the Introspection data you will also need:
21
* GObject-Introspection >= 0.6.4
23
The official website is:
24
http://www.clutter-project.org
26
The Clutter blog is at
27
http://www.clutter-project.org/blog
29
To subscribe to the Clutter mailing list, send mail to:
29
• GObject-Introspection >= 0.6.4
31
If you want built in support for profiling Clutter you will also need:
35
UProf is available from:
37
git://git.moblin.org/uprof.git
39
-------------------------------------------------------------------------------
41
The official Clutter website is:
43
http://www.clutter-project.org/
45
The API reference for the latest stable release and unstable developers
46
snapshot are available at:
48
http://www.clutter-project.org/docs/clutter/stable/
49
http://www.clutter-project.org/docs/clutter/unstable/
51
New releases of Clutter are available at:
53
http://www.clutter-project.org/sources/clutter/
55
The Clutter blog is at:
57
http://www.clutter-project.org/blog/
59
To subscribe to the Clutter mailing list, send an email to:
30
61
clutter+subscribe@o-hand.com
32
63
The official mailing list archive is:
33
65
http://lists.o-hand.com/clutter/
35
67
New bug page on Bugzilla:
36
69
http://bugzilla.o-hand.com/enter_bug.cgi?product=Clutter
38
71
Clutter is licensed under the terms of the GNU Lesser General Public
39
72
License, version 2.1 or (at your option) later.
44
See the INSTALL file. Info on specific Clutter options;
74
BUILDING AND INSTALLATION
75
===============================================================================
79
Clutter has additional command line options for the configure script:
46
81
--enable-debug=[no/minimum/yes]
47
Controls Clutter debugging level (default=yes):
48
yes: All glib asserts, checks and runtime clutter verbose messages.
49
minimum: Just glib cast checks and runtime clutter verbose messagaes.
50
no: No glib asserts or checks and no runtime clutter verbose messages
51
(Only really of use in extreme performance cases)
82
Controls Clutter debugging level:
85
All GLib asserts, checks and support for runtime Clutter
86
debugging notes through CLUTTER_DEBUG. This is the default
87
value for developers snapshots.
90
Just GType cast checks and support for runtime Clutter
91
debugging notes through CLUTTER_DEBUG. This is the default
95
No GLib asserts or checks and no support for runtime Clutter
96
debugging notes. Only use in extreme performance and/or size
97
optimization cases, though it is strongly discouraged.
53
99
--enable-cogl-debug=[no/minimum/yes]
54
100
Controls COGL debugging level (default=minimum):
55
yes: All runtime verbose messages and error checking for each GL
57
minimum: All runtime verbose messages
58
no: No error checking and no messages
103
Support for COGL debugging notes through COGL_DEBUG and
104
error checking for each GL primitive. This is useful mostly
105
to debug COGL itself.
108
Support for COGL debugging notes through COGL_DEBUG. This is
109
the default for developers snapshots.
112
Disable support for COGL runtime debugging notes.
60
114
--enable-maintainer-flags=[no/yes]
61
Use strict compiler flags (default=no)
115
Use strict compiler flags. This defaults to 'yes' for developers
116
snapshots and to 'no' for stable releases.
64
119
use gtk-doc to build API documentation (default=no). Requires gtk-doc
67
--enable-manual=[no/yes]
68
Build application developers manual. Requires jw and xmlto binaries.
71
--with-flavour=[glx/eglx/eglnative/sdl/osx/win32/fruity]
120
present on the target system.
122
--enable-docs=[no/yes]
123
Build additional documentation. Requires xsltproc for DocBook
124
conversion, and optionally jw for PDF generation.
126
--enable-gcov=[no/yes]
127
Build Clutter with coverage report support, provided by gcov. This
128
feature only works with the GNU Compiler Suite and gcov installed.
130
--enable-profile=[no/yes]
131
Build Clutter with profiling instrumentation. Requires the GNU
132
C Compiler and the UProf library.
134
--enable-conform=[yes/no]
135
Build the Clutter conformance test suite.
137
--with-flavour=[glx/eglx/eglnative/osx/win32/fruity]
72
138
Select the Clutter backend: (default=glx)
74
glx: Fully featured GLX backend. Using Open GL.
76
eglx: EGL/Open GL ES backend for EGL on X windows implementations
141
Fully featured GLX backend. Using Open GL.
144
EGL/Open GL ES backend for EGL on X windows implementations
79
147
EGL/Open GL ES backend on 'native windowing system' - i.e
80
148
raw framebuffer. Expects the EGL implementation to provide
81
149
a createNativeWindow() call. Also it optionally supports
82
150
tslib for touchscreen events.
84
sdl: Basic SDL backend, using Open GL. Should provide portability
85
to Windows and possibly other OS's. (DEPRECATED)
87
osx: OS X backend. (EXPERIMENTAL)
153
OS X backend. (EXPERIMENTAL)
90
156
Microsoft Windows(tm) WGL backend
93
159
Apple iPod Touch(tm)/iPhone(tm) backend (EXPERIMENTAL)
95
--with-imagebackend=[gdk-pixbuf/quartz/internal]
161
--with-imagebackend=[gdk-pixbuf/quartz/internal]
96
162
Select the image loading backend used by COGL
98
gdk-pixbuf: Depend on gdk-pixbuf-2.0 (default for the glx, eglx,
99
eglnative, sdl, win32 flavours and recommended)
101
quartz: Depend on CoreGraphics (default for the osx flavour)
103
internal: Internal JPEG and PNG loader. Should only be used
104
for testing on new platforms
106
--with-gles=[1.1/2.0]
165
Depend on gdk-pixbuf-2.0 (default for the glx, eglx,
166
eglnative, win32 flavours and recommended)
169
Depend on CoreGraphics (default for the osx flavour)
172
Internal JPEG and PNG loader. Should only be used
173
for testing on new platforms
175
--with-gles=[1.1/2.0]
107
176
Select the GLES version (for EGL backends) (default=1.1)
109
--with-json=[internal/check]
110
Select the JSON-GLib copy to use (default=internal)
112
internal: Use the internal copy of JSON-GLib for ClutterScript
114
check: Check for the existence of a system copy of JSON-GLib
115
and if it is available, make Clutter depend on it
178
--with-json=[internal/check/system]
179
Select the JSON-GLib copy to use (default=check)
182
Use the internal copy of JSON-GLib for ClutterScript
185
Check for the existence of a system copy of JSON-GLib
186
and if it is available, make Clutter depend on it
189
Only use the system copy of JSON-GLib and warn if not found
192
===============================================================================
120
194
Clutter uses the common "Linux kernel" versioning system, where
121
195
even-numbered minor versions are stable and odd-numbered minor
194
269
development team to arrange a suitable solution.
272
===============================================================================
199
274
Relevant information for developers with existing Clutter applications
200
wanting to port to newer releases (See NEWS for general new feature info).
275
wanting to port to newer releases (see NEWS for general information on new
278
Release Notes for Clutter 1.2
279
-------------------------------------------------------------------------------
281
* ClutterStageManager is now publicly available and documented API.
283
* Clutter now depends on the system copy of JSON-GLib, and will fall
284
back to the internal copy only if JSON-GLib is not installed.
286
* ClutterActor:opacity is now defined using GParamSpecUint instead of
287
GParamSpecUchar; the same interval of [ 0, 255 ] applies, and GValue
288
has internal transformation functions for converting between G_TYPE_UINT
289
and G_TYPE_UCHAR, so this change should be fully transparent to the
292
* On X11 Clutter will emulate XKB's detectable key auto-repeat; this means
293
that when holding down a key, Clutter will emit multiple CLUTTER_KEY_PRESS
294
events and a single CLUTTER_KEY_RELEASE event instead of a list of
295
CLUTTER_KEY_PRESS and CLUTTER_KEY_RELEASE pairs.
297
* On X11 and Win32 the default Stage is created when
298
clutter_stage_get_default() is called for the first time, and not as
299
part of the stage initialization.
301
Cogl API changes for Clutter 1.2
302
-------------------------------------------------------------------------------
304
* cogl_viewport is now deprecated in favour of cogl_set_viewport which
305
accepts a viewport offset.
307
* cogl_clip_push() is now deprecated and new code should use
308
cogl_clip_push_rectangle() instead. The old API wasn't consistent with other
309
Cogl APIs that specify model space rectangles using (x0,y0)(x1,y1) pairs.
311
* cogl_clip_push_window_rect() is now deprecated and new code should use
312
cogl_clip_push_window_rectangle(). The old API shouldn't have been defined
313
to take floats and the abbreviation wasn't consistent with other Cogl API.
315
* cogl_clip_stack_save() and cogl_clip_stack_restore() are deprecated, as
316
the functionality is redundant now that offscreen draw buffers own their
317
clip state and switching to/from offscreen rendering will automatically
318
save and restore the clip state.
320
* cogl_material_copy() was added. It is advised that developers use
321
this instead of cogl_material_new() when creating a material that is in some
322
way derived from another. This will allow Cogl to track material
323
ancestries/similarities and reduce the cost of GPU state changes.
325
* cogl_push_draw_buffer, cogl_set_draw_buffer and cogl_pop_draw_buffer are now
326
deprecated and new code should use the cogl_framebuffer_* API instead.
327
Code that previously did:
328
cogl_push_draw_buffer ();
329
cogl_set_draw_buffer (COGL_OFFSCREEN_BUFFER, buffer);
331
cogl_pop_draw_buffer ();
332
can now be re-written as:
333
cogl_push_framebuffer (buffer);
335
cogl_pop_framebuffer ();
337
* All cogl_<type>_ref() and cogl_<type>_unref() functions have been
338
deprecated, and superceded by cogl_handle_ref() and cogl_handle_unref()
341
* The cogl_check_extension() function has been deprecated. This function
342
was never meant to be public, since it depends on calling glGetString()
343
before its invocation. Users of this function can be replaced by the
346
gl_ext = glGetString (GL_EXTENSIONS);
347
- has_ext = cogl_check_extension (ext_name, gl_ext);
348
+ has_ext = strstr (gl_ext, ext_name) != NULL ? TRUE : FALSE;
202
350
Release Notes for Clutter 1.0
203
-------------------------------
351
-------------------------------------------------------------------------------
205
353
* The clutter_actor_set_shader_param() function now takes a
206
354
GValue, which can be set using the clutter_value_set_shader()