commit ab6184298083541d37356f1f5656380d0cda047c Author: Emmanuele Bassi Date: Tue Mar 2 18:03:23 2010 +0000 Release 1.2.0 (stable) configure.ac | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 3c9a24f4a78cd676e635ad32df639b57e65e3be7 Author: Emmanuele Bassi Date: Tue Mar 2 18:03:13 2010 +0000 Update the NEWS file NEWS | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) commit 9e4c008117da6b36237608bd896fb164577ef314 Author: Emmanuele Bassi Date: Tue Mar 2 19:17:28 2010 +0000 build: Include test-script-model.json The Model conformance test for ClutterScript parsing requires the file to be inside the dist. tests/data/Makefile.am | 1 + 1 file changed, 1 insertion(+) commit 2d51432e52745d9484cf2d54567c2f95670ea5ae Author: Emmanuele Bassi Date: Tue Mar 2 19:29:22 2010 +0000 build: Add test-animator-3.json to EXTRA_DIST tests/data/Makefile.am | 1 + 1 file changed, 1 insertion(+) commit 2f68949962d964e38a640581e232c4b673ce3023 Author: Emmanuele Bassi Date: Tue Mar 2 19:09:20 2010 +0000 conformance: Use g_assert_no_error() if available GLib 2.20 has a nice g_assert() wrapper which will print out the GError if it's not NULL. tests/conform/test-animator.c | 15 +++++++++++++++ tests/conform/test-model.c | 5 +++++ tests/conform/test-script-parser.c | 30 ++++++++++++++++++++++++++++++ 3 files changed, 50 insertions(+) commit 048fcea988446af1ce18356eb1718f85088e73c8 Author: Neil Roberts Date: Tue Mar 2 18:30:31 2010 +0000 clutter-actor: Initialize with the identity matrix in get_transform The documentation and name of the get_transformation_matrix function implies that 'matrix' is purely an out parameter. However it wasn't initializing the matrix before calling the 'apply_transform' virtual so it was basically just a wrapper for the virtual. The virtual assumes the matrix parameter is in/out and applies the actor's transformation on top of any existing transformations. This causes unexpected semantics that are inconsistent with the documentation. clutter/clutter-actor.c | 2 ++ 1 file changed, 2 insertions(+) commit e550755f3dc13f11a9d956bb9b52294ea33c8da6 Author: Emmanuele Bassi Date: Tue Mar 2 17:47:13 2010 +0000 text-field: Cast GString->len to integer before printing The compiler will warn on 64bit architectures when using %d for printing a gsize field. http://bugzilla.openedhand.com/show_bug.cgi?id=2019 tests/interactive/test-text-field.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 38a24144980bd0c6d717f39eb5d215d3abc30ef5 Author: Robert Bragg Date: Tue Mar 2 14:04:54 2010 +0000 glx tfp: make clutter_glx_texture_pixmap_update_area cheap This changes clutter_glx_texture_pixmap_update_area so it defers the call to glXBindTexImageEXT until our pre "paint" signal handler which makes clutter_glx_texture_pixmap_update_area cheap to call. The hope is that mutter can switch to reporting raw damage updates to ClutterGLXTexturePixmap and we can use these to queue clipped redraws. clutter/glx/clutter-glx-texture-pixmap.c | 186 ++++++++++++++---------------- 1 file changed, 89 insertions(+), 97 deletions(-) commit c0d5af5de5bcc504abeb81a7f7a1ec0f696b574d Author: Robert Bragg Date: Mon Nov 30 17:47:55 2009 +0000 Adds initial clipped redraw support to Clutter A new (internal only currently) API, _clutter_actor_queue_clipped_redraw can be used to queue a redraw along with a clip rectangle in actor coordinates. This clip rectangle propagates up to the stage and clutter backend which may optionally use the information to optimize stage redraws. The GLX backend in particular may scissor the next redraw to the clip rectangle and use GLX_MESA_copy_sub_buffer to present the stage subregion. The intention is that any actors that can naturally determine the bounds of updates should queue clipped redraws to reduce the cost of updating small regions of the screen. Notes: » If GLX_MESA_copy_sub_buffer isn't available then the GLX backend ignores any clip rectangles. » queuing multiple clipped redraws will result in the bounding box of each clip rectangle being used. » If a clipped redraw has a height > 300 pixels then it's promoted into a full stage redraw, so that the GPU doesn't end up blocking too long waiting for the vsync to reach the optimal position to avoid tearing. » Note: no empirical data was used to come up with this threshold so we may need to tune this. » Currently only ClutterX11TexturePixmap makes use of this new API. This is done via a new "queue-damage-redraw" signal that is emitted when the pixmap is updated. The default handler queues a clipped redraw with the assumption that the pixmap is being painted as a rectangle covering the actors transformed allocation. If you subclass ClutterX11TexturePixmap and change how it's painted you now also need to override the signal handler and queue your own redraw. Technically this is a semantic break, but it's assumed that no one is currently doing this. This still leaves a few unsolved issues with regards to optimizing sub stage redraws that need to be addressed in further work so this can only be considered a stepping stone a this point: » Because we have no reliable way to determine if the painting of any given actor is being modified any optimizations implemented using _clutter_actor_queue_redraw_with_clip must be overridable by a subclass, and technically must be opt-in for existing classes to avoid a change in semantics. E.g. consider that a user connects to the paint signal for ClutterTexture and paints a circle instead of a rectangle. In this case any original logic to queue clipped redraws would be incorrect. » Currently only the implementation of an actor has enough information with which to queue clipped redraws. E.g. It is not possible for generic code in clutter-actor.c to queue a clipped redraw when hiding an actor because actors have no way to report a "paint box". (remember actors can draw outside their allocation and actors with depth may also be projected outside of their allocation) » The current plan is to add a actor_class->get_paint_cuboid() virtual so actors can report a bounding cube for everything they would draw in their current state and use that to queue clipped redraws against the stage by projecting the paint cube into stage coordinates. » Our heuristics for promoting clipped redraws into full redraws to avoid blocking the GPU while we wait for the vsync need improving: » vsync issues aren't relevant for redirected/composited applications so they should use different heuristics. In this case we instead need to trade off the cost of blitting when using glXCopySubBuffer vs promoting to a full redraw and flipping instead. clutter/clutter-actor.c | 402 ++++++++++++++++++++++------ clutter/clutter-actor.h | 20 ++ clutter/clutter-debug.h | 6 +- clutter/clutter-main.c | 4 +- clutter/clutter-private.h | 39 ++- clutter/clutter-stage-window.c | 29 ++ clutter/clutter-stage-window.h | 82 +++--- clutter/clutter-stage.c | 64 +++++ clutter/glx/clutter-backend-glx.c | 185 ++----------- clutter/glx/clutter-backend-glx.h | 5 + clutter/glx/clutter-glx-texture-pixmap.c | 14 +- clutter/glx/clutter-stage-glx.c | 426 ++++++++++++++++++++++++++++++ clutter/glx/clutter-stage-glx.h | 8 +- clutter/x11/clutter-x11-texture-pixmap.c | 172 +++++++++--- 14 files changed, 1116 insertions(+), 340 deletions(-) commit 09d8460a5c3f905573378172ed553fd57d49913e Author: Øyvind Kolås Date: Tue Mar 2 17:03:03 2010 +0000 animator: s/clutter_animator_run/clutter_animator_start/ This is consistent with choice of words in clutter_timeline_start and makes the API less surprising. clutter/clutter-animator.c | 4 ++-- clutter/clutter-animator.h | 2 +- doc/reference/clutter/clutter-sections.txt | 2 +- tests/interactive/test-animator.c | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) commit 9d1ea81dc51464e86d7a4eee27874136e9e34cad Author: Robert Bragg Date: Tue Mar 2 02:07:40 2010 +0000 cogl debug: Adds missing guards around debug cogl_args[] commit 511e5ceb516dc accidentally removed the #ifdef COGL_ENABLE_DEBUG guards around the "cogl-debug" and "cogl-no-debug" cogl_args[] which this patch restores. clutter/cogl/cogl/cogl-debug.c | 2 ++ 1 file changed, 2 insertions(+) commit aba6c5acc7f1cb15f92666d1681a95b5a805efaf Author: Emmanuele Bassi Date: Tue Mar 2 15:08:01 2010 +0000 flow-layout: Provide a preferred size The FlowLayout fails to provide a preferred size in case no sizing is specified on one axis. It should, instead, have the preferred size of the sum of its children, depending on the orientation property. http://bugzilla.openedhand.com/show_bug.cgi?id=2013 clutter/clutter-flow-layout.c | 92 ++++++++++++++++++++++++++-------- tests/interactive/test-flow-layout.c | 20 +++++--- 2 files changed, 82 insertions(+), 30 deletions(-) commit e3fba5f2e80a4c72cc4ef0c193a0b6569e1d8cbf Author: Emmanuele Bassi Date: Tue Mar 2 13:32:46 2010 +0000 build: Require libtool >= 2.2.6 Update the configure.ac to use the LT_INIT() instead of the deprecated AC_PROG_LIBTOOL. This also allows us to depend on a specific libtool version, namely one that doesn't thoroughly suck. configure.ac | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 9a55ddc7c36185b31120b5c5275dac60f5926d8d Author: Øyvind Kolås Date: Tue Mar 2 12:38:51 2010 +0000 animator: restore accidentally removed break In 505e5966 a break statement was removed by accident, causing the animator to enter infinite loops if no initial key is present. clutter/clutter-animator.c | 2 ++ 1 file changed, 2 insertions(+) commit 3a84af0106522e46d930fc81013c86465357dc89 Merge: 0baeabc a2573ad Author: Emmanuele Bassi Date: Tue Mar 2 12:25:45 2010 +0000 Merge branch 'eglnative-update' * eglnative-update: eglnative: Add CLUTTER_FB_DEVICE eglnative: Update implementation commit a2573ad2ad39931d2a817d4585d87b70c3f86526 Author: Emmanuele Bassi Date: Mon Mar 1 11:38:41 2010 +0000 eglnative: Add CLUTTER_FB_DEVICE Some EGL drivers for embedded devices require a specific framebuffer device to be opened and passed to eglCreateWindowSurface(). Since it's optional, we can provide an environment variabled called CLUTTER_FB_DEVICE that can be used to specify the path of the device to be opened. http://bugzilla.openedhand.com/show_bug.cgi?id=1997 clutter/eglnative/clutter-backend-egl.c | 59 ++++++++++++++++++++++++++++--- clutter/eglnative/clutter-backend-egl.h | 3 ++ 2 files changed, 57 insertions(+), 5 deletions(-) commit b4e9f40394fb2e4d63bccc9f9d932a5da87cc2a2 Author: Emmanuele Bassi Date: Sat Feb 27 09:42:42 2010 +0000 eglnative: Update implementation Update the EGL native framebuffer backend to be 1.2-ready: » create the EGL context and the surface inside the create_context() implementation so that a context is always available » simplify the StageWindow implementation » clean up old code http://bugzilla.openedhand.com/show_bug.cgi?id=1997 clutter/eglnative/clutter-backend-egl.c | 186 ++++++++++++++++++++-- clutter/eglnative/clutter-backend-egl.h | 20 ++- clutter/eglnative/clutter-event-egl.c | 60 ++++--- clutter/eglnative/clutter-stage-egl.c | 259 +++++++------------------------ clutter/eglnative/clutter-stage-egl.h | 8 +- 5 files changed, 275 insertions(+), 258 deletions(-) commit 0baeabc2aa1a4b2a1908b7acd15f947cb8b1eb4d Author: Owen W. Taylor Date: Mon Mar 1 13:54:03 2010 -0500 Fall back in _cogl_texture_2d_new_from_bitmap() Just like _cogl_texture_2d_new_with_size(), _cogl_texture_2d_new_from_bitmap() needs to check if an unsliced texture can be created at the given size, or if hardware limitations prevent this. http://bugzilla.openedhand.com/show_bug.cgi?id=2014 Signed-off-by: Neil Roberts clutter/cogl/cogl/cogl-texture-2d.c | 3 +++ 1 file changed, 3 insertions(+) commit 74a27bbb1c0ae12ba937d215323d5a716781cb1b Author: Emmanuele Bassi Date: Tue Mar 2 09:53:55 2010 +0000 docs: Documentation fixes Let's see if we can get a 100% coverage for Clutter too. clutter/clutter-animatable.h | 9 +++++ clutter/clutter-animator.c | 5 +-- clutter/clutter-box.c | 3 ++ clutter/clutter-box.h | 49 +++++++++++++++++++++++++ clutter/clutter-container.h | 9 +++++ clutter/clutter-device-manager.h | 13 +++++-- clutter/clutter-media.h | 9 +++++ clutter/clutter-scriptable.h | 9 +++++ clutter/clutter-version.h.in | 38 ++++++++++++++++++++ clutter/eglnative/clutter-backend-egl.c | 7 ++++ clutter/glx/clutter-glx-texture-pixmap.c | 53 ++++++++++++++-------------- clutter/glx/clutter-glx-texture-pixmap.h | 16 +++++++++ clutter/x11/clutter-backend-x11.c | 8 +++++ clutter/x11/clutter-x11-texture-pixmap.c | 36 ++++++++++++++----- clutter/x11/clutter-x11-texture-pixmap.h | 20 ++++++++++- clutter/x11/clutter-x11.h | 8 ++++- doc/reference/clutter/Makefile.am | 4 --- doc/reference/clutter/clutter-sections.txt | 4 +-- 18 files changed, 252 insertions(+), 48 deletions(-) commit c0a553163b5e82cb70e956e802d7f9b61bb13948 Author: Neil Roberts Date: Mon Mar 1 18:08:41 2010 +0000 cogl: Support any format in cogl_read_pixels cogl_read_pixels() no longer asserts that the format passed in is RGBA_8888 but instead accepts any format. The appropriate GL enums for the format are passed to glReadPixels so OpenGL should be perform a conversion if neccessary. It currently assumes glReadPixels will always give us premultiplied data. This will usually be correct because the result of the default blending operations for Cogl ends up with premultiplied data in the framebuffer. However it is possible for the framebuffer to be in whatever format depending on what CoglMaterial is used to render to it. Eventually we may want to add a way for an application to inform Cogl that the framebuffer is not premultiplied in case it is being used for some special purpose. If the requested format is not premultiplied then Cogl will convert it. The tests have been changed to read the data as premultiplied so that they won't be affected by the conversion. Picking in Clutter has been changed to use COGL_PIXEL_FORMAT_RGB_888 because it doesn't need the alpha component. clutter_stage_read_pixels is left unchanged because the application can't specify a format for that so it seems to make most sense to store unpremultiplied values. http://bugzilla.openedhand.com/show_bug.cgi?id=1959 clutter/clutter-main.c | 10 +-- clutter/cogl/cogl/cogl.c | 84 +++++++++++++------- clutter/cogl/cogl/cogl.h | 8 +- tests/conform/test-cogl-backface-culling.c | 2 +- tests/conform/test-cogl-blend-strings.c | 4 +- tests/conform/test-cogl-materials.c | 2 +- tests/conform/test-cogl-multitexture.c | 2 +- tests/conform/test-cogl-offscreen.c | 8 +- tests/conform/test-cogl-premult.c | 2 +- tests/conform/test-cogl-readpixels.c | 26 +++++- tests/conform/test-cogl-texture-mipmaps.c | 2 +- tests/conform/test-cogl-vertex-buffer-contiguous.c | 10 +-- tests/conform/test-cogl-vertex-buffer-interleved.c | 2 +- tests/conform/test-cogl-vertex-buffer-mutability.c | 4 +- tests/conform/test-cogl-viewport.c | 2 +- 15 files changed, 113 insertions(+), 55 deletions(-) commit 505e5966e4ee649b7528cdf0410a4e52d59a25ec Author: Øyvind Kolås Date: Mon Mar 1 18:35:01 2010 +0000 Do not overwrite the initial key, making ease-in work as expected. Fixes bug #2008, where a property with ease-in would jump instead of start at the properties initial value. clutter/clutter-animator.c | 9 --------- 1 file changed, 9 deletions(-) commit 7d0ad7ac1b8f6b8a92d0c97180d2885a3a18bcdd Author: Bastian Winkler Date: Mon Mar 1 17:00:41 2010 +0100 animator: Remove redundant declaration in header file clutter_animator_property_set_interpolation was declared twice in clutter-animator.h http://bugzilla.openedhand.com/show_bug.cgi?id=2012 clutter/clutter-animator.h | 5 ----- 1 file changed, 5 deletions(-) commit 53eecb8469855d17e863c2113a58f0b6e9c26729 Author: Emmanuele Bassi Date: Mon Mar 1 17:47:52 2010 +0000 docs: Add Animator.compute_value() The clutter_animator_compute_value() has been added to the API, but it is missing from the API reference. doc/reference/clutter/clutter-sections.txt | 1 + 1 file changed, 1 insertion(+) commit 1d9ddad9a3ee79d32091b12197bd18e0b283da22 Author: Emmanuele Bassi Date: Mon Mar 1 17:45:00 2010 +0000 docs: Fix syntax error in Model's documentation A missing opening quote sign is breaking gtk-doc for ClutterModel. clutter/clutter-model.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1777a69f2f036e2ead5986a5c91f18480a14e4fd Merge: 8146d8d 7ffb62e Author: Emmanuele Bassi Date: Mon Mar 1 15:37:12 2010 +0000 Merge branch 'stage-min-size-rework' * stage-min-size-rework: docs: Update minimum size accessors actor: Use the TOPLEVEL flag instead of a type check [stage] Use min-width/height props for min size commit 8146d8d08deafd6cf86238a4a8c2fa6149e5c691 Author: Robert Bragg Date: Fri Feb 26 09:44:29 2010 +0000 profile: avoid segfault generating reports with no stats The clutter-profile.c print_report() code would crash if no stats had been gathered because uprof would return NULL for the "Redrawing" timer which we then dereferenced. This changes the code to start by checking for the "Mainloop", "Redrawing" and "Do Pick" timers and if none are present it returns immediately without generating any report. clutter/clutter-profile.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit b9a91594f4b37388222b587eaea7618ea8c78381 Author: Robert Bragg Date: Fri Feb 26 09:48:43 2010 +0000 build: Fixes out of tree builds When building the gobject introspection data the build wasn't able to find clutter/clutter-json.h so this adds $(top_builddir) to INCLUDES. clutter/Makefile.am | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 79acb088e7f6916fb77a6341c22f9022c0f50208 Author: Emmanuele Bassi Date: Mon Mar 1 12:56:10 2010 +0000 Remove mentions of the FSF address Since using addresses that might change is something that finally the FSF acknowledge as a plausible scenario (after changing address twice), the license blurb in the source files should use the URI for getting the license in case the library did not come with it. Not that URIs cannot possibly change, but at least it's easier to set up a redirection at the same place. As a side note: this commit closes the oldes bug in Clutter's bug report tool. http://bugzilla.openedhand.com/show_bug.cgi?id=521 clutter/clutter-actor.c | 7 +++---- clutter/clutter-actor.h | 3 ++- clutter/clutter-alpha.c | 6 ++---- clutter/clutter-backend.c | 11 ++++++----- clutter/clutter-behaviour-depth.c | 4 +--- clutter/clutter-behaviour-ellipse.c | 10 +--------- clutter/clutter-behaviour-opacity.c | 4 +--- clutter/clutter-behaviour-path.c | 11 ++++++----- clutter/clutter-behaviour-rotate.c | 4 +--- clutter/clutter-behaviour-scale.c | 4 +--- clutter/clutter-behaviour.c | 4 +--- clutter/clutter-bezier.c | 4 +--- clutter/clutter-cairo-texture.c | 6 ++---- clutter/clutter-cairo-texture.h | 7 +++---- clutter/clutter-child-meta.c | 4 +--- clutter/clutter-color.c | 4 +--- clutter/clutter-container.c | 6 +++--- clutter/clutter-event.c | 6 +++--- clutter/clutter-feature.c | 6 +++--- clutter/clutter-fixed.c | 6 +++--- clutter/clutter-frame-source.c | 6 +++--- clutter/clutter-group.c | 6 +++--- clutter/clutter-id-pool.c | 6 +++--- clutter/clutter-keysyms.h | 6 +++--- clutter/clutter-list-model.c | 6 +++--- clutter/clutter-main.c | 6 +++--- clutter/clutter-model.c | 6 +++--- clutter/clutter-private.h | 6 +++--- clutter/clutter-rectangle.c | 6 +++--- clutter/clutter-score.c | 6 +++--- clutter/clutter-script-parser.c | 6 +++--- clutter/clutter-script-private.h | 6 +++--- clutter/clutter-script.c | 6 +++--- clutter/clutter-scriptable.c | 6 +++--- clutter/clutter-shader-types.c | 6 +++--- clutter/clutter-shader.c | 6 +++--- clutter/clutter-stage.c | 6 +++--- clutter/clutter-texture.c | 6 +++--- clutter/clutter-timeline.c | 6 +++--- clutter/clutter-timeout-pool.c | 6 +++--- clutter/clutter-units.c | 6 +++--- clutter/clutter-util.c | 6 +++--- clutter/clutter-version.h.in | 6 +++--- clutter/clutter.h | 6 +++--- clutter/cogl/cogl/cogl-atlas-texture-private.h | 6 +++--- clutter/cogl/cogl/cogl-atlas-texture.c | 6 +++--- clutter/cogl/cogl/cogl-atlas.c | 6 +++--- clutter/cogl/cogl/cogl-atlas.h | 6 +++--- clutter/cogl/cogl/cogl-bitmap-fallback.c | 6 +++--- clutter/cogl/cogl/cogl-bitmap-pixbuf.c | 6 +++--- clutter/cogl/cogl/cogl-bitmap-private.h | 6 +++--- clutter/cogl/cogl/cogl-bitmap.c | 6 +++--- clutter/cogl/cogl/cogl-bitmap.h | 6 +++--- clutter/cogl/cogl/cogl-blend-string.c | 6 +++--- clutter/cogl/cogl/cogl-blend-string.h | 6 +++--- clutter/cogl/cogl/cogl-buffer-private.h | 6 +++--- clutter/cogl/cogl/cogl-buffer.c | 6 +++--- clutter/cogl/cogl/cogl-buffer.h | 6 +++--- clutter/cogl/cogl/cogl-clip-stack.c | 6 +++--- clutter/cogl/cogl/cogl-clip-stack.h | 6 +++--- clutter/cogl/cogl/cogl-color.c | 6 +++--- clutter/cogl/cogl/cogl-color.h | 6 +++--- clutter/cogl/cogl/cogl-context.c | 6 +++--- clutter/cogl/cogl/cogl-context.h | 6 +++--- clutter/cogl/cogl/cogl-debug.c | 6 +++--- clutter/cogl/cogl/cogl-debug.h | 6 +++--- clutter/cogl/cogl/cogl-deprecated.h | 6 +++--- clutter/cogl/cogl/cogl-feature-private.c | 6 +++--- clutter/cogl/cogl/cogl-feature-private.h | 6 +++--- clutter/cogl/cogl/cogl-fixed.c | 6 +++--- clutter/cogl/cogl/cogl-fixed.h | 6 +++--- clutter/cogl/cogl/cogl-framebuffer-private.h | 6 +++--- clutter/cogl/cogl/cogl-framebuffer.c | 6 +++--- clutter/cogl/cogl/cogl-handle.h | 6 +++--- clutter/cogl/cogl/cogl-internal.h | 6 +++--- clutter/cogl/cogl/cogl-journal-private.h | 6 +++--- clutter/cogl/cogl/cogl-journal.c | 6 +++--- clutter/cogl/cogl/cogl-material-private.h | 6 +++--- clutter/cogl/cogl/cogl-material.c | 6 +++--- clutter/cogl/cogl/cogl-material.h | 6 +++--- clutter/cogl/cogl/cogl-matrix-mesa.c | 6 +++--- clutter/cogl/cogl/cogl-matrix-mesa.h | 6 +++--- clutter/cogl/cogl/cogl-matrix-private.h | 6 +++--- clutter/cogl/cogl/cogl-matrix-stack.c | 6 +++--- clutter/cogl/cogl/cogl-matrix-stack.h | 6 +++--- clutter/cogl/cogl/cogl-matrix.c | 6 +++--- clutter/cogl/cogl/cogl-matrix.h | 6 +++--- clutter/cogl/cogl/cogl-offscreen.h | 6 +++--- clutter/cogl/cogl/cogl-path.c | 6 +++--- clutter/cogl/cogl/cogl-path.h | 6 +++--- clutter/cogl/cogl/cogl-pixel-buffer-private.h | 6 +++--- clutter/cogl/cogl/cogl-pixel-buffer.c | 6 +++--- clutter/cogl/cogl/cogl-pixel-buffer.h | 6 +++--- clutter/cogl/cogl/cogl-primitives.c | 6 +++--- clutter/cogl/cogl/cogl-primitives.h | 6 +++--- clutter/cogl/cogl/cogl-profile.h | 6 +++--- clutter/cogl/cogl/cogl-shader.h | 6 +++--- clutter/cogl/cogl/cogl-spans.c | 6 +++--- clutter/cogl/cogl/cogl-spans.h | 6 +++--- clutter/cogl/cogl/cogl-sub-texture-private.h | 6 +++--- clutter/cogl/cogl/cogl-sub-texture.c | 6 +++--- clutter/cogl/cogl/cogl-texture-2d-private.h | 6 +++--- clutter/cogl/cogl/cogl-texture-2d-sliced-private.h | 6 +++--- clutter/cogl/cogl/cogl-texture-2d-sliced.c | 6 +++--- clutter/cogl/cogl/cogl-texture-2d.c | 6 +++--- clutter/cogl/cogl/cogl-texture-driver.h | 6 +++--- clutter/cogl/cogl/cogl-texture-private.h | 6 +++--- clutter/cogl/cogl/cogl-texture.c | 6 +++--- clutter/cogl/cogl/cogl-texture.h | 6 +++--- clutter/cogl/cogl/cogl-types.h | 6 +++--- clutter/cogl/cogl/cogl-util.c | 6 +++--- clutter/cogl/cogl/cogl-util.h | 6 +++--- clutter/cogl/cogl/cogl-vertex-buffer-private.h | 6 +++--- clutter/cogl/cogl/cogl-vertex-buffer.c | 6 +++--- clutter/cogl/cogl/cogl-vertex-buffer.h | 6 +++--- clutter/cogl/cogl/cogl.c | 6 +++--- clutter/cogl/cogl/cogl.h | 6 +++--- clutter/cogl/cogl/driver/gl/cogl-context-driver.c | 6 +++--- clutter/cogl/cogl/driver/gl/cogl-context-driver.h | 6 +++--- clutter/cogl/cogl/driver/gl/cogl-defines.h.in | 6 +++--- clutter/cogl/cogl/driver/gl/cogl-feature-functions.h | 6 +++--- clutter/cogl/cogl/driver/gl/cogl-program.c | 6 +++--- clutter/cogl/cogl/driver/gl/cogl-program.h | 6 +++--- clutter/cogl/cogl/driver/gl/cogl-shader-private.h | 6 +++--- clutter/cogl/cogl/driver/gl/cogl-shader.c | 6 +++--- clutter/cogl/cogl/driver/gl/cogl-texture-driver.c | 6 +++--- clutter/cogl/cogl/driver/gl/cogl.c | 6 +++--- clutter/cogl/cogl/driver/gles/cogl-context-driver.c | 6 +++--- clutter/cogl/cogl/driver/gles/cogl-context-driver.h | 6 +++--- clutter/cogl/cogl/driver/gles/cogl-defines.h.in | 6 +++--- clutter/cogl/cogl/driver/gles/cogl-feature-functions.h | 6 +++--- clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.c | 6 +++--- clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.h | 6 +++--- clutter/cogl/cogl/driver/gles/cogl-program.c | 6 +++--- clutter/cogl/cogl/driver/gles/cogl-program.h | 6 +++--- clutter/cogl/cogl/driver/gles/cogl-shader-private.h | 6 +++--- clutter/cogl/cogl/driver/gles/cogl-shader.c | 6 +++--- clutter/cogl/cogl/driver/gles/cogl-texture-driver.c | 6 +++--- clutter/cogl/cogl/driver/gles/cogl.c | 6 +++--- clutter/cogl/cogl/winsys/cogl-eglnative.c | 6 +++--- clutter/cogl/cogl/winsys/cogl-eglx.c | 6 +++--- clutter/cogl/cogl/winsys/cogl-fruity.c | 6 +++--- clutter/cogl/cogl/winsys/cogl-glx.c | 6 +++--- clutter/cogl/cogl/winsys/cogl-osx.c | 6 +++--- clutter/cogl/cogl/winsys/cogl-sdl.c | 6 +++--- clutter/cogl/cogl/winsys/cogl-win32.c | 6 +++--- clutter/cogl/cogl/winsys/cogl-winsys.h | 6 +++--- clutter/eglnative/clutter-backend-egl.h | 6 +++--- clutter/eglnative/clutter-egl-headers.h | 6 +++--- clutter/eglnative/clutter-egl.h | 6 +++--- clutter/eglnative/clutter-event-egl.c | 6 +++--- clutter/eglx/clutter-backend-egl.h | 6 +++--- clutter/eglx/clutter-egl-headers.h | 6 +++--- clutter/eglx/clutter-eglx.h | 6 +++--- clutter/fruity/clutter-backend-fruity.h | 6 +++--- clutter/fruity/clutter-fruity.h | 6 +++--- clutter/glx/clutter-backend-glx.c | 6 +++--- clutter/glx/clutter-backend-glx.h | 6 +++--- clutter/glx/clutter-event-glx.c | 6 +++--- clutter/glx/clutter-event-glx.h | 6 +++--- clutter/glx/clutter-glx-texture-pixmap.c | 6 +++--- clutter/glx/clutter-glx-texture-pixmap.h | 6 +++--- clutter/glx/clutter-glx.h | 6 +++--- clutter/glx/clutter-stage-glx.c | 6 +++--- clutter/glx/clutter-stage-glx.h | 6 +++--- clutter/osx/clutter-backend-osx.c | 6 +++--- clutter/osx/clutter-backend-osx.h | 6 +++--- clutter/osx/clutter-event-osx.c | 6 +++--- clutter/osx/clutter-osx.h | 6 +++--- clutter/osx/clutter-stage-osx.c | 6 +++--- clutter/osx/clutter-stage-osx.h | 6 +++--- clutter/win32/clutter-backend-win32.c | 6 +++--- clutter/win32/clutter-backend-win32.h | 6 +++--- clutter/win32/clutter-event-win32.c | 6 +++--- clutter/win32/clutter-stage-win32.c | 6 +++--- clutter/win32/clutter-stage-win32.h | 6 +++--- clutter/win32/clutter-win32.h | 6 +++--- clutter/x11/clutter-backend-x11-private.h | 6 +++--- clutter/x11/clutter-backend-x11.c | 6 +++--- clutter/x11/clutter-backend-x11.h | 6 +++--- clutter/x11/clutter-event-x11.c | 6 +++--- clutter/x11/clutter-stage-x11.c | 6 +++--- clutter/x11/clutter-stage-x11.h | 6 +++--- clutter/x11/clutter-x11-texture-pixmap.c | 6 +++--- clutter/x11/clutter-x11-texture-pixmap.h | 6 +++--- clutter/x11/clutter-x11.h | 6 +++--- 186 files changed, 543 insertions(+), 570 deletions(-) commit 23867875a14ab6d7288d6a67c67b20a1f136be94 Author: Emmanuele Bassi Date: Mon Mar 1 11:12:16 2010 +0000 build: Remove unused checks on platform functions There is no need for us to check for low-level functions and header files, especially since we haven't been checking the results until now. This makes cross-compiling slightly more bearable. clutter/clutter-private.h | 8 ++------ clutter/x11/clutter-backend-x11.c | 9 +++++---- clutter/x11/clutter-stage-x11.c | 4 ++++ configure.ac | 12 +++--------- 4 files changed, 14 insertions(+), 19 deletions(-) commit ce6a24eb2b5eaba4b60f82855af7a24d0f5afdad Author: Emmanuele Bassi Date: Sun Feb 28 10:59:29 2010 +0000 actor: Call unparent() in destroy If the actor is an internal child of another actor then we should call unparent() when destroying it, like clutter_actor_reparent() does; otherwise we'll leak the actor, since the parent holds a reference to it. http://bugzilla.openedhand.com/show_bug.cgi?id=2009 clutter/clutter-actor.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 7ffb62eab939de46b8234243cab6f6c4b40d60ec Author: Emmanuele Bassi Date: Sat Feb 27 18:56:34 2010 +0000 docs: Update minimum size accessors Expand the documentation for set_minimum_size() and get_minimum_size(), and add introspection annotations for get_minimum_size(). clutter/clutter-stage.c | 41 +++++++++++++++++++++++++++++------------ 1 file changed, 29 insertions(+), 12 deletions(-) commit 52ba9a1800302f887ebe6d2e7aa7ab4503ea6e5e Author: Emmanuele Bassi Date: Sat Feb 27 18:24:17 2010 +0000 actor: Use the TOPLEVEL flag instead of a type check We can use the internal private CLUTTER_ACTOR_IS_TOPLEVEL flag, which is set only on Stages. clutter/clutter-actor.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) commit cd62dfbd1419870fb6792bcab87ea8e7d0e760f5 Author: Chris Lord Date: Fri Feb 26 18:36:38 2010 +0000 [stage] Use min-width/height props for min size Instead of shadowing these properties with different properties with the same names on stage, actually use them. Behaviour should be identical, except the minimum stage size can now be enforced by setting the min-width/height properties as well as using the set_minimum_size function. clutter/clutter-actor.c | 13 ++++-- clutter/clutter-stage.c | 102 +++++++++++++++++++++++++++++++---------------- 2 files changed, 77 insertions(+), 38 deletions(-) commit 9f67e4826c9880732e4f2a74ac42f729e7e80042 Author: Emmanuele Bassi Date: Fri Feb 26 16:43:02 2010 +0000 docs: Update --enable-cogl-debug description The 'no' value is not the default any more. The 'minimum' value is always the default, regardless of the release status. README | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 62f2961f8a9b2974e0a7a11ea534f0b14f8fef1a Author: Emmanuele Bassi Date: Fri Feb 26 15:12:27 2010 +0000 docs: Unicode-ify NEWS NEWS | 1302 +++++++++++++++++++++++++++++++++--------------------------------- 1 file changed, 651 insertions(+), 651 deletions(-) commit c8c62af0cf5d33f3fe3e4aab44ed49363263252c Author: Emmanuele Bassi Date: Fri Feb 26 15:00:47 2010 +0000 build: More options for Automake Require automake >= 1.10, and add the following options: » dist-bzip2: create a bz2 tarball in the dist process » check-news: check that we changed the NEWS file prior to dist, to avoid another release without NEWS updates, like 1.1.10 configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e0f04efa411c0987db32c056958ad2c7cf5b6736 Author: Emmanuele Bassi Date: Fri Feb 26 10:36:17 2010 +0000 device: When changing the stage, unset the pointer actor If we do not unset the Stage we will have stale data, and the Crossing event when re-entering a Stage will not be emitted, as the actor under the pointer might be the same as before. clutter/clutter-input-device.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) commit 5d8346829585bb4b6d4617a232f87e3dab4eee5f Author: Neil Roberts Date: Tue Feb 23 14:45:44 2010 +0000 cogl-vertex-buffer: Add support for unsigned int indices This adds a COGL_INDICES_TYPE_UNSIGNED_INT enum value so that unsigned ints can be used with cogl_vertex_buffer_indices_new. Unsigned ints are not supported in core on GLES so a feature flag has also been added to advertise this. GLES only sets the feature if the GL_OES_element_index_uint extension is available. It is an error to call indices_new() with unsigned ints unless the feature is advertised. http://bugzilla.openedhand.com/show_bug.cgi?id=1998 clutter/cogl/cogl/cogl-types.h | 6 +++++- clutter/cogl/cogl/cogl-vertex-buffer.c | 17 ++++++++++++++++- clutter/cogl/cogl/cogl-vertex-buffer.h | 8 ++++++++ clutter/cogl/cogl/driver/gl/cogl.c | 3 ++- .../cogl/cogl/driver/gles/cogl-feature-functions.h | 6 ++++++ 5 files changed, 37 insertions(+), 3 deletions(-) commit 67d9d928147aa59905960480a5d0b4c19c9d1920 Author: Emmanuele Bassi Date: Thu Feb 25 23:23:53 2010 +0000 docs: Document the "columns" syntax for ClutterModel Like we do for other classes implementing custom properties, we should document the syntax of the "columns" scriptable property of ClutterModel. clutter/clutter-model.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) commit 70d7bad98ba50a657204ee356fd5ac5ccf4e8bea Author: Emmanuele Bassi Date: Thu Feb 25 23:15:59 2010 +0000 conformance: Use g_test_verbose() for logging Protect g_print() calls behind the g_test_verbose() check, to avoid unwanted output during the conformance test run. tests/conform/test-model.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit 96c31bbf0ea14c7cb6eaa824a6d5cf66d58b8d5b Author: Bastian Winkler Date: Thu Feb 25 23:47:49 2010 +0100 model: Implement ClutterScriptable interface Allow a ClutterModel to be constructed through the ClutterScript API. Currently this allows a model to be generated like like this: { "id" : "test-model", "type" : "ClutterListModel", "columns" : [ [ "text-column", "gchararray" ], [ "int-column", "gint" ], [ "actor-column", "ClutterRectangle" ] ] } where 'columns' is an array containing arrays of column-name, column-type pairs. http://bugzilla.openedhand.com/show_bug.cgi?id=2007 .gitignore | 1 + clutter/clutter-model.c | 105 ++++++++++++++++++++++++++++++++++++- tests/conform/test-conform-main.c | 1 + tests/conform/test-model.c | 34 ++++++++++++ tests/data/test-script-model.json | 9 ++++ 5 files changed, 149 insertions(+), 1 deletion(-) commit 63279f827e9d4e517c3dc88633a8b5ed47fbd74e Author: Emmanuele Bassi Date: Thu Feb 25 22:50:38 2010 +0000 docs: gtk-doc fixes for Animator Fix the syntax for: → enumeration values → return values → @since tags Also, fix the introspection annotations. clutter/clutter-animator.c | 40 +++++++++++++++++++++++++++------------- 1 file changed, 27 insertions(+), 13 deletions(-) commit 9db135c4eff97a3d3520cc05c9c3e85c153e8cc4 Author: Emmanuele Bassi Date: Thu Feb 25 18:28:37 2010 +0000 glx: Clean up sync-to-vblank mechanism discovery The code has gotten really complicated to follow. As soon as we have a sync-to-vblank mechanism we should just bail out. Also, __GL_SYNC_TO_VBLANK (which is used by nVidia) should be assumed equivalent to a CLUTTER_VBLANK_GLX_SWAP. clutter/glx/clutter-backend-glx.c | 169 ++++++++++++++++++++----------------- 1 file changed, 92 insertions(+), 77 deletions(-) commit 655cb966c08b0ec3a0b73ed1b18fc9ebbe9a93b8 Author: Emmanuele Bassi Date: Thu Feb 25 17:09:55 2010 +0000 docs: Add visual cue for Animator's key frames We should explain what a "key frame" is for ClutterAnimator, possibly with some sort of visual cue. This allows me to demonstrate my poor skills at using Inkscape, as well as my overall bad taste for graphics design. clutter/clutter-animator.c | 21 ++ doc/reference/clutter/Makefile.am | 3 + doc/reference/clutter/animator-key-frames.png | Bin 0 -> 11936 bytes doc/reference/clutter/animator-key-frames.svg | 271 +++++++++++++++++++++++++ 4 files changed, 295 insertions(+) commit d3d05261e6a394736757cebb5aad9b9267e7cf53 Author: Emmanuele Bassi Date: Thu Feb 25 14:22:08 2010 +0000 script-parser: Remove top-level types list The top-level types list was comically out of date, and it was only determining whether the type we were constructing was initially unowned or a full object. We can safely replace it with a simple type check. clutter/clutter-script-parser.c | 36 ++++-------------------------------- 1 file changed, 4 insertions(+), 32 deletions(-) commit c0be19eff65c4c72aa5c934cee3b582903db40f6 Author: Emmanuele Bassi Date: Thu Feb 25 14:20:05 2010 +0000 script-parser: Be more strict with "children" members The "children" member for Container definitions should only reference actors, and warn about any other type. clutter/clutter-script-parser.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit c291d5a660f4ebac3dc57acad79b8153686a47f0 Author: Emmanuele Bassi Date: Thu Feb 25 14:08:57 2010 +0000 animator: Add a :timeline property It would be useful to be able to share the Timeline across different animator instances, or with different animation constructs. Also this allows sharing definitions of Timelines in ClutterScript. clutter/clutter-animator.c | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) commit 641582533952c91576fb53724b70cbe6afb119db Author: Emmanuele Bassi Date: Thu Feb 25 14:02:29 2010 +0000 animator: Remove NULL check in remove_key() The arguments for remove_key() can be NULL, but there is an extraneous assertion that fails if they are. The pre-conditions should match the documentation, in this case. clutter/clutter-animator.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit 4bc4c604e926b07af9ef4c02fd5f000fc939259b Author: Emmanuele Bassi Date: Thu Feb 25 12:45:02 2010 +0000 box: Let pack_at() create the ChildMeta, if any A sub-class of ClutterBox might add ChildMeta support, and since pack_at() does not go through clutter_container_add_actor(), we need to manually call the create_child_meta() ourselves. clutter/clutter-box.c | 5 +++++ 1 file changed, 5 insertions(+) commit 543e2d3f0609864cebb1f1eaf258108abab50770 Author: Emmanuele Bassi Date: Thu Feb 25 12:39:24 2010 +0000 container: Expose create and destroy ChildMeta methods It is conceivable that Container implementations might add children outside of the Container::add() implementation - e.g. for packing at a specific index. Since the addition (and removal) might happen outside the common path we need to expose all the API that is implicitly called by ClutterContainer when adding and removing a child - namely the ChildMeta creation and destruction. clutter/clutter-container.c | 44 ++++++++++++++++++++-------- clutter/clutter-container.h | 4 +++ doc/reference/clutter/clutter-sections.txt | 2 ++ 3 files changed, 38 insertions(+), 12 deletions(-) commit 31b5856d69e8d53de17270da7ab59dd290e2868a Author: Neil Roberts Date: Wed Feb 24 23:04:39 2010 +0000 test-cogl-blend-strings: Add some more tests The adds tests for the remaining layer combine functions, the 1 minus value operator and the TEXTURE_N source. Note however that Cogl currently fails when parsing a TEXTURE_N source so the test is commented out. tests/conform/test-cogl-blend-strings.c | 46 +++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) commit 14999bec5e6b3d0aab057ef544f233d968e5cf67 Author: Neil Roberts Date: Wed Feb 24 11:13:55 2010 +0000 gles2: Remove the special wrapper for glBindTexture Previously the GLES2 backend needed a special wrapper for glBindTexture because it needed to know the internal GL format of the texture in order to correctly implement the GL_MODULATE texture env mode. When GL_MODULATE is used then the RGB values are taken from the previous texture layer rather than being fetched from the texture. However since the material API was added Cogl no longer uses the GL_MODULATE texture env mode but instead always uses GL_COMBINE. Compiling the GLES2 backend broke since the more-texture-backends branch merge because the cogl_get_internal_gl_format function was removed and there was one place in GLES2 specific code that was using this to bind the texture. clutter/cogl/cogl/cogl-material.c | 10 --------- clutter/cogl/cogl/cogl-texture-2d-sliced.c | 5 ++--- clutter/cogl/cogl/cogl-texture-driver.h | 7 ------- clutter/cogl/cogl/driver/gl/cogl-texture-driver.c | 12 ----------- clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.c | 22 -------------------- clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.h | 12 ----------- .../cogl/cogl/driver/gles/cogl-texture-driver.c | 13 ------------ 7 files changed, 2 insertions(+), 79 deletions(-) commit eba07020c549ff0ede9982c6d911d67e353ca5a3 Author: Neil Roberts Date: Wed Feb 24 16:50:32 2010 +0000 cogl-gles2-wrapper: Add support for the layer combine operations The texture layer combine functions are now hard coded to GL_COMBINE instead of GL_MODULATE. The combine function can be customized with all the parameters of GL_COMBINE. A shader is generated to implement the given parameters. Currently it will try to generate code for the constant color but it will use a uniform which does not exist. clutter/cogl/cogl/cogl-blend-string.c | 9 - clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.c | 382 ++++++++++++++++++-- clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.h | 16 + 3 files changed, 371 insertions(+), 36 deletions(-) commit 02b952394ae9efe9e80b803e671bca1b1f711a9a Author: Neil Roberts Date: Wed Feb 24 10:42:59 2010 +0000 gles2: Implement a wrapper for glGetIntegerv(GL_MAX_TEXTURE_UNITS) The GLES2 backend for Cogl is failing to compile because GL_MAX_TEXTURE_UNITS is not defined. Let's define it and provide a wrapper which uses GL_MAX_TEXTURE_IMAGE_UNITS or COGL_GLES2_MAX_TEXTURE_UNITS, whichever is the smallest. clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.c | 6 ++++++ clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.h | 2 ++ 2 files changed, 8 insertions(+) commit 3bc0672feff7c58326c4d50612bedf15aa9c02cb Author: Øyvind Kolås Date: Thu Feb 25 12:30:07 2010 +0000 animator: handle no initial key Fixing the crasher reported in bug #1995. clutter/clutter-animator.c | 108 ++++++++++++++++++++++++++------------------ 1 file changed, 65 insertions(+), 43 deletions(-) commit d2db512788aac496a3741cb424caea41cf4357a1 Author: Øyvind Kolås Date: Thu Feb 25 11:48:44 2010 +0000 animator: added clutter_animator_compute_value Allow querying the computed values of properties managed by a ClutterAnimator. clutter/clutter-animator.c | 212 +++++++++++++++++++++++++++++++++++++++++--- clutter/clutter-animator.h | 12 +++ 2 files changed, 211 insertions(+), 13 deletions(-) commit e8d32fd153268c653c1adc5c66f30f0ee624b432 Author: Øyvind Kolås Date: Thu Feb 25 11:28:32 2010 +0000 animator: removed bogus arg in keys interpolation accessor A bogus ClutterInterpolation argument had been carried from clutter_animator_set_interpolation to clutter_animator_get_interpolation in copy and paste. clutter/clutter-animator.c | 16 +++++++--------- clutter/clutter-animator.h | 3 +-- 2 files changed, 8 insertions(+), 11 deletions(-) commit be8f53f229397e72fcf5a1bed245d555ea4747e9 Author: Emmanuele Bassi Date: Thu Feb 25 12:01:03 2010 +0000 animation: Fix a typo This will teach me to check before compiling a version-dependent branch that I'm actually using my jhbuild environment and not the system libraries. clutter/clutter-animation.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 26e22b2ede0eb0fdfbe3d96189cb2aa196da83f8 Author: Emmanuele Bassi Date: Thu Feb 25 10:22:36 2010 +0000 Conditionally use G_VALUE_COLLECT_INIT() macro GLib 2.24 (but starting from the 2.23.2 unstable release) added a new macro for collecting GValues from a va_list. The newly added G_VALUE_COLLECT_INIT() macro should be used in place of initializing the GValue and calling G_VALUE_COLLECT(), and improves the collection performances by avoiding multiple checks, free and initialization calls. clutter/clutter-animation.c | 8 ++++++++ clutter/clutter-animator.c | 7 ++++++- clutter/clutter-box.c | 7 +++++++ clutter/clutter-container.c | 7 +++++++ clutter/clutter-interval.c | 10 ++++++++++ clutter/clutter-layout-manager.c | 7 +++++++ 6 files changed, 45 insertions(+), 1 deletion(-) commit bd303d6efb7dfddbdf671f7c66ff5b73bb216f3f Author: Emmanuele Bassi Date: Wed Feb 24 16:43:17 2010 +0000 conform: Verify parsing of multiple properties The ClutterAnimator support for parsing multiple properties should be verified in the conformance test suite. http://bugzilla.openedhand.com/show_bug.cgi?id=2003 .gitignore | 1 + tests/conform/test-animator.c | 98 +++++++++++++++++++++++++++++++++++++ tests/conform/test-conform-main.c | 1 + tests/data/test-animator-3.json | 40 +++++++++++++++ 4 files changed, 140 insertions(+) commit 59fd7e4a810f51bad31c2eafb609d545557ef264 Author: Bastian Winkler Date: Wed Feb 24 16:32:19 2010 +0100 animator: Append parsed animator keys to previously parsed ones Reuse the GSList of the previously parsed property when building a ClutterAnimator from script, otherwise only the last used property will be used http://bugzilla.openedhand.com/show_bug.cgi?id=2003 clutter/clutter-animator.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit fd6f6707433a8ab57c8232afee65038213d4120c Author: Emmanuele Bassi Date: Wed Feb 24 14:40:22 2010 +0000 Post-release version bump to 1.1.15 configure.ac | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 18659b008c800b2dde6e5a2453fba04f5990f2b7 Author: Emmanuele Bassi Date: Wed Feb 24 14:26:46 2010 +0000 Release 1.1.14 configure.ac | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit ec0c7fcd9bb734c3fd488b4b3ec3d469ba5e967f Author: Emmanuele Bassi Date: Wed Feb 24 14:23:58 2010 +0000 build: Use the right headers when enumerating them The installed _HEADERS should be the public ones and the enumeration types; repeating clutter-x11-texture-pixmap.h breaks with automake 1.11 and doesn't strictly make any sense. http://bugzilla.openedhand.com/show_bug.cgi?id=2002 clutter/x11/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1370d72a7a1490c1ed60f02634f146995482116d Author: Emmanuele Bassi Date: Wed Feb 24 14:20:14 2010 +0000 Update NEWS file NEWS | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) commit d1ca0e1b8f3dc6f5b5fec0ce3fba4702b9e75386 Author: Emmanuele Bassi Date: Wed Feb 24 12:23:46 2010 +0000 fixed layout: Store a back pointer to the Container When set_container() is called with a NULL container we cannot use the passed pointer to unset the CLUTTER_ACTOR_NO_LAYOUT flag. We should store a back pointer to the container as object data (there's no need to add a Private data structure in this case) and unset the flag on the back pointer instead. clutter/clutter-fixed-layout.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) commit 3a9d842164708baa8fe877d829f9e9cdcbde3831 Author: Emmanuele Bassi Date: Wed Feb 24 12:09:13 2010 +0000 conformance: Show the Stage to test invariants We need to make the Stage set the MAPPED flag on itself if we want to verify the MAPPED state. That was always the case - it just worked before because the Stage was shown at least once. tests/conform/test-actor-invariants.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit aa8c8127059326c2d13d9f8dd6a294e787e3760e Author: Emmanuele Bassi Date: Wed Feb 24 12:08:07 2010 +0000 box: Do not short-circuit size negotiation for empty Boxes The LayoutManager used might decide to have a default allocation or a default preferred size when empty. clutter/clutter-box.c | 31 ------------------------------- 1 file changed, 31 deletions(-) commit 523bab0868255e3f2b2910a60a868bffeb5bf64a Author: Robert Bragg Date: Thu Feb 11 11:45:36 2010 +0000 layout: allow wider use of the CLUTTER_ACTOR_NO_LAYOUT flag Previously only ClutterGroup was able to set the CLUTTER_ACTOR_NO_LAYOUT flag which allows clutter-actor.c to avoid a relayout when showing or hiding fixed layout containers. Instead of it being the responsibility of the container to set this flag this patch makes the layout manager itself decide in the ::set_container method. This way both ClutterBox and ClutterGroup can take advantage of the optimization. clutter/clutter-fixed-layout.c | 17 +++++++++++++++++ clutter/clutter-group.c | 8 +++----- 2 files changed, 20 insertions(+), 5 deletions(-) commit f21e649c80a3e0db5db7dc1128f7828535dbebc2 Author: Emmanuele Bassi Date: Wed Feb 24 11:28:44 2010 +0000 docs: Detail replacement for cogl_check_extension() The cogl_check_extension() function has been deprecated, but it's easily replaceable with a simple strstr() call. clutter/cogl/cogl/cogl.h | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) commit 829d3f4bc5d083320f7f1b70d25e0115e1b6512f Author: Emmanuele Bassi Date: Wed Feb 24 11:27:51 2010 +0000 docs: Update NEWS and README The NEWS file was not updated for the 1.1.12 release, so we need to update it now. The Release Notes section for Clutter and Cogl also needs some more entries that escaped previous releases. NEWS | 33 +++++++++++++++++++++++++++++++++ README | 21 +++++++++++++++++++++ 2 files changed, 54 insertions(+) commit d54af2363d390bf598aaa931821a46604d4f192a Author: Emmanuele Bassi Date: Wed Feb 24 10:20:10 2010 +0000 build: Use template for ClutterX11 enumerationt types Clutter and Cogl use the template Makefile.am.enums for building the enumeration GTypes from public headers, but ClutterX11 is not. .gitignore | 13 ++++---- clutter/x11/Makefile.am | 77 +++++++++++++++++++---------------------------- 2 files changed, 37 insertions(+), 53 deletions(-) commit eb35c446b119274658ba45937e02b5cfd1ec27fe Author: Neil Roberts Date: Tue Feb 23 22:06:59 2010 +0000 clutter-box: Layer new actors on top of all others at the same depth g_list_insert_sorted inserts the new actor before all others that compare equal so for the normal case when all actors have depth==0 this has the surprising behaviour of layering the actors in reverse order. To fix this it now manually inserts the actor in the right place by searching until it finds an actor at a higher depth and inserting before that. http://bugzilla.openedhand.com/show_bug.cgi?id=1988 clutter/clutter-box.c | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) commit da0315e4d666cc7cbfcfe7dab63d731df2a02338 Author: Neil Roberts Date: Tue Feb 23 22:10:30 2010 +0000 box: Revert "Tweak the depth sorting function" This reverts commit 939e56e2b12e5c96fa1173be33c2786ddfe57c25. Changing the depth sort function to have inconsistent behaviour for nodes that compare equal breaks the stability of g_list_sort. It ends up so that every time clutter_container_sort_depth_order is called the order of all actors with the same depth is reversed. http://bugzilla.openedhand.com/show_bug.cgi?id=1988 clutter/clutter-box.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1c65f2ee1e4595d3044d05cadb4f33fc2d03a6f3 Author: Robert Bragg Date: Wed Feb 17 18:45:08 2010 +0000 cogl debug: Adds glViewport call tracing To aid in the debugging of Clutter stage resize issues this adds a COGL_DEBUG=opengl option that will trace "some select OpenGL calls" (currently just glViewport calls) clutter/cogl/cogl/cogl-debug.c | 2 ++ clutter/cogl/cogl/cogl-debug.h | 3 ++- clutter/cogl/cogl/cogl-framebuffer.c | 6 ++++++ 3 files changed, 10 insertions(+), 1 deletion(-) commit fa3830ff20962dc72b676a5411a7fa1829a870cd Author: Robert Bragg Date: Wed Feb 17 17:53:28 2010 +0000 cogl debug: hint that all debugging paths are G_UNLIKELY Most Cogl debugging code conditions are marked as G_UNLIKELY with the intention of having the CPU branch prediction always assume the path is disabled so having debugging support in release binaries has negligible overhead. This patch simply fixes a few cases where we weren't using G_UNLIKELY. clutter/cogl/cogl/cogl-journal.c | 9 +++++---- clutter/cogl/cogl/cogl.c | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) commit a58d6e8ee5e26185ff090845df68b61076275c21 Author: Robert Bragg Date: Wed Feb 17 17:40:57 2010 +0000 cogl debug: Support "minimum" level debugging by default We basically want all Clutter applications out in the wild to at least have the basic set of COGL_DEBUG/--cogl-debug options available for investigating issues. configure.ac | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 511e5ceb516dcbf2c406a7c2e8e0e56d2135fb0d Author: Robert Bragg Date: Wed Feb 17 14:38:11 2010 +0000 cogl debug: Makes COGL_DEBUG=all|verbose|help more useful COGL_DEBUG=all wasn't previously useful as there are several options that change the behaviour of Cogl and all together wouldn't help anyone debug anything. This patch makes it so COGL_DEBUG=all|verbose now only enables options that don't change the behaviour of Cogl, i.e. they only affect the amount of noise we'll print to a terminal. In addition to that this patch also improves the output from COGL_DEBUG=help so we now print a table of options including one liner descriptions of what each option enables. clutter/cogl/cogl/cogl-debug.c | 121 +++++++++++++++++++++------- clutter/cogl/cogl/cogl-debug.h | 37 ++++----- clutter/cogl/cogl/cogl-texture-2d-sliced.c | 2 +- 3 files changed, 111 insertions(+), 49 deletions(-) commit 939e56e2b12e5c96fa1173be33c2786ddfe57c25 Author: Emmanuele Bassi Date: Tue Feb 23 17:59:09 2010 +0000 box: Tweak the depth sorting function By changing the depth sorting function we can achieve the same effect as ClutterGroup but without the costly append+sort. http://bugzilla.openedhand.com/show_bug.cgi?id=1988 clutter/clutter-box.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 95960ab902852e9c4830815b89d0a315fb9e4c50 Author: Emmanuele Bassi Date: Tue Feb 23 16:51:26 2010 +0000 cogl: Add deprecation annotation to CoglMaterial ref/unref The G_GNUC_DEPRECATED annotation was missing from the material ref and unref functions. clutter/cogl/cogl/cogl-material.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a9941e94995d2701783f055e69fba52a64f609e0 Author: Emmanuele Bassi Date: Tue Feb 16 20:08:35 2010 +0000 debug: Split debugging notes from behavioural modifiers Some of the ClutterDebugFlags are not meant as a logging facility: they actually change Clutter's behaviour at run-time. It would be useful to have this distinction ratified, and thus split ClutterDebugFlags into two: one DebugFlags for logging facilities and another set of flags for behavioural changes. This split is warranted because: • it should be possible to do "CLUTTER_DEBUG=all" and only have log messages on the output • it should be possible to use behavioural modifiers even on a Clutter that has been compiled without debugging messages support The commit adds two new debugging flags: ClutterPickDebugFlags - controlled by the CLUTTER_PICK environment variable ClutterPaintDebugFlags - controlled by the CLUTTER_PAINT environment variable The PickDebugFlags are: nop-picking dump-pick-buffers While the PaintDebugFlags is: disable-swap-events The mechanism is equivalent to the CLUTTER_DEBUG environment variable, but it does not depend on the debug level selected when configuring and compiling Clutter. The picking and painting debugging flags are initialized at clutter_init() time. http://bugzilla.openedhand.com/show_bug.cgi?id=1991 clutter/clutter-debug.h | 14 ++++++++--- clutter/clutter-main.c | 49 +++++++++++++++++++++++++++++-------- clutter/glx/clutter-backend-glx.c | 6 +++-- 3 files changed, 54 insertions(+), 15 deletions(-) commit a9c307ff5d94489b30d7398ac80072fe7222a434 Author: Neil Roberts Date: Wed Feb 17 22:16:17 2010 +0000 cogl-vertex-buffer: Fix the malloc fallback for indices The size of the malloc'd buffer for indices when VBOs are not available was too small so memory corruption would result if it was used. http://bugzilla.o-hand.com/show_bug.cgi?id=1996 clutter/cogl/cogl/cogl-vertex-buffer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 14669657737cc1547fb0db261232e63bdd2755d9 Author: Emmanuele Bassi Date: Mon Feb 22 11:34:04 2010 +0000 device: Motion events compression should honour the device The motion event compression should be affected by the device field of the event; that is: we should compress motion events coming from the same device. clutter/clutter-stage.c | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) commit 5ed4732737202c3051044455a91dc70c213fb800 Author: Emmanuele Bassi Date: Mon Feb 22 11:30:14 2010 +0000 device: Force ENTER on Stage with overlapping Actors If an actor is on the boundary of a Stage and the pointer for a device enters the Stage over that actor, the sequence of events currently is: ➔ ENTER (source: actor, related: NULL) ➔ MOTION Thus the Stage never gets an ENTER event. This is a regression from Clutter 1.0. The correct sequence is: ➔ ENTER (source: stage, related: NULL) ➔ ENTER (source: actor, related: stage) ➔ MOTION This also maps to the sequence of events sythesized by Clutter when leaving the Stage through an actor overlapping the Stage boundary. http://bugzilla.moblin.org/show_bug.cgi?id=9781 clutter/clutter-input-device.c | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) commit ee33357fd5d08be824a5ecb3161a79568afa4e5c Author: Emmanuele Bassi Date: Thu Feb 18 16:58:29 2010 +0000 stage: Only clutter_stage_get_default() creates the default stage The introduction of the StageManager in 0.8 implied that the first Stage instance to be created was automatically assigned the status of "default stage". This was all well and good, since the default stage was created behind the curtains by the initialization sequence. Now that the initialization sequence does not create a default stage any longer, it means that the first stage created using clutter_stage_new() gets to be the default, and all special and warm and fuzzy - which also means that the first stage created by clutter_stage_new() cannot be destroyed or handled as any other stage. Whoopsie. Let's go back to the old semantics: the stage created by the first invocation of clutter_stage_get_default() is the default stage, and nothing else can be set as default. One day we'll be able to break the API and the whole default stage business will be a thing of the past. clutter/clutter-private.h | 10 ++++++---- clutter/clutter-stage-manager.c | 32 +++++++++++++++++++++++++------- clutter/clutter-stage.c | 1 + 3 files changed, 32 insertions(+), 11 deletions(-) commit 9a6de8757f27ff8a8cf9f89209f9366e03b7aadf Author: Emmanuele Bassi Date: Thu Feb 18 11:34:06 2010 +0000 docs: Document the InputDevice update method Embedding toolkits should benefit from a proper documentation of clutter_input_device_update_from_event(): its meaning, its use and the caveats for the "update_stage" argument. clutter/clutter-input-device.c | 49 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) commit a2afc9d7ba0a80733044b97498a7df26de5a4ab2 Author: Neil Roberts Date: Wed Feb 17 18:18:38 2010 +0000 win32: Fixup compilation errors from b398292089b0f7 That commit added some Win32 code which breaks compilation. Thanks to Samuel Degrande for help with this. clutter/win32/clutter-backend-win32.c | 5 ++--- clutter/win32/clutter-device-manager-win32.c | 18 ++++++------------ clutter/win32/clutter-event-win32.c | 2 +- 3 files changed, 9 insertions(+), 16 deletions(-) commit 5de743de705ba9bb9a2061a66045b32091165ad5 Author: Robert Bragg Date: Tue Feb 16 14:53:10 2010 +0000 cogl_texture_new_from_foreign: improve docs Improve the explanation of what the x_pot_waste and y_pot_waste arguments can be used for. clutter/cogl/cogl/cogl-texture.h | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) commit 9c06c94374c61c019ca49fa6fd80679e6ad2f29a Author: Robert Bragg Date: Tue Feb 16 14:23:11 2010 +0000 cogl-texture: for foreign textures; always trust user geom We now never query the width and height of the given texture object from OpenGL. The problem is that the user may be creating a Cogl texture from a texture_from_pixmap object where glTexImage2D was never called and the texture_from_pixmap spec doesn't clarify that it's reliable to query the width from OpenGL. This should address: http://bugzilla.openedhand.com/show_bug.cgi?id=1502 Thanks to Johan Bilien for reporting clutter/cogl/cogl/cogl-texture-2d-sliced.c | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) commit 8b040cac4dfaaa9d91635d31d93a79d00f637772 Author: Emmanuele Bassi Date: Wed Feb 17 19:02:43 2010 +0000 docs: Fixes for DeviceManager clutter/clutter-device-manager.h | 12 ++++++------ doc/reference/clutter/clutter-sections.txt | 6 ++++++ 2 files changed, 12 insertions(+), 6 deletions(-) commit 51a3e49c8228a22c1fbcd42971ad27d26d83991b Author: Emmanuele Bassi Date: Wed Feb 17 18:21:50 2010 +0000 device: Allow updating devices from embedding toolkits Embedding toolkits most likely will disable the event handling, so all the input device code will not be executed. Unfortunately, the newly added synthetic event generation of ENTER and LEAVE event pairs depends on having input devices. In order to unbreak things without reintroducing the madness of the previous code we should allow embedding toolkits to just update the state of an InputDevice by using the data contained inside the ClutterEvent. This strategy has two obvious reasons: • the embedding toolkit is creating a ClutterEvent by translating a toolkit-native event anyway • this is exactly what ClutterStage does when processing events We are, essentially, deferring input device handling to the embedding toolkits, just like we're deferring event handling to them. clutter/clutter-event.h | 2 - clutter/clutter-input-device.c | 59 ++++++++++++++++++++++++++++ clutter/clutter-input-device.h | 5 +++ clutter/clutter-types.h | 2 + doc/reference/clutter/clutter-sections.txt | 2 + 5 files changed, 68 insertions(+), 2 deletions(-) commit b398292089b0f70b9457985426d6b962d9179fa7 Author: Emmanuele Bassi Date: Wed Feb 17 17:06:25 2010 +0000 device: Impose per-backend DeviceManager The DeviceManager class should be abstract in Clutter, and implemented by each backend, as different backends will have different ways to detect, initialize and list devices; the X11 backend alone has *two* ways of dealing with devices. This commit makes DeviceManager an abstract class and delegates the device initialization and enumeration to per-backend sub-classes. The responsible for creating the device manager is, obviously, the backend singleton. The X11 and Win32 backends have been updated to the new layout; the Win32 backend has been updated blindly, so it might require additional testing. clutter/clutter-backend.h | 38 +-- clutter/clutter-device-manager.c | 166 ++++++++---- clutter/clutter-device-manager.h | 51 +++- clutter/clutter-private.h | 7 - clutter/win32/Makefile.am | 2 + clutter/win32/clutter-backend-win32.c | 38 +-- clutter/win32/clutter-backend-win32.h | 3 +- clutter/win32/clutter-device-manager-win32.c | 173 +++++++++++++ clutter/win32/clutter-device-manager-win32.h | 60 +++++ clutter/win32/clutter-event-win32.c | 34 ++- clutter/x11/Makefile.am | 2 + clutter/x11/clutter-backend-x11.c | 168 +++---------- clutter/x11/clutter-backend-x11.h | 3 +- clutter/x11/clutter-device-manager-x11.c | 349 ++++++++++++++++++++++++++ clutter/x11/clutter-device-manager-x11.h | 68 +++++ clutter/x11/clutter-event-x11.c | 14 +- 16 files changed, 930 insertions(+), 246 deletions(-) commit 0bf6d57ab128f301588695d011a9ab5d1b1dce1a Author: Chris Lord Date: Wed Feb 17 16:56:30 2010 +0000 [event-x11] Don't relayout on window move ConfigureNotify is delivered on window movements too, but there is no need to queue a relayout on these as the viewport hasn't changed size. Check for the window actually changing size on ConfigureNotify before queueing a relayout. This fixes laggy window movement when moving a window in response to Clutter mouse motion events. clutter/x11/clutter-event-x11.c | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) commit 05054bed87866d10c927642fe6273c5bd8f89a95 Author: Neil Roberts Date: Wed Feb 17 15:58:32 2010 +0000 cogl-clip-stack: Round the coords when clipping to a window rect The size and position of the window rectangle for clipping in try_pushing_rect_as_window_rect is calculated by projecting the rectangle coordinates. Due to rounding errors, this can end up with slightly off numbers like 34.999999. These were then being cast directly to an integer so it could end up off by one. This uses a new macro called COGL_UTIL_NEARBYINT which is a replacement for the C99 nearbyint function. clutter/cogl/cogl/cogl-clip-stack.c | 6 +++++- clutter/cogl/cogl/cogl-util.h | 8 ++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) commit a726ef32aa4721070b57df2e08c304096cb24736 Author: Neil Roberts Date: Wed Feb 17 14:38:45 2010 +0000 test-cogl-vertex-buffer: Fix the maximum index number It was passing the number of vertices to cogl_vertex_buffer_draw_elements but instead it should take the maximum index which would be the number of vertices minus one. This was causing errors to be reported with the checks filterset of Bugle. tests/interactive/test-cogl-vertex-buffer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fbcaf1e0b34f68934e0c84b01adfa5ea920c6c6a Author: Emmanuele Bassi Date: Wed Feb 17 10:46:16 2010 +0000 Improve LEAVE events for border actors If an actor is lying on the border of the Stage it might miss the LEAVE event when the pointer of a device leaves the Stage window. Since the backend is unsetting the Stage back pointer on the InputDevice we can queue the emission of a LEAVE event on the pointer actor as well. http://bugzilla.moblin.org/show_bug.cgi?id=9677 clutter/clutter-input-device.c | 23 ++++++++++++++++++++++- tests/interactive/test-events.c | 22 +++++++++++++++++----- 2 files changed, 39 insertions(+), 6 deletions(-) commit 719e314b8e364955b046c990ddc1c9f07b0cc55f Author: Chris Lord Date: Tue Feb 16 18:25:46 2010 +0000 [stage-x11] Fix a warning due to a missing cast I stupidly forgot to cast a ClutterStage to a ClutterActor and somehow missed or didn't get the compiler warning. Fix. clutter/x11/clutter-stage-x11.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f9f03894a691cfb8f791f34c684d82f8a6d5b5b8 Author: Chris Lord Date: Tue Feb 16 18:17:55 2010 +0000 [stage-x11] Fix resizing for foreign windows As well as manually setting the geometry size, we needed to queue a relayout. This is what the ConfigureNotify handler would normally do, but we don't get this event when using a foreign window (obviously). This should fix resizing in things like gtk-clutter. clutter/x11/clutter-stage-x11.c | 5 +++++ 1 file changed, 5 insertions(+) commit df6e7aee73a3c3818acab8218732659eb77a3cdc Author: Chris Lord Date: Tue Feb 16 17:46:52 2010 +0000 [stage-x11] Set the geometry size for foreign wins If we get into the resize function and it's a foreign window, set the geometry size so that the allocate will set the backend size and call glViewport. clutter/x11/clutter-stage-x11.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit c2d016471258c529d7829ed807e76a4e029b614b Author: Emmanuele Bassi Date: Tue Feb 16 16:31:20 2010 +0000 Add test-stage-sizing to the ignore file .gitignore | 1 + 1 file changed, 1 insertion(+) commit d42f928c43994331017bca7145b7b06fd5848909 Author: Chris Lord Date: Tue Feb 16 15:39:08 2010 +0000 [test-interactive] Add a stage sizing test Add an interactive stage sizing test to test the interaction of fullscreening/resizing/expanding/shrinking a visible stage. tests/interactive/Makefile.am | 3 +- tests/interactive/test-stage-sizing.c | 113 +++++++++++++++++++++++++++++++++ 2 files changed, 115 insertions(+), 1 deletion(-) commit 1117b6a9ac974dd5855c5e76965c15329c608ff4 Author: Chris Lord Date: Tue Feb 16 14:50:14 2010 +0000 [stage-x11] Fix switching fullscreen mode Setting/unsetting fullscreen on a mapped or unmapped window now works correctly. If you unfullscreen a window that was initially full-screened, it will unset the fullscreen hint and the WM will likely push the size down to the largest valid size. If the window was previously un-fullscreened, Clutter will restore the previous size. Fullscreening also now works if the WM switches the hint without the application's knowledge (as happens when you resize a window to the size of the screen, for example, with stock metacity). clutter/clutter-stage.c | 3 +- clutter/x11/clutter-event-x11.c | 13 +++++-- clutter/x11/clutter-stage-x11.c | 71 ++++++++++++++++++++++----------------- clutter/x11/clutter-stage-x11.h | 2 +- 4 files changed, 54 insertions(+), 35 deletions(-) commit dd36c3ad5c4f3d25d0286cf1c2a9a25abf7d2ea4 Author: Emmanuele Bassi Date: Tue Feb 16 12:32:37 2010 +0000 Post-release version bump to 1.1.13 configure.ac | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 21354b2b7518c9518fa8405f07ed1f929736d4a2 Author: Emmanuele Bassi Date: Tue Feb 16 12:21:15 2010 +0000 Release 1.1.12 (developers snapshot) configure.ac | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 7a3eb452b802e5b38542d224da179c4267706e7b Author: Emmanuele Bassi Date: Tue Feb 16 12:16:02 2010 +0000 conform: Do not resize the stage Since all conformance tests share the same state we should not touch stuff like the stage size; sharing is already fairly complex and adds a lot of caveats on the implementation of a conformance test unit, and if we make tests influence later ones then we might slip in bugs or false negatives - thus defeating the whole point of a conformance test suite. tests/conform/test-cogl-offscreen.c | 1 - tests/conform/test-cogl-readpixels.c | 1 - tests/conform/test-cogl-viewport.c | 1 - tests/conform/test-pick.c | 1 - 4 files changed, 4 deletions(-) commit 4cadc7300504828fa0db8cb21e1b9d8e23be6319 Author: Emmanuele Bassi Date: Tue Feb 16 12:15:23 2010 +0000 conform: Use a 640x480 stage in test-pick Do not resize the stage to a smaller size: the default size is perfectly fine. tests/conform/test-pick.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 958545aa70e526a12720bf2dd0d9b9a24d273b8d Author: Neil Roberts Date: Tue Feb 16 12:01:18 2010 +0000 cogl-atlas-texture: Don't use the atlas if FBOs aren't supported If FBOs aren't supported then it will end up very slow to reorganize the atlas. Also currently the CoglTexture2D backend will refuse to create any textures anyway so the full atlas texture won't be created. clutter/cogl/cogl/cogl-atlas-texture.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit a5021ba30f553d641399545d9777eb5b4b385ac1 Author: Neil Roberts Date: Tue Feb 16 11:58:47 2010 +0000 cogl-atlas-texture: Check for errors when creating the atlas texture cogl_texture_2d_new may fail in certain circumstances so cogl_atlas_texture_reserve_space should detect this and also fail. This will cause cogl_texture_new to fallback to a sliced texture. Thanks to Vladimir Ivakin for reporting this problem. clutter/cogl/cogl/cogl-atlas-texture.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) commit e65bb38720c8990684ce24bda08b78d8da49cc1b Author: Emmanuele Bassi Date: Tue Feb 16 11:38:51 2010 +0000 conform: Use g_assert_cmpint() in cogl-readpixels test The g_assert_cmpint() macro prints out not just the assertion condition but also the assertion contents; this is useful to catch wrong values without incrementing the verbosity of the test itself. tests/conform/test-cogl-readpixels.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) commit 56f164f8a1c634e2d0ba6ffb5879672d456e1488 Author: Emmanuele Bassi Date: Mon Feb 15 19:03:37 2010 +0000 docs: Document SWAP_EVENTS feature flag clutter/clutter-feature.h | 1 + 1 file changed, 1 insertion(+) commit 2fcb644e4fb02375bdf8b1f54677bcde7abdceba Author: Chris Lord Date: Mon Feb 15 18:53:58 2010 +0000 [stage] Fix some races to do with window resizing When we resize, we relied on the stage's allocate to re-initialise the GL viewport. Unfortunately, if we resized within Clutter, the new size was cached before the window is actually resized, so glViewport wasn't being called after resizing (some of the time, it's a race condition). Change the way resizing works slightly so that we only resize when the geometry size doesn't match our preferred size, and queue a relayout on ConfigureNotify so the glViewport gets called. Also change window creation slightly so that setting the size of a window before it's realized works correctly. clutter/clutter-stage.c | 36 +++++++++++++++--------------------- clutter/glx/clutter-stage-glx.c | 19 +++++++++++++++++-- clutter/x11/clutter-event-x11.c | 13 +++++++++++++ clutter/x11/clutter-stage-x11.c | 24 ++++++++++-------------- 4 files changed, 55 insertions(+), 37 deletions(-) commit 0d428655e23c18064176aa823db0d7165581ba02 Author: Emmanuele Bassi Date: Mon Feb 15 16:09:26 2010 +0000 actor: Turn push/pop_internal into Actor methods Since the "internal" state is global, it will leak onto actors that you didn't intend for it to, because it applies not just to the actors you create, but also to any actors *they* create. Eg, if you have a dialog box class, you might push/pop_internal around creating its buttons, so that those buttons get marked as internal to the dialog box. But ctx->internal_child will still be set during the *button*'s constructor as well, and so, eg, the label and icon inside the button actor will *also* be marked as internal children, even if that isn't what the button class wanted. The least intrusive change at this point is to make push_internal() and pop_internal() two methods of the Actor class, and take a ClutterActor pointer as the argument - thus moving the locality of the internal_child counter to the Actor itself. http://bugzilla.openedhand.com/show_bug.cgi?id=1990 clutter/clutter-actor.c | 31 ++++++++++++++++++------------- clutter/clutter-actor.h | 4 ++-- clutter/clutter-private.h | 2 -- tests/conform/test-actor-destroy.c | 4 ++-- 4 files changed, 22 insertions(+), 19 deletions(-) commit 2229cafc3833a017b3a107b4f6b207f0a95908f5 Author: Emmanuele Bassi Date: Mon Feb 15 12:04:50 2010 +0000 stage: Add sanity checks for get_pending_swaps() The master clock might have a Stage during its destruction phase, without a StageWindow attached to it. If this happens and we try to dereference the StageWindow to get its class and call a virtual function we might experience some slight turbulence and... then... explode. http://bugzilla.openedhand.com/show_bug.cgi?id=1987 clutter/clutter-master-clock.c | 21 +++++++++++++-------- clutter/clutter-stage.c | 10 +++++++++- 2 files changed, 22 insertions(+), 9 deletions(-) commit fef82fae5c716f15cd345fcfbc37f01578a82580 Author: Emmanuele Bassi Date: Mon Feb 15 11:58:55 2010 +0000 build: Enable experimental COGL API in tests/conform Enable the experimental API when building the conformance test suite. tests/conform/Makefile.am | 1 + tests/conform/test-cogl-pixel-buffer.c | 3 --- 2 files changed, 1 insertion(+), 3 deletions(-) commit 032121ce17fb825592ba435cf260107b52f8196c Author: Emmanuele Bassi Date: Mon Feb 15 11:57:48 2010 +0000 build: Disable deprecated API in tests/conform We should not be using deprecated API in the conformance test suite. tests/conform/Makefile.am | 1 + 1 file changed, 1 insertion(+) commit c3354cb2c0acc7d80b2cea3f970a1d83a47d585c Author: Emmanuele Bassi Date: Mon Feb 15 11:56:34 2010 +0000 conform: Do not use deprecated API There is no more type-specific ref/unref pairs: it is all under CoglHandle now. tests/conform/test-cogl-blend-strings.c | 6 +++--- tests/conform/test-cogl-multitexture.c | 2 +- tests/conform/test-cogl-texture-mipmaps.c | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) commit d607400f01be1c1e26f54b3d83794e0d246e8db0 Author: Emmanuele Bassi Date: Mon Feb 15 11:45:35 2010 +0000 x11: Do not set pid or title on foreign windows If a StageX11 is using a foreign window we should not need to set the _NET_WM_PID or the WM_TITLE properies. http://bugzilla.openedhand.com/show_bug.cgi?id=1989 clutter/x11/clutter-stage-x11.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 89191e8bbc591f33dd0f45e2317f31eeaa7d4023 Author: Emmanuele Bassi Date: Mon Feb 15 11:44:02 2010 +0000 docs: Mention signal-swapped-after modifier The signal-swapped-after:: modifier for signal connection inside the clutter_actor_animate* variadic arguments functions is not mentioned in the documentation. clutter/clutter-animation.c | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) commit 262782feae4e8130321be414f7aac9141ae22eab Author: Damien Lespiau Date: Mon Feb 8 19:18:36 2010 +0000 docs: Add 2010 in COGL's Copyright notice While at it, fix the usage of in to let the stylesheet do the collation when having several years. doc/reference/clutter/clutter-docs.xml.in | 7 +++++-- doc/reference/cogl/cogl-docs.xml.in | 1 + 2 files changed, 6 insertions(+), 2 deletions(-) commit 01bf50905689b363877f85942403cdc947f8c82c Author: Damien Lespiau Date: Fri Feb 12 17:24:15 2010 +0000 cogl-buffer: fix compilation for GL ES In the frenzy of the last 10mins before API freeze, I obviously forgot to update the OpenGL path for _cogl_buffer_hints_to_gl_enum(). This commit fixes this. clutter/cogl/cogl/cogl-buffer.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) commit e668a2f228acb1f38853eea4245f87e10e82fe23 Author: Neil Roberts Date: Fri Feb 12 15:33:56 2010 +0000 cogl-atlas-texture: Flush the journal before adding a new texture When the atlas is reorganised we could potentially be moving around textures that are already referenced in the journal. We therefore need to flush the journal otherwise they will be rendered with incorrect texture coordinates. We also need to flush the journal even if we are not reorganizing so that we can rely on the old texture contents remaining in the atlas after migrating a texture out. clutter/cogl/cogl/cogl-atlas-texture.c | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) commit 4be4f56bdf463ccac89c7068b47ba1450bee95ee Author: Neil Roberts Date: Fri Feb 12 10:08:51 2010 +0000 cogl-sub-texture: Optimise taking a sub texture of a sub texture When creating a Cogl sub-texture, if the full texture is also a sub texture it will now just offset the x and y and reference the full texture instead. This avoids one level of indirection when rendering the texture which reduces the chances of getting rounding errors in the calculations. clutter/cogl/cogl/cogl-sub-texture-private.h | 17 ++++- clutter/cogl/cogl/cogl-sub-texture.c | 29 +++++++-- clutter/cogl/cogl/cogl-texture.h | 4 ++ tests/conform/test-cogl-sub-texture.c | 89 +++++++++++++++++--------- 4 files changed, 99 insertions(+), 40 deletions(-) commit 2018b5b16750b090c5592ebd5262fc66d809183e Author: Emmanuele Bassi Date: Fri Feb 12 16:24:27 2010 +0000 actor: Split get_paint_opacity() from the type check Since get_paint_opacity() recurses through the hierarchy it might lead to a lot of type checks while we walk the parent-child chain. We can split the recursive function from the public entry point and perform the type check just once. clutter/clutter-actor.c | 55 ++++++++++++++++++++++++++++++----------------- 1 file changed, 35 insertions(+), 20 deletions(-) commit 37d51cb78e41ea36f01c049eda6163bddc84ce33 Author: Emmanuele Bassi Date: Fri Feb 12 16:18:12 2010 +0000 actor: Do not call get_opacity() from get_paint_opacity() We already have access to the opacity private field, there's no need to go through the public API. clutter/clutter-actor.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 124f30cccef75feabb0933c074753b392f373e82 Author: Emmanuele Bassi Date: Fri Feb 12 15:52:07 2010 +0000 docs: Fixes for Cogl clutter/cogl/cogl/cogl-material.h | 1 + clutter/cogl/cogl/cogl-pixel-buffer.h | 2 +- doc/reference/cogl/Makefile.am | 3 ++- doc/reference/cogl/cogl-sections.txt | 8 ++++---- 4 files changed, 8 insertions(+), 6 deletions(-) commit 27e6c3b1e0db6fcb36a8f7e44e457b672ee34565 Author: Emmanuele Bassi Date: Fri Feb 12 14:46:43 2010 +0000 build: Use -Wuninitialized instead of -Wno-uninitialized We want to be warned about uninitialized variables. configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 00c4bfc3c69ba1c1c37852392b46c0fe601a98a1 Author: Emmanuele Bassi Date: Fri Feb 12 14:45:49 2010 +0000 analysis: Interactive tests Abort if test-behave was passed the wrong type of behaviour to test. tests/interactive/test-behave.c | 4 ++++ 1 file changed, 4 insertions(+) commit 46182233c031c480b5d4d1f6109ab28a6199d369 Author: Emmanuele Bassi Date: Fri Feb 12 14:45:04 2010 +0000 analysis: Conformance tests Initialize ClutterPathNote members to 0 using "{ 0, }". tests/conform/test-path.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 78f1f508af88ccd9652d38811a4ebc6662c566dd Author: Emmanuele Bassi Date: Thu Feb 11 15:24:41 2010 +0000 analysis: x11: ClutterEvent Remove an unused variable. clutter/x11/clutter-event-x11.c | 3 --- 1 file changed, 3 deletions(-) commit 081696fdb5d83c41ed201277db272572eb534db2 Author: Emmanuele Bassi Date: Thu Feb 11 15:24:17 2010 +0000 analysis: CoglPangoRenderer Remove unused variables. clutter/cogl/pango/cogl-pango-render.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) commit 2d8bdf9e5ebd101b40854e0066b06037dd261ea5 Author: Emmanuele Bassi Date: Thu Feb 11 15:20:25 2010 +0000 analysis: ClutterTimeoutPool Do not pre-initialize the list iterator, the for loop will do it for us. clutter/clutter-timeout-pool.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9c8f8818784ba7c709c70ead6d8e103ee28d0c8c Author: Emmanuele Bassi Date: Thu Feb 11 15:20:07 2010 +0000 analysis: ClutterTimeline Remove an unused variable. clutter/clutter-timeline.c | 4 ---- 1 file changed, 4 deletions(-) commit 65af411cb4675eab722fe16acc93fa6e7183e3c8 Author: Emmanuele Bassi Date: Thu Feb 11 15:19:46 2010 +0000 analysis: ClutterTexture Remove unused variables. clutter/clutter-texture.c | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) commit 09644e4bb6cff70d2c9a59bbe9b461b7e53676e2 Author: Emmanuele Bassi Date: Thu Feb 11 15:19:32 2010 +0000 analysis: ClutterText Remove unused variables. clutter/clutter-text.c | 2 -- 1 file changed, 2 deletions(-) commit c2d434e3af3d3b862866273a7dd15541ecbebcd5 Author: Emmanuele Bassi Date: Thu Feb 11 15:19:18 2010 +0000 analysis: ClutterStage Remove unused variables. clutter/clutter-stage.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) commit 136e8c1acb15c078c0898a834f55666c6f0ef384 Author: Emmanuele Bassi Date: Thu Feb 11 15:17:53 2010 +0000 analysis: ClutterScriptParser We parse a JSON value depending on the initial state of an uninitialized variable. Ouch. clutter/clutter-script-parser.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4d9010dd5e9c5a69ba5f7a0c3969ce5ac337c08d Author: Emmanuele Bassi Date: Thu Feb 11 15:17:32 2010 +0000 analysis: ClutterRectangle Remove unused variables. clutter/clutter-rectangle.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) commit 8ba65cfd4aba677530b25d9ab1323d2b1b281282 Author: Emmanuele Bassi Date: Thu Feb 11 15:17:07 2010 +0000 analysis: ClutterModel Remove unused variables. clutter/clutter-model.c | 10 ---------- 1 file changed, 10 deletions(-) commit bea1a0a6a22ecd0ed96720bcecb3919d3fbb2757 Author: Emmanuele Bassi Date: Thu Feb 11 15:13:40 2010 +0000 analysis: ClutterMain • Remove unused variables. • Do not pre-initialize ClutterActor's GType; pre-emptive optimizations like these are more black magic than real optimization. clutter/clutter-main.c | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) commit 66920ea540834c0264434f64a0dcfae4150e625f Author: Emmanuele Bassi Date: Thu Feb 11 15:13:20 2010 +0000 analysis: ClutterInterval Remove unused variables. clutter/clutter-interval.c | 8 -------- 1 file changed, 8 deletions(-) commit 853f9941da5f40b936307ce45f67265f978d9c2b Author: Emmanuele Bassi Date: Thu Feb 11 15:11:51 2010 +0000 analysis: ClutterBoxLayout Remove an useless assignment. The n_expand_children is not used outside the extra_space check, and if n_expand_children is 0 then the extra space we allocate is 0. clutter/clutter-box-layout.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit cd058562538633962089cd30787b7a98d9733144 Author: Emmanuele Bassi Date: Thu Feb 11 15:11:25 2010 +0000 analysis: ClutterBehaviour Remove an unused variable. clutter/clutter-behaviour.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit 6dc0e9632cc2597240d9e42c98cd567dbcc1dbec Author: Emmanuele Bassi Date: Thu Feb 11 15:09:51 2010 +0000 analysis: ClutterAnimation • Remove one unused variable. • We ignore the result of get_timeline_internal() so we need to tell the compiler that - though a better solution would be to split the timeline implicit creation into its own function. clutter/clutter-animation.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit a287ca7a2824efef2608877555711c408122a400 Author: Emmanuele Bassi Date: Thu Feb 11 15:09:12 2010 +0000 analysis: ClutterAnimator/2 Clean up an unused variable. clutter/clutter-animator.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 667222c301ca0f19c570938055208e564e4d02ef Author: Emmanuele Bassi Date: Thu Feb 11 15:08:19 2010 +0000 analysis: ClutterAnimator/1 Do not de-reference a void*; use a temporary variable -- after checking the contents of the pointer. This actually simplifies the readability and avoids pulling a Lisp with the parentheses. clutter/clutter-animator.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit fcd3cfc0bfc656d63088a443355b30e7b50d2850 Author: Emmanuele Bassi Date: Thu Feb 11 15:07:38 2010 +0000 analysis: ClutterAlpha Clean up unused variables. clutter/clutter-alpha.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) commit aa6d7a30291c199fc1d26a93574d88c027367bf0 Author: Emmanuele Bassi Date: Thu Feb 11 15:05:18 2010 +0000 analysis: ClutterActor Clean up ClutterActor for unused variables. clutter/clutter-actor.c | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) commit 7a372bc0011b6301cc8b46767493a23218a67cff Author: Neil Roberts Date: Fri Feb 12 14:26:33 2010 +0000 cogl: Cache the value for GL_MAX_TEXTURE_UNITS The function _cogl_get_max_texture_units is called quite often while rendering and it returns a constant value so we might as well cache the result. Calling glGetInteger on Mesa can be expensive because it flushes a lot of state. clutter/cogl/cogl/cogl-context.c | 2 ++ clutter/cogl/cogl/cogl-context.h | 4 ++++ clutter/cogl/cogl/cogl.c | 12 +++++++++--- 3 files changed, 15 insertions(+), 3 deletions(-) commit 22c33b2fea1fd60239280aa1f4fd112f533688aa Author: Robert Bragg Date: Thu Feb 11 16:12:26 2010 +0000 cogl: resolves some low hanging issues flagged by clang An initial pass over the Cogl source code using the Clang static analysis tool flagged a few low hanging issues such as un-used variables or redundant initializing of variables which this patch fixes. clutter/cogl/cogl/cogl-texture-2d-sliced.c | 9 ++------- clutter/cogl/cogl/cogl-texture.c | 8 ++++---- 2 files changed, 6 insertions(+), 11 deletions(-) commit 18305cbd98e02ab139beef769cbc90a2121bd1f5 Author: Robert Bragg Date: Thu Feb 11 15:33:01 2010 +0000 cogl_rectangle: avoid redundant copy of geometry All the cogl_rectangle* APIs normalize their input into into an array of _CoglMutiTexturedRect rectangles and pass these on to our work horse; _cogl_rectangles_with_multitexture_coords. The definition of _CoglMutiTexturedRect had 4 separate float members, x_1, y_1, x_2 and y_2 which meant for some common cases we were having to copy out from an array into these members. We are now able to simply point into the users array avoiding a copy which seems desirable when submiting lots of rectangles. clutter/cogl/cogl/cogl-journal-private.h | 5 +- clutter/cogl/cogl/cogl-journal.c | 31 ++++--- clutter/cogl/cogl/cogl-primitives.c | 135 ++++++++++++++++-------------- 3 files changed, 91 insertions(+), 80 deletions(-) commit 5f18fc928d85499d6ee2ac433dde247286e2de4e Author: Robert Bragg Date: Wed Feb 10 22:47:49 2010 +0000 cogl: explicitly mark cogl__ref/unref APIs as deprecated This uses the G_GNUC_DEPRECATED macros to mark the cogl_{texture,vertex_buffer,shader}_ref and unref APIs as deprecated. Since this flagged that cogl-pango-display-list.c and clutter-glx-texture-pixmap.c were still using deprecated _ref/_unref APIs they have now been changed to use the cogl_handle_ref/unref API instead. clutter/cogl/cogl/cogl-shader.h | 8 ++++++-- clutter/cogl/cogl/cogl-texture.h | 4 ++-- clutter/cogl/cogl/cogl-vertex-buffer.h | 4 ++-- clutter/cogl/pango/cogl-pango-display-list.c | 8 ++++---- clutter/glx/clutter-glx-texture-pixmap.c | 2 +- 5 files changed, 15 insertions(+), 11 deletions(-) commit 48660349dbcabdde05fc9e1334734bcc62bb790e Author: Robert Bragg Date: Wed Feb 10 22:30:37 2010 +0000 cogl: cleanly separate primitives + paths code The function prototypes for the primitives API were spread between cogl-path.h and cogl-texture.h and should have been in a cogl-primitives.h. As well as shuffling the prototypes around into more sensible places this commit splits the cogl-path API out from cogl-primitives.c into a cogl-path.c clutter/cogl/cogl/Makefile.am | 3 + clutter/cogl/cogl/cogl-internal.h | 28 + clutter/cogl/cogl/cogl-path.c | 1121 +++++++++++++++++++++++++++++++++++ clutter/cogl/cogl/cogl-path.h | 33 +- clutter/cogl/cogl/cogl-primitives.c | 1078 --------------------------------- clutter/cogl/cogl/cogl-primitives.h | 188 +++++- clutter/cogl/cogl/cogl-texture.h | 133 ----- clutter/cogl/cogl/cogl.h | 1 + 8 files changed, 1316 insertions(+), 1269 deletions(-) commit 9f5a3e14451ed77f47260bbd6a1b2271e8003361 Author: Robert Bragg Date: Wed Feb 10 18:18:30 2010 +0000 cogl: remove redundant _cogl_journal_flush prototype There was a redundant _cogl_journal_flush function prototype in cogl-primitives.h clutter/cogl/cogl/cogl-clip-stack.c | 1 + clutter/cogl/cogl/cogl-framebuffer.c | 1 + clutter/cogl/cogl/cogl-journal-private.h | 5 +++-- clutter/cogl/cogl/cogl-material.c | 1 + clutter/cogl/cogl/cogl-primitives.h | 3 --- clutter/cogl/cogl/cogl-texture-2d-sliced.c | 1 + clutter/cogl/cogl/cogl-texture-2d.c | 1 + clutter/cogl/cogl/cogl-vertex-buffer.c | 1 + clutter/cogl/cogl/driver/gl/cogl-program.c | 1 + 9 files changed, 10 insertions(+), 5 deletions(-) commit 7edcbaa1f9444848fcaac052557f7c444e3905e0 Author: Robert Bragg Date: Wed Feb 10 01:57:32 2010 +0000 cogl: improves header and coding style consistency We've had complaints that our Cogl code/headers are a bit "special" so this is a first pass at tidying things up by giving them some consistency. These changes are all consistent with how new code in Cogl is being written, but the style isn't consistently applied across all code yet. There are two parts to this patch; but since each one required a large amount of effort to maintain tidy indenting it made sense to combine the changes to reduce the time spent re indenting the same lines. The first change is to use a consistent style for declaring function prototypes in headers. Cogl headers now consistently use this style for prototypes: return_type cogl_function_name (CoglType arg0, CoglType arg1); Not everyone likes this style, but it seems that most of the currently active Cogl developers agree on it. The second change is to constrain the use of redundant glib data types in Cogl. Uses of gint, guint, gfloat, glong, gulong and gchar have all been replaced with int, unsigned int, float, long, unsigned long and char respectively. When talking about pixel data; use of guchar has been replaced with guint8, otherwise unsigned char can be used. The glib types that we continue to use for portability are gboolean, gint{8,16,32,64}, guint{8,16,32,64} and gsize. The general intention is that Cogl should look palatable to the widest range of C programmers including those outside the Gnome community so - especially for the public API - we want to minimize the number of foreign looking typedefs. clutter/cogl/cogl/cogl-atlas-texture.c | 52 ++-- clutter/cogl/cogl/cogl-atlas.c | 22 +- clutter/cogl/cogl/cogl-atlas.h | 18 +- clutter/cogl/cogl/cogl-bitmap-fallback.c | 82 +++--- clutter/cogl/cogl/cogl-bitmap-pixbuf.c | 60 ++-- clutter/cogl/cogl/cogl-bitmap-private.h | 30 +- clutter/cogl/cogl/cogl-bitmap.c | 34 +-- clutter/cogl/cogl/cogl-bitmap.h | 15 +- clutter/cogl/cogl/cogl-blend-string.c | 12 +- clutter/cogl/cogl/cogl-blend-string.h | 4 +- clutter/cogl/cogl/cogl-buffer-private.h | 14 +- clutter/cogl/cogl/cogl-buffer.c | 8 +- clutter/cogl/cogl/cogl-buffer.h | 26 +- clutter/cogl/cogl/cogl-clip-stack.c | 16 +- clutter/cogl/cogl/cogl-clip-stack.h | 14 +- clutter/cogl/cogl/cogl-color.h | 75 +++-- clutter/cogl/cogl/cogl-context.c | 2 +- clutter/cogl/cogl/cogl-context.h | 10 +- clutter/cogl/cogl/cogl-debug.c | 8 +- clutter/cogl/cogl/cogl-debug.h | 4 +- clutter/cogl/cogl/cogl-feature-private.c | 19 +- clutter/cogl/cogl/cogl-feature-private.h | 14 +- clutter/cogl/cogl/cogl-fixed.c | 24 +- clutter/cogl/cogl/cogl-fixed.h | 72 +++-- clutter/cogl/cogl/cogl-handle.h | 2 +- clutter/cogl/cogl/cogl-internal.h | 32 +- clutter/cogl/cogl/cogl-journal.c | 26 +- clutter/cogl/cogl/cogl-material-private.h | 67 +++-- clutter/cogl/cogl/cogl-material.c | 22 +- clutter/cogl/cogl/cogl-material.h | 175 ++++++----- clutter/cogl/cogl/cogl-matrix.h | 110 +++---- clutter/cogl/cogl/cogl-path.h | 138 +++++---- clutter/cogl/cogl/cogl-pixel-buffer-private.h | 9 +- clutter/cogl/cogl/cogl-pixel-buffer.c | 53 ++-- clutter/cogl/cogl/cogl-pixel-buffer.h | 46 +-- clutter/cogl/cogl/cogl-primitives.c | 48 +-- clutter/cogl/cogl/cogl-primitives.h | 13 +- clutter/cogl/cogl/cogl-shader.h | 96 +++--- clutter/cogl/cogl/cogl-sub-texture-private.h | 14 +- clutter/cogl/cogl/cogl-sub-texture.c | 70 ++--- clutter/cogl/cogl/cogl-texture-2d-private.h | 4 +- clutter/cogl/cogl/cogl-texture-2d-sliced-private.h | 6 +- clutter/cogl/cogl/cogl-texture-2d-sliced.c | 163 +++++----- clutter/cogl/cogl/cogl-texture-2d.c | 34 ++- clutter/cogl/cogl/cogl-texture-private.h | 6 +- clutter/cogl/cogl/cogl-texture.c | 106 +++---- clutter/cogl/cogl/cogl-texture.h | 220 +++++++------- clutter/cogl/cogl/cogl-types.h | 15 +- clutter/cogl/cogl/cogl-util.c | 30 +- clutter/cogl/cogl/cogl-vertex-buffer-private.h | 2 +- clutter/cogl/cogl/cogl-vertex-buffer.c | 18 +- clutter/cogl/cogl/cogl-vertex-buffer.h | 6 +- clutter/cogl/cogl/cogl.c | 52 ++-- clutter/cogl/cogl/cogl.h | 310 ++++++++++++-------- clutter/cogl/cogl/driver/gl/cogl-program.c | 18 +- clutter/cogl/cogl/driver/gl/cogl-shader.c | 2 +- clutter/cogl/cogl/driver/gl/cogl-texture-driver.c | 2 +- clutter/cogl/cogl/driver/gl/cogl.c | 8 +- clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.c | 6 +- clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.h | 12 +- clutter/cogl/cogl/driver/gles/cogl-program.c | 42 +-- clutter/cogl/cogl/driver/gles/cogl-shader.c | 4 +- .../cogl/cogl/driver/gles/cogl-texture-driver.c | 4 +- clutter/cogl/doc/CODING_STYLE | 49 ++++ 64 files changed, 1491 insertions(+), 1184 deletions(-) commit 8c9472bc4c0350bc28f6ca152e82a0a507063d19 Author: Robert Bragg Date: Fri Feb 5 16:32:19 2010 +0000 cogl: deprecates cogl_check_extension OpenGL is an implementation detail for Cogl so it's not appropriate to expose OpenGL extensions through the Cogl API. Note: Clutter is currently still using this API, because it is still doing raw GL calls in ClutterGLXTexturePixmap, so this introduces a couple of (legitimate) build warnings while compiling Clutter. clutter/cogl/cogl/cogl-feature-private.c | 4 ++-- clutter/cogl/cogl/cogl-internal.h | 1 + clutter/cogl/cogl/cogl.c | 32 ++++++++++++++++++++++++++++++ clutter/cogl/cogl/cogl.h | 11 +++++++++- clutter/cogl/cogl/driver/gl/cogl.c | 31 +++-------------------------- clutter/cogl/cogl/driver/gles/cogl.c | 25 ----------------------- clutter/glx/clutter-backend-glx.c | 6 +++--- clutter/glx/clutter-glx-texture-pixmap.c | 5 +++-- 8 files changed, 54 insertions(+), 61 deletions(-) commit b898f0e227aeabeb0513d1228a8f432c467d95b9 Author: Robert Bragg Date: Tue Feb 9 19:34:32 2010 +0000 never presume queuing redraws on invisible actors is redundant This replaces code like this: if (CLUTTER_ACTOR_IS_VISIBLE (self)) clutter_actor_queue_redraw (self); with: clutter_actor_queue_redraw (self); clutter_actor_queue_redraw internally knows what can be optimized when the actor is not visible, but it also knows that the queue_redraw signal must always be sent in case a ClutterClone is cloning a hidden actor. clutter/clutter-actor.c | 11 ++++------- clutter/clutter-group.c | 12 ++++-------- clutter/clutter-rectangle.c | 9 +++------ clutter/clutter-stage.c | 8 +++----- clutter/clutter-text.c | 30 ++++++++++-------------------- clutter/clutter-texture.c | 9 +++------ 6 files changed, 27 insertions(+), 52 deletions(-) commit bfb271b40332240f40c79dabf8f78f7a68293286 Author: Robert Bragg Date: Tue Feb 9 19:19:44 2010 +0000 box: port a ClutterGroup::foreach fix to ClutterBox ClutterGroup::foreach was recently changed (ref: ce030a3fce) to use g_list_foreach() to iterate the children instead of manually iterating the list so it would safely handle calls like: clutter_container_foreach (container, clutter_actor_destroy); (In this example clutter_actor_destroy will result in the current list item being iterated being freed.) clutter/clutter-box.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 60a4664d6e4f67b5e527cc2ecd190a538ed994ec Author: Robert Bragg Date: Tue Feb 9 19:06:59 2010 +0000 box: Adds missing copyright header Adds a Copyright (C) 2009,2010 Intel Corporation header clutter/clutter-box.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) commit 4355621aebb075bc34b50a89f8ba99e8b8e12ff7 Author: Robert Bragg Date: Tue Feb 9 18:54:28 2010 +0000 group: make it comparable to ClutterBox There is a lot of duplication between ClutterGroup and ClutterBox so this makes the two files diff-able so that new fixes can easily be ported to both and bug fixes missing in one or the other can be spotted more easily. This doesn't change the behaviour of either actor; it's really just a shuffle around of code and normalizes the coding style to make the files comparable. This has already uncovered one bug in ClutterBox, and also highlights a bug in ClutterGroup + many other actors: 1) ClutterGroup::real_foreach was recently changed to use g_list_foreach instead of manually iterating the child list so it can safely handle calls like: clutter_container_foreach (container, clutter_actor_destroy); ClutterBox is still manually iterating the list. 2) In ClutterGroup we guard _queue_redraw() calls like this: if (CLUTTER_ACTOR_IS_VISIBLE (container)) clutter_actor_queue_redraw (CLUTTER_ACTOR (container)); In ClutterBox we don't: I think ClutterBox is correct here because clutter_actor_queue_redraw already optimizes the case where the actor's not visible, but it also considers that the actor may be cloned and so the guard in ClutterGroup could break clones. This actually highlights a wider clutter bug since the same kinds of guards can be found in all other clutter actors. clutter/clutter-box.c | 1 - clutter/clutter-group.c | 366 +++++++++++++++++++++-------------------------- 2 files changed, 167 insertions(+), 200 deletions(-) commit 34c7611407154fcbb61c82c959c2a38972c2534f Author: Emmanuele Bassi Date: Fri Feb 12 11:38:47 2010 +0000 docs: Update the backend HACKING file Clarify the Backend::create_context() vfunc role, and the Stage::realize() vfunc with regards to creating the GL/GLES context. doc/HACKING.backends | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 44818a48273baa7dabfbb9370ac218ae8b0cf38e Author: Neil Roberts Date: Thu Feb 11 14:20:48 2010 +0000 cogl: Add a fallback for when the signbit macro is missing The signbit macro is defined in C99 so it should be available but some versions of GCC don't appear to define it by default. If it's not available we can use a hack to test the bit directly. clutter/cogl/cogl/cogl-sub-texture.c | 2 +- clutter/cogl/cogl/cogl-texture-2d.c | 2 +- clutter/cogl/cogl/cogl-util.h | 27 ++++++++++++++++++++++++++- 3 files changed, 28 insertions(+), 3 deletions(-) commit 59463c2213b79a553d3d7999bb56106fb7c5a4ad Author: Emmanuele Bassi Date: Wed Feb 10 17:20:31 2010 +0000 Do a sanity check on _clutter_do_pick() arguments We should check that the passed ClutterStage pointer is indeed: a) still valid and b) a Stage. clutter/clutter-main.c | 1 + 1 file changed, 1 insertion(+) commit d0734bc4741d77e7c239cf860b73b49e9564aa91 Author: Emmanuele Bassi Date: Wed Feb 10 17:12:27 2010 +0000 input-device: Do not pick() on NULL stages If the stage associated to the InputDevice is not set we should short-circuit out and return NULL. This will result in a pick() done on the event's stage - if applicable. http://bugzilla.moblin.org/show_bug.cgi?id=9602 clutter/clutter-input-device.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 4208169ab48795ca8f10287bd67031e161bf1f82 Author: Emmanuele Bassi Date: Wed Feb 10 15:38:41 2010 +0000 text: Bump up the preferred height Instead of returning a sub-pixel height round up the preferred height to the nearest integral value that is not less than the size reported by Pango, once converted in pixels. clutter/clutter-text.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f54b29a0c0c182f1396abd9df7d46d99b81a133d Author: Emmanuele Bassi Date: Wed Feb 10 15:38:07 2010 +0000 test-text-field: Tone down the border Use a low opacity for the text field border. tests/interactive/test-text-field.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2670fc58710b1d9d1ad5afae7b6ac397e1dc54dd Author: Emmanuele Bassi Date: Wed Feb 10 15:37:26 2010 +0000 test-text-field: Use ActorBox methods for the border Clamp to pixel and use get_size() when painting the border of the text field. tests/interactive/test-text-field.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 3fdb0a59509aeaeb07c276ebd09df355626cfb92 Author: Robert Bragg Date: Wed Feb 10 11:57:58 2010 +0000 uprof: make the Redrawing timer a child of the Master Clock Previously it was a child of the Mainloop, but it's more closely a child of the Master Clock. clutter/clutter-backend.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1899dbdc270e0bd494d174dd6bfbb9c5d18e174f Author: Robert Bragg Date: Wed Feb 10 12:18:41 2010 +0000 backend-glx: Fix glXQueryVersion test This fixes some backwards logic for asserting that we have a GLX major version == 1 and a minor version >= 2. (NB: Although we technically depend on GLX 1.3 features, we still have to support drivers that report GLX 1.2 because there are a lot of mesa drivers out there incorrectly report GLX 1.2 even though they export extensions that depend on GLX 1.3) clutter/glx/clutter-backend-glx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ce1bb3d858fd02d6bcfb94b2b8999cfd7d0a4535 Author: Neil Roberts Date: Wed Feb 10 12:41:09 2010 +0000 cogl-material: Layers are not equal if the filters aren't equal A material layer can not be considered equal if it is using different texture filtering modes. This was causing problems where rectangles with different filters would end up batched together and then rendered with the wrong filter mode. clutter/cogl/cogl/cogl-material.c | 5 +++++ 1 file changed, 5 insertions(+) commit b61c2b510b5f5a72ae6181cdce646d7018fbd996 Author: Emmanuele Bassi Date: Wed Feb 10 10:58:14 2010 +0000 build: Tweak internal defines for building Clutter When building Clutter we should: • disable Cogl deprecated API; • enable experimental API. clutter/Makefile.am | 2 ++ 1 file changed, 2 insertions(+) commit 4a9f08639f7127719f5b59ee9287641ba4912063 Author: Robert Bragg Date: Wed Jan 20 18:53:36 2010 +0000 debug: Adds CLUTTER_DEBUG=disable-swap-events option This allows us to forcibly disable the use of the GLX_INTEL_swap_events extension for testing or debugging purposes. clutter/clutter-debug.h | 37 +++++++++++++++++++------------------ clutter/clutter-main.c | 3 ++- clutter/glx/clutter-backend-glx.c | 3 ++- 3 files changed, 23 insertions(+), 20 deletions(-) commit 5d702853b814445590aafe448bfc8f7993b06638 Author: Robert Bragg Date: Thu Nov 12 20:37:01 2009 +0000 glx backend: Adds support for GLX_INTEL_swap_event If your OpenGL driver supports GLX_INTEL_swap_event that means when glXSwapBuffers is called it returns immediatly and an XEvent is sent when the actual swap has finished. Clutter can use the events that notify swap completion as a means to throttle rendering in the master clock without blocking the CPU and so it should help improve the performance of CPU bound applications. clutter/clutter-feature.h | 3 +- clutter/clutter-master-clock.c | 72 ++++++++++++++++++++++++---- clutter/clutter-private.h | 2 + clutter/clutter-stage-window.c | 13 +++++ clutter/clutter-stage-window.h | 3 ++ clutter/clutter-stage.c | 8 ++++ clutter/glx/Makefile.am | 2 + clutter/glx/clutter-backend-glx.c | 56 +++++++++++++++++----- clutter/glx/clutter-backend-glx.h | 3 ++ clutter/glx/clutter-event-glx.c | 96 +++++++++++++++++++++++++++++++++++++ clutter/glx/clutter-event-glx.h | 38 +++++++++++++++ clutter/glx/clutter-stage-glx.c | 21 ++++++++ clutter/glx/clutter-stage-glx.h | 2 + clutter/x11/clutter-backend-x11.c | 10 ++++ clutter/x11/clutter-backend-x11.h | 7 +++ clutter/x11/clutter-event-x11.c | 5 ++ doc/HACKING.backends | 8 ++++ 17 files changed, 327 insertions(+), 22 deletions(-) commit 848db1ee4cc910542435bbcd3a57933bdf70269e Author: Robert Bragg Date: Thu Jan 14 14:03:23 2010 +0000 glx backend: when running with GLX 1.3 then create GLXWindows for stages Some extensions only support GLX versions > 1.3 and may not support old style X Windows as GLXDrawables, so we now create GLXWindows for stages when possible. clutter/glx/clutter-backend-glx.c | 72 ++++++++++++++++++++++++++++--------- clutter/glx/clutter-backend-glx.h | 1 + clutter/glx/clutter-stage-glx.c | 28 +++++++++++++++ clutter/glx/clutter-stage-glx.h | 1 + 4 files changed, 86 insertions(+), 16 deletions(-) commit ca3ab41a1b12f661fe6eecddfaf5e03b0d94d682 Author: Neil Roberts Date: Tue Feb 9 18:33:09 2010 +0000 clutter-backend: Fix the error check in _clutter_backend_create_stage Commit d2bdd3cb62 fixed some compiler warnings but also broke the ability to create a stage. Although not having warnings from the compiler is nice, it is also nice to be able to create a stage so lets not invert the meaning of the error check. clutter/clutter-backend.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7b1925df82fa92fd68623c9a999ece6bf4ddfde3 Author: Emmanuele Bassi Date: Tue Feb 9 17:07:08 2010 +0000 cogl: Move material_copy() out of the deprecated section We strongly suggest people should be using cogl_material_copy(), but it was hidden behind the deprecation guards. clutter/cogl/cogl/cogl-material.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit d2bdd3cb62c1cba24619ae843cf087709a02643d Author: Emmanuele Bassi Date: Tue Feb 9 16:57:14 2010 +0000 Fix some compiler warnings GCC complains that some variable might be used uninitialized. clutter/clutter-backend.c | 6 ++++-- clutter/clutter-bin-layout.c | 1 + clutter/clutter-flow-layout.c | 6 ++++++ clutter/clutter-text.c | 6 ++---- clutter/cogl/cogl/cogl-matrix-stack.c | 6 +++++- 5 files changed, 18 insertions(+), 7 deletions(-) commit 193c477495488446d2f3d8ab0184f882f3255f48 Author: Neil Roberts Date: Tue Feb 9 16:30:28 2010 +0000 cogl-bitmap: Remove const from premult_alpha_last_four_pixels_sse2 The function modifies the pixels pointed by p in-place so the pointer can not be constant. The compiler was accepting this because the modification is done from inline assembler. clutter/cogl/cogl/cogl-bitmap-fallback.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f5d2f58b03bf03b69f6cb92b3bdddb92b8a8ecc2 Author: Emmanuele Bassi Date: Tue Feb 9 15:29:29 2010 +0000 docs: Clean up the unused symbols for Cogl Gtk-doc is reporting a lot of false positives in the unused text file, mostly because of new private files that have been added to Cogl but not to the gtk-doc ignore list for the Cogl API reference. Once the false positives have been removed we have a couple of really missing symbols that should be added to the cogl-sections.txt file. doc/reference/cogl/Makefile.am | 54 +++++++++++++++++++--------------- doc/reference/cogl/cogl-sections.txt | 7 +++++ 2 files changed, 37 insertions(+), 24 deletions(-) commit ecc5ffe91ace38c9d288251807e721a4cd71b052 Author: Bastian Winkler Date: Tue Feb 9 15:19:03 2010 +0100 cogl-buffer: Use correct argument types in cogl_buffer_set_data_EXP offset and size arguments are gsize in cogl-buffer.h http://bugzilla.openedhand.com/show_bug.cgi?id=1980 Signed-off-by: Emmanuele Bassi clutter/cogl/cogl/cogl-buffer.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 9aac36b47e43e95d12c8d28bd3671e6f5e000d32 Author: Emmanuele Bassi Date: Tue Feb 9 14:48:11 2010 +0000 docs: Move some Cogl defines in the private section The PixelFormat bit and mask #defines should not be used and are there mostly for convenience, so we can push them to the "private" sub-section of the API reference. This pushed Cogl's API reference coverage to 100%. doc/reference/cogl/cogl-sections.txt | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit 7ebb1e7157ab5d3efbeb37d7879d851adc7da40e Author: Emmanuele Bassi Date: Tue Feb 9 14:41:37 2010 +0000 docs: Fixes for Cogl API reference 98% symbol docs coverage. 335 symbols documented. 0 symbols incomplete. 8 not documented. Not bad, if I may say so. clutter/cogl/cogl/cogl-buffer.h | 12 ++++++--- clutter/cogl/cogl/cogl-color.h | 41 +++++++++++++++++++++++++++++ clutter/cogl/cogl/cogl-fixed.h | 2 +- clutter/cogl/cogl/cogl-material-private.h | 2 +- clutter/cogl/cogl/cogl-matrix.h | 3 ++- clutter/cogl/cogl/cogl-types.h | 23 +++++++++++++++- doc/reference/cogl/cogl-sections.txt | 16 +++-------- 7 files changed, 80 insertions(+), 19 deletions(-) commit 1d28ed035f360b14cfbf5b01db4ffe2979172cf0 Author: Emmanuele Bassi Date: Tue Feb 9 13:39:08 2010 +0000 Post-release bump to 1.1.11 configure.ac | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a24d4d21a0eeca771476705ef407d55fdb32e68f Author: Emmanuele Bassi Date: Tue Feb 9 12:31:42 2010 +0000 Release 1.1.10 Brown paper bag release. configure.ac | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 738e73873dd0c05a44f7cb0ad40c8a854e0c75a6 Author: Emmanuele Bassi Date: Tue Feb 9 12:59:18 2010 +0000 Update NEWS file NEWS | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) commit cccf23caa481a239b747d1fdd5e0ca5ae7f6682c Author: Emmanuele Bassi Date: Tue Feb 9 11:29:39 2010 +0000 build: Always build conformance tests with debug symbols Having the conformance test suite build without debug symbols doesn't make any sense. tests/conform/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e46db37c03b6adae1594729c2c5c86e65701d95b Author: Robert Bragg Date: Tue Feb 9 13:00:39 2010 +0000 conform: fix stack corruption in test-behaviours.c The test was calling g_object_get to fetch the "opacity-start" property (unsigned int) into a guint8 local variable. It's a bit of a mean trap given that the getter function returns guint8 values so this also adds a comment explaining what's going on. tests/conform/test-behaviours.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) commit a02253f19a722dcfbf0a32543dd563127dd7b80e Author: Neil Roberts Date: Tue Feb 9 12:21:10 2010 +0000 cogl-texture-2d: Use _cogl_texture_driver_gen to generate the GL tex _cogl_texture_driver_gen is needed to set the texture minification mode to Cogl's default of GL_LINEAR. There was also a line to set this in _cogl_texture_2d_new_with_size but it wasn't working because it was called *before* the texture was bound. If the texture was later rendered with the default material it then it would end up with GL's default mipmap filtering mode but without mipmaps so it would render white squares instead. clutter/cogl/cogl/cogl-texture-2d.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 1b2ff7eff7e97d8542e35514bfa010be706973ee Author: Neil Roberts Date: Fri Dec 18 21:17:21 2009 +0000 cogl: Use SSE2 when possible for premultiplying This adds a fast path for premultiplying an RGBA image using SSE2 instructions. SSE registers are 128-bit and we need at least 16-bits per component for the intermediate result of the multiplication so we can do two pixels in parallel with one register. The function interleaves 2 SSE registers to multiply 4 pixels in one function call with the hope that this will pipeline better. http://bugzilla.openedhand.com/show_bug.cgi?id=1939 Signed-off-by: Emmanuele Bassi clutter/cogl/cogl/cogl-bitmap-fallback.c | 104 +++++++++++++++++++++++++++++- 1 file changed, 103 insertions(+), 1 deletion(-) commit bbb058df40a5e1acf7b8e42049c3cd5d966f762d Author: Emmanuele Bassi Date: Tue Feb 9 10:34:41 2010 +0000 actor: Improve readability of raise/lower warnings • Add the function name in the warning, since the text is the same in both clutter_actor_raise() and clutter_actor_lower(). • If an actor has a name then prefer it to the type name. clutter/clutter-actor.c | 46 +++++++++++++++++++++++++++++----------------- 1 file changed, 29 insertions(+), 17 deletions(-) commit 7664568fff63501339d2cb1682ae1a9f1c27e068 Author: Halton Huo Date: Tue Feb 9 10:21:37 2010 +0000 Remove return from void functions This patch fixes compilation on suncc. http://bugzilla.openedhand.com/show_bug.cgi?id=1978 Signed-off-by: Emmanuele Bassi clutter/cogl/cogl/cogl-buffer.c | 2 +- clutter/cogl/cogl/cogl-sub-texture.c | 2 +- clutter/cogl/cogl/cogl-texture.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit a23ce8606860075e35fca28eb82e57e340f2b9b9 Author: Emmanuele Bassi Date: Mon Feb 8 18:09:14 2010 +0000 Post-release bump to 1.1.9 configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a2889ed0772503dce504ab260fbbf662a0ad25d8 Author: Emmanuele Bassi Date: Mon Feb 8 17:57:48 2010 +0000 Release Clutter 1.1.8 configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a139bf9c40f88b46055e4cd9754ba51acca97c87 Author: Emmanuele Bassi Date: Mon Feb 8 17:56:35 2010 +0000 test-animator: Do not use mid-function blocks The test_animator_properties unit is so small that declaring a mid-function block for two variables is not that clever. tests/conform/test-animator.c | 57 ++++++++++++++++++++--------------------- 1 file changed, 28 insertions(+), 29 deletions(-) commit 4d9327bbe14c2771896999844df3eac28da75347 Author: Emmanuele Bassi Date: Mon Feb 8 17:55:29 2010 +0000 animator: Zero the AnimatorKey:value member The test suite is showing random segfaults because the GValue member of AnimatorKey is not zero-ed on creation. clutter/clutter-animator.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit d62ddc374f88448fbde6db11ed4b10a594ecc5c4 Author: Emmanuele Bassi Date: Mon Feb 8 17:37:00 2010 +0000 docs: Fixes for ClutterAnimator clutter/clutter-animator.c | 2 +- clutter/clutter-animator.h | 16 ++++++++-------- doc/reference/clutter/clutter-sections.txt | 1 + 3 files changed, 10 insertions(+), 9 deletions(-) commit 9806f78905eea6e7c3b5b1f35b35650a823cb295 Author: Emmanuele Bassi Date: Mon Feb 8 17:34:11 2010 +0000 Merge me NEWS | 4 ++++ 1 file changed, 4 insertions(+) commit 814d3acd0730f2e418ccc44d550e1fa369c142fe Author: Emmanuele Bassi Date: Mon Feb 8 17:27:20 2010 +0000 docs: Update NEWS NEWS | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) commit 419afc01e8f2c96f7cf5c0962e5c421f8f3a476f Author: Emmanuele Bassi Date: Mon Feb 8 17:27:13 2010 +0000 docs: Update the release notes README | 6 ++++++ 1 file changed, 6 insertions(+) commit c02dded0f6793ad377b566360371c23dbe61b4bc Author: Damien Lespiau Date: Mon Feb 8 17:11:43 2010 +0000 cogl-buffer: Use TEXTURE as the only value for CoglBufferUsageHint We should try to use more explicit defines than GL for our hints. For now we only support using a CoglBuffer to generate textures. clutter/cogl/cogl/cogl-buffer.c | 38 ++++++++------------------------ clutter/cogl/cogl/cogl-buffer.h | 12 +++------- clutter/cogl/cogl/cogl-pixel-buffer.c | 2 +- tests/conform/test-cogl-pixel-buffer.c | 12 +++++----- 4 files changed, 19 insertions(+), 45 deletions(-) commit 54a6df22b038b047931dc108df35bc9e097d4e5e Author: Damien Lespiau Date: Tue Feb 2 16:44:16 2010 +0000 cogl-buffer: make sure the code compiles on GL ES OpenGL ES has no PBO extension, so we fallback to using a malloc'ed buffer. Make sure the OpenGL-only defines don't leak into the OpenGL ES compilation. clutter/cogl/cogl/cogl-buffer.c | 28 ++++++++++++++++++++++++++++ clutter/cogl/cogl/cogl-pixel-buffer.c | 7 +++++++ clutter/cogl/cogl/cogl-texture.c | 5 ++++- 3 files changed, 39 insertions(+), 1 deletion(-) commit d0fe4795368ddc55411fb081832bfcdfdfeb4314 Author: Damien Lespiau Date: Tue Feb 2 12:59:51 2010 +0000 cogl-pixel-buffer: Add a fallback path First, let's add a new public feature called, surprisingly, COGL_FEATURE_PBOS to check the availability of PBOs and provide a fallback path when running on older GL implementations or on OpenGL ES In case the underlying OpenGL implementation does not provide PBOs, we need a fallback path (a malloc'ed buffer). The CoglPixelBufer constructors will instanciate a subclass of CoglBuffer that handles map/unmap and set_data() with a malloc'ed buffer. The public feature is useful to check before using set_data() on a buffer as it will mean doing a memcpy() when not supporting PBOs (in that case, it's better to create the texture directly instead of using a CoglBuffer). clutter/cogl/cogl/cogl-pixel-buffer.c | 56 ++++++++++++++++++-- clutter/cogl/cogl/cogl-texture.c | 38 +++++++++---- clutter/cogl/cogl/cogl-types.h | 4 +- .../cogl/cogl/driver/gl/cogl-feature-functions.h | 5 ++ 4 files changed, 88 insertions(+), 15 deletions(-) commit b5d5821304e8ca15ee4411bf7ff8f26a6a23c855 Author: Damien Lespiau Date: Fri Jan 22 15:38:31 2010 +0000 tests: Add a test for CoglPixelBuffers Exercise the whole public CoglBuffer / CoglPixelBuffer and cogl_texture_new_from_buffer API. .gitignore | 1 + tests/conform/Makefile.am | 1 + tests/conform/test-cogl-pixel-buffer.c | 337 ++++++++++++++++++++++++++++++++ tests/conform/test-conform-main.c | 3 + 4 files changed, 342 insertions(+) commit b7f049495b527547d093ca337588ceb289c9cb2b Author: Damien Lespiau Date: Fri Jan 22 15:07:27 2010 +0000 cogl-texture: Add a new constructor to turn CoglBuffers into textures The only goal of using COGL buffers is to use them to create textures. cogl_texture_new_from_buffer() is the new symbol to create textures out of buffers. clutter/cogl/cogl/cogl-texture.c | 55 +++++++++++++++++++++++++++++++ clutter/cogl/cogl/cogl-texture.h | 60 ++++++++++++++++++++++++++++++++++ doc/reference/cogl/cogl-sections.txt | 3 ++ 3 files changed, 118 insertions(+) commit abbb668163537598790cb3eca564ea19b1e010ad Author: Damien Lespiau Date: Sun Jan 10 18:04:29 2010 +0000 cogl-pixel-buffer: add a pixel buffer object class This subclass of CoglBuffer aims at wrapping PBOs or other system surfaces like DRM buffer objects. Two constructors are available: cogl_pixel_buffer_new() with a size when you only care about the size of the buffer (such a buffer can be used to store several texture data such as the three planes of a I420 frame). cogl_pixel_buffer_new_full() is more a 1:1 mapping between the data and an underlying surface, with the possibility of having access to a low level memory buffer that may have a stride. clutter/cogl/cogl/Makefile.am | 3 + clutter/cogl/cogl/cogl-pixel-buffer-private.h | 72 ++++++ clutter/cogl/cogl/cogl-pixel-buffer.c | 317 +++++++++++++++++++++++++ clutter/cogl/cogl/cogl-pixel-buffer.h | 165 +++++++++++++ clutter/cogl/cogl/cogl.h | 1 + doc/reference/cogl/cogl-sections.txt | 6 + 6 files changed, 564 insertions(+) commit b5e9710cdf5795f532fe46b9dfcc704a07d99ac9 Author: Damien Lespiau Date: Sun Jan 10 17:28:24 2010 +0000 cogl-buffer: add an abstract class around openGL's buffer objects Buffer objects are cool! This abstracts the buffer API first introduced by GL_ARB_vertex_buffer_object and then extended to other objects. The coglBuffer abstract class is intended to be the base class of all the buffer objects, letting the user map() buffers. If the underlying implementation does not support buffer objects (or only support VBO but not FBO for instance), fallback paths should be provided. clutter/cogl/cogl/Makefile.am | 3 + clutter/cogl/cogl/cogl-buffer-private.h | 102 +++++++++++ clutter/cogl/cogl/cogl-buffer.c | 282 ++++++++++++++++++++++++++++++ clutter/cogl/cogl/cogl-buffer.h | 287 +++++++++++++++++++++++++++++++ clutter/cogl/cogl/cogl-context.c | 2 + clutter/cogl/cogl/cogl-context.h | 5 + clutter/cogl/cogl/cogl.h | 4 + doc/reference/cogl/cogl-docs.xml.in | 21 +++ doc/reference/cogl/cogl-sections.txt | 17 ++ 9 files changed, 723 insertions(+) commit de8a6314f12854e748de515afb487af56eaac845 Author: Damien Lespiau Date: Mon Jan 25 11:21:05 2010 +0000 cogl: new textures sould have GL_TEXTURE_MIN_FILTER set to GL_LINEAR The only way the user has to set the mipmap filters is through the material/layer API. This API defaults to GL_LINEAR/GL_LINEAR for the max and min filters. With the main use case of cogl being 2D interfaces, it makes sense do default to GL_LINEAR for the min filter. When creating new textures, we did not set any filter on them, using OpenGL defaults': GL_NEAREST_MIPMAP_LINEAR for the min filter and GL_LINEAR for the max filter. This will make the driver allocate memory for the mipmap tree, memory that will not be used in the nominal case (as the material API defaults to GL_LINEAR). This patch tries to ensure that the min filter is set to GL_LINEAR before any glTexImage*() call is done on the texture by setting the filter when generating new OpenGL handles. clutter/cogl/cogl/cogl-texture-2d-sliced.c | 9 +++---- clutter/cogl/cogl/cogl-texture-2d.c | 9 ++++--- clutter/cogl/cogl/cogl-texture-driver.h | 9 +++++++ clutter/cogl/cogl/driver/gl/cogl-texture-driver.c | 27 ++++++++++++++++++++ .../cogl/cogl/driver/gles/cogl-texture-driver.c | 27 ++++++++++++++++++++ 5 files changed, 72 insertions(+), 9 deletions(-) commit c0f65212baee25dd4e66f4366a54bd847c782eb3 Author: Damien Lespiau Date: Mon Jan 11 00:15:25 2010 +0000 cogl: Introduce the GE_RET() debug macro Some GL functions have a return value that the GE() macro is not able to handle. Let's define a new Ge_RET() macro which will be able to handle functions such as glMapBuffer(). While at it, removed the unused variadic dots to the GE() macro. clutter/cogl/cogl/cogl-internal.h | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) commit 069ba6daf9d39b471eb5c1de6e621f1343d5f00c Merge: cc6aefa 6ab9089 Author: Emmanuele Bassi Date: Mon Feb 8 16:53:11 2010 +0000 Merge branch 'animator-parser' * animator-parser: docs: Describe the Animation definition syntax animator: Provide a ClutterScript parser animator: Allow retrieving type property type from a key script: Use a node when resolving an animation mode commit 6ab90899badf7820ffc4f40f23bf18c979762577 Author: Emmanuele Bassi Date: Mon Feb 8 16:50:29 2010 +0000 docs: Describe the Animation definition syntax The ClutterAnimator documentation needs a section on the syntax of its ClutterScript definition, possibly with an example. clutter/clutter-animator.c | 59 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) commit 4dd11d6915f75ba62b8292c3138d4cc11a28fb21 Author: Emmanuele Bassi Date: Mon Feb 8 15:52:18 2010 +0000 animator: Provide a ClutterScript parser The whole point of having the Animator class is that the developer can describe a complex animation using ClutterScript. Hence, ClutterAnimator should hook into the Script machinery and parse a specific description format for its keys. .gitignore | 2 + clutter/clutter-animator.c | 303 ++++++++++++++++++++++++++++++++++--- tests/conform/Makefile.am | 1 + tests/conform/test-animator.c | 88 +++++++++++ tests/conform/test-conform-main.c | 2 + tests/data/Makefile.am | 2 + tests/data/test-animator-1.json | 5 + tests/data/test-animator-2.json | 29 ++++ 8 files changed, 409 insertions(+), 23 deletions(-) commit 790a13c0d9d2249747cfb81dcb13f83c6cc2cec1 Author: Emmanuele Bassi Date: Mon Feb 8 15:47:46 2010 +0000 animator: Allow retrieving type property type from a key When asking a key for its target value we also ask the developer to pass in an initialized GValue - but we don't make it easy to know the type of the GValue. A developer has to ask the GObject class for the GParamSpec and then initialize the GValue, instead. Since we know the type of the GValue we should provide a getter for it. We should also allow developers to throw at us GValue with compatible and transformable types. Finally, all the accessors should be constified. clutter/clutter-animator.c | 93 ++++++++++++++++++++++++++++++++------------ clutter/clutter-animator.h | 13 ++++--- 2 files changed, 75 insertions(+), 31 deletions(-) commit 09f91ff6eab3d617be88e11bd17c226fa4d23aed Author: Emmanuele Bassi Date: Mon Feb 8 15:45:43 2010 +0000 script: Use a node when resolving an animation mode Instead of taking a string and duplicating the "is it a string or an integer" check in both Alpha and Animation, the function in ClutterScript that resolves the animation mode values should take a JsonNode and do all the checks it needs. clutter/clutter-alpha.c | 21 ++++------------- clutter/clutter-animation.c | 25 ++++---------------- clutter/clutter-script-parser.c | 47 ++++++++++++++++++++++++-------------- clutter/clutter-script-private.h | 2 +- 4 files changed, 41 insertions(+), 54 deletions(-) commit cc6aefad345f4490f59f33eaef6f7589de1f3f9b Author: Robert Bragg Date: Thu Jan 14 18:11:57 2010 +0000 cogl path: make sure marking the clip state dirty takes affect When we trashed the contents of the stencil buffer during _cogl_path_fill_nodes we marked the clip stack state as dirty and expected the clip stack code would clean up our glStencilFunc state. The problem is that we only try and update the clip state during _cogl_journal_init (when we flush the framebuffer state) which is only called when the journal first gets something logged in it. To make sure the stencil state is cleaned up we now also flush the journal so _cogl_journal_init will be called for the next logged rectangle. clutter/cogl/cogl/cogl-primitives.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit 24338a7511cd09298695f0a0b51ea6a97fa6786a Author: Neil Roberts Date: Fri Feb 5 21:56:31 2010 +0000 clutter-master-clock: Don't wait for a frame if time goes backwards If we aren't syncing to vblank or if the last dispatch didn't cause a redraw then the master clock will try to wait at least a small amount of time before dispatching again. However if time goes backwards then it would not do a dispatch until time catches up again. To fix this it know just runs a dispatch immediately if time goes backwards. This is related to Moblin bug #3839. There was a similar fix for this in 9dc012c07, however that only fixed the case where timelines wouldn't update. If there are no animations running then the master clock won't even try updating timelines until time catches up. http://bugzilla.o-hand.com/show_bug.cgi?id=1974 clutter/clutter-master-clock.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 8ac27e60707b2dfd13ba978b81421423e37ebf98 Author: Emmanuele Bassi Date: Mon Feb 8 10:40:39 2010 +0000 test-flow-layout: Remove unneeded Stage sizing The bug with resizable stages getting a 1, 1 window on X11 has been fixed by Chris. tests/interactive/test-flow-layout.c | 1 - 1 file changed, 1 deletion(-) commit 6106010b6f20980fc51d1431b623567eed10853d Merge: 4cc269a c82c94e Author: Emmanuele Bassi Date: Mon Feb 8 10:34:22 2010 +0000 Merge remote branch 'origin/cwiiis-stage-resize' * origin/cwiiis-stage-resize: [stage-x11] Set the default size differently [stage] Set default size correctly Revert "[x11] Don't set actor size on ConfigureNotify" [x11] Don't set actor size on ConfigureNotify [stage] Now that get_geometry works, use it [stage-x11] make get_geometry always get geometry [stage] Get the current size correctly [stage] Set minimum width/height to 1x1 [stage] Add set/get_minumum_size commit 4cc269a4687f6ca4fcd88ada134cfa00e2b13a1a Author: Øyvind Kolås Date: Fri Feb 5 12:32:00 2010 +0000 Add ClutterAnimator ClutterAnimator is a class for managing the animation of multiple properties of multiple actors over time with keyframing of values. The Animator class is meant to be used to effectively describe animations using the ClutterScript definition format, and to construct complex implicit animations from the ground up. Signed-off-by: Emmanuele Bassi .gitignore | 1 + clutter/Makefile.am | 2 + clutter/clutter-animator.c | 1435 ++++++++++++++++++++++++++++ clutter/clutter-animator.h | 166 ++++ clutter/clutter-types.h | 1 + clutter/clutter.h | 1 + doc/reference/clutter/clutter-docs.xml.in | 4 +- doc/reference/clutter/clutter-sections.txt | 48 + doc/reference/clutter/clutter.types | 1 + tests/interactive/Makefile.am | 1 + tests/interactive/test-animator.c | 134 +++ 11 files changed, 1793 insertions(+), 1 deletion(-) commit c82c94e6205eda962faf5a51e663680c313be062 Author: Chris Lord Date: Sun Feb 7 19:17:43 2010 +0100 [stage-x11] Set the default size differently We want to set the default size without triggering the layout machinary, so change the window creation process slightly so we start with a 640x480 window. clutter/clutter-stage.c | 3 --- clutter/glx/clutter-stage-glx.c | 4 +++- clutter/x11/clutter-stage-x11.c | 4 ++-- 3 files changed, 5 insertions(+), 6 deletions(-) commit b968defae92f3fbd5a4a762b4c817ab58989ee82 Author: Chris Lord Date: Sun Feb 7 14:18:14 2010 +0100 [stage] Set default size correctly Due to the way the new sizing works, clutter stage must set its size in init (to maintain old behaviour) and the properties on the X11 stage must be initialised to 1x1 so that it actually goes ahead with the resize. Fixes stages that aren't user resizable and have no size set from appearing at 1x1. clutter/clutter-stage.c | 3 +++ clutter/x11/clutter-stage-x11.c | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) commit 8083dc418b3c2b069a9b0db9323650050a3f63b1 Author: Chris Lord Date: Sat Feb 6 16:57:37 2010 +0100 Revert "[x11] Don't set actor size on ConfigureNotify" This reverts commit 29cc027f069c9ad900b9044cd40075c2d17be736. I misunderstood the problem, this commit breaks resizes coming from outside of Clutter. clutter/x11/clutter-event-x11.c | 4 ++++ clutter/x11/clutter-stage-x11.c | 5 +---- clutter/x11/clutter-stage-x11.h | 1 - 3 files changed, 5 insertions(+), 5 deletions(-) commit 29cc027f069c9ad900b9044cd40075c2d17be736 Author: Chris Lord Date: Sat Feb 6 16:47:22 2010 +0100 [x11] Don't set actor size on ConfigureNotify Calling clutter_actor_set_size in response to ConfigureNotify makes setting the size of the stage racy - the most common result of which seems to be that you can't set the stage dimensions to anything less than 640x480. Instead, add a first_allocation bit to the private structure of the X11 stage and force the first resize (necessary or the default stage will be a 1x1 window). clutter/x11/clutter-event-x11.c | 4 ---- clutter/x11/clutter-stage-x11.c | 5 ++++- clutter/x11/clutter-stage-x11.h | 1 + 3 files changed, 5 insertions(+), 5 deletions(-) commit cea9de7f047cb8c2b1d54f41ca1d77c3aff882e0 Author: Chris Lord Date: Sat Feb 6 15:41:01 2010 +0100 [stage] Now that get_geometry works, use it We want the actual window geometry in clutter_stage_set_minimum_size, not the set size. Now that the geometry function has been changed to do what it says, use it. clutter/clutter-stage.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) commit 4887707bb34faca0d7ad92f6628d18345163f5e0 Author: Chris Lord Date: Sat Feb 6 15:34:55 2010 +0100 [stage-x11] make get_geometry always get geometry Now that we have a minimum size getter on the stage object, change get_geometry to actually always return the geometry. This fixes stages that are set as user-resizable appearing at 1x1 size. This will need changing in other back-ends too. clutter/x11/clutter-stage-x11.c | 57 ++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 34 deletions(-) commit 27e33aa14ff5d14f6066da74922c960a037b5089 Author: Chris Lord Date: Sat Feb 6 14:59:51 2010 +0100 [stage] Get the current size correctly Get the current size of the stage correctly in clutter_stage_set_minimum_size. The get_geometry StageWindow function is not equivalent of the current size, use clutter_actor_get_size(). clutter/clutter-stage.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) commit be11564b556a1b1c08b7b9e7a0a94bc00c4e6550 Author: Chris Lord Date: Sat Feb 6 14:04:47 2010 +0100 [stage] Set minimum width/height to 1x1 Whoops, to maintain the old behaviour, make sure the default minimum width/height are 1x1. clutter/clutter-stage.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit fd11d3098f0182f24666ed77973269111cb0a8f5 Author: Chris Lord Date: Sat Feb 6 11:23:37 2010 +0000 [stage] Add set/get_minumum_size Add two functions to set/get the minimum stage size. This takes effect when a stage is set to user resizable. clutter/clutter-stage.c | 75 ++++++++++++++++++++++++++++ clutter/clutter-stage.h | 7 +++ clutter/x11/clutter-stage-x11.c | 6 +-- doc/reference/clutter/clutter-sections.txt | 2 + 4 files changed, 87 insertions(+), 3 deletions(-) commit f973b73208bad266a2362e22e5aed1a0780d096d Author: Emmanuele Bassi Date: Sat Feb 6 11:00:50 2010 +0000 Add cogl-subtexture test to the Git ignore file .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit e55966d675e57d516ea5aff36b03fde63d4839d3 Author: Emmanuele Bassi Date: Fri Feb 5 16:22:09 2010 +0000 Deprecate clutter_util_next_p2() The next_p2() function should have never been publicly exposed by Clutter. clutter/clutter-util.c | 15 ++++++++------- clutter/clutter-util.h | 9 ++++++--- tests/interactive/test-shader.c | 19 +++++++++++++++++-- 3 files changed, 31 insertions(+), 12 deletions(-) commit bbaf6b233d0120e3199d779eeb2829e56ecc279b Author: Emmanuele Bassi Date: Fri Feb 5 15:31:18 2010 +0000 docs: Fix whitespace in the App manual stub doc/manual/clutter-manual.xml.in | 185 +++++++++++++++++--------------------- 1 file changed, 81 insertions(+), 104 deletions(-) commit dcdb97006b563407d43f19779ac47f0330052541 Author: Emmanuele Bassi Date: Fri Feb 5 14:47:39 2010 +0000 build: Add suppressions file to EXTRA_DIST tests/data/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 830f2402d4f49b7173eb7fa0bda5762a4c430c9a Merge: 1bdc3db 6b1b27d Author: Neil Roberts Date: Sat Feb 6 00:20:07 2010 +0000 Merge branch 'more-texture-backends' This adds three new texture backends. - CoglTexture2D: This is a trimmed down version of CoglTexture2DSliced which only supports a single texture and only works with the GL_TEXTURE_2D target. The code is a lot simpler so it has a less overheads than dealing with slices. Cogl will use this wherever possible. - CoglSubTexture: This is used to get a CoglHandle to represent a subregion of another texture. The texture can be used as if it was a standalone texture but it does not need to copy the resources. - CoglAtlasTexture: This collects RGB and RGBA textures into a single GL texture with the aim of reducing texture state changes and increasing batching. The backend will try to manage the atlas and may move the textures around to close gaps in the texture. By default all textures will be placed in the atlas. commit 6b1b27d4f894cbefc90601eaf6214b55a71834b7 Author: Neil Roberts Date: Sat Feb 6 00:12:10 2010 +0000 cogl-bitmap: Update the format after (un)premultiplying The pixel format of the bitmap needs to have its premult flag cleared or set after the premult conversion otherwise it may get converted again. clutter/cogl/cogl/cogl-bitmap-fallback.c | 4 ++++ clutter/cogl/cogl/cogl-texture.c | 3 +-- 2 files changed, 5 insertions(+), 2 deletions(-) commit 191d20eb56f31786660cd04aacc710344eb8df7a Author: Neil Roberts Date: Fri Feb 5 17:03:04 2010 +0000 cogl-atlas-texture: Fix a cut and paste error when getting the height There was a typo in getting the height of the full texture to check whether the sub region fits so that it was using the width instead. This was causing crashes when debugging is enabled for some apps. clutter/cogl/cogl/cogl-sub-texture.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1bdc3db9ab54316f5f313dc3e991f3a621e83586 Author: Damien Lespiau Date: Thu Feb 4 21:10:02 2010 +0000 docs: Use % for defines not # Some links to defines in the gtk-doc annotations were using '#' instead of '%'. clutter/clutter-actor.c | 4 ++-- clutter/clutter-path.c | 10 +++++----- clutter/cogl/cogl/cogl-fixed.c | 4 ++-- 3 files changed, 9 insertions(+), 9 deletions(-) commit 1b94cc9268e57cc49e3bac914c4b979aec955f77 Author: Damien Lespiau Date: Wed Jan 27 16:03:28 2010 +0000 docs: fix new line in the cogl xml top level document A comma in the FSF address is wrong. Supreme Offence. doc/reference/cogl/cogl-docs.xml.in | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 0ea25d661b887c27beaf0bd848dfda994d88782f Author: Emmanuele Bassi Date: Thu Feb 4 18:29:47 2010 +0000 event: Do not generate click count for SCROLL events The ClutterScrollEvent structure does not have a click count field, so Clutter should not generate the click count for events of type CLUTTER_SCROLL. clutter/clutter-main.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 15c6fef7e3e426764bafc316794a195a086e0d03 Author: Emmanuele Bassi Date: Thu Feb 4 16:49:06 2010 +0000 tests: Add a Valgrind suppression file When running tests under Valgrind it would be useful to pass a suppression file for the known one-off allocations done by Clutter and by its dependencies. This trims the output of Valgrind and improves the ability to actually spot leaks. tests/README | 35 ++++++- tests/data/clutter-1.0.suppressions | 173 +++++++++++++++++++++++++++++++++++ 2 files changed, 203 insertions(+), 5 deletions(-) commit 1f70da62a73e3a10fe1ceb33d11f79fc29586fcf Author: Neil Roberts Date: Thu Feb 4 16:28:29 2010 +0000 glx: Create a colormap for the dummy window Otherwise X will fail to create the window and throw a BadMatch error at least on NVidia. clutter/glx/clutter-backend-glx.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 466b00a8064ad09f0574f8f46c6df0390d7c7d00 Author: Emmanuele Bassi Date: Thu Feb 4 13:59:39 2010 +0000 glx: Clarify *why* we need the dummy window The reason why we have a dummy, offscreen Window when we create the GLX context is that GLX does not like it when you ask the context for features if it's not made current to a Drawable. Maybe in the future it will allow us to do so, but right now we have to make do with what GLX offers us. clutter/glx/clutter-backend-glx.c | 6 ++++++ 1 file changed, 6 insertions(+) commit ea5e33cf3a38edddef88ec30131c35bb8ab4bfaf Author: Emmanuele Bassi Date: Thu Feb 4 13:56:33 2010 +0000 glx: Do not leak a XVisualInfo The XVisualInfo we retrieve for the dummy window should be freed after we used it. clutter/glx/clutter-backend-glx.c | 2 ++ 1 file changed, 2 insertions(+) commit e6a3b6ebe75a2c0c3709fbe12cf04c4357b54fdd Author: Neil Roberts Date: Wed Feb 3 23:08:30 2010 +0000 cogl-texture: Avoid copying the bitmap when premultiplying from a file In cogl_texture_new_from_file we create and own a temporary bitmap. There's no need to copy this data if we need to do a premult conversion so instead it just does conversion before passing it on to cogl_texture_new_from_bitmap. clutter/cogl/cogl/cogl-texture.c | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) commit 59198b8ab8a6a7c1c3dbfa5c72abf36f8d66c543 Author: Neil Roberts Date: Wed Feb 3 22:54:44 2010 +0000 cogl-texture: Split out _cogl_texture_prepare_for_upload The Cogl atlas code was using _cogl_texture_prepare_for_upload with a NULL pointer for the dst_bmp to determine the internal format of the texture without converting the bitmap. It needs to do this to decide whether the texture will go in the atlas before wasting time on the conversion. This use of the function is a little confusing so that part of it has been split out into a new function called _cogl_texture_determine_internal_format. The code to decide whether a premult conversion is needed has also been split out. clutter/cogl/cogl/cogl-atlas-texture.c | 11 +--- clutter/cogl/cogl/cogl-texture-private.h | 7 +++ clutter/cogl/cogl/cogl-texture.c | 81 ++++++++++++++++++------------ 3 files changed, 57 insertions(+), 42 deletions(-) commit 5063f4669c2c94d7288405005f4df14e73a4f578 Author: Neil Roberts Date: Wed Feb 3 19:54:12 2010 +0000 cogl-atlas: Make the cogl_atlas_* API internal This just adds an underscore to every entry point for the CoglAtlas API so that it's not exported. clutter/cogl/cogl/cogl-atlas-texture.c | 89 ++++++++++---------- clutter/cogl/cogl/cogl-atlas.c | 140 ++++++++++++++++---------------- clutter/cogl/cogl/cogl-atlas.h | 32 ++++---- clutter/cogl/cogl/cogl-context.c | 2 +- 4 files changed, 132 insertions(+), 131 deletions(-) commit cd3c5155d879782a6e6e1d7fa56043e03712b727 Author: Jussi Kukkonen Date: Wed Feb 3 17:04:38 2010 +0000 text: implement del_word_next/del_word_prev() Bind ctrl-backspace and ctrl-del to functions that delete a word before or after the cursor, respectively. Selection does not affect the deletion, but current selection is preserved. This mimicks GTK+ functionality in GtkTextView and GtkEntry. http://bugzilla.openedhand.com/show_bug.cgi?id=1767 Signed-off-by: Emmanuele Bassi clutter/clutter-text.c | 95 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) commit d8d728a8d7ac4bc56f058379d76f4539d01189de Author: Emmanuele Bassi Date: Wed Dec 9 00:50:33 2009 +0000 Remove the SDL backend The SDL API is far too limited for the windowing system needs of Clutter; the status of the SDL backend was always experimental, and since the Windows platform is supported by a native backend there is no point in having the SDL backend around any more. README | 8 +- clutter/Makefile.am | 2 +- clutter/sdl/Makefile.am | 26 --- clutter/sdl/clutter-backend-sdl.c | 207 -------------------- clutter/sdl/clutter-backend-sdl.h | 70 ------- clutter/sdl/clutter-event-sdl.c | 377 ------------------------------------- clutter/sdl/clutter-sdl.h | 39 ---- clutter/sdl/clutter-stage-sdl.c | 197 ------------------- clutter/sdl/clutter-stage-sdl.h | 34 ---- configure.ac | 41 +--- 10 files changed, 5 insertions(+), 996 deletions(-) commit ae188d203c63d680dc58ba1e19f333719a6916d4 Author: Neil Roberts Date: Wed Jan 20 16:41:25 2010 +0000 win32: Use a dummy window to support delayed stage creation The Win32 backend now implements the create_context method which creates a context and binds it to a 1x1 invisible window. That way there will always be a context bound and the features can be retrieved without creating the default stage. This reflects the changes in 1c6ffc8..b245d55 to the GLX backend. clutter/win32/clutter-backend-win32.c | 194 +++++++++++++++++++++++++++++++-- clutter/win32/clutter-backend-win32.h | 2 + clutter/win32/clutter-stage-win32.c | 84 ++------------ 3 files changed, 198 insertions(+), 82 deletions(-) commit 479fdffc7d4f37f9ff104403dd7de685df97e0d5 Author: Emmanuele Bassi Date: Sun Dec 6 18:56:14 2009 +0000 glx: Fix error messages and debug notes Instead of using g_critical() inside the create_context() implementation of the ClutterBackendGLX we should use the passed GError, so that the error message can bubble up to the caller. clutter/glx/clutter-backend-glx.c | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) commit ede2cbfab05035247b2a6a2ca837cb8f71871c5d Author: Emmanuele Bassi Date: Thu Dec 3 21:07:45 2009 +0000 stage: Create the default stage on demand Instead of creating the default stage during initialization we can now safely create it whenever clutter_stage_get_default() is called. To maintain the invariant, the default stage is immediately realized by Clutter itself. clutter/clutter-main.c | 28 ---------------------------- clutter/clutter-stage.c | 15 ++++++++++----- 2 files changed, 10 insertions(+), 33 deletions(-) commit d2c091e62d4b9e897e8f8ef5de99f20417cc6682 Author: Emmanuele Bassi Date: Thu Dec 3 20:49:54 2009 +0000 glx: Create the dummy Window with the GLX context Since we must guarantee that Cogl has a GL context to query, it is too late to use the "dummy Window" trick from within the get_features() virtual function implementation. Instead, we can create a dummy Window from create_context() itself and leave it around - basically trading a default stage with a dummy X window. We need to have the dummy X window around all the time so that the GLX context can be selected and made current. clutter/clutter-main.c | 16 ++-- clutter/glx/clutter-backend-glx.c | 169 ++++++++++++++++++------------------- clutter/glx/clutter-backend-glx.h | 1 + 3 files changed, 95 insertions(+), 91 deletions(-) commit 5eb6fb74b660d22e7f31867b16997ee9f63bef4b Author: Emmanuele Bassi Date: Thu Dec 3 20:48:55 2009 +0000 feature: Make sure we have a GL context Before asking Cogl and ClutterBackend for the list of features we must have a GL backend ready. clutter/clutter-feature.c | 3 +++ 1 file changed, 3 insertions(+) commit a8daaa8222c9b4aaf7e46b1bb13a2ce8097153f1 Author: Emmanuele Bassi Date: Thu Dec 3 20:47:48 2009 +0000 stage: Move default title in Stage.init The default title should be set from within clutter_stage_init(); at that point clutter_init() must have been called. clutter/clutter-main.c | 2 -- clutter/clutter-stage.c | 1 + 2 files changed, 1 insertion(+), 2 deletions(-) commit 38f26634eec3c81d61bb3b88b24563d7e4719f67 Author: Emmanuele Bassi Date: Thu Dec 3 17:36:03 2009 +0000 Lazily create the Pango fontmap The Pango fontmap needed by Clutter should be initialized the first time we need a PangoContext, not on initialization. clutter/clutter-main.c | 35 ++++++++++++++++------------------- 1 file changed, 16 insertions(+), 19 deletions(-) commit 6fbed66add4b8c03a0ba0f4edc1c2f0044608998 Author: Emmanuele Bassi Date: Thu Dec 3 17:13:44 2009 +0000 Delay default stage creation The default stage creation should be delayed as much as possible, ideally at the end of the init() process. clutter/clutter-backend.c | 8 +++ clutter/clutter-main.c | 67 +++++++++++++------------ clutter/clutter-stage.c | 6 +-- clutter/cogl/cogl/cogl-journal.c | 3 ++ clutter/glx/clutter-backend-glx.c | 98 ++++++++++++++++++++++++++++--------- clutter/glx/clutter-stage-glx.c | 5 ++ 6 files changed, 126 insertions(+), 61 deletions(-) commit 3191ea1195d5e1d55facc147760b273efca76867 Author: Emmanuele Bassi Date: Thu Dec 3 17:35:19 2009 +0000 cogl-debug: Remove redundant newlines The debugging notes wrapping g_debug() already have an implicit newline at the end of the passed message. clutter/cogl/cogl/cogl-handle.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 16a5911cff90a2bba1b283ccd9a9ce6d0f435924 Author: Emmanuele Bassi Date: Wed Feb 3 15:05:37 2010 +0000 tests: Clean up the cairo-flowers interactive test tests/interactive/test-clutter-cairo-flowers.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) commit cb52581a24c157e2bedb74c32d522dc56d9a91a2 Author: Emmanuele Bassi Date: Wed Feb 3 14:35:45 2010 +0000 text: Add :font-description High level toolkits might wish to construct a PangoFontDescription and then set it directly on a ClutterText actor proxy or sub-class. ClutterText should have a :font-description property to set (and get) the PangoFontDescription. http://bugzilla.openedhand.com/show_bug.cgi?id=1960 clutter/clutter-text.c | 131 ++++++++++++++-- clutter/clutter-text.h | 225 ++++++++++++++-------------- doc/reference/clutter/clutter-sections.txt | 2 + 3 files changed, 234 insertions(+), 124 deletions(-) commit 74c0170ccc80504018f2aab849a6a311c64052a6 Author: Neil Roberts Date: Wed Feb 3 14:31:12 2010 +0000 cogl-vertex-buffer: Refix disabling texture coord arrays Commit 92a375ab4 changed the initial value of max_texcoord_attrib_unit to -1 so that it could disable the texture coord array for the first texture unit when there are no texture coords used in the vbo. However max_texcoord_attrib_unit was an unsigned value so this actually became G_MAXUINT. The disabling loop at the bottom still worked because G_MAXUINT+1==0 but the check for whether any texture unit is greater than max_texcoord_attrib_unit was failing so it would always end up disabling all texture units. This is now fixed by changing max_texcoord_attrib_unit to be signed. clutter/cogl/cogl/cogl-vertex-buffer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 301863d43bc79e792f8fe3ea5e9185d87cb74069 Author: Emmanuele Bassi Date: Tue Feb 2 17:07:22 2010 +0000 text: Fixes for selection bound The commit ecbb7ce41a1a759e246fce07f146b8bed5e3d730 exposed some issues when positioning the cursor with the mouse pointer: the selection is not moved along with the cursor when inserting a single character or a string. Also, some freeze_notify() are called too early, leading to decoupling from their respective thaw_notify(). http://bugzilla.openedhand.com/show_bug.cgi?id=1955 clutter/clutter-text.c | 44 +++++++++++++++++++------------------------- 1 file changed, 19 insertions(+), 25 deletions(-) commit 5bec49aea931e6835b97e549e23458a6214548ce Author: Kristian Høgsberg Date: Wed Jan 27 12:55:18 2010 -0500 Use ClutterTimeline in test-clutter-cairo-flowers.c http://bugzilla.openedhand.com/show_bug.cgi?id=1969 Signed-off-by: Emmanuele Bassi tests/interactive/test-clutter-cairo-flowers.c | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) commit c9a6e63fa4d1d710d9efeb850f3fc336933ee2a8 Author: Emmanuele Bassi Date: Tue Feb 2 14:50:03 2010 +0000 docs: Clarify Group's sizing semantics The documentation for ClutterGroup behaviour when setting an explicit size is not accurate - or, actually, it was accurate by the time ClutterGroup was first written but has been neglected in the following release cycles. To avoid confusion for new users of Clutter the documentation should be slightly expanded, mentioning the exact semantics of ClutterGroup with regards to: preferred size, explicitly set size and how to constrain the visible area of a ClutterGroup to an explicitly set size. Based on a patch by: Neil Roberts clutter/clutter-group.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) commit 12b004b0e7e13ca64d7d35cd3fe083f582b7aa09 Author: Emmanuele Bassi Date: Tue Feb 2 12:56:04 2010 +0000 tests: Add an initial Behaviour conformance suite The coverage of the Behaviour sub-classes is currently abysmal. An initial test suite for Behaviours should at least verify that the accessors and the constructors are doing the right thing. This initial test suite just verifies the BehaviourOpacity sub-class, but it already bumps up the overall coverage by 2%. .gitignore | 1 + tests/conform/Makefile.am | 1 + tests/conform/test-behaviours.c | 87 +++++++++++++++++++++++++++++++++++++ tests/conform/test-conform-main.c | 2 + 4 files changed, 91 insertions(+) commit f94e6911510b5376dd490c1f8724e616aaf2e5dc Author: Emmanuele Bassi Date: Tue Feb 2 12:54:51 2010 +0000 behaviour: Clean up BehaviourOpacity • Use a consistent coding style • Call set_bounds() from set_property(), because we need proper notification on the modified property clutter/clutter-behaviour-opacity.c | 56 ++++++++++++++++++++--------------- 1 file changed, 32 insertions(+), 24 deletions(-) commit 521d71d4bc4ca4b06343365c71c9520b1ebfdc7f Author: Emmanuele Bassi Date: Mon Feb 1 15:47:50 2010 +0000 event: Unify the off-stage motion events delivery behaviour When we disable the per-actor events delivery Clutter replicates the X11 implicit soft grab for motion events with off-stage. The implicit grab is done whenever the pointer of a device leaves a window with a button still pressed; with the implicit grab in place the window still receives motion events even after the LeaveNotify - until the button is released. The implicit grab is not honoured in the per-actor event deliver case, though, so we have a mismatch between two in theory equivalent cases. Luckily, the fix is pretty trivial: when we check for a motion event with a stage set but without an actor set, and that has off-stage coordinates, we arbitrarily set the source to be the stage of the event and emit the pointer event. clutter/clutter-main.c | 40 ++++++++++++++++++++++++++++++++++------ 1 file changed, 34 insertions(+), 6 deletions(-) commit 46d6697b9170ba110439cbf61d152890b35a3837 Author: Emmanuele Bassi Date: Mon Feb 1 14:53:13 2010 +0000 build: -Wformat is required for -Wformat-security GCC will ignore -Wformat-security without -Wformat on the same compiler flags. configure.ac | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 157a0cf9364a9e60b29e5e88ca1783d9e174a635 Author: Emmanuele Bassi Date: Mon Feb 1 14:48:50 2010 +0000 build: Retrieve X11 cflags and libraries When using pkg-config to check for the x11 package compiler flags and libraries we actually need to retrieve those values from the pc file. This should also fix the issue with non-canonical installations of the X11 headers and shared objects. http://bugzilla.openedhand.com/show_bug.cgi?id=1966 configure.ac | 5 +++++ 1 file changed, 5 insertions(+) commit 145cc9d3dfd1dc51f254eefde35042fc20a6375e Merge: aa6731e 5f1c8a1 Author: Neil Roberts Date: Mon Feb 1 13:37:19 2010 +0000 Merge remote branch 'master' into texture-debugging Conflicts: clutter/cogl/cogl/cogl-context.h commit aa6731e338a88d03e718980604ac8f2393391a9f Author: Neil Roberts Date: Mon Feb 1 13:25:19 2010 +0000 cogl-material: Compare GL texture numbers for material layer textures When deciding if a material layer is equal it now compares the GL target and texture number if the textures are not sliced. This is needed to get batching across atlased textures. clutter/cogl/cogl/cogl-material.c | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) commit abe91784c4ba98417eabe0649bf73381afbd6fc7 Author: Neil Roberts Date: Mon Feb 1 12:11:58 2010 +0000 cogl: Let GL do the format conversion when uploading texture data Cogl accepts a pixel format for both the data in memory and the internal format to be used for the texture. If they do not match then it would convert them using the CoglBitmap functions before uploading the data. However, GL also lets you specify both formats so it makes more sense to let GL do the conversion. The driver may need the texture in a specific format so it may end up being converted anyway. The cogl_texture_upload_data functions have been removed and replaced with a single function to prepare the bitmap. This will only do the premultiplication conversion because that is the only part that GL can't do directly. clutter/cogl/cogl/cogl-atlas-texture.c | 111 +++++++------- clutter/cogl/cogl/cogl-texture-2d-sliced.c | 220 +++++++++++++++------------- clutter/cogl/cogl/cogl-texture-2d.c | 92 ++++++------ clutter/cogl/cogl/cogl-texture-private.h | 44 ++---- clutter/cogl/cogl/cogl-texture.c | 136 ++++++++--------- 5 files changed, 290 insertions(+), 313 deletions(-) commit e83ffb1fa3436bf1506c32856b2a3ba23254e068 Author: Neil Roberts Date: Fri Jan 29 15:15:08 2010 +0000 cogl: Do the premult conversion in-place rather than copying to a new buffer The premult part of _cogl_convert_premult has now been split out as _cogl_convert_premult_status. _cogl_convert_premult has been renamed to _cogl_convert_format to make it less confusing. The premult conversion is now done in-place instead of copying the buffer. Previously it was copying the buffer once for the format conversion and then copying it again for the premult conversion. The premult conversion never changes the size of the buffer so it's quite easy to do in place. We can also use the separated out function independently. clutter/cogl/cogl/cogl-atlas-texture.c | 6 +- clutter/cogl/cogl/cogl-bitmap-fallback.c | 142 +++++++++++----------------- clutter/cogl/cogl/cogl-bitmap-pixbuf.c | 6 +- clutter/cogl/cogl/cogl-bitmap-private.h | 22 ++--- clutter/cogl/cogl/cogl-bitmap.c | 102 ++++++++------------ clutter/cogl/cogl/cogl-texture-2d-sliced.c | 12 +-- clutter/cogl/cogl/cogl-texture-2d.c | 12 +-- clutter/cogl/cogl/cogl-texture.c | 6 +- 8 files changed, 123 insertions(+), 185 deletions(-) commit 72fba19eac68ffa30c3f60aeecfdbfa6a2da7bd4 Author: Neil Roberts Date: Fri Jan 29 12:19:42 2010 +0000 cogl-atlas-texture: Use a single atlas for both RGB and RGBA textures The internal format of the atlas texture is still set to the appropriate format so Cogl will disable blending for textures that are intended to be RGB. This should end up ignoring the alpha channel from the texture in the atlas. This makes the code slightly easier to maintain and should also improve the chances of batching. clutter/cogl/cogl/cogl-atlas-texture.c | 134 ++++++++++++-------------------- clutter/cogl/cogl/cogl-context.c | 18 ++--- clutter/cogl/cogl/cogl-context.h | 8 +- 3 files changed, 57 insertions(+), 103 deletions(-) commit ad6bd2ee88770c2ce86f81f7a64b6b121c3418d6 Author: Emmanuele Bassi Date: Mon Feb 1 12:18:10 2010 +0000 actor: Reword the allocation cycle warning Since we're allowing allocation cycles saying that calling queue_relayout() inside an allocation cycle "is not allowed" is kind of confusing. We should say that "it is not recommended". clutter/clutter-actor.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5f1c8a17e4f81ead1747b47939d593c80246bf06 Merge: ecbb7ce 8a4b647 Author: Emmanuele Bassi Date: Mon Feb 1 11:26:56 2010 +0000 Merge branch 'device-manager' * device-manager: (37 commits) x11: Re-enable XI1 extension keyboards x11: Always handle core device events before XI events docs: Documentation fixes for DeviceManager device-manager: Fix the signals definition docs: Add sections for InputDevice and DeviceManager docs: Add clutter_input_device_get_device_name() tests: Print out the device details on motion Always register core devices device: Remove unused is_default member win32: Experimental implementation of device support tests: Print the device name, as well as its Id x11: Fill out the :name property of the InputDevices device: Add the :name property to InputDevice x11: Store core devices on the X11 Backend singleton device: Unset the cursor actor when leaving the stage device: Add pointer actor getter x11: Discard the LeaveNotify for off-stage ButtonRelease device: Do not overwrite the stage for an InputDevice event: Off-stage button releases have a click count of 1 event: Scroll events do not have click count ... commit ecbb7ce41a1a759e246fce07f146b8bed5e3d730 Author: Alejandro Piñeiro Date: Mon Jan 25 16:13:58 2010 +0100 Fix problems with "position" and "selection-bound" change notification Added a "selection-bound" notify on clutter_text_clear_selection as it changes the value. Added utility function clutter_text_set_positions, in order to change both cursor position and selection bound inside a g_object_[freeze/thaw]_notify block Added g_object_[freeze/thaw]_notify in other functions that changes both cursor position and selection bound Solves http://bugzilla.openedhand.com/show_bug.cgi?id=1955 clutter/clutter-text.c | 77 +++++++++++++++++++++++++++++++++--------------- 1 file changed, 53 insertions(+), 24 deletions(-) commit 579a9a2665b402405820585dacba137984700110 Author: Emmanuele Bassi Date: Mon Feb 1 11:04:59 2010 +0000 stage: Add :key-focus property ClutterStage has both set_key_focus() and get_key_focus() methods, but there is no :key-focus property. This means that it is not possible to get notifications when the key-focus has changes except by connecting to both the ::key-focus-in and ::key-focus-out signals and do additional bookkeeping. http://bugzilla.openedhand.com/show_bug.cgi?id=1956 Signed-off-by: Emmanuele Bassi clutter/clutter-stage.c | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) commit 95712f9897db7f06a6ca34661f20b388dd5a5f77 Author: Emmanuele Bassi Date: Fri Jan 29 10:13:57 2010 +0000 docs: Update the README Clean up the grammar and some wrinkles in the text. README | 91 +++++++++++++++++++++++++++++++++++++++++----------------------- 1 file changed, 58 insertions(+), 33 deletions(-) commit 5b9259ba807f4151d08bf2ea868c2cdeed97e975 Author: Emmanuele Bassi Date: Fri Jan 29 09:31:13 2010 +0000 docs: Update the configure switches in the README README | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) commit 763fcabd8b287445d32eadb6086b0438e3962294 Author: Emmanuele Bassi Date: Fri Jan 29 09:29:53 2010 +0000 build: Warn with --disable-conformance and --enable-gcov When building Clutter without conformance test suite we ought to warn the user that the coverage report is not going to be accurate. configure.ac | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit 21d21adbc45a6e0023e4a21b357fbf392b469fb2 Author: Emmanuele Bassi Date: Fri Jan 29 09:29:37 2010 +0000 Remove tabs from configure.ac configure.ac | 51 ++++++++++++++++++++++++++++----------------------- 1 file changed, 28 insertions(+), 23 deletions(-) commit 5f5f6d825f6460f532f0c0448fc403cdb95e4697 Author: Emmanuele Bassi Date: Fri Jan 29 09:26:47 2010 +0000 build: Allow disabling the conformance test suite When building Clutter for packaging on headless boxes it's pointless to allow building the conformance test to be built (and run on 'make check'). configure.ac | 14 +++++++++++++- tests/Makefile.am | 25 ++++++++++++++++++++----- 2 files changed, 33 insertions(+), 6 deletions(-) commit 7a1ebcbced45c21937c4407e28274fdb4a92af52 Author: Emmanuele Bassi Date: Wed Jan 27 21:26:26 2010 +0000 Whitespace fixes in cogl-util clutter/cogl/cogl/cogl-util.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 578e83e463d4d681de27f1b4e5d64dea8161f0f7 Author: Emmanuele Bassi Date: Wed Jan 27 21:16:28 2010 +0000 Whitespace fixes clutter/clutter-frame-source.c | 3 ++- clutter/clutter-timeout-interval.c | 38 ++++++++++++++++++++++-------------- clutter/clutter-timeout-pool.c | 5 +++-- 3 files changed, 28 insertions(+), 18 deletions(-) commit 2d5eeba5d89c129f991f367f0e80c3a152f19e52 Author: Emmanuele Bassi Date: Wed Jan 27 21:14:43 2010 +0000 docs: Fixes for TimeoutPool and Frame sources The TimeoutPool is not used by ClutterTimeline any more, so we need to remove a sentence from its description. We also need to fix the gtk-doc syntax errors. clutter/clutter-frame-source.c | 25 +++++++++++++------------ clutter/clutter-timeout-pool.c | 8 +------- 2 files changed, 14 insertions(+), 19 deletions(-) commit 046a4b80476794bebdfd9005c826a64b7c8c9f81 Author: Neil Roberts Date: Fri Jan 22 18:14:57 2010 +0000 cogl: Use the colours of COGL_DEBUG=rectangles to debug batching Instead of assigning a new colour to each quad of a batch, the rectangle debugging code now assigns a new colour to each batch so that it can be used to visually see what is being batched. The colour is stored in a global variable that is reset during cogl_clear. This improves the chances that the same colour will be used for a batch in the next frames to avoid flickering. clutter/cogl/cogl/cogl-context.h | 6 +++++ clutter/cogl/cogl/cogl-journal.c | 54 ++++++++++++++++++++++++++------------ clutter/cogl/cogl/cogl.c | 11 ++++++++ 3 files changed, 54 insertions(+), 17 deletions(-) commit 92a375ab47296a81d739ca29b0972c7abe6eda16 Author: Neil Roberts Date: Tue Jan 26 13:46:27 2010 +0000 cogl-vertex-buffer: Fix disabling the texture arrays from previous prim When setting up the state for the vertex buffer, enable_state_for_drawing_buffer tries to keep track of the highest numbered texture unit in use. It then disables any texture arrays for units that were previously enabled if they are greater than that number. However if there is no texturing in the VBO then the max used unit would be left at 0 which it would later think meant unit 0 is still in use so it wouldn't disable it. To fix this it now initialises the max used unit to -1 which it should interpret as ‘no units are in use’ so it will later disable the arrays for all units. Thanks to Jon Mayo for reporting the bug. http://bugzilla.openedhand.com/show_bug.cgi?id=1957 clutter/cogl/cogl/cogl-vertex-buffer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f288eae0fc454876c2beb87b1205681a338d7f65 Author: Neil Roberts Date: Wed Jan 27 12:06:22 2010 +0000 docs: Add some notes about the CoglPixelFormat enums The pixel format enums didn't explain what order in memory the components should be so it was difficult to use them. clutter/cogl/cogl/cogl-types.h | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) commit da392e24a55ad34bdc8fe9ac0841eca574f76194 Author: Neil Roberts Date: Wed Jan 27 11:02:34 2010 +0000 docs: Fix some of the examples for the animation docs In the example for clutter_actor_animate the "x" and "y" properties are floats so they need to be passed float values in the var args otherwise it will crash. There was also a missing comma. There were some other minor problems with the behaviours example which would cause it not to compile. doc/reference/clutter/clutter-animation-tutorial.xml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit 52cb54f5fa665fdf06270fc58121617b44877639 Author: Damien Lespiau Date: Tue Jan 26 18:47:25 2010 +0000 cogl: Fix checks of the number of available texture units We were checking the number of texture units against the GL enum that is used in glGetInteger() to query that number. Let's abstract this in a little function. Took the opportunity to dig a bit on the usage of GL limits for the number of texture (image) units and document our use of them. We'll need something finer grained if we want to fully exploit texture image units with a programmable pipeline. clutter/cogl/cogl/cogl-internal.h | 2 ++ clutter/cogl/cogl/cogl-material.c | 10 ++-------- clutter/cogl/cogl/cogl.c | 30 ++++++++++++++++++++++++++++++ 3 files changed, 34 insertions(+), 8 deletions(-) commit 87d19b8d182c2524a5d3c30921fe2c3d4d120606 Author: Damien Lespiau Date: Sun Nov 15 20:17:47 2009 +0000 cogl: Fix gl equivalent of blend string An example of what could be the equivalent of "RBG = REPLACE(TEXTURE) A = MODULATE(PREVIOUS,TEXTURE)" using the ARB_texture_env_combine extension was given, but it seems that a few typo were left: * remove a spurius GL_COMBINE_ALPHA * use the _ALPHA variant of SRCN and OPERANDN when setting up the alpha combiner doc/reference/cogl/blend-strings.xml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit afb30f4013fdcb58ee35af919fdb739ab587683c Author: Damien Lespiau Date: Wed Nov 18 01:13:11 2009 +0000 tests: blend-string: use g_assert_cmpint It's very useful to see the actual number the reference value is compared too when the test fails. GTest has g_assert_cmp$type() functions for that, so make good use of them. tests/conform/test-cogl-blend-strings.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit de31cbf4f7932f8d48583a476c5af9f6eed6adbd Author: Damien Lespiau Date: Tue Jan 26 16:59:50 2010 +0000 test-cogl-multitexture: use several materials with texture matrices A small doubt has risen about the use of CoglTextureUnit in materials: will texture matrices still work if we have several materials, each of them having at texture on the same texture unit? The answer is yes! test-cogl-multitexture has been extended to use 2 materials with about the same setup except a little difference: the texture matrices for the lightmaps rotate in opposite directions. While at it, changed the rotation behaviour by an implicit animation with a small additional bonus bling. tests/interactive/test-cogl-multitexture.c | 143 ++++++++++++++++++++-------- 1 file changed, 102 insertions(+), 41 deletions(-) commit 06d8ebb0ba2d468d492eeb94dede095a14eec909 Author: Damien Lespiau Date: Sun Nov 15 19:54:17 2009 +0000 cogl: Create CoglTextureUnit with its associated unit number The index field of CoglTextureUnit was never set, leading to the creation of units with index set to 0. When trying to retrieve a texture unit by its index (!= 0) with _cogl_get_texture_unit(), a new one was created as it could not find it back in the list of textures units: ctx->texture_units. http://bugzilla.openedhand.com/show_bug.cgi?id=1958 clutter/cogl/cogl/cogl.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 8fc07c51a9c71aec77e4b76416ffedc72da309e2 Author: Emmanuele Bassi Date: Thu Jan 21 17:41:10 2010 +0000 actor: Use GParamSpecUint for :opacity The :opacity property is defined using a GParamSpecUchar. This usually leads to issues with language bindings that don't have an 'unsigned char' type and that need to explicitly handle the conversion between G_TYPE_UCHAR and G_TYPE_INT or G_TYPE_UINT. The property definition already specifies an interval size of [0, 255] on the values; more importantly, GObject already implicitly transforms between G_TYPE_UCHAR and G_TYPE_UINT (the GValue transformation functions are registered at type system initialization time) so switching between a GParamSpecUchar and a GParamSpecUint should not be an ABI break. I have tested a simple program using the opacity property before and after the change and I cannot see any run-time warnings related to this issue. clutter/clutter-actor.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit d0f7debfba4879c3df20c0067789b063e18d93ce Author: Emmanuele Bassi Date: Fri Jan 22 21:44:28 2010 +0000 test-easing: Do not reconnect signals multiple times The test should keep track of the last animation and avoid reconnecting signals to the same instance in case the -r argument has been passed. tests/interactive/test-easing.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 7073e69b4e504ddbaffad4a6139e93ddbd40b9f8 Author: Emmanuele Bassi Date: Fri Jan 22 21:42:55 2010 +0000 animation: Verify internal state Be more drastic if the internal state is broken, and assert() if the expected Alpha and Timeline instances we need are not valid. This usually implies a library bug or a massive heap corruption. clutter/clutter-animation.c | 4 ++++ 1 file changed, 4 insertions(+) commit 8daa3035e563870fc614813fd6329c63542b129e Author: Emmanuele Bassi Date: Fri Jan 22 21:42:10 2010 +0000 docs: Fix the Animation:object property There is a typo in the Animation:object property gtk-doc declaration. clutter/clutter-animation.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0788aa43b29454efed3f60160b87881a1c84f603 Author: Emmanuele Bassi Date: Fri Jan 22 21:41:33 2010 +0000 animation: Add more debug annotations We need some better tracking of the Animation's lifetime. clutter/clutter-animation.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) commit 7fa7c4a1b621eff0533ff70b1b6c9be001f62e2a Author: Emmanuele Bassi Date: Fri Jan 22 21:36:41 2010 +0000 animation: Transform if necessary The Animation code does transformation of values between type A and A' after checking for compatibility using g_value_type_compatible(). This is incorrect: compatibility means that the two types can be copied. The correct conversion should follow: if (compatible (type (A), type (A'))) copy (A, A'); else if (transformable (type (A), type (A'))) transform (A, A'); else error("Unable to trasform type A in A'"); The transformation might still fail, so we need to check for errors there as well as a fall-through case. clutter/clutter-animation.c | 42 ++++++++++++++++++++++-------------------- 1 file changed, 22 insertions(+), 20 deletions(-) commit 94249efff7ec46bbeaac04800d5a9a30c05dcde3 Author: Emmanuele Bassi Date: Fri Jan 22 21:33:28 2010 +0000 animation: Check for value transformability We should not just check for compatibility, but also for the ability to transform a GValue of type A into another of type A'. Usually compatibility is enough, especially if types can be introspected beforehand; some times, though, we also need to check for transformability as a type can provide the transformation functions necessary for the operation. clutter/clutter-animation.c | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) commit 996614cfaf582bbfbf86874a95b4a7eef3c50630 Author: Neil Roberts Date: Thu Jan 21 15:34:19 2010 +0000 cogl-atlas-texture: Add a debug option to disable the atlas If the user specifies the 'disable-atlas' debug option then no texture will be put in the atlas. clutter/cogl/cogl/cogl-atlas-texture.c | 5 +++++ clutter/cogl/cogl/cogl-debug.c | 3 ++- clutter/cogl/cogl/cogl-debug.h | 3 ++- 3 files changed, 9 insertions(+), 2 deletions(-) commit 4695383281d4b74baa10d78253a27b2eb541eef3 Author: Emmanuele Bassi Date: Fri Jan 22 00:06:17 2010 +0000 build: Use no-define We don't need the PACKAGE and VERSION defines in the config.h. configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f7e7985344420caf4897777ced6f04cddb7052ee Author: Emmanuele Bassi Date: Thu Jan 21 23:57:38 2010 +0000 build: Add no-portability option to automake We require the GNU version of make for some of our rules, and it's been so for a while now. configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a545f66a5c34b66d1a31387105d114ca3edd3a46 Author: Emmanuele Bassi Date: Thu Jan 21 23:41:18 2010 +0000 master clock: Improve the timeline advancement protection The commit 1c69c61745ed510f0b6ab16cb963ca01994cb9fc which improved the protection against timeline removals during the master clock advancement was only doing half the job - and actually broke the chaining of animations inside the ::completed signal. We cannot simply take a reference on the timelines and still use the list held by the master clock because the do_tick() might result in the creation of a new timeline, which gets added at the end of the list with no reference increase and thus gets disposed at the end of the iteration. We also cannot steal the master clock timelines list because a timeline might be removed as the direct result of do_tick() and remove_timeline() would not find the timeline, failing and leaving a dangling pointer behind. For this reason we copy the list of timelines out of the one that the Master Clock holds, take a reference on each timeline, advance them all, release the reference and free the list. clutter/clutter-master-clock.c | 39 +++++++++++++++++++++++++++------------ 1 file changed, 27 insertions(+), 12 deletions(-) commit 8a4b64715486699dd8d0ea2146d0adea37d2a6c7 Author: Emmanuele Bassi Date: Wed Jan 20 19:40:58 2010 +0000 x11: Re-enable XI1 extension keyboards The extension keyboard support in XInput 1.x is hopelessly broken. Nevertheless, it's possible to use some bits of it, as we prefer the core keyboard events to the XInput events, thus at least having proper handling for X11 key events on the Stage window. clutter/x11/clutter-backend-x11.c | 2 -- clutter/x11/clutter-event-x11.c | 28 ++++++++++++++++++++++++++-- clutter/x11/clutter-input-device-x11.c | 21 ++++++++++++++------- tests/interactive/test-devices.c | 12 +++++++----- 4 files changed, 47 insertions(+), 16 deletions(-) commit 94f9f3bd9345d8eb1551c429615473134e3f4e8f Author: Emmanuele Bassi Date: Fri Jan 15 16:28:00 2010 +0000 x11: Always handle core device events before XI events The XI 1.0 layer is complementary to the X11 core devices handling; this means that core events will still be emitted for the core pointer and keyboard devices, and that secondary (floating) devices should be handled on top of that. Thus, the XI event handling code should be executed (if explicitly compiled in and enabled) if the core device events have not been parsed. Note: this is going away with XI2, which completely replaces both core and XI1 events. clutter/x11/clutter-event-x11.c | 499 ++++++++++++++++++--------------------- 1 file changed, 224 insertions(+), 275 deletions(-) commit dc39e9eff9de0797086ea1a505855724296981f7 Author: Emmanuele Bassi Date: Fri Jan 15 15:29:52 2010 +0000 docs: Documentation fixes for DeviceManager clutter/clutter-device-manager.c | 7 ++++++- doc/reference/clutter/clutter-sections.txt | 2 -- doc/reference/clutter/clutter.types | 2 ++ 3 files changed, 8 insertions(+), 3 deletions(-) commit 65c7ff7d05389a10eed1d881ca572082f03932fe Author: Emmanuele Bassi Date: Fri Jan 15 15:29:14 2010 +0000 device-manager: Fix the signals definition Add documentation for the signals, as well as using the correct type for the marshallers. clutter/clutter-device-manager.c | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) commit 0b47acf60b46b64ae838471765d86e1c65c01cc0 Author: Emmanuele Bassi Date: Fri Jan 15 14:56:43 2010 +0000 docs: Add sections for InputDevice and DeviceManager doc/reference/clutter/clutter-docs.xml.in | 2 ++ 1 file changed, 2 insertions(+) commit 8ead5abba0ebe9c5b5c1b749bb28f7879d63aa49 Author: Emmanuele Bassi Date: Fri Jan 15 14:42:19 2010 +0000 docs: Add clutter_input_device_get_device_name() doc/reference/clutter/clutter-sections.txt | 1 + 1 file changed, 1 insertion(+) commit 1f5a7b61b761bf8426b1229c481574c273a5964f Author: Emmanuele Bassi Date: Fri Jan 15 12:24:21 2010 +0000 tests: Print out the device details on motion The test-device interactive test should print out the device name and id when it detects a motion event. tests/interactive/test-devices.c | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) commit d8e167f1519499a27ee04a9a0d167b5ffed3ce8e Author: Emmanuele Bassi Date: Fri Jan 15 12:22:29 2010 +0000 Always register core devices Even with XInput support we should always register core devices. This allows us to handle enter and leave events correctly on the Stage and to have a working XInput 1.x support in Clutter. clutter/x11/clutter-backend-x11.c | 87 ++++++++++---------------------- clutter/x11/clutter-backend-x11.h | 1 + clutter/x11/clutter-event-x11.c | 47 ++++++++++++++++- clutter/x11/clutter-input-device-x11.c | 14 ++--- 4 files changed, 82 insertions(+), 67 deletions(-) commit e0b8d631593c0539c47de0158d5425391d7cdbc0 Author: Emmanuele Bassi Date: Fri Jan 15 11:52:27 2010 +0000 device: Remove unused is_default member The is_default member of the InputDevice structure was not used anywhere. clutter/clutter-private.h | 2 -- clutter/x11/clutter-backend-x11.c | 11 ++--------- 2 files changed, 2 insertions(+), 11 deletions(-) commit 74dbcede25c9dee5b40cb057a26263d580800e7e Author: Emmanuele Bassi Date: Fri Jan 15 11:47:05 2010 +0000 win32: Experimental implementation of device support Mostly lifted from the core pointer and keyboard X11 backend support. The win32 backend registers two devices (a core pointer and a core keyboard) and assigns them to the event structure when doing the translation from native events to Clutter events. Thanks to: Samuel Degrande for testing this patch. clutter/win32/clutter-backend-win32.c | 23 ++++++++++++++ clutter/win32/clutter-backend-win32.h | 3 ++ clutter/win32/clutter-event-win32.c | 55 +++++++++++++++++++++------------ 3 files changed, 61 insertions(+), 20 deletions(-) commit 850dd5a38fe17e82b16e19144db4ac516e349dbb Author: Emmanuele Bassi Date: Fri Jan 15 11:40:01 2010 +0000 tests: Print the device name, as well as its Id The test-devices interactive test should display the device name along with the id. tests/interactive/test-devices.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 66740e8000ea92b04da663a0d2ce890271d2af2f Author: Emmanuele Bassi Date: Fri Jan 15 11:38:58 2010 +0000 x11: Fill out the :name property of the InputDevices For the core pointer and keyboard we assign the names ourselves; for devices coming from XI we can use the XDeviceInfo.name member. clutter/x11/clutter-backend-x11.c | 5 ++++- clutter/x11/clutter-event-x11.c | 9 ++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) commit cf4e05930a1243f9b58617a4a50833d5bab705b1 Author: Emmanuele Bassi Date: Fri Jan 15 11:37:43 2010 +0000 device: Add the :name property to InputDevice The InputDevice should have a name, possibly user readable, coming from the backend. clutter/clutter-input-device.c | 46 +++++++++++++++++++++++++++++++++++++++- clutter/clutter-input-device.h | 6 +++--- clutter/clutter-private.h | 9 ++++++++ 3 files changed, 57 insertions(+), 4 deletions(-) commit 79ad2b6a72bd91273e139e72af36d9b6db264001 Author: Emmanuele Bassi Date: Fri Jan 15 11:21:52 2010 +0000 x11: Store core devices on the X11 Backend singleton Instead of overloading the device id of 0 and 1 we should treat the core devices as special, and have a pointer inside the X11 backend singleton structure, for fast access. clutter/x11/clutter-backend-x11.c | 8 +++- clutter/x11/clutter-backend-x11.h | 3 ++ clutter/x11/clutter-event-x11.c | 13 +++---- clutter/x11/clutter-input-device-x11.c | 63 ++++++++++++++++++++++++++++++++ 4 files changed, 77 insertions(+), 10 deletions(-) commit 8a579838d54d2b6f552fd32d9772f6e04f178179 Author: Emmanuele Bassi Date: Thu Jan 14 17:14:33 2010 +0000 device: Unset the cursor actor when leaving the stage When an InputDevice leaves a stage we set the stage member of InputDevice to NULL. We should also unset the cursor_actor (as the device is obviously not on an actor any more). When the device re-enters the Stage the ENTER/LEAVE event generation machinery will then be able to emit the ENTER event on the Stage. clutter/clutter-input-device.c | 43 ++++++++++++++++++++++++++-------------- 1 file changed, 28 insertions(+), 15 deletions(-) commit 55e4315aa5889185a055f3ab2d5b5d4c9cae4dc4 Author: Emmanuele Bassi Date: Tue Jan 12 11:53:12 2010 +0000 device: Add pointer actor getter ClutterInputDevice should have a getter method for retrieving the reactive actor underneath the pointer. clutter/clutter-input-device.c | 37 ++++++++++++++++++++++++++++ clutter/clutter-input-device.h | 3 ++- doc/reference/clutter/clutter-sections.txt | 1 + 3 files changed, 40 insertions(+), 1 deletion(-) commit 25c6ebbb2c70af7f268036b10dcd8d4a965c34c3 Author: Emmanuele Bassi Date: Wed Dec 9 00:03:13 2009 +0000 x11: Discard the LeaveNotify for off-stage ButtonRelease If the user presses a button on a pointer device and then moves out the Stage X11 will emit the following events: LeaveNotify ➔ MotionNotify ... ➔ ButtonRelease ➔ LeaveNotify The second LeaveNotify differs from the first by the state field. Unfortunately, ClutterCrossingEvent doesn't have a modifier_state field like other events, so we cannot provide a way for programmatically distinguishing them from a Clutter perspective. This is also an X11-ism we might not even want to replicate on every backend with sane enter/leave semantics. For this reason we should check inside the X11 event processing if the pointer device has already left the Stage and ignore the second LeaveNotify. clutter/x11/clutter-event-x11.c | 58 +++++++++++++++++++++++---------------- 1 file changed, 34 insertions(+), 24 deletions(-) commit 8736b53d7cc6fd2b53649c076ef09cb69f9b37d6 Author: Emmanuele Bassi Date: Wed Dec 9 00:01:50 2009 +0000 device: Do not overwrite the stage for an InputDevice The Stage field of an InputDevice is set by the backend, whenever the pointer enters or leaves the Stage. The Stage should not overwrite the stage field for every event it processes. clutter/clutter-stage.c | 1 - 1 file changed, 1 deletion(-) commit cf287db2048eae5eaa58a9cbffd42c703f345ff5 Author: Emmanuele Bassi Date: Wed Dec 9 00:00:49 2009 +0000 event: Off-stage button releases have a click count of 1 The ButtonRelease off-stage should not have a click count of 0 but a click count initialized to 1. clutter/clutter-main.c | 1 + 1 file changed, 1 insertion(+) commit bddabf6d2ca100f4d91461129d4bb097c59ac666 Author: Emmanuele Bassi Date: Tue Dec 8 23:59:56 2009 +0000 event: Scroll events do not have click count Remove the unneeded CLUTTER_SCROLL case from the click count checks. clutter/clutter-main.c | 1 - 1 file changed, 1 deletion(-) commit e30856a54d5d1e012cd2de30e519a487fd0b4f46 Author: Emmanuele Bassi Date: Tue Dec 8 18:33:01 2009 +0000 Whitespace and indentation fixes clutter/x11/clutter-event-x11.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit 0f9cfd9911c21933b34c07a9616f79022bcc01e3 Author: Emmanuele Bassi Date: Mon Dec 7 23:13:52 2009 +0000 event: Clean up click-count detection Avoid a few indirections and direct access to the Event and InputDevice structures. clutter/clutter-main.c | 65 +++++++++++++++++++++++++++++++++--------------- 1 file changed, 45 insertions(+), 20 deletions(-) commit cf8a06f0186e44b3437b06c56c088e8dc465402b Author: Emmanuele Bassi Date: Mon Dec 7 23:05:20 2009 +0000 device: Store the current state, not the previous The previous state for the device is used by the click count machinery and we should not be overwriting it at every event; instead, we should use a parallel storage for the current state coming from the windowing system. clutter/clutter-input-device.c | 34 +++++++++++++++++----------------- clutter/clutter-private.h | 7 +++++++ 2 files changed, 24 insertions(+), 17 deletions(-) commit 68b47e3ed479242a94f7a8d302a2900f7e28c840 Author: Emmanuele Bassi Date: Mon Dec 7 23:02:48 2009 +0000 tests: Fix test-events output • The enter/leave event line should take into account the case where the related field is set to NULL (meaning entering from off-stage and leaving the stage). • The ButtonRelease line shows the click count but uses the button; the button *and* the click count should be displayed for both ButtonPress and ButtonRelease, to verify they match. tests/interactive/test-events.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) commit b3a42c3b09e256732395f7c63c4a39956d32d3da Author: Emmanuele Bassi Date: Mon Dec 7 18:38:18 2009 +0000 docs: Update the API reference Add the new symbols for InputDevice and DeviceManager clutter/clutter-device-manager.c | 2 +- clutter/clutter-device-manager.h | 2 +- clutter/clutter-main.c | 4 +-- doc/reference/clutter/clutter-sections.txt | 49 +++++++++++++++++++++++++--- 4 files changed, 49 insertions(+), 8 deletions(-) commit 130286979d04128b51fa8662aa13b6bbd1867ca2 Author: Emmanuele Bassi Date: Tue Nov 24 17:54:02 2009 +0000 Do not pick when motion event delivery is disabled The device manager does not need to update the state of the devices when the user has disabled the delivery of motion events to actors: the events will always be delivered as they are to the stage. clutter/clutter-device-manager.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 687c70dffa70a3256e9f734b090cb4a088e97bb1 Author: Emmanuele Bassi Date: Tue Nov 24 16:33:03 2009 +0000 Rework the emission of LEAVE/ENTER event pairs The LEAVE/ENTER event pairs should be queued during the InputDevice update process, when we change the actor under the device pointer. This commit cleans up the event emission code inside clutter-main.c and the logic of the event processing. clutter/clutter-device-manager.c | 4 +- clutter/clutter-input-device.c | 81 ++++++++++++++-- clutter/clutter-main.c | 190 ++++++-------------------------------- clutter/clutter-private.h | 2 - 4 files changed, 104 insertions(+), 173 deletions(-) commit 75f05646fa117b8096e033f9fad0ba9de1ee01ac Author: Emmanuele Bassi Date: Tue Nov 24 16:31:14 2009 +0000 tests: Clean up test-events The output of test-events is a bit of a mess; this patch should clean it up a little bit - at least enough for it to be useful again during visual inspection. tests/interactive/test-events.c | 101 +++++++++++++++++++++++---------------- 1 file changed, 60 insertions(+), 41 deletions(-) commit a056ae716442e07e50ebd07cbca030776a5b3c28 Author: Emmanuele Bassi Date: Tue Nov 24 16:22:44 2009 +0000 Add docs and licensing notices clutter/clutter-device-manager.c | 125 +++++++++++++++++++++++++++++++++++++- clutter/clutter-device-manager.h | 29 +++++++++ clutter/clutter-input-device.c | 109 ++++++++++++++++++++++++++++++++- clutter/clutter-input-device.h | 31 ++++++++++ 4 files changed, 288 insertions(+), 6 deletions(-) commit 9506510d1cf794ef530f6c4db45103efb60cca63 Author: Emmanuele Bassi Date: Fri Jan 8 17:51:00 2010 +0000 Move all picking-related operations inside InputDevice The InputDevice objects stores pointer coordinates, state, stage and the actor under the cursor, so if the current backend provides us with one attached to the Event structure then we want the InputDevice itself to update its state and give us the ClutterActor underneath the pointer's cursor. clutter/clutter-device-manager.c | 24 ++++++++++ clutter/clutter-event.c | 36 --------------- clutter/clutter-input-device.c | 91 ++++++++++++++++++++++++++++++++++++-- clutter/clutter-input-device.h | 7 ++- clutter/clutter-main.c | 60 ++++++++++++++----------- clutter/clutter-master-clock.c | 7 ++- clutter/clutter-private.h | 36 +++++++++------ clutter/clutter-stage.c | 28 ++++++++++-- clutter/x11/clutter-event-x11.c | 36 ++++++++++----- 9 files changed, 225 insertions(+), 100 deletions(-) commit 1f87cac0695dc95be4ed0219752d454d9a285e50 Author: Emmanuele Bassi Date: Tue Nov 24 12:53:57 2009 +0000 actor: Add :has-pointer property ClutterActor should be able to tell whether a pointer is within its area or not. clutter/clutter-actor.c | 60 ++++++++++++++++++++++++++++++++++++++++++++- clutter/clutter-actor.h | 1 + clutter/clutter-private.h | 3 +++ 3 files changed, 63 insertions(+), 1 deletion(-) commit d23dd9af6bf48c3c02f685505a5a34b477d4d2b3 Author: Emmanuele Bassi Date: Mon Nov 23 16:07:16 2009 +0000 device: Make InputDevice an object and subclass it for X11 ClutterInputDevice should be a type that we can subclass per-backend to add functionality. clutter/Makefile.am | 2 + clutter/clutter-event.h | 35 +------ clutter/clutter-input-device.c | 175 ++++++++++++++++++++++++++++++++ clutter/clutter-input-device.h | 64 ++++++++++++ clutter/clutter-main.c | 34 +++---- clutter/clutter-private.h | 19 +++- clutter/clutter.h | 1 + clutter/x11/Makefile.am | 2 + clutter/x11/clutter-backend-x11.c | 141 ++++++------------------- clutter/x11/clutter-input-device-x11.c | 151 +++++++++++++++++++++++++++ clutter/x11/clutter-input-device-x11.h | 25 +++++ 11 files changed, 484 insertions(+), 165 deletions(-) commit d5331bfb5786b496cfcab925319711853db2f1d3 Author: Emmanuele Bassi Date: Fri Nov 20 16:37:58 2009 +0000 tests: Update the devices test Use the DeviceManager API instead of the X11 specific API. tests/interactive/test-devices.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 157da20e86f88bf906f0b59bafbea171a2e5e678 Author: Emmanuele Bassi Date: Fri Nov 20 16:24:16 2009 +0000 x11: Always assign a device to pointer and key events Even when we are not using XInput we now have fallback devices; the X11 backend should always assign the default devices when translating the X events to Clutter events. clutter/x11/clutter-event-x11.c | 37 ++++++++++++++++++++++++++++--------- 1 file changed, 28 insertions(+), 9 deletions(-) commit ca16446319b6281cf63edf3b1b6d7d4f8d41e499 Author: Emmanuele Bassi Date: Fri Nov 20 15:43:50 2009 +0000 Add :is-default flag to InputDevice clutter/clutter-private.h | 2 ++ clutter/x11/clutter-backend-x11.c | 9 ++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) commit 3027d4327ae0c5d9bb7cc831f24d5ee5e8fb107f Author: Emmanuele Bassi Date: Fri Nov 20 15:36:43 2009 +0000 Port the X11 backend to the Device Manager Use the device manager to store the input devices. Also, provide two fallback devices when initializing the X11 backend: device 0 for the pointer and device 1 for the keyboard. clutter/clutter-private.h | 3 - clutter/x11/clutter-backend-x11.c | 514 ++++++++++++++++++------------------- clutter/x11/clutter-backend-x11.h | 6 - clutter/x11/clutter-event-x11.c | 5 +- clutter/x11/clutter-x11.h | 2 + 5 files changed, 256 insertions(+), 274 deletions(-) commit d34f1aa775e8a66bd0e599b32c761869b319c639 Author: Emmanuele Bassi Date: Fri Nov 20 15:35:40 2009 +0000 Add ClutterDeviceManager The ClutterDeviceManager is a singleton object that behaves like the StageManager: it holds all input devices and notifies on addition and removal. clutter/Makefile.am | 6 +- clutter/clutter-device-manager.c | 146 ++++++++++++++++++++++++++++++++++++++ clutter/clutter-device-manager.h | 30 ++++++++ clutter/clutter-main.c | 30 ++++---- clutter/clutter-marshal.list | 1 + clutter/clutter-private.h | 43 +++++++---- clutter/clutter.h | 1 + 7 files changed, 224 insertions(+), 33 deletions(-) commit 1ef40b882349820d5edb2f1ed8885c3386d2cdf7 Author: Neil Roberts Date: Tue Jan 19 17:14:58 2010 +0000 test-cogl-npot-texture: Use the COGL_TEXTURE_NO_ATLAS flag If the texture is put in the atlas it won't be sliced whatever size it is so it negates the test. We can avoid this with the NO_ATLAS flag. tests/conform/test-cogl-npot-texture.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 08b8b2791f91770d1a6e7aff163167d003b0fad3 Author: Neil Roberts Date: Tue Jan 19 17:06:28 2010 +0000 cogl-atlas-texture: Don't create atlas textures with the premult bit Previously the atlas textures were being created with whatever format the first sub texture is in. Only three formats are supported so this only matters if the first texture is a premultiplied alpha texture. Instead it now masks out the premultiplied bit so that the textures are always either RGB_888 or RGBA_8888. clutter/cogl/cogl/cogl-atlas-texture.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 14a28620ae13ef041696e2e3747ec00738cfd2bd Author: Neil Roberts Date: Fri Jan 15 22:56:37 2010 +0000 win32: Use an invisible cursor when cursor-visible is FALSE The win32 backend now handles the WM_SETCURSOR message and sets a fully transparent cursor if the cursor-visible property has been cleared on the stage. The icon is stored in the library via a resource file. The instance handle for the DLL is needed to load the resource so there is now a DllMain function to grab the handle. clutter/Makefile.am | 21 +++++++++++++++- clutter/win32/Makefile.am | 2 +- clutter/win32/clutter-backend-win32.c | 25 +++++++++++++++++++ clutter/win32/clutter-backend-win32.h | 4 +++ clutter/win32/clutter-event-win32.c | 14 +++++++++++ clutter/win32/clutter-stage-win32.c | 44 +++++++++++++++++++++++++++++---- clutter/win32/clutter-stage-win32.h | 2 ++ clutter/win32/invisible-cursor.cur | Bin 0 -> 86 bytes clutter/win32/resources.rc | 1 + configure.ac | 7 ++++++ 10 files changed, 113 insertions(+), 7 deletions(-) commit 4db89759a0aa91b353ac0bb41562addfff6d76c9 Author: Neil Roberts Date: Mon Jan 18 17:33:08 2010 +0000 Post-release version bump to 1.1.7 configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 07ff8d26f8097a00757e6e3cfcd587bce188ae0d Author: Neil Roberts Date: Mon Jan 18 15:44:58 2010 +0000 Release Clutter 1.1.6 NEWS | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ configure.ac | 2 +- 2 files changed, 50 insertions(+), 1 deletion(-) commit 8daff42b3bcc9d59d7c87801b3926d8ed7c105a4 Author: Neil Roberts Date: Mon Jan 18 15:43:25 2010 +0000 README: Clarify the required OpenGL version Cogl will not allow OpenGL 1.2 if it doesn't have the multitexturing extension so we should make this clear in the README. README | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit fa51ff25d3555ce938922d7bbd64acb12140a774 Author: Neil Roberts Date: Mon Jan 18 13:56:56 2010 +0000 Add build/mingw/{README,mingw-cross-compile.sh} to the dist tarball It's quite difficult to get git working on Windows so it makes sense to put the build instructions somewhere accessible. build/Makefile.am | 2 +- build/mingw/Makefile.am | 1 + configure.ac | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) commit ff1d9cf090aef74efa1ec04b8cd490a45b148ae4 Author: Neil Roberts Date: Mon Jan 18 12:42:20 2010 +0000 test-texture-fbo: Disconnect the paint handler for the stage Otherwise the paint handler will still be run for the subsequent tests. This ends up writing to the ‘state’ variable which used to be on the stack so it will end up corrupting some stack variable. This was causing test-cogl-premult to fail. tests/conform/test-texture-fbo.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit ce030a3fce362cf4238d361743aaf9027ceed95a Author: Neil Roberts Date: Mon Jan 18 12:35:05 2010 +0000 clutter-group: Use g_list_foreach in clutter_group_real_foreach g_list_foreach has better protection against the current node being removed. This will happen for example if someone calls clutter_container_foreach(container, clutter_actor_destroy). This was causing valgrind errors for the conformance tests which do just that. clutter/clutter-group.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit c4adefffd34d91fdf72365a6d11641f3c9f751cc Author: Neil Roberts Date: Mon Jan 18 10:53:00 2010 +0000 cogl-atlas-texture: Fix premultiplied texture formats When uploading texture data it was just calling cogl_texture_set_data on the large texture. This would attempt to convert the data to the format of the large texture. All of the textures with alpha channels are stored together regardless of whether they are premultiplied so this was causing premultiplied textures to be unpremultiplied again. It now just uploads the data ignoring the premult bit of the format so that it only gets converted once. clutter/cogl/cogl/cogl-atlas-texture.c | 232 ++++++++++++++++++++++---------- 1 file changed, 158 insertions(+), 74 deletions(-) commit b78024bd2dbf39cb86a1c1458e477af9c9353d9e Author: Neil Roberts Date: Thu Jan 14 17:57:43 2010 +0000 cogl-primitives: Ensure the mipmaps for a layer before logging quads With the atlas texture backend ensuring the mipmaps can make it become a completely different texture which will have different texture coordinates or may even be sliced. Therefore we need to ensure the mipmaps before deciding which quads to log in the journal. This adds a new private function to cogl-material which ensures the mipmaps if needed. clutter/cogl/cogl/cogl-material-private.h | 6 ++++++ clutter/cogl/cogl/cogl-material.c | 19 +++++++++++++++---- clutter/cogl/cogl/cogl-primitives.c | 6 ++++++ 3 files changed, 27 insertions(+), 4 deletions(-) commit 36f18e5ac57e068c3987d5b705f68fcc6f18d472 Author: Neil Roberts Date: Mon Jan 18 09:22:04 2010 +0000 cogl: Make CoglSubTexture only work for quad rendering The sub texture backend doesn't work well as a completely general texture backend because for example when rendering with cogl_polygon it needs to be able to tranform arbitrary texture coordinates without reference to the other coordintes. This can't be done when the texture coordinates are a multiple of one because sometimes the coordinate should represent the left or top edge and sometimes it should represent the bottom or top edge. For example if the s coordinates are 0 and 1 then 1 represents the right edge but if they are 1 and 2 then 1 represents the left edge. Instead the sub-textures are now documented not to support coordinates outside the range [0,1]. The coordinates for the sub-region are now represented as integers as this helps avoid rounding issues. The region can no longer be a super-region of the texture as this simplifies the code quite a lot. There are two new texture virtual functions: transform_quad_coords_to_gl - This transforms two pairs of coordinates representing a quad. It will return FALSE if the coordinates can not be transformed. The sub texture backend uses this to detect coordinates that require repeating which causes cogl-primitives to use manual repeating. ensure_non_quad_rendering - This is used in cogl_polygon and cogl_vertex_buffer to inform the texture backend that transform_quad_to_gl is going to be used. The atlas backend migrates the texture out of the atlas when it hits this. clutter/cogl/cogl/cogl-atlas-texture.c | 57 ++- clutter/cogl/cogl/cogl-primitives.c | 21 +- clutter/cogl/cogl/cogl-sub-texture-private.h | 15 +- clutter/cogl/cogl/cogl-sub-texture.c | 498 +++++++++----------------- clutter/cogl/cogl/cogl-texture-2d-sliced.c | 21 ++ clutter/cogl/cogl/cogl-texture-2d.c | 17 + clutter/cogl/cogl/cogl-texture-private.h | 10 + clutter/cogl/cogl/cogl-texture.c | 33 +- clutter/cogl/cogl/cogl-texture.h | 22 +- clutter/cogl/cogl/cogl-vertex-buffer.c | 5 + tests/conform/test-cogl-sub-texture.c | 81 ++--- tests/conform/test-conform-main.c | 2 +- 12 files changed, 348 insertions(+), 434 deletions(-) commit 3d373c7278c47b18576edc8c8a0074654ce4a60e Author: Samuel Degrande Date: Fri Nov 27 16:53:50 2009 +0100 win32: Fix computation of the fullscreen size during stage realization http://bugzilla.openedhand.com/show_bug.cgi?id=1905 Signed-off-by: Neil Roberts clutter/win32/clutter-stage-win32.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 12a9150f5b455e5700c745de4ad1ac5f2e43631f Author: Emmanuele Bassi Date: Fri Jan 15 17:32:46 2010 +0000 docs: Clarify usage of UTF-8 or ASCII art in commit messages doc/HACKING | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ea662b9ecaf1dd956f0cdc79ce04880270bf99de Author: Emmanuele Bassi Date: Fri Jan 15 17:06:56 2010 +0000 docs: Display the features section The features section of the API reference is built but not used, and it has some copy-and-paste errors. clutter/clutter-feature.c | 11 +++++++++-- clutter/clutter-feature.h | 8 -------- doc/reference/clutter/clutter-docs.xml.in | 1 + doc/reference/clutter/clutter-sections.txt | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) commit cdfd9eb212829df0408431673bedfbe6b566fefe Author: Emmanuele Bassi Date: Fri Jan 15 14:50:06 2010 +0000 Add test-cogl-texture-mipmaps to the Git ignore file .gitignore | 1 + 1 file changed, 1 insertion(+) commit e019547e8c7d110332a9ba071737736a059f5b4b Author: Emmanuele Bassi Date: Fri Jan 15 14:48:42 2010 +0000 x11: Fix typo in clutter_x11_set_use_argb_visual() declaration The function should have a lowercase x11, not an uppercase X11 in its name. clutter/x11/clutter-x11.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 148145ea1ad24fb1ceca3229c4cae9c7c5755f75 Author: Emmanuele Bassi Date: Fri Jan 15 14:47:20 2010 +0000 docs: Ignore clutter-profile.h doc/reference/clutter/Makefile.am | 57 +++++++++++++++++++------------------ 1 file changed, 29 insertions(+), 28 deletions(-) commit b844653c649277eed63b6a85d29b84aab8abe641 Author: Neil Roberts Date: Mon Jan 11 16:23:38 2010 +0000 cogl-texture: Fix manual repeating for negative coordinates When calculating the next integer position for negative coordinates it would not increment if the position is already a multiple of one so we need to manually add one. clutter/cogl/cogl/cogl-texture.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit a01b4eefceb1d490d918eba1729c87354695d1ca Author: Neil Roberts Date: Mon Jan 11 16:21:56 2010 +0000 cogl-texture-2d: Fix the coordinate wrapping for negative coordinates The formula to wrap the coordinates to the [0,1] range was broken when the coordinates were negative. clutter/cogl/cogl/cogl-texture-2d.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit ead43995364bb8865ca5bab15d1bfd295578fff4 Merge: 34b5093 a70ebe4 Author: Neil Roberts Date: Fri Jan 15 12:15:46 2010 +0000 Merge branch 'master' into more-texture-backends commit a70ebe4f52e192c11f8db6a4fa1f419a5b175ab3 Author: Neil Roberts Date: Fri Jan 15 12:02:09 2010 +0000 tests: Add a simple conformance test for texture mipmaps This adds a test which renders a texture into a 1x1 pixel quad with and without filters that use mipmaps. The pixel without mipmaps will be one of the colors from the texture and the one with will be the average of all the pixels in the texture. tests/conform/Makefile.am | 1 + tests/conform/test-cogl-texture-mipmaps.c | 147 +++++++++++++++++++++++++++++ tests/conform/test-conform-main.c | 1 + 3 files changed, 149 insertions(+) commit ba4622ff8bd1abde577fa26637fd1afec1b3abd6 Author: Emmanuele Bassi Date: Thu Jan 14 15:23:41 2010 +0000 Add a notice of deprecation in the pre-Git ChangeLog ChangeLog.pre-git-import | 6 ++++++ 1 file changed, 6 insertions(+) commit 8247bdf4f9b940fe69165ae6556511fcc9ca3a5d Author: Neil Roberts Date: Tue Jan 12 21:44:40 2010 +0000 cogl-framebuffer: Return gboolean from try_creating_fbo When try_creating_fbo fails it returns 0 to report the error and if it succeeds it returns ‘flags’. However cogl_offscreen_new_to_texture also passes in 0 for the flags as the last fallback to create the fbo with nothing but the color buffer. In that case it will return 0 regardless of whether it succeeded so the last fallback will always be considered a failure. To fix this it now just returns a gboolean to indicate whether it succeeded and the flags used for each attempt is assigned when passing the argument rather than from the return value of the function. Also if the only configuration that succeeded was with flags==0 then it would always try all combinations because last_working_flags would also be zero. To avoid this it now uses a separate gboolean to mark whether we found a successful set of flags. http://bugzilla.openedhand.com/show_bug.cgi?id=1873 clutter/cogl/cogl/cogl-framebuffer.c | 56 +++++++++++++++++----------------- 1 file changed, 28 insertions(+), 28 deletions(-) commit c6ce9c338966188248c3c1ae7b10480205fe20bf Author: Emmanuele Bassi Date: Thu Jan 14 14:07:04 2010 +0000 conform: Add operators tests for ClutterColor The clutter_color_add() and clutter_color_subtract() functions are lacking unit testing to catch eventual regressions. .gitignore | 1 + tests/conform/test-color.c | 57 +++++++++++++++++++++++++++++++++++++ tests/conform/test-conform-main.c | 1 + 3 files changed, 59 insertions(+) commit 4388509a1589dbac7aae0ebe5995ca0e06f7c70c Author: Emmanuele Bassi Date: Thu Jan 14 12:28:07 2010 +0000 master-clock: Add profiling timers Use the newly-added profiling timers inside the master clock dispatch function to see how much time we spend: • in the whole function • in the event processing for each stage • in the timeline advancement clutter/clutter-master-clock.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) commit 6e82d11daf8b1d7259c26e6a0816392a71c726f3 Author: Emmanuele Bassi Date: Wed Jan 13 17:31:13 2010 +0000 units: Improve coverage of clutter_units_from_string() Add a unit for an empty string as well as units for the missing unit types like cm, mm and px. tests/conform/test-clutter-units.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit ed735ae730ea2140ef4d1be9d1947dbdce8b1f28 Author: Emmanuele Bassi Date: Wed Jan 13 16:57:55 2010 +0000 Add test-cogl-multitexture to the Git ignore file .gitignore | 1 + 1 file changed, 1 insertion(+) commit a076e0e11d222ca17dbdbadb3aa2c762d32a5730 Author: Emmanuele Bassi Date: Wed Jan 13 16:35:53 2010 +0000 build: Add a script to format gcov report lines Instead of using echo let's try Perl and the format() built-in. build/Makefile.am | 2 ++ build/autotools/Makefile.am.gcov | 2 +- build/gen-gcov.pl | 44 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) commit 948db40c875f8eb7032582a32515737be6587067 Author: Emmanuele Bassi Date: Mon Jan 4 14:53:03 2010 +0000 Add gcov support to the build Using gcov it's possible to get a coverage report, that is a break down of how much the exposed API is exercised by the conformance test suite. .gitignore | 2 ++ Makefile.am | 3 +++ build/autotools/Makefile.am | 1 + build/autotools/Makefile.am.gcov | 33 +++++++++++++++++++++++++++++++++ clutter/Makefile.am | 20 +++++++++++--------- configure.ac | 26 ++++++++++++++++++++++++++ 6 files changed, 76 insertions(+), 9 deletions(-) commit 5322546a4e2100bcec8aba651f8de7d849d67711 Author: Emmanuele Bassi Date: Wed Jan 13 15:40:36 2010 +0000 build: Clean up COGL build flags clutter/cogl/cogl/Makefile.am | 53 ++++++++++++++++++++--------------------- 1 file changed, 26 insertions(+), 27 deletions(-) commit 18d96005ec4d1395d70d71f2bef6cc378f4afb43 Author: Damien Lespiau Date: Mon Nov 2 17:08:55 2009 +0000 texture: Remove reading the texture data back in ::unrealize() Reading back the texture data in unrealize does not seem like a desirable feature any more, clutter has evolved a lot since it was implemented. What's wrong with it now: * It takes *a lot* of time to read the data back with glReadPixel(), * When several textures share the same CoglTexture, the same data can be read back multiple times, * If the underlying material uses multiple texture units, only the first one was copied back, * In ClutterCairoTexture, we end up having two separate copies of the data, * GL actually manages texture memory accross system/video memory for us! For all the reasons above, let's get rid of the glReadPixel() in Texture::unrealize() Fixes: OHB#1842 clutter/clutter-texture.c | 163 +++------------------------------------------ 1 file changed, 8 insertions(+), 155 deletions(-) commit 778e08e4e24822b0875e6aeaf168cb5cecfc8a7f Author: Neil Roberts Date: Tue Jan 12 14:49:55 2010 +0000 cogl-framebuffer: Add some missing GL defines Since 755cce33a7 the framebuffer code is using the GL enums GL_DEPTH_ATTACHMENT and GL_DEPTH_COMPONENT16. These aren't available directly under GLES except with the OES suffix so we need to define them manually as we do with the other framebuffer constants. clutter/cogl/cogl/cogl-framebuffer.c | 6 ++++++ 1 file changed, 6 insertions(+) commit bb8352ca95f18ca5582abb97e20e78f69300adde Author: Neil Roberts Date: Tue Jan 12 14:43:36 2010 +0000 cogl: Remove the CGL_* defines These macros used to define Cogl wrappers for the GLenum values. There are now Cogl enums everywhere in the API where these were required so we shouldn't need them anymore. They were in the public headers but as they are not neccessary and were not in the API docs for Clutter 1.0 it should be safe to remove them. clutter/cogl/cogl/cogl-material.c | 10 +- clutter/cogl/cogl/cogl-primitives.c | 2 +- clutter/cogl/cogl/cogl-shader.h | 2 +- clutter/cogl/cogl/cogl-texture.h | 7 +- clutter/cogl/cogl/driver/gl/cogl-defines.h.in | 655 -------------------- clutter/cogl/cogl/driver/gl/cogl-texture-driver.c | 2 +- clutter/cogl/cogl/driver/gles/cogl-defines.h.in | 597 ------------------ clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.c | 4 +- clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.h | 65 +- clutter/glx/clutter-glx-texture-pixmap.c | 8 +- 10 files changed, 55 insertions(+), 1297 deletions(-) commit 1c6ffc8a238e5e7de429f35f7653695d91d9d26d Author: Emmanuele Bassi Date: Tue Jan 12 15:44:28 2010 +0000 stage: Add the delete-event signal Using the ::event signal to match the CLUTTER_DELETE event type (and block the stage destruction) can be costly, since it means checking every single event. The ::delete-event signal is similar in spirit to any other specialized signal handler dealing with events, and retains the same semantics. clutter/clutter-main.c | 9 +-------- clutter/clutter-stage.c | 49 ++++++++++++++++++++++++++++++++++++++++++++++- clutter/clutter-stage.h | 6 +++++- 3 files changed, 54 insertions(+), 10 deletions(-) commit 8b950bdc87fae2626af8a96916b7f51fdea40a17 Author: Robert Bragg Date: Tue Jan 12 11:02:09 2010 +0000 journal: Fixes logging of multiple sets of texture coordinates If a user supplied multiple groups of texture coordinates with cogl_rectangle_with_multitexture_coords() then we would repeatedly log only the first group in the journal. This fixes that bug and adds a conformance test to verify the fix. Thanks to Gord Allott for reporting this bug. clutter/cogl/cogl/cogl-journal.c | 8 +- tests/conform/Makefile.am | 1 + tests/conform/test-cogl-multitexture.c | 209 ++++++++++++++++++++++++++++++++ tests/conform/test-conform-main.c | 1 + 4 files changed, 215 insertions(+), 4 deletions(-) commit bc8a80fee53c9eed17fab6d821846c1a0fa3460f Author: Emmanuele Bassi Date: Mon Jan 11 17:08:42 2010 +0000 text: Zero out the cursor_pos member Do not trust the zero-ing done by GObject on the private data structure, and use memset() instead to zero the ClutterGeometry structure. clutter/clutter-text.c | 1 + 1 file changed, 1 insertion(+) commit 5c14538c1406b1358a2747428c73fe0cf1198e94 Author: Emmanuele Bassi Date: Mon Jan 11 17:06:52 2010 +0000 Remove obsolete code from test-text The test-text "fake scrolling" code stopped working somewhere between 0.8 and 0.9, with the new layout code. Instead of the ::cursor-event signal it should use an approach similar to the Scrollable interface in the Moblin User Experience toolkit. Right now, it makes sense to ignore this code entirely. tests/interactive/test-text.c | 26 ++------------------------ 1 file changed, 2 insertions(+), 24 deletions(-) commit 755cce33a729817aebe4cf5c08d97c31a327c863 Author: Robert Bragg Date: Mon Nov 30 20:04:41 2009 +0000 cogl: Support multiple fallbacks in cogl_offscreen_new_to_texture() The Intel drivers in Mesa 7.6 (and possibly earlier versions) don't support creating FBOs with a stencil buffer but without a depth buffer. This reworks framebuffer allocation so that we try a number of fallback options before failing. The options we try in order are: - the same options that were sucessful last time if available - combined depth and stencil - separate depth and stencil - just stencil, no depth - just depth, no stencil - neither depth or stencil clutter/cogl/cogl/cogl-framebuffer-private.h | 2 +- clutter/cogl/cogl/cogl-framebuffer.c | 238 +++++++++++++++++--------- 2 files changed, 156 insertions(+), 84 deletions(-) commit 4c1231c7fe545a7764d06754d7d6be0906686e0a Author: Damien Lespiau Date: Wed Jan 6 11:48:46 2010 +0000 media: Add an API to specify which font should be used for subtitles Allow the user of the ClutterMedia interface to specify a Pango font description to display subtitles. Even if the underlying implementation of the interface does not natively use Pange, it must be capable of parsing the grammar that pango_font_description_from_string() accepts. clutter/clutter-media.c | 64 ++++++++++++++++++++++++++++ clutter/clutter-media.h | 45 ++++++++++--------- doc/reference/clutter/clutter-sections.txt | 2 + 3 files changed, 90 insertions(+), 21 deletions(-) commit 8e9f56c41160452166be68202227b206a690472d Author: Emmanuele Bassi Date: Sun Jan 10 11:35:26 2010 +0000 build: Clean up private header/source files Some source files should not be passed through the introspection parser, as they are fully private and do not expose any valuable API. Also the clutter-profile.h header is private and should not be installed. clutter/Makefile.am | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit d9b91d61f5730e9ce29627f467c89070b78fb6b6 Author: Robert Bragg Date: Wed Nov 25 14:26:32 2009 +0000 framebuffers: cogl_offscreen_new_to_texture should take a ref on the texture We weren't taking a reference on the texture to be used as the color buffer for offscreen rendering, so it was possible to free the texture leaving the framebuffer in an inconsistent state. clutter/cogl/cogl/cogl-framebuffer-private.h | 1 + clutter/cogl/cogl/cogl-framebuffer.c | 3 +++ 2 files changed, 4 insertions(+) commit 30b557c4653d15eeb1311b516ab1f4c0035a5e83 Author: Robert Bragg Date: Fri Jul 3 16:22:35 2009 +0100 profiling: Adds initial UProf accounting to Cogl This adds gives Cogl a dedicated UProf context which will be linked together with Clutter's context during clutter_init_real(). Initial timers cover _cogl_journal_flush and _cogl_journal_log_quad You can explicitly ask for a report of Cogl statistics by exporting COGL_PROFILE_OUTPUT_REPORT=1 but since the context is linked with Clutter's the statisitcs will also be shown in the automatic Clutter reports. clutter/clutter-main.c | 7 +++++ clutter/cogl/cogl/Makefile.am | 2 ++ clutter/cogl/cogl/cogl-journal.c | 19 ++++++++++++++ clutter/cogl/cogl/cogl-profile.c | 30 +++++++++++++++++++++ clutter/cogl/cogl/cogl-profile.h | 54 ++++++++++++++++++++++++++++++++++++++ configure.ac | 2 +- 6 files changed, 113 insertions(+), 1 deletion(-) commit 0b6515a1d53571fea13417d47e7bf0f4749321f8 Author: Robert Bragg Date: Fri Apr 17 12:15:56 2009 +0100 profiling: Allow limiting statisics just to picking This suspends and resumes all uprof timers and counters except while dealing with picking, so as to give more focused statistics. Be aware that there are still some issues with this profile option since there are a few special case counters and timers that shouldn't be suspended; noteably the frame counters are incorrect so the per frame stats can't be trusted. clutter/clutter-main.c | 22 ++++++++++++++++++++-- clutter/clutter-profile.c | 29 +++++++++++++++++++++++++++++ clutter/clutter-profile.h | 9 +++++++++ 3 files changed, 58 insertions(+), 2 deletions(-) commit 9cb530d42e7860d1a44f441b97910fd3903480f1 Author: Robert Bragg Date: Wed Jan 6 18:15:13 2010 +0000 profiling: Parse --clutter-profile and CLUTTER_PROFILE= options As we have for debugging, this adds the ability to control profiling flags either via the command line or an environment variable. The first option added is CLUTTER_PROFILE=disable-report This also changes the reporting to be opt-out so you don't need to export CLUTTER_PROFILE_OUTPUT_REPORT=1 to see a report but you can use CLUTTER_PROFILE=disable-report to disable it if desired. clutter/clutter-main.c | 51 +++++++++++++++++++++++++++++++++++++++++++++ clutter/clutter-profile.c | 2 +- clutter/clutter-profile.h | 8 +++++++ 3 files changed, 60 insertions(+), 1 deletion(-) commit 00577558540db2c9f7bf24e870ff6231abb2b99d Author: Robert Bragg Date: Mon Mar 30 16:41:02 2009 +0100 profiling: Adds initial UProf support across clutter UProf is a small library that aims to help applications/libraries provide domain specific reports about performance. It currently provides high precision timer primitives (rdtsc on x86) and simple counters, the ability to link statistics between optional components at runtime and makes report generation easy. This adds initial accounting for: - Total mainloop time - Painting - Picking - Layouting - Idle time The timing done by uprof is of wall clock time. It's not based on stochastic samples we simply sample a counter at the start and end. When dealing with the complexities of GPU drivers and with various kinds of IO this form of profiling can be quite enlightening as it will be able to represent where your application is blocking unlike tools such as sysprof. To enable uprof accounting you must configure Clutter with --enable-profile and have uprof-0.2 installed from git://git.moblin.org/uprof If you want to see a report of statistics when Clutter applications exit you should export CLUTTER_PROFILE_OUTPUT_REPORT=1 before running them. Just a final word of caution; this stuff is new and the manual nature of adding uprof instrumentation means it is prone to some errors when modifying code. This just means that when you question strange results don't rule out a mistake in the instrumentation. Obviously though we hope the benfits out weigh e.g. by focusing on very key stats and by having automatic reporting. clutter/Makefile.am | 2 + clutter/clutter-actor.c | 14 +++ clutter/clutter-backend.c | 15 ++++ clutter/clutter-main.c | 94 +++++++++++++++++++- clutter/clutter-profile.c | 170 +++++++++++++++++++++++++++++++++++++ clutter/clutter-profile.h | 57 +++++++++++++ clutter/clutter-stage.c | 9 ++ clutter/glx/clutter-backend-glx.c | 17 ++++ 8 files changed, 376 insertions(+), 2 deletions(-) commit bd41db7c00fc54aa8077f53177ff33bd33a19c83 Author: Robert Bragg Date: Tue Mar 17 13:07:46 2009 +0000 Adds a --enable-profile option to configure.ac There is nothing else hooked up to this option so far README | 4 ++++ configure.ac | 58 +++++++++++++++++++++++++++++++++++++++++++++------------- 2 files changed, 49 insertions(+), 13 deletions(-) commit 5157da9fc8340cebdd29989a4ea02ccf607d3c52 Author: Emmanuele Bassi Date: Fri Jan 8 15:04:56 2010 +0000 x11: Switch back to RGB visuals by default Since asking for ARGB by default is still somewhat experimental on X11 and not every toolkit or complex widgets (like WebKit) still do not like dealing with ARGB visuals, we should switch back to RGB by default - now that at least we know it works. For applications (and toolkit integration libraries) that want to enable the ClutterStage:use-alpha property there is a new function: void clutter_x11_set_use_argb_visual (gboolean use_argb); which needs to be called before clutter_init(). The CLUTTER_DISABLE_ARGB_VISUAL environment variable can still be used to force this value off at run-time. clutter/glx/clutter-backend-glx.c | 2 +- clutter/x11/clutter-backend-x11.c | 70 +++++++++++++++++++++++++++- clutter/x11/clutter-stage-x11.c | 6 ++- clutter/x11/clutter-x11.h | 9 +++- doc/reference/clutter/clutter-sections.txt | 3 ++ 5 files changed, 83 insertions(+), 7 deletions(-) commit 9599adbd820db7526d77790d8b611a6b61cb2dc7 Author: Damien Lespiau Date: Wed Jan 6 00:44:24 2010 +0000 doc: Fix media::{get,set}_subtitle_uri() symbol names At first, those symbols were called {get,set}_subtitles_uri() but were renamed to {get,set}_subtitle_uri() without updating the clutter-section.txt file. This fix makes gtk-doc document those symbols again. doc/reference/clutter/clutter-sections.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit bf4818bd759f612a9cec62c2e072544d54cc104c Author: Emmanuele Bassi Date: Thu Jan 7 11:08:52 2010 +0000 actor: Just emit a relayout cycle warning Currently, ClutterActor detects a relayout cycle (an actor causing a relayout to be queued from within an allocate() function) and aborts after printing out a warning. This might be a little bit too anal retentive, and it currently breaks GTK+ embedding inside clutter-gtk so we should probably relax the behaviour a bit. Now we just emit the warning but we still go ahead with the relayout. clutter/clutter-actor.c | 1 - 1 file changed, 1 deletion(-) commit 821e622de671ad4e18a55e9dbd33aee004e822df Author: Neil Roberts Date: Thu Jan 7 15:58:53 2010 +0000 Don't set the GLX_TRANSPARENT_TYPE attribute to choose an FBConfig When Clutter tries to pick an ARGB visual it tried to set the GLX_TRANSPARENT_TYPE attribute of the FBConfig to GLX_TRANSPARENT_RGB. However the code to do this was broken so that it was actually trying to set the non-existant attribute number 0x8008 instead. Mesa silently ignored this so it appeared as if it was working but the Nvidia drivers do not like it. It appears that the TRANSPARENT_TYPE attribute is not neccessary for getting an ARGB visual anyway and instead it is intended to support color-key transparency. Therefore we can just remove it and get all of the FBConfigs. Then if we need an ARGB visual we can just walk the list to look for one with depth == 32. The fbconfig is now stored in a single variable instead of having a separate variable for the rgb and rgba configs because the old code only ever retrieved one of them anyway. clutter/glx/clutter-backend-glx.c | 145 ++++++++++++++----------------------- clutter/glx/clutter-backend-glx.h | 5 +- 2 files changed, 57 insertions(+), 93 deletions(-) commit 8b59573190907da97c2af5a5be2e563fc66f8d51 Author: Emmanuele Bassi Date: Tue Jan 5 18:02:29 2010 +0000 Covert stb_image.c to Unix format The file is still in DOS format (CRLF instead of LF) and this confuses the hell out of some versions of Git. clutter/cogl/cogl/stb_image.c | 7544 ++++++++++++++++++++--------------------- 1 file changed, 3772 insertions(+), 3772 deletions(-) commit 58b5a46e0e6b263bd32808e4a9a46bbdd81eedfe Author: Emmanuele Bassi Date: Tue Jan 5 17:54:45 2010 +0000 Include cogl-defines.h before using GL types If we are using GL* types we should also be including cogl-defines.h, as that will include the right GL header. clutter/cogl/cogl/cogl-shader.h | 1 + clutter/cogl/cogl/cogl-texture.h | 1 + 2 files changed, 2 insertions(+) commit 793fec8138b478ba1f1ea419f9ef8bed4f453e77 Author: Emmanuele Bassi Date: Tue Jan 5 16:11:45 2010 +0000 cogl: Fix array annotations The arrays in the cogl_program_set_uniform_* API should be marked as such, and have their length arguments specified. clutter/cogl/cogl/cogl-shader.h | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit 59105341bce12b2ec009ff953facbb7f7b10e85f Author: Neil Roberts Date: Tue Jan 5 11:58:12 2010 +0000 text: Store the markup attributes separately Previously when the markup property is set it would generate an attribute list from the markup and then merge it with the attributes from the attribute property and store it as the effective attributes. The markup attributes and the marked up text would then be forgotten. This breaks if the application then later changes the attributes property because it would try to regenerate the effective attributes from the markup text but the stored text no longer contains any markup. If the original markup text happened to contain entities like '<' they would end up causing parse errors because they would be converted to the actual symbols. To fix this the attributes from the markup are now stored independently from the effective attributes. The effective attributes are now regenerated if either set of attributes changes right before a layout is created. http://bugzilla.openedhand.com/show_bug.cgi?id=1940 clutter/clutter-text.c | 134 +++++++++++++++++++++++++++++------------------- 1 file changed, 82 insertions(+), 52 deletions(-) commit 32b456fc8c4e8743c1b2c32164f7e9f67188a60e Author: Neil Roberts Date: Tue Jan 5 11:44:17 2010 +0000 text: Free the Pango attribute list resources The ClutterText owns three PangoAttrList resources which were not being unref'd. This adds the unref calls to the finalize method. clutter/clutter-text.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 64c1294cc26e034fbf8a9a05b4413f63b9cd882d Author: Emmanuele Bassi Date: Tue Jan 5 14:10:19 2010 +0000 x11 tfp: Plug a leak Destroy the dummy XImage we create even on success. http://bugzilla.openedhand.com/show_bug.cgi?id=1918 Based on a patch by: Carlos Martín Nieto Signed-off-by: Emmanuele Bassi clutter/x11/clutter-x11-texture-pixmap.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) commit fa298b45b530c6b6821e73b011c3c7d226950ce0 Merge: 4207524 4adc2c2 Author: Emmanuele Bassi Date: Tue Jan 5 11:04:50 2010 +0000 Merge branch 'matrix-mode' * matrix-mode: build: Move CoglMatrixMode to cogl-matrix-stack.h commit 4207524e950efd3f1fa5334f6d0b9b374a0b3f93 Author: Emmanuele Bassi Date: Tue Jan 5 11:02:39 2010 +0000 Remove trailing comma from test UI definition The animation definition test has a trailing comma at the end of an array item. tests/data/test-script-animation.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2aa9d7bdc78703fc9a6354d2e54f880fde96db39 Author: Emmanuele Bassi Date: Tue Jan 5 10:55:28 2010 +0000 script: Copy the JSON node in PropertyInfo PropertyInfo should store a copy of the JsonNodes it references, so that property_info_free() can safely dispose them, and we can reference values across different UI definition data. The implicit timeline parsing code is not copying the JsonNode; this leads to a double free in some cases, which is masked by the GSlice allocator and produces a heap corruption later on. clutter/clutter-script-parser.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 10963d1ae03920e202ccbd0107854f489117f89b Author: Damien Lespiau Date: Mon Dec 28 17:52:43 2009 +0100 [media] Add an API to play a subtitle file along with the media Allow the user of the ClutterMedia interface to specify an external (as in not multiplexed with the audio/video streams) location of a subtitle stream. clutter/clutter-media.c | 55 ++++++++++++++++++++++++++++ clutter/clutter-media.h | 3 ++ doc/reference/clutter/clutter-sections.txt | 2 + 3 files changed, 60 insertions(+) commit 5d5c7142f7fa2447e13bcb80a272b0d9dfc28f06 Author: Emmanuele Bassi Date: Mon Jan 4 12:03:47 2010 +0000 text: Use G_SIGNAL_ACTION for ::insert-text and ::delete-text Both the ::insert-text and ::delete-text are "action" signals, that is signals that are safe to (and should) be emitted using g_signal_emit() directly. clutter/clutter-text.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit bf43cb6cdc84e646add7adc592487274331d4930 Author: Alejandro Piñeiro Date: Fri Nov 20 15:17:41 2009 +0100 Added ClutterText::insert-text and ClutterText::delete-text signals * clutter/clutter-marshal.list: added new marshaller * clutter/clutter-text.c (clutter_text_class_init): added insert-text and delete-text signals (clutter_text_insert_unichar): emits insert-text signal (clutter_text_insert_text): emits insert-text signal (clutter_text_delete_text): emits delete-text signal (clutter_text_delete_chars): emits delete-text signal (clutter_text_set_markup_internal): emits delete-text and insert-text signals (clutter_text_set_text): emits delete-text and insert-text signals http://bugzilla.openedhand.com/show_bug.cgi?id=1894 clutter/clutter-marshal.list | 1 + clutter/clutter-text.c | 87 ++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 84 insertions(+), 4 deletions(-) commit 4adc2c2d839c42eccc7187735ddcce061d25f14b Author: Emmanuele Bassi Date: Mon Jan 4 11:58:32 2010 +0000 build: Move CoglMatrixMode to cogl-matrix-stack.h This avoids a redeclaration of _cogl_matrix_stack_flush_to_gl() from using GLenum to CoglMatrixMode. http://bugzilla.openedhand.com/show_bug.cgi?id=1928 clutter/cogl/cogl/cogl-internal.h | 7 ------- clutter/cogl/cogl/cogl-matrix-stack.h | 9 +++++++-- 2 files changed, 7 insertions(+), 9 deletions(-) commit eb9029504124daf4c032f027c2f068ec25548f3f Author: Halton Huo Date: Mon Jan 4 11:49:50 2010 +0000 cogl-texture: Remove return in void functions http://bugzilla.o-hand.com/show_bug.cgi?id=1929 Signed-off-by: Emmanuele Bassi clutter/cogl/cogl/cogl-texture.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit b98d486fc99fd46626877be728961190dbf831dc Author: Emmanuele Bassi Date: Mon Jan 4 11:49:13 2010 +0000 build: Maintainer cflags go in the _CFLAGS target The maintainer compiler flags are not pre-processor flags. clutter/cogl/cogl/Makefile.am | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 0fb51658fdba886fd5d9cb53cfca6df13aa1f7a0 Author: Emmanuele Bassi Date: Mon Jan 4 11:43:00 2010 +0000 cogl: Const-ify vertices in cogl_polygon() The CoglTextureVertex array passed to cogl_polygon() is a pure in-argument and should be const-ified. http://bugzilla.openedhand.com/show_bug.cgi?id=1917 clutter/cogl/cogl/cogl-primitives.c | 27 ++++++++++++++------------- clutter/cogl/cogl/cogl-texture.h | 6 +++--- 2 files changed, 17 insertions(+), 16 deletions(-) commit 1c69c61745ed510f0b6ab16cb963ca01994cb9fc Author: Emmanuele Bassi Date: Wed Nov 11 11:00:29 2009 +0000 master-clock: Take a reference before advancing timelines A timeline advancement might cause another timeline to be destroyed, which will likely lead to a segmentation fault. Before advancing the timelines we should take a reference on them - just like we do for the stages before doing event processing. This will prevent dispose() from running until the end of the advancement. http://bugzilla.openedhand.com/show_bug.cgi?id=1854 clutter/clutter-master-clock.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 5ae88f5777c5ed0663937f990350f145b254692c Author: Emmanuele Bassi Date: Sun Jan 3 20:41:17 2010 +0000 Post-release version bump to 1.1.5 configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6d7e1e5434d3da27cf23a9c16f9990523eedba4e Author: Emmanuele Bassi Date: Sun Jan 3 20:11:43 2010 +0000 Release Clutter 1.1.4 NEWS | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ configure.ac | 4 ++-- 2 files changed, 58 insertions(+), 2 deletions(-) commit 3355c2ab2518711d7ab79f3ffe1f4a8ce105af84 Author: Emmanuele Bassi Date: Sun Jan 3 20:24:39 2010 +0000 build: Remove dist rule for non-existing image files doc/cookbook/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8d40cb947031f90a7b8cf459720278c6a6fe295d Author: Emmanuele Bassi Date: Sun Jan 3 20:12:49 2010 +0000 Disable g_set_prgname() Apparently, calling g_set_prgname() multiple times is not allowed anymore, and hence clutter_init_* calls should not do that. Though this is really GLib's fault - and a massive nuisance for us - we should prolly comply to avoid the test suite dying on us. clutter/clutter-main.c | 4 ++++ 1 file changed, 4 insertions(+) commit 3d350078a8aa6f1bdf38c12de62e2708c5369247 Merge: a09ac0b 934eee1 Author: Emmanuele Bassi Date: Wed Dec 23 10:38:02 2009 +0000 Merge branch 'animate-layout-manager' into ebassi-next * animate-layout-manager: layout-manager: Document the animation support layout-manager: Rewind the timeline in begin_animation() box-layout: Remove the allocations hash table docs: Clean up the README file layout: Let begin_animation() return the Alpha box-layout: Add knobs for controlling animations box-layout: Animate layout properties layout: Add animation support to LayoutManager Add ActorBox animation methods commit 934eee17ae34098773ff5876747061b5a1d1f1a5 Author: Emmanuele Bassi Date: Wed Dec 23 10:35:16 2009 +0000 layout-manager: Document the animation support Add a section inside the LayoutManager class API reference documenting, with examples, how to implement animation support inside a layout manager sub-class. clutter/clutter-layout-manager.c | 213 ++++++++++++++++++++++++++++++++++---- 1 file changed, 190 insertions(+), 23 deletions(-) commit 713c2952410e99e681825dac51da3e0b575ef2cf Author: Emmanuele Bassi Date: Wed Dec 23 08:39:16 2009 +0000 layout-manager: Rewind the timeline in begin_animation() If the default implementation begin_animation() is called twice then we should rewind the timeline, as well as updating its duration and the easing mode of the alpha. clutter/clutter-layout-manager.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit b9c1de0ec7001ce6a6b62dbd8d1fd9ee15539093 Author: Emmanuele Bassi Date: Wed Dec 23 08:34:08 2009 +0000 box-layout: Remove the allocations hash table The BoxLayout uses a HashTable to map the latest stable allocation of each child, in order to use that as the initial value during an animation; this in spite of already having a perfectly valid per-child storage as part of the layout manager: ClutterBoxChild. The last stable allocation should be stored inside the ClutterBoxChild instead of having it in the private data for ClutterBoxLayout. The access remains O(1), since there is a 1:1 mapping between child and BoxChild instances, but we save a little bit of memory and we avoid keeping aroud allocations for old children. clutter/clutter-box-layout.c | 47 +++++++++++++++++++----------------------- 1 file changed, 21 insertions(+), 26 deletions(-) commit c8c5e0ee39626d434c2d3e5486c6520eff17f519 Author: Emmanuele Bassi Date: Tue Dec 22 18:10:39 2009 +0000 docs: Clean up the README file README | 137 +++++++++++++++++++++++++++++++++++++++------------------------- 1 file changed, 83 insertions(+), 54 deletions(-) commit a09ac0b27ccb4a9c08a4e42e00776bf627f0e163 Merge: b6bd8be 3491337 Author: Emmanuele Bassi Date: Sun Dec 20 17:39:12 2009 +0000 Merge branch 'stage-use-alpha' into ebassi-next * stage-use-alpha: tests: Use accessor methods for :use-alpha stage: Add accessors for :use-alpha tests: Allow setting the stage opacity in test-paint-wrapper stage: Premultiply the stage color stage: Composite the opacity with the alpha channel glx: Always request an ARGB visual stage: Add :use-alpha property materials: Get the right blend function for alpha commit b6bd8be6cb0fabf2ddf3eedadce68c8d3a60c3d9 Merge: 7b53aa7 c7e8ddb Author: Emmanuele Bassi Date: Sun Dec 20 17:33:51 2009 +0000 Merge branch 'internal-flag' into ebassi-next * internal-flag: conform: Add test unit for the destruction of Containers actor: Add internal child flag Clean up whitespace, indentation and comments commit c7e8ddb7a60dd76d5f62027383693575f30e2473 Author: Emmanuele Bassi Date: Fri Dec 18 23:29:11 2009 +0000 conform: Add test unit for the destruction of Containers Verify that internal children do not go through the remove() implementation, and that non-internal children do. .gitignore | 1 + tests/conform/Makefile.am | 1 + tests/conform/test-actor-destroy.c | 168 ++++++++++++++++++++++++++++++++++++ tests/conform/test-conform-main.c | 1 + 4 files changed, 171 insertions(+) commit 1520ba6190165dc8902b622833efbccf23716751 Author: Emmanuele Bassi Date: Fri Dec 18 23:20:04 2009 +0000 actor: Add internal child flag ClutterActor checks, when destroying and reparenting, if the parent actor implements the Container interface, and automatically calls the remove() method to perform a clean removal. Actors implementing Container, though, might have internal children; that is, children that are not added through the Container API. It is already possible to iterate through them using the Container API to avoid breaking invariants - but calling clutter_actor_destroy() on these children (even from the Container implementation, and thus outside of Clutter's control) will either lead to leaks or to segmentation faults. Clutter needs a way to distinguish a clutter_actor_set_parent() done on an internal child from one done on a "public" child; for this reason, a push/pop pair of functions should be available to Actor implementations to mark the section where they wish to add internal children: ➔ clutter_actor_push_internal (); ... clutter_actor_set_parent (child1, parent); clutter_actor_set_parent (child2, parent); ... ➔ clutter_actor_pop_internal (); The set_parent() call will automatically set the newly added INTERNAL_CHILD private flag on each child, and both clutter_actor_destroy() and clutter_actor_unparent() will check for the flag before deciding whether to call the Container's remove method. clutter/clutter-actor.c | 110 ++++++++++++++++++++++++++-- clutter/clutter-actor.h | 3 + clutter/clutter-private.h | 29 ++++++-- doc/reference/clutter/clutter-sections.txt | 2 + 4 files changed, 132 insertions(+), 12 deletions(-) commit 4a21425f4837798d01f4435b68582faf9029c61c Author: Emmanuele Bassi Date: Sun Dec 13 01:23:54 2009 +0000 layout: Let begin_animation() return the Alpha When beginning a new animation for a LayoutManager, the implementation should return the ClutterAlpha used. This allows controlling the timeline and/or modifying the animation parameters on the fly. clutter/clutter-box-layout.c | 5 +++-- clutter/clutter-layout-manager.c | 30 ++++++++++++++++++++++-------- clutter/clutter-layout-manager.h | 5 +++-- 3 files changed, 28 insertions(+), 12 deletions(-) commit 2e6397c39132007e79f5f87743fe9378fd8d5387 Author: Emmanuele Bassi Date: Sun Dec 13 01:07:44 2009 +0000 box-layout: Add knobs for controlling animations ClutterLayoutManager does not have any state associated with it, and defers all the state to its sub-classes. The BoxLayout is thus in charge of controlling: • whether or not animations should be used • the duration of the animation • the easing mode of the animation By adding three new properties: • ClutterBoxLayout:use-animations • ClutterBoxLayout:easing-duration • ClutterBoxLayout:easing-mode And their relative accessors pairs we can make BoxLayout decide whether or not, and with which parameters, call the begin_animation() method of ClutterLayoutManager. The test-box-layout has been modified to reflect this new functionality, by checking the key-press event for the 'a' key symbol to toggle the use of animations. clutter/clutter-box-layout.c | 320 ++++++++++++++++++++++++++-- clutter/clutter-box-layout.h | 90 ++++---- doc/reference/clutter/clutter-sections.txt | 8 + tests/interactive/test-box-layout.c | 6 + 4 files changed, 370 insertions(+), 54 deletions(-) commit 3c2e91aef586de5521aa9674b80d449cf96da0e1 Author: Emmanuele Bassi Date: Sat Dec 12 00:13:05 2009 +0000 box-layout: Animate layout properties Use the newly added animation support inside LayoutManager to animate between state changes of the BoxLayout properties. The implementation is based on equivalent code from Mx, written by: Thomas Wood clutter/clutter-box-layout.c | 130 ++++++++++++++++++++++++++++++++++++------ 1 file changed, 113 insertions(+), 17 deletions(-) commit f94a903d9ebdbc055010bb4a4c6fe7e76f418bd8 Author: Emmanuele Bassi Date: Sat Dec 12 00:02:43 2009 +0000 layout: Add animation support to LayoutManager In order to animate a fluid layout we cannot use the common animation code paths as they will override the size request and allocation paths that are handled by the layout manager itself. One way to introduce animations in the allocation sequence is to use a Timeline and an Alpha to compute a progress value and then use that value to interpolate an ActorBox between the initial and final states of the animation - with the initial state being the last allocation of the child prior to the animation start, and the final state the allocation of the child at the end; for every frame of the Timeline we then queue a relayout on the layout manager's container, which will result in an animation. ClutterLayoutManager is the most likely place to add a generic API for beginning and ending an animation, as well as the place to provide a default code path to create the ancillary Timeline and Alpha instances needed to drive the animation. A LayoutManager sub-class will need to: • call clutter_layout_manager_begin_animation() whenever it should animate between two states, for instance: whenever a layout property changes value; • eventually override begin_animation() and end_animation() in case further state needs to be set up, and then chain up to the default implementation provided by LayoutManager; • if a completely different implementation is required, the layout manager sub-class should override begin_animation(), end_animation() and get_animation_progress(). Inside the allocate() implementation the sub-class should also interpolate between the last known allocation of a child and the newly computed allocation. clutter/clutter-layout-manager.c | 159 +++++++++++++++++++++++++++- clutter/clutter-layout-manager.h | 68 +++++++----- doc/reference/clutter/clutter-sections.txt | 5 + 3 files changed, 207 insertions(+), 25 deletions(-) commit 999359d64ccfbdbcc952662c14fa47441d6a5225 Author: Emmanuele Bassi Date: Fri Dec 11 23:48:58 2009 +0000 Add ActorBox animation methods ClutterActorBox should have an interpolate() method that allows to compute the intermediate values between two states, given a progress value, e.g.: clutter_actor_box_interpolate (start, end, alpha, &result); Another utility method, useful for layout managers, is a modifier that clamps the members of the actor box to the nearest integer value. clutter/clutter-actor.c | 47 ++++++++++++++++++++++++++++ clutter/clutter-types.h | 5 +++ doc/reference/clutter/clutter-sections.txt | 2 ++ 3 files changed, 54 insertions(+) commit d2ea7cd6a8a1eb4ff04f11cb53aa387458a8e128 Author: Emmanuele Bassi Date: Fri Dec 11 20:17:58 2009 +0000 Clean up whitespace, indentation and comments clutter/clutter-main.c | 70 +++++++++++++++++++++++++----------------------- 1 file changed, 36 insertions(+), 34 deletions(-) commit 7b53aa7510adc60d3287740772ec97117ce78ab9 Merge: 60a6bff 1374b5a Author: Emmanuele Bassi Date: Thu Dec 10 23:36:04 2009 +0000 Merge branch 'get-current-event' into ebassi-next * get-current-event: Add clutter_get_current_event commit 1374b5aac9398852cf3f3482fdf925b52aa31338 Author: Colin Walters Date: Thu Nov 12 17:33:15 2009 -0500 Add clutter_get_current_event When getting signals from higher level toolkits, occasionally one wants access to the underlying event; say for a Button widget's "clicked" signal, to get the keyboard state. Rather than having all of the highlevel widgets emit ClutterEvent just for the more unusual use cases, add a global function to access the event state. http://bugzilla.openedhand.com/show_bug.cgi?id=1888 Signed-off-by: Emmanuele Bassi clutter/clutter-event.c | 23 +++++++++++ clutter/clutter-event.h | 1 + clutter/clutter-main.c | 62 ++++++++++++++++------------ clutter/clutter-private.h | 1 + doc/reference/clutter/clutter-sections.txt | 1 + 5 files changed, 61 insertions(+), 27 deletions(-) commit 60a6bff3136c21c5ff6d4c5bb6614716853620f0 Merge: dc47550 c4f27b1 Author: Emmanuele Bassi Date: Wed Dec 9 23:32:41 2009 +0000 Merge branch 'no-layout-flag' into ebassi-next * no-layout-flag: actor: Add a NO_LAYOUT flag for actors commit dc47550bc8eabc2c6e6e99364c1cb536a9adc973 Merge: 86ce92e b33b628 Author: Emmanuele Bassi Date: Wed Dec 9 23:32:18 2009 +0000 Merge branch 'size-cache' into ebassi-next * size-cache: tests: Clean up the BoxLayout interactive test actor: Add debugging notes for size cache Add a cache of size requests commit 86ce92eec14aa1aaf7c9ab14a520b66690488213 Author: Emmanuele Bassi Date: Wed Dec 9 18:46:25 2009 +0000 x11: Emulate XKB's detectable key auto-repeat Old-style X11 terminals require that even modern X11 send KeyPress and KeyRelease pairs when auto-repeating. For this reason modern(-ish) API like XKB has a way to detect auto-repeat and do a single KeyRelease at the end of a KeyPress sequence. The newly added check emulates XKB's detectable auto-repeat by peeking the next event after a KeyRelease and checking if it's a KeyPress for the same key and timestamp - and then ignoring the KeyRelease if it matches. clutter/x11/clutter-event-x11.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) commit 9242d6b934710ca4001e8dc2a0f1f4bc4a738a63 Author: Emmanuele Bassi Date: Wed Dec 9 18:10:52 2009 +0000 docs: Move RELEASING under docs/ RELEASING | 56 -------------------------------------------------------- doc/RELEASING | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+), 56 deletions(-) commit 1ffd2ccb87a570733647e655e5e608ee05661c74 Author: Emmanuele Bassi Date: Wed Dec 9 01:52:09 2009 +0000 stage: Deprecate default stage size macros The macros for getting the size of the default stage are a relic of the past and they should be deprecated. clutter/clutter-stage.h | 36 ++++++++++++++---------------------- 1 file changed, 14 insertions(+), 22 deletions(-) commit 34913378fb7aa84874bfda63648e9e0e02e40d8c Author: Emmanuele Bassi Date: Wed Dec 9 17:17:33 2009 +0000 tests: Use accessor methods for :use-alpha Instead of using g_object_set(). tests/interactive/test-paint-wrapper.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 1208e47198ea981b644bca2ce9beab3b59f05d0b Author: Emmanuele Bassi Date: Wed Dec 9 02:04:56 2009 +0000 stage: Add accessors for :use-alpha Use real accessors for the :use-alpha property. clutter/clutter-stage.c | 53 ++++++++++++++++++++++++++-- clutter/clutter-stage.h | 4 +++ doc/reference/clutter/clutter-sections.txt | 2 ++ 3 files changed, 57 insertions(+), 2 deletions(-) commit 3b075b6dc4197ed78f6386ee7e9a6e307839590f Author: Emmanuele Bassi Date: Wed Dec 9 01:46:52 2009 +0000 tests: Allow setting the stage opacity in test-paint-wrapper This allows testing the Stage:use-alpha property and the blending done by a compositor. tests/interactive/test-paint-wrapper.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit 3a3c815286daa55761787a49d7a33c6eb8c3d74d Author: Emmanuele Bassi Date: Wed Dec 9 01:46:09 2009 +0000 stage: Premultiply the stage color In case we are using Stage:use-alpha then we need to premultiply the stage color to get the correct blending from the compositor. clutter/clutter-stage.c | 1 + 1 file changed, 1 insertion(+) commit e957e277b8a4893ce8c99e94402036d42a8b3748 Author: Emmanuele Bassi Date: Tue Dec 8 18:24:30 2009 +0000 x11: Do not manage a foreign window If a Stage has been set to use a foreign Window then Clutter should not be managing it; calling XWithdrawWindow and XMapWindow should be reserved to the windows we manage ourselves. clutter/x11/clutter-stage-x11.c | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) commit 28cb2cdab588ac361544538d4bb70a3e9bf24c81 Author: Emmanuele Bassi Date: Mon Dec 7 19:00:55 2009 +0000 Remove clutter_set_default_text_direction() Setting the default text direction programmatically is wrong: it is a value dependent on the locale or by the environment. clutter/clutter-actor.c | 3 ++- clutter/clutter-main.c | 32 ++++++++++++---------------- clutter/clutter-main.h | 1 - doc/reference/clutter/clutter-sections.txt | 1 - 4 files changed, 16 insertions(+), 21 deletions(-) commit 3b9575baf8d254b7ba8b5faf56b14fbc6c3fde74 Author: Emmanuele Bassi Date: Mon Dec 7 18:41:15 2009 +0000 Queue a relayout when the default text direction changes We need a relayout cycle if the default direction for the text changes while the main loop is running. clutter/clutter-main.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 6a3f6a460e730b0067adfa1eac455246c8d6e8d8 Author: Emmanuele Bassi Date: Mon Dec 7 17:35:17 2009 +0000 stage: Composite the opacity with the alpha channel The Stage's opacity should be composited with the alpha component of the Stage's background color. clutter/clutter-stage.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) commit c4f27b1556b65464fd1f53749d32db9adab97942 Author: Emmanuele Bassi Date: Wed Oct 7 16:41:25 2009 +0100 actor: Add a NO_LAYOUT flag for actors Some actor implementation might avoid imposing any layout on their children. The Actor base class usually assumes some sort of layout management is in place, so it will queue relayouts when, for instance, an actor is shown or is hidden. If the parent of the actor does not impose any layout, though, showing or hiding one of its children will not affect the layout of the others. An example of this kind of container is ClutterGroup. By adding a new Actor flag, CLUTTER_ACTOR_NO_LAYOUT, and by making the Group actor set it on itself, the Actor base class can now decide whether or not to queue a relayout. The flag is not meant to be used by application code, and should only be set when implementing a new container. http://bugzilla.openedhand.com/show_bug.cgi?id=1838 clutter/clutter-actor.c | 37 +++++++++++++++++++++++++++---------- clutter/clutter-actor.h | 15 ++++++++++----- clutter/clutter-group.c | 6 ++++++ 3 files changed, 43 insertions(+), 15 deletions(-) commit 34b50934be581cde0ef2eba75f45aa36b1add14d Author: Neil Roberts Date: Sat Dec 5 14:20:00 2009 +0000 cogl-material: Ensure mipmaps before doing anything else on a texture When the texture is in the atlas, ensuring the mipmaps can effectively make it become a completely different texture so we should do this before getting the GL handle. clutter/cogl/cogl/cogl-material.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) commit 231cfffa1871806713928f7b4c599d904a813fb9 Author: Neil Roberts Date: Sat Dec 5 13:48:03 2009 +0000 cogl-atlas-texture: Remove textures from the atlas when mipmapping is required Mipmaps don't work very well in the current atlas because there is not enough padding between the textures. If ensure_mipmaps is called it will now create a new texture and migrate the atlased texture to it. It will use the same blit mechanism as when migrating so it will try to use an FBO for a fast blit. However if this is not possible it will end up downloading the data for the entire atlas which is not ideal. clutter/cogl/cogl/cogl-atlas-texture.c | 66 +++++++++++++++++++++++++++----- 1 file changed, 57 insertions(+), 9 deletions(-) commit 6cf5ee2cbdad4bb71a065bb7e49a534ca7ba78ac Author: Neil Roberts Date: Sat Dec 5 13:24:01 2009 +0000 cogl-atlas-texture: Try to do texture blits using an FBO When reorganizing the textures, we can avoid downloading the entire texture data if we bind the source texture in a framebuffer object and copy the destination using glCopyTexSubImage2D. This is also implemented using a much faster path in Mesa. Currently it is calling the GL framebuffer API directly but ideally it would use the Cogl offscreen API. However there is no way to tell Cogl not to create a stencil renderbuffer which seems like a waste in this situation. If FBOs are not available it will fallback to reading back the entire texture data as before. clutter/cogl/cogl/cogl-atlas-texture.c | 198 +++++++++++++++++++++++++++----- 1 file changed, 168 insertions(+), 30 deletions(-) commit c51a31a2fc3f0f087a44cbccf1726c40fa581746 Author: Neil Roberts Date: Fri Dec 4 19:43:39 2009 +0000 cogl-atlas: Add a debug option to visualize the atlas This adds a 'dump-atlas-image' debug category. When enabled, CoglAtlas will use Cairo to create a png which visualizes the leaf rectangles of the atlas. clutter/cogl/cogl/cogl-atlas.c | 76 ++++++++++++++++++++++++++++++++++++++++ clutter/cogl/cogl/cogl-debug.c | 3 +- clutter/cogl/cogl/cogl-debug.h | 3 +- 3 files changed, 80 insertions(+), 2 deletions(-) commit 032d6e8aa00cd04a8084303a4942760ef5651a0c Author: Neil Roberts Date: Fri Dec 4 18:55:53 2009 +0000 cogl-texture-atlas: Add some debugging notes This adds an 'atlas' category to the COGL_DEBUG environment variable. When enabled Cogl will display messages when textures are added to the atlas and when the atlas is reorganized. clutter/cogl/cogl/cogl-atlas-texture.c | 62 ++++++++++++++++++++++++++++---- clutter/cogl/cogl/cogl-debug.c | 3 +- clutter/cogl/cogl/cogl-debug.h | 3 +- 3 files changed, 60 insertions(+), 8 deletions(-) commit bc845e26d9cab75ecba69d12a937cf7d42bcaf71 Author: Neil Roberts Date: Fri Dec 4 18:24:15 2009 +0000 cogl-atlas-texture: Support reorganizing the atlas when it is full When space can't be found in the atlas for a new texture it will now try to reorganize the atlas to make space. A new CoglAtlas is created and all of the textures are readded in decreasing size order. If the textures still don't fit then the size of the atlas is doubled until either we find a space or we reach the texture size limits. If we successfully find an organization that fits then all of the textures will be migrated to a new texture. This involves copying the texture data into CPU memory and then uploading it again. Potentially it could eventually use a PBO or an FBO to transfer the image without going through the CPU. The algorithm for laying out the textures works a lot better if the rectangles are added in order so we might eventually want some API for creating multiple textures in one go to avoid reorganizing the atlas as far as possible. clutter/cogl/cogl/cogl-atlas-texture.c | 315 ++++++++++++++++++++++++++++---- 1 file changed, 280 insertions(+), 35 deletions(-) commit 1fb32167ec37f7b3bc8193258faa5963fe49569e Author: Neil Roberts Date: Fri Dec 4 13:06:32 2009 +0000 cogl: Add an atlased texture backend This adds a CoglAtlas type which is a data structure that keeps track of unused sub rectangles of a larger rectangle. There is a new atlased texture backend which uses this to put multiple textures into a single larger texture. Currently the atlas is always sized 256x256 and the textures are never moved once they are put in. Eventually it needs to be able to reorganise the atlas and grow it if necessary. It also needs to migrate the textures out of the atlas if mipmaps are required. clutter/cogl/cogl/Makefile.am | 4 + clutter/cogl/cogl/cogl-atlas-texture-private.h | 64 +++ clutter/cogl/cogl/cogl-atlas-texture.c | 488 ++++++++++++++++++++++ clutter/cogl/cogl/cogl-atlas.c | 520 ++++++++++++++++++++++++ clutter/cogl/cogl/cogl-atlas.h | 76 ++++ clutter/cogl/cogl/cogl-context.c | 14 + clutter/cogl/cogl/cogl-context.h | 8 + clutter/cogl/cogl/cogl-texture.c | 30 +- clutter/cogl/cogl/cogl-types.h | 3 +- 9 files changed, 1194 insertions(+), 13 deletions(-) commit b33b6287a1d3d3b07bbb845e79dfc4e2162c5c77 Author: Emmanuele Bassi Date: Fri Dec 4 17:39:04 2009 +0000 tests: Clean up the BoxLayout interactive test tests/interactive/test-box-layout.c | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) commit cf62b8fe4ab0d7cca360077843a9e213540e2c4d Author: Emmanuele Bassi Date: Fri Dec 4 17:38:26 2009 +0000 actor: Add debugging notes for size cache Add a note for cache hits, and another one for cache misses. clutter/clutter-actor.c | 3 +++ 1 file changed, 3 insertions(+) commit 9ccdf2eb02a0d0155e27d5f9270bca6b72c08359 Author: Emmanuele Bassi Date: Fri Dec 4 16:54:22 2009 +0000 box: Add relative packing methods ClutterBox should provide some convenience functions to pack a new child at a given position, either an absolute index or relative to a sibling. clutter/clutter-box.c | 221 +++++++++++++++++++++++----- clutter/clutter-box.h | 16 ++ doc/reference/clutter/clutter-sections.txt | 3 + tests/interactive/test-bin-layout.c | 1 - 4 files changed, 203 insertions(+), 38 deletions(-) commit c9b7efec96636e9368a8dfb76440d1b89c618c99 Author: Johan Bilien Date: Wed Nov 11 20:40:57 2009 -0500 Add a cache of size requests clutter_actor_get_preferred_width/height currently caches only one size requests, for a given height / width. It's common for a layout manager to call get_preferred_width with 2 different heights during the same allocation cycle. Typically once in the size request, once in the allocation. If clutter_actor_get_preferred_width is called alternatively with 2 different for_height, the cache is totally inefficient, and we end up always querying the actor size even when the actor does not need a re-allocation. http://bugzilla.openedhand.com/show_bug.cgi?id=1876 Signed-off-by: Emmanuele Bassi clutter/clutter-actor.c | 137 ++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 117 insertions(+), 20 deletions(-) commit 18860eb16f36eb62b94aee353b4e2ace76e2fffa Author: Bastian Winkler Date: Thu Dec 3 15:38:05 2009 +0000 flow-layout: Use the natural size Fix a copy-and-paste thinko where the cell size was computed using the minimum size instead of the natural size. For actors with a minimum size of zero, like Textures, this implied always a zero allocation. Signed-off-by: Emmanuele Bassi clutter/clutter-flow-layout.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 6c3e1989e47b17f826d25704b2433ffecc6e83b9 Author: Neil Roberts Date: Thu Dec 3 14:46:20 2009 +0000 cogl-sub-texture: Fix the height of sub textures The code which is used to get the texture height was accidentally using the width due to a cut-and-paste fail. clutter/cogl/cogl/cogl-sub-texture.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 97f8eed11917fa0d545dcb08d20841f6b501c878 Author: Neil Roberts Date: Fri Nov 27 18:45:36 2009 +0000 cogl: Add a CoglTexture2D backend This is an optimised version of CoglTexture2DSliced that always deals with a single texture and always uses the GL_TEXTURE_2D target. cogl_texture_new_from_bitmap now tries to use this backend first. If it can't create a texture with that size then it falls back the sliced backend. cogl_texture_upload_data_prepare has been split into two functions because the sliced backend needs to know the real internal format before the conversion is performed. Otherwise the converted bitmap will be wasted if the backend can't support the size. clutter/cogl/cogl/Makefile.am | 2 + clutter/cogl/cogl/cogl-texture-2d-private.h | 69 +++ clutter/cogl/cogl/cogl-texture-2d.c | 623 +++++++++++++++++++++++++++ clutter/cogl/cogl/cogl-texture-private.h | 9 + clutter/cogl/cogl/cogl-texture.c | 75 +++- 5 files changed, 755 insertions(+), 23 deletions(-) commit f3df76d5129ba0ed7014c6aa52be7bee67c3f7aa Author: Neil Roberts Date: Mon Nov 30 12:15:05 2009 +0000 cogl: Add _cogl_texture_driver_upload_to_gl This provides a way to upload the entire data for a texture without having to first call glTexImage and then glTexSubImage. This should be faster especially with indirect rendering where it would needlessy send the data for the texture twice. clutter/cogl/cogl/cogl-texture-driver.h | 14 ++++++ clutter/cogl/cogl/driver/gl/cogl-texture-driver.c | 26 +++++++++++ .../cogl/cogl/driver/gles/cogl-texture-driver.c | 47 ++++++++++++++++++++ 3 files changed, 87 insertions(+) commit 19a19579ba72ea9ca4f6d406c035c3ad074fd442 Author: Neil Roberts Date: Fri Nov 27 16:59:51 2009 +0000 cogl: Move some of the texture_2d_sliced_new_* functions into cogl-texture new_from_data and new_from_file can be implemented in terms of new_from_bitmap so it makes sense to move these to cogl-texture rather than having to implement them in every texture backend. clutter/cogl/cogl/cogl-texture-2d-sliced-private.h | 16 ---- clutter/cogl/cogl/cogl-texture-2d-sliced.c | 84 -------------------- clutter/cogl/cogl/cogl-texture.c | 44 +++++++--- 3 files changed, 33 insertions(+), 111 deletions(-) commit 27c4eb483d0ce219d80000613357c20fc25724e3 Author: Neil Roberts Date: Fri Nov 27 16:40:31 2009 +0000 cogl: Add a conformance test for sub textures This tests creating a sub texture from a larger texture using various different texture coordinates. It also tries to read back the texture data using cogl_texture_get_data. tests/conform/Makefile.am | 1 + tests/conform/test-cogl-sub-texture.c | 388 +++++++++++++++++++++++++++++++++ tests/conform/test-conform-main.c | 1 + 3 files changed, 390 insertions(+) commit 9752493272b39e6a8aeb1b8d667667d53de439fb Author: Neil Roberts Date: Fri Nov 27 16:39:16 2009 +0000 cogl: Add a sub texture backend This adds a new texture backend which represents a sub texture of a larger texture. The texture is created with a reference to the full texture and a set of coordinates describing the region. The backend simply defers to the full texture for all operations and maps the coordinates to the other range. You can also use coordinates outside the range [0,1] to create a repeated version of the full texture. A new public API function called cogl_texture_new_from_sub_texture is available to create the sub texture. clutter/cogl/cogl/Makefile.am | 2 + clutter/cogl/cogl/cogl-sub-texture-private.h | 56 +++ clutter/cogl/cogl/cogl-sub-texture.c | 699 ++++++++++++++++++++++++++ clutter/cogl/cogl/cogl-texture.c | 15 +- clutter/cogl/cogl/cogl-texture.h | 27 + doc/reference/cogl/cogl-sections.txt | 1 + 6 files changed, 798 insertions(+), 2 deletions(-) commit 070a91f31176eb304031fc6dc2c374ef25f92a92 Author: Neil Roberts Date: Wed Dec 2 17:17:24 2009 +0000 cogl: Make the callback for foreach_sub_texture_in_region use const The CoglTextureSliceCallback function pointer now takes const pointers for the texture coordinates. This makes it clearer that the callback should not modify the array and therefore the backend can use the same array for both sets of coords. clutter/cogl/cogl/cogl-journal-private.h | 2 +- clutter/cogl/cogl/cogl-journal.c | 2 +- clutter/cogl/cogl/cogl-primitives.c | 14 +++++++------- clutter/cogl/cogl/cogl-texture-private.h | 4 ++-- 4 files changed, 11 insertions(+), 11 deletions(-) commit 1a1de0e278de7c06b528ae74a31580dfd576d041 Author: Neil Roberts Date: Wed Dec 2 13:41:49 2009 +0000 cogl: Add a texture utility function for manually repeating Given a region of texture coordinates this utility invokes a callback enough times to cover the region with a subregion that spans the texture at most once. Eg, if called with tx1 and tx2 as 0.5 and 3.0 it it would invoke the callback with: 0.5,1.0 1.0,2.0 2.0,3.0 Manual repeating is needed by all texture backends regardless of whether they can support hardware repeating because when Cogl calls the foreach_sub_texture_in_region method then it sets the wrap mode to GL_CLAMP_TO_EDGE and no hardware repeating is possible. clutter/cogl/cogl/cogl-texture-private.h | 14 ++++ clutter/cogl/cogl/cogl-texture.c | 102 ++++++++++++++++++++++++++++++ 2 files changed, 116 insertions(+) commit 5fcb29c91695bdbb2aec418ba1d2956ff23612a0 Author: Neil Roberts Date: Fri Nov 27 15:47:22 2009 +0000 cogl-primitives: Check for repeating after the coordinate transform In _cogl_multitexture_quad_single_primitive we use a wrap mode of GL_CLAMP_TO_EDGE if the texture coordinates are all in the range [0,1] or GL_REPEAT otherwise. This is to avoid pulling in pixels from either side when using GL_LINEAR filter mode and rendering the entire texture. Previously it was checking using the unconverted texture coordinates. This is ok unless the texture backend is radically transforming the texture coordinates, such as in the sub texture backend where the coordinates may map to something completely different. We now check whether the coordinates are in range after converting them. clutter/cogl/cogl/cogl-primitives.c | 87 +++++++++++++++-------------------- 1 file changed, 37 insertions(+), 50 deletions(-) commit 812d4d25bb28d8512c101701cf7cd06dc2dd95eb Author: Neil Roberts Date: Thu Nov 26 18:58:17 2009 +0000 cogl: Move all of the fields from CoglTexture to CoglTexture2DSliced Most of the fields that were previously in CoglTexture are specific to the implementation of CoglTexture2DSliced so they should be placed there instead. For example, the 'mipmaps_dirty' flag is an implementation detail of the ensure_mipmaps function so it doesn't make sense to force all texture backends to have this function. Other fields such as width, height, gl_format and format may make sense for all textures but I've added them as virtual functions instead. This may make more sense for a sub-texture backend for example where it can calculate these based on the full texture. clutter/cogl/cogl/cogl-texture-2d-sliced-private.h | 25 ++- clutter/cogl/cogl/cogl-texture-2d-sliced.c | 204 +++++++++++--------- clutter/cogl/cogl/cogl-texture-private.h | 21 +- clutter/cogl/cogl/cogl-texture.c | 19 +- 4 files changed, 149 insertions(+), 120 deletions(-) commit 071dea2fbc307eca949f5f44c4ccb6c4dd73f789 Author: Neil Roberts Date: Thu Nov 26 17:32:52 2009 +0000 cogl: Move data only used for upload out of CoglTexture The CoglTexture struct previously contained some fields which are only used to upload data such as the CoglBitmap and the source GL format. These are now moved to a separate CoglTextureUploadData struct which only exists for the duration of one of the cogl_texture_*_new functions. In cogl-texture there are utility functions which operate on this new struct rather than on CoglTexture directly. Some of the fields that were previously stored in the CoglBitmap struct are now copied to the CoglTexture such as the width, height, format and internal GL format. The rowstride was previously stored in CoglTexture and this was publicly accessible with the cogl_texture_get_rowstride function. However this doesn't seem to be a useful function because there is no need to use the same rowstride again when uploading or downloading new data. Instead cogl_texture_get_rowstride now just calculates a suitable rowstride from the format and width of the texture. clutter/cogl/cogl/cogl-texture-2d-sliced.c | 344 ++++++++++---------- clutter/cogl/cogl/cogl-texture-driver.h | 6 +- clutter/cogl/cogl/cogl-texture-private.h | 51 +-- clutter/cogl/cogl/cogl-texture.c | 93 +++--- clutter/cogl/cogl/driver/gl/cogl-texture-driver.c | 14 +- .../cogl/cogl/driver/gles/cogl-texture-driver.c | 16 +- 6 files changed, 262 insertions(+), 262 deletions(-) commit 7f58c14dcdbb5a6a24f17aacb784702dbaa468fb Author: Neil Roberts Date: Wed Dec 2 21:54:22 2009 +0000 cogl: Use #ifdef GL around GL_TEXTURE_RECTANGLE_ARB Commit 558b17ee1e added support for rectangle textures to the framebuffer code. Under GLES there is no GL_TEXTURE_RECTANGLE_ARB definition so this was breaking the build. The rest of Cogl uses ifdef's around that constant so we should do the same here. clutter/cogl/cogl/cogl-framebuffer.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 59d84f7806e16b3d1fea5eed44a5d06d9772be23 Author: Emmanuele Bassi Date: Wed Dec 2 16:03:55 2009 +0000 build: Fix CPP and LD flags • The debug flags are pre-processor ones, so they should be listed inside AM_CPPFLAGS. • Clutter's publicly exported symbols match the following regular expression: ^(clutter|cogl|json)_* The old one also listed "pango" as a possible prefix, but the Pango API is now under the Cogl namespace. clutter/Makefile.am | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 17e3b526d569b6c8f33cd050acce107d5f1b057b Author: Emmanuele Bassi Date: Wed Dec 2 14:15:43 2009 +0000 docs: Document Clutter's threading model Be explicit on how to deal with threads and Clutter. clutter/clutter-main.c | 56 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) commit fc7bbf1abf732ba37fee8f12b5ed36e0b9a5fb95 Author: Emmanuele Bassi Date: Wed Dec 2 14:15:19 2009 +0000 docs: Fix docbook syntax The tag is really called in DocBook. clutter/clutter-layout-manager.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit 3c08c411d2ccd1523439c4f35427d266d1ef67dd Author: Emmanuele Bassi Date: Wed Dec 2 11:38:04 2009 +0000 docs: Annotate StageManager The ClutterStageManager instance structure is private, so we need a "floating" annotation. clutter/clutter-stage-manager.h | 8 ++++++++ 1 file changed, 8 insertions(+) commit 7a33b706a40719e1d123ccfa71c3d5c5d864fdea Author: Emmanuele Bassi Date: Wed Dec 2 11:37:13 2009 +0000 Remove a gtk-doc annotation The Mesa matrix code still has a comment that looks like a gtk-doc annotation. clutter/cogl/cogl/cogl-matrix-mesa.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0270313121e9a02cb1f59de134ed724e6f8c0ae6 Author: Emmanuele Bassi Date: Wed Dec 2 11:36:25 2009 +0000 layout: Add padding to LayoutMeta Add some padding to the LayoutMeta and LayoutMetaClass structures. clutter/clutter-layout-meta.h | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) commit 02398c0cf13f8326a8fadf0536ce1ac1994901ee Author: Emmanuele Bassi Date: Tue Dec 1 18:16:48 2009 +0000 Remove unused variable 'lang' Fix a compiler warning. clutter/clutter-main.c | 1 - 1 file changed, 1 deletion(-) commit cdba8cc220a8ef026ade2dfaa542ff94c92cd5ef Author: Rob Bradford Date: Tue Dec 1 17:44:42 2009 +0000 flow-layout: Include the first line when calculating number of lines This ensures that the preferred height / width height takes into consideration the correct amount of padding clutter/clutter-flow-layout.c | 6 ++++++ 1 file changed, 6 insertions(+) commit c564303601f6cabdc3314070d225f74a3c6df174 Author: Rob Bradford Date: Tue Dec 1 17:11:08 2009 +0000 flow-layout: Respect row-spacing/col-spacine in horizontal/vertical flows We need to add the row-spacing value when calculating the y position for lines of actors in horizontal flowing layouts. Similarly we need to add the col-spacing value when calculating the x posution for actors in vertical flowing layouts. clutter/clutter-flow-layout.c | 6 ++++++ 1 file changed, 6 insertions(+) commit e6ca2d891a2c48c91db45a0c2f5ce84d5e6621e1 Author: Emmanuele Bassi Date: Tue Dec 1 16:18:39 2009 +0000 glx: Always request an ARGB visual When requesting the GLXFBConfig for creating the GLX context, we should always request one that links to an ARGB visual instead of a plain RGB one. By using an ARGB visual we allow the ClutterStage:use-alpha property to work as intended when running Clutter under a compositing manager. The default behaviour of requesting an ARGB visual can be disabled by using the: CLUTTER_DISABLE_ARGB_VISUAL Environment variable. clutter/glx/clutter-backend-glx.c | 128 +++++++++++++++++++++++++++++-------- clutter/glx/clutter-backend-glx.h | 5 +- clutter/glx/clutter-glx.h | 5 -- clutter/glx/clutter-stage-glx.c | 13 +--- clutter/x11/clutter-backend-x11.c | 15 ++++- clutter/x11/clutter-x11.h | 2 + 6 files changed, 125 insertions(+), 43 deletions(-) commit 2f7ff4d3e363a0568e4051ab67c0df6f745d06d2 Author: Emmanuele Bassi Date: Tue Dec 1 16:16:18 2009 +0000 stage: Add :use-alpha property The ClutterStage:use-alpha property is used to let a stage know that it should honour the alpha component of the ClutterStage:color property. If :use-alpha is set to FALSE the stage always uses the full opacity when clearing itself before a paint(); otherwise, the alpha value is used. clutter/clutter-stage.c | 38 +++++++++++++++++++++++++++++++++++--- 1 file changed, 35 insertions(+), 3 deletions(-) commit 1d87ecc6a1be73e7d72c8c5ecb2b8268d5a0cd5e Author: Emmanuele Bassi Date: Tue Dec 1 16:22:45 2009 +0000 materials: Get the right blend function for alpha The correct blend function for the alpha channel is: GL_ONE, GL_ONE_MINUS_SRC_ALPHA As per bug 1406. This fix was dropped when the switch to premultiplied alpha was merged. clutter/cogl/cogl/cogl-material.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b43e804c078578e54b0ef9680a5d7b4bf53cafe8 Author: Emmanuele Bassi Date: Tue Dec 1 16:06:57 2009 +0000 actor: Fix a pre-condition check in set_text_direction() The check is failing because the condition should be: text_dir != CLUTTER_TEXT_DIRECTION_DEFAULT clutter/clutter-actor.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3e034cda58776a0fbc6812cd8d859ad58b5cab54 Author: Emmanuele Bassi Date: Tue Dec 1 15:17:49 2009 +0000 build: More cleanups for the configure summary Document each section, and add some more items to the summary like what JSON-GLib are we using, and which version of the GLES API is COGL wrapping. configure.ac | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) commit e3b409529e9000cff6aabac8efdaccc0eaecf83f Author: Emmanuele Bassi Date: Tue Dec 1 15:17:16 2009 +0000 build: Require a stable JSON-GLib version The 0.7 version is the development cycle for JSON-GLib 0.8. configure.ac | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 1c47638db4ac741f4bae9ede860d16b4e1693a36 Author: Emmanuele Bassi Date: Tue Dec 1 14:59:44 2009 +0000 docs: Add missing symbols to clutter-sections.txt doc/reference/clutter/clutter-sections.txt | 8 ++++++++ 1 file changed, 8 insertions(+) commit 586750751a60b76e2f398be28d596009b6587c52 Merge: c2332a5 6e99c1a Author: Emmanuele Bassi Date: Tue Dec 1 14:55:19 2009 +0000 Merge branch 'text-direction' * text-direction: docs: Add text-direction accessors Set the default language on the Pango context actor: Set text direction on parenting tests: Display the index inside text-box-layout box-layout: Honour :text-direction text: Dirty layout cache on text direction changes actor: Add :text-direction property Use the newly added ClutterTextDirection enumeration Add ClutterTextDirection enumeration commit 6e99c1aefe8f76cb3004a8cc89ae6f8b95d1f597 Author: Emmanuele Bassi Date: Tue Dec 1 14:55:01 2009 +0000 docs: Add text-direction accessors doc/reference/clutter/clutter-sections.txt | 4 ++++ 1 file changed, 4 insertions(+) commit c2332a5d26d854dcb4223088904305988b35a906 Author: Bastian Winkler Date: Tue Dec 1 12:31:07 2009 +0000 build: Fix the SUBDIRS ordering Signed-off-by: Emmanuele Bassi Makefile.am | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 220a8fbfda5bda38e6c7689176fd876c57074ab5 Author: Emmanuele Bassi Date: Tue Dec 1 10:16:25 2009 +0000 docs: Move documentation under doc/ Clean up the root directory of the project and try to keep the documentation all together. CODING_STYLE | 379 -------------------------------------------------- HACKING | 89 ------------ HACKING.backends | 160 --------------------- Makefile.am | 3 - doc/CODING_STYLE | 379 ++++++++++++++++++++++++++++++++++++++++++++++++++ doc/HACKING | 89 ++++++++++++ doc/HACKING.backends | 160 +++++++++++++++++++++ doc/Makefile.am | 5 + 8 files changed, 633 insertions(+), 631 deletions(-) commit 348f5bfec8b8c0c682384001ac39b4e656b9c526 Author: Emmanuele Bassi Date: Tue Dec 1 10:11:33 2009 +0000 cookbook: Clean up the text • Remove the empty sections. • Add the description for the "overriding the paint sequence" recipe. doc/cookbook/clutter-cookbook.xml.in | 124 +++++++++++++++++++++++----------- 1 file changed, 86 insertions(+), 38 deletions(-) commit 52db14b78d848f0f876d4721895ccc2c83e06aba Author: Emmanuele Bassi Date: Mon Nov 30 21:51:46 2009 +0000 docs: Fix recursion into doc/ directory We should always recurse into the doc/ directory; whether we should then recurse into reference/, cookbook/ and manual/ is a matter of specific configure-time flags. Makefile.am | 6 +----- doc/Makefile.am | 6 +++++- 2 files changed, 6 insertions(+), 6 deletions(-) commit 5e1ccaeb603fb9f9b2b11cad13bbcf8682b33504 Author: Emmanuele Bassi Date: Thu Sep 3 13:04:59 2009 +0100 docs: Clean up the additional documentation build • Make the manual a DevHelp book • Make the generation of PDFs of the cookbook and the manual optional • Consequently, make the hard dependency on jw optional • Clean up the checks and build for the additional documentation .gitignore | 9 +- configure.ac | 41 +-- doc/Makefile.am | 8 +- doc/common/Makefile.am | 9 + doc/common/common.xsl | 19 ++ doc/common/devhelp.xsl | 154 ++++++++++++ doc/common/html.xsl | 285 +++++++++++++++++++++ doc/common/ref-html-style.xsl | 54 ++++ doc/common/style.css | 97 ++++++++ doc/cookbook/Makefile.am | 30 ++- doc/cookbook/clutter-cookbook.xml | 456 --------------------------------- doc/cookbook/clutter-cookbook.xml.in | 457 ++++++++++++++++++++++++++++++++++ doc/cookbook/common.xsl | 19 -- doc/cookbook/cookbook.xsl | 14 -- doc/cookbook/devhelp.xsl | 154 ------------ doc/cookbook/html.xsl | 285 --------------------- doc/cookbook/ref-html-style.xsl | 54 ---- doc/cookbook/style.css | 97 -------- doc/manual/Makefile.am | 84 ++++--- doc/manual/clutter-manual.xml.in | 9 +- 20 files changed, 1174 insertions(+), 1161 deletions(-) commit ee9d358c452c8da879e7f40e4a2e701472067c04 Author: Emmanuele Bassi Date: Wed Sep 2 18:11:06 2009 +0100 [cookbook] Build the Cookbook as a devhelp document Instead of creating stand-alone HTML files, use XSLT to transform the DocBook into a DevHelp file, so that we can read the Cookbook inside DevHelp -- just like the API reference. configure.ac | 9 +- doc/cookbook/Makefile.am | 83 ++++++------ doc/cookbook/common.xsl | 19 +++ doc/cookbook/devhelp.xsl | 154 +++++++++++++++++++++ doc/cookbook/html.xsl | 285 +++++++++++++++++++++++++++++++++++++++ doc/cookbook/ref-html-style.xsl | 54 ++++++++ 6 files changed, 564 insertions(+), 40 deletions(-) commit 9485ef81a61d8950b7f04e01c749964c6a64922c Author: Emmanuele Bassi Date: Wed Sep 2 13:13:44 2009 +0100 [cookbook] Fix folds doc/cookbook/clutter-cookbook.xml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 2675b829990eb0b6fb9bae848bd64fc4461324d2 Author: Emmanuele Bassi Date: Thu Dec 11 17:03:10 2008 +0000 Update the ignore file Add the temporary and output files of the cookbook. .gitignore | 5 +++++ 1 file changed, 5 insertions(+) commit a7f7bfbc876a256f40fc0c3a43691b07bffeae96 Author: Emmanuele Bassi Date: Thu Dec 11 17:02:05 2008 +0000 Add the secon recipe to the Actors chapter The second recipe shows how to use the ::paint signal to override the paint sequence of a pre-existing actor. doc/cookbook/clutter-cookbook.xml | 153 +++++++++++++++++++++++++++++-------- 1 file changed, 122 insertions(+), 31 deletions(-) commit 26b35e657f3fcf3ae8b919c4c315337f2261003f Author: Emmanuele Bassi Date: Thu Dec 11 17:00:16 2008 +0000 Add the first recipe to the Actors chapter The first recipe shows how to be notified when the relative position and size of an actor changes using the notify:: signal on the actor's dimensional and positional properties. doc/cookbook/clutter-cookbook.xml | 128 ++++++++++++++++++++++++++++++++++--- 1 file changed, 120 insertions(+), 8 deletions(-) commit 135cb5c6e21200162939dc5a42f0a34c4daf8a39 Author: Emmanuele Bassi Date: Thu Dec 11 16:58:07 2008 +0000 Add a preface instead of an introduction Make the Cookbook look more like a book than a tutorial. doc/cookbook/clutter-cookbook.xml | 64 +++++++++++++++++++++++++++++++++---- 1 file changed, 58 insertions(+), 6 deletions(-) commit 35627f240fa498656492e437c130ffe34674ca54 Author: Emmanuele Bassi Date: Thu Dec 11 16:57:46 2008 +0000 Add the Clutter Cookbook to the build The "Clutter Cookbook" is a document designed to contain solutions to common problems applications developers might encounter when using Clutter. It is meant as a companion to the API reference but it requires knowledge of the Clutter API and framework. .gitignore | 1 + configure.ac | 2 + doc/cookbook/Makefile.am | 71 +++++++++++++ doc/cookbook/clutter-cookbook.xml | 200 +++++++++++++++++++++++++++++++++++++ doc/cookbook/cookbook.xsl | 14 +++ doc/cookbook/style.css | 97 ++++++++++++++++++ doc/cookbook/version.xml.in | 1 + 7 files changed, 386 insertions(+) commit 15a04a1dd39fd19f28132cbd3c22b49c05c0773b Author: Emmanuele Bassi Date: Mon Nov 30 19:03:11 2009 +0000 layout-manager: Create LayoutMeta on demand The ClutterLayoutMeta instances should be created on demand, whenever the layout manager needs them - if the layout manager supports layout properties. This removes the requirement to call add_child_meta() and remove_child_meta() on add and remove respectively; it also simplifies the implementation of LayoutManager sub-classes since we can add fallback code in the base abstract class. Eventually, this will also lead to an easier to implement ClutterScript parser for layout properties. With the new scheme, the ClutterLayoutMeta instance is created whenever the layout manager tries to access it; if there isn't an instance already attached to the container's child, one is created -- assuming that the LayoutManager sub-class has overridden the get_child_meta_type() virtual function and it's returning a valid GType. We can also provide a default implementation for create_child_meta(), by getting the GType and instantiating a ClutterLayoutMeta with all the fields already set. If the layout manager requires more work then it can obviously override the default implementation (and even chain up to it). The ClutterBox actor has been updated, as well as the ClutterBoxLayout layout manager, to take advantage of the changes of LayoutManager. clutter/clutter-box-layout.c | 13 -- clutter/clutter-box.c | 10 -- clutter/clutter-layout-manager.c | 221 +++++++++------------------- clutter/clutter-layout-manager.h | 8 +- doc/reference/clutter/clutter-sections.txt | 2 - 5 files changed, 70 insertions(+), 184 deletions(-) commit 7d842079ca7521332b98e7cc06480a3f7e23110f Author: Emmanuele Bassi Date: Mon Nov 30 18:22:26 2009 +0000 conform: Add named object property unit for ClutterScript We should exercise the resolution of the object properties containing a string pointing to an object previously defined using ClutterScript. .gitignore | 1 + tests/conform/test-conform-main.c | 1 + tests/conform/test-script-parser.c | 28 ++++++++++++++++++++++++++++ tests/data/Makefile.am | 18 ++++++++++++++---- tests/data/test-script-named-object.json | 22 ++++++++++++++++++++++ 5 files changed, 66 insertions(+), 4 deletions(-) commit c3e640e6e36d3d3c72c1e340efa78817308a4283 Author: Neil Roberts Date: Mon Nov 30 19:06:05 2009 +0000 Use the correct colour when clearing the stage for picking The colour test for the stage in _clutter_do_pick checks for white to determine whether the stage was picked but since 47db7af4d we were setting the colur to black. This usually worked because the id of the default stage ends up being 0 which equates to black. However if a second stage is created then it will always end up picking the first stage. clutter/clutter-main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1bb034fbd75bb7153f35c88b05ed0fb9544d0c8b Author: Neil Roberts Date: Sun Nov 29 20:06:36 2009 +0000 cogl: Enable blending if a lighting colour is semi-transparent We currently enable blending if the material colour has transparency. This patch makes it also enable blending if any of the lighting colours have transparency. Arguably this isn't neccessary because we don't expose any API to enable lighting so there is no bug. However it is currently possible to enable lighting with a direct call to glEnable and this otherwise works so it is a shame not to have it. http://bugzilla.openedhand.com/show_bug.cgi?id=1907 clutter/cogl/cogl/cogl-material.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) commit 3cb974ee8be182944848b5e64dd4724f118bc8fa Author: Emmanuele Bassi Date: Mon Nov 30 16:15:19 2009 +0000 Set the default language on the Pango context When creating the Pango context we should also set the language to be the default Pango language. clutter/clutter-main.c | 2 ++ 1 file changed, 2 insertions(+) commit daeb3b2fecb3d740b6d84215928fc4477396dc71 Author: Emmanuele Bassi Date: Mon Nov 30 16:14:09 2009 +0000 actor: Set text direction on parenting When setting the parent on an actor we should set the text direction to be the same as the parent's. clutter/clutter-actor.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit 0ce5c7d350c8b904ed8cc15c911e6433619c6a2d Author: Damien Lespiau Date: Mon Nov 30 13:26:45 2009 +0100 gitignore: update gitignore files to match the latest cogl tests Some cogl tests were renamed in c1247066 to have 'cogl' in their names. It's a good excuse to merge .gitigore and tests/.gitignore. .gitignore | 21 +++++++++++++-------- tests/.gitignore | 52 ---------------------------------------------------- 2 files changed, 13 insertions(+), 60 deletions(-) commit 4f06d035a2895b2839ba0e97109e8a44c1ad07e2 Author: Damien Lespiau Date: Wed Nov 25 13:29:26 2009 +0100 tests: fix argument parsing of test-texture-quality This test did not open redhand.png as argc/argv should be handled normally (argv[0] being the name of the exectutable). Reviewed-by: Emmanuele Bassi tests/interactive/test-texture-quality.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e4180b283836ccd665d23d1e19d35a8911c40436 Author: Damien Lespiau Date: Wed Nov 25 13:25:14 2009 +0100 tests: give all the arguments to the wrapper Some tests can be given extra arguments. The test-interactive dispatch mechanism handles that but the small shell scripts around the wrapper do not forward the arguments to the wrapper. Reviewed-by: Emmanuele Bassi tests/interactive/Makefile.am | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 934eb5d251ad9d9987d0ff1f0f9878fffc2484f1 Author: Robert Bragg Date: Fri Nov 27 15:24:09 2009 +0000 primitives: Don't use dynamic arrays since VS2008 can't cope with them :-( This changes _cogl_path_fill_nodes_scanlines to use g_alloca instead of using a variable to declare an array length. clutter/cogl/cogl/cogl-primitives.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 47db7af4d3001387a3c7adc60f6c3166c149ab5d Author: Robert Bragg Date: Wed Nov 25 20:37:01 2009 +0000 picking: avoid redundant picking geometry for the stage. The stage's pick id can be written to the framebuffer when we call cogl_clear so there's no need for the stage to also chain up in it's pick function resulting in clutter-actor.c also emitting a rectangle for the stage. clutter/clutter-main.c | 6 +++--- clutter/clutter-stage.c | 12 +++++++----- 2 files changed, 10 insertions(+), 8 deletions(-) commit c12470666e6bd63024437a389cd2c1202df93c33 Author: Robert Bragg Date: Fri Nov 27 00:28:39 2009 +0000 tests: rename cogl conformance tests so they can be clearly identified All Cogl conformance tests are now prefixed 'test-cogl-' tests/conform/Makefile.am | 24 +- tests/conform/test-backface-culling.c | 339 ---------------- tests/conform/test-blend-strings.c | 416 -------------------- tests/conform/test-clutter-fixed.c | 18 - tests/conform/test-cogl-backface-culling.c | 339 ++++++++++++++++ tests/conform/test-cogl-blend-strings.c | 416 ++++++++++++++++++++ tests/conform/test-cogl-fixed.c | 18 + tests/conform/test-cogl-materials.c | 195 +++++++++ tests/conform/test-cogl-npot-texture.c | 230 +++++++++++ tests/conform/test-cogl-premult.c | 390 ++++++++++++++++++ tests/conform/test-cogl-vertex-buffer-contiguous.c | 269 +++++++++++++ tests/conform/test-cogl-vertex-buffer-interleved.c | 174 ++++++++ tests/conform/test-cogl-vertex-buffer-mutability.c | 211 ++++++++++ tests/conform/test-conform-main.c | 34 +- tests/conform/test-materials.c | 195 --------- tests/conform/test-npot-texture.c | 230 ----------- tests/conform/test-premult.c | 390 ------------------ tests/conform/test-vertex-buffer-contiguous.c | 269 ------------- tests/conform/test-vertex-buffer-interleved.c | 174 -------- tests/conform/test-vertex-buffer-mutability.c | 211 ---------- 20 files changed, 2272 insertions(+), 2270 deletions(-) commit 439f8c62b0e2651b9afeb08cb5166ed9e7f49521 Author: Robert Bragg Date: Thu Nov 26 19:06:35 2009 +0000 cogl: deprecate cogl_draw_buffer API and replace with a cogl_framebuffer API cogl_push_draw_buffer, cogl_set_draw_buffer and cogl_pop_draw_buffer are now deprecated and new code should use the new cogl_framebuffer_* API instead. Code that previously did: cogl_push_draw_buffer (); cogl_set_draw_buffer (COGL_OFFSCREEN_BUFFER, buffer); /* draw */ cogl_pop_draw_buffer (); should now be re-written as: cogl_push_framebuffer (buffer); /* draw */ cogl_pop_framebuffer (); As can be seen from the example above the rename has been used as an opportunity to remove the redundant target argument from cogl_set_draw_buffer; it now only takes one call to redirect to an offscreen buffer, and finally the term framebuffer may be a bit more familiar to anyone coming from an OpenGL background. README | 13 + clutter/clutter-texture.c | 15 +- clutter/cogl/cogl/Makefile.am | 4 +- clutter/cogl/cogl/cogl-clip-stack.c | 74 +-- clutter/cogl/cogl/cogl-context.c | 13 +- clutter/cogl/cogl/cogl-context.h | 4 +- clutter/cogl/cogl/cogl-draw-buffer-private.h | 133 ------ clutter/cogl/cogl/cogl-draw-buffer.c | 603 ------------------------- clutter/cogl/cogl/cogl-framebuffer-private.h | 124 ++++++ clutter/cogl/cogl/cogl-framebuffer.c | 618 ++++++++++++++++++++++++++ clutter/cogl/cogl/cogl-journal.c | 12 +- clutter/cogl/cogl/cogl-matrix-stack.c | 6 +- clutter/cogl/cogl/cogl-primitives.c | 30 +- clutter/cogl/cogl/cogl-texture.c | 12 +- clutter/cogl/cogl/cogl-vertex-buffer.c | 6 +- clutter/cogl/cogl/cogl.c | 80 ++-- clutter/cogl/cogl/cogl.h | 73 ++- doc/reference/cogl/cogl-sections.txt | 3 + tests/conform/test-backface-culling.c | 7 +- tests/conform/test-cogl-offscreen.c | 33 +- tests/conform/test-cogl-readpixels.c | 45 +- tests/conform/test-cogl-viewport.c | 90 ++-- tests/interactive/test-cogl-offscreen.c | 4 +- 23 files changed, 1035 insertions(+), 967 deletions(-) commit b598210e011f6711848e649217ac7a35770bfe8e Author: Robert Bragg Date: Thu Nov 26 17:47:17 2009 +0000 cogl_offscreen: deprecate cogl_offscreen_ref/unref. New code should use cogl_handle_ref/unref clutter/cogl/cogl/cogl-offscreen.h | 34 +++++++++++++++++++++------------- 1 file changed, 21 insertions(+), 13 deletions(-) commit e12a691187a7dbbcfe5b46b94fe2975fd0927966 Author: Neil Roberts Date: Wed Nov 25 13:39:45 2009 +0000 cogl: Use a vtable for the texture backends instead of a type and switch Instead of storing an enum with the backend type for each texture and then using a switch statement to decide which function to call, we should store pointers to all of the functions in a struct and have each texture point to that struct. This is potentially slightly faster when there are more backends and it makes implementing new backends easier because it's more obvious which functions have to be implemented. clutter/cogl/cogl/cogl-texture-2d-sliced-private.h | 62 ---------- clutter/cogl/cogl/cogl-texture-2d-sliced.c | 122 +++++++++---------- clutter/cogl/cogl/cogl-texture-private.h | 97 +++++++++++---- clutter/cogl/cogl/cogl-texture.c | 124 ++++---------------- 4 files changed, 154 insertions(+), 251 deletions(-) commit 558b17ee1e71fb0fe7aea35e13cd5a73b18130dc Author: Robert Bragg Date: Wed Nov 25 02:47:52 2009 +0000 offscreen: cogl_offscreen_new_to_texture now supports GL_TEXTURE_RECTANGLE_ARB cogl_offscreen_new_to_texture previously bailed out if the given texture's GL target was anything but GL_TEXTURE_2D, but it now also allows foreign GL_TEXTURE_RECTANGLE_ARB textures. Thanks to Owen for reporting this issue, ref: https://bugzilla.gnome.org/show_bug.cgi?id=601032 clutter/cogl/cogl/cogl-draw-buffer.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit d3a01e0c96237ca060e3451d2b80e692dfb3b8f6 Author: Robert Bragg Date: Tue Nov 24 18:24:07 2009 +0000 debug: remove the COGL_DEBUG=client-side-matrices option Cogl only supports client side matrices so this debug option is no longer useful. clutter/cogl/cogl/cogl-debug.c | 1 - clutter/cogl/cogl/cogl-debug.h | 13 ++++++------- 2 files changed, 6 insertions(+), 8 deletions(-) commit b38c6b420f0ae1f118189bd0a8994fce479aef7b Author: Robert Bragg Date: Wed Nov 11 12:50:48 2009 +0000 [cogl-material] Adds cogl_material_copy() API cogl_material_copy can be used to create a new CoglHandle referencing a copy of some given material. From now on we will advise that developers always aim to use this function instead of cogl_material_new() when creating a material that is in any way derived from another. By using cogl_material_copy, Cogl can maintain an ancestry for each material and keep track of "similar" materials. The plan is that Cogl will use this information to minimize the cost of GPU state transitions. README | 5 +++ clutter/cogl/cogl/cogl-context.c | 13 ++++-- clutter/cogl/cogl/cogl-context.h | 4 +- clutter/cogl/cogl/cogl-material-private.h | 9 +++++ clutter/cogl/cogl/cogl-material.c | 62 ++++++++++++++++++++++++----- clutter/cogl/cogl/cogl-material.h | 18 +++++++++ clutter/cogl/cogl/cogl.c | 6 +-- 7 files changed, 100 insertions(+), 17 deletions(-) commit 70ca3bfe4173aabd352fd0aed484c0bab57a8d02 Author: Robert Bragg Date: Wed Nov 11 12:52:08 2009 +0000 [cogl] remove unused gles/cogl-utils.[c,h] The only function in gles/cogl-utils.c was cogl_util_next_p2() and it's redundant since we also have a cogl/cogl-utils.[c,h] clutter/cogl/cogl/driver/gles/cogl-util.c | 49 ----------------------------- clutter/cogl/cogl/driver/gles/cogl-util.h | 30 ------------------ 2 files changed, 79 deletions(-) commit 4a63af0c631cd9391a6b3cef6fdb545e36a68730 Author: Robert Bragg Date: Mon Nov 23 11:30:32 2009 +0000 docs: Don't document cogl_flush_gl_state as public API This function was #if 0'd before we released Clutter 1.0 so there's no implementation of it. At some point we thought it might assist with developers breaking out into raw OpenGL. Breaking out to raw GL is a difficult problem though so we decided instead we will wait for a specific use case to arrise before trying to support it. clutter/cogl/cogl/cogl.c | 8 -------- clutter/cogl/cogl/cogl.h | 22 ---------------------- doc/reference/cogl/cogl-sections.txt | 1 - 3 files changed, 31 deletions(-) commit 328ce370e7a7f155f63ee8206e8b6cd4e66a6c94 Author: Emmanuele Bassi Date: Tue Nov 24 16:59:24 2009 +0000 animation: Keep a weak reference on actors Actors, unlike objects, can effectively go away whilst being animated - usually because of an explicit destoy(). The Animation created by clutter_actor_animate() and friends should keep a weak reference on the actor and eventually get rid of the animation itself in case the actor goes away whilst being animated. clutter/clutter-animation.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit 1107fa8797b0d2475097c20b50065dbc3ae014a1 Author: Neil Roberts Date: Thu Nov 19 16:07:38 2009 +0000 Minor fix to cogl material _cogl_material_get_layer expects a CoglMaterial* pointer but it was being called with a CoglHandle. This doesn't matter because the CoglHandle is actually just the CoglMaterial* pointer anyway but it breaks the ability to change the _cogl_material_pointer_from_handle macro. clutter/cogl/cogl/cogl-material.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6fd80ffbd926318413296112871891706867cd78 Author: Emmanuele Bassi Date: Thu Nov 19 14:30:01 2009 +0000 docs: Add indices to the Cogl API reference The Clutter API reference has an index of the symbols for each minor version, and a list of deprecated symbols. The Cogl API reference should have the same layout. doc/reference/cogl/cogl-docs.xml.in | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) commit 8d64c4641dbf9dfb09d2719872911263d2b758dc Author: Emmanuele Bassi Date: Thu Nov 19 13:55:10 2009 +0000 docs: Increase consistency in Cogl documentation clutter/cogl/cogl/cogl-texture.h | 66 +++++++++------- clutter/cogl/cogl/cogl-vertex-buffer.h | 134 +++++++++++++++++--------------- clutter/cogl/cogl/cogl.h | 90 +++++++++++---------- 3 files changed, 157 insertions(+), 133 deletions(-) commit 550c14449e090f7921cdddc6acedb1bd72552663 Author: Emmanuele Bassi Date: Thu Nov 19 13:33:26 2009 +0000 docs: Documentation fixes for CoglMatrix Clean up the references, the docbook tags, and the style to fit in with the rest of the API references for Cogl and Clutter. clutter/cogl/cogl/cogl-matrix.h | 136 +++++++++++++++++++-------------------- 1 file changed, 68 insertions(+), 68 deletions(-) commit 056cfcffc312f9508f07c82e41d96c606559db97 Author: Emmanuele Bassi Date: Thu Nov 19 13:33:08 2009 +0000 Whitespace fix for cogl-color.h clutter/cogl/cogl/cogl-color.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 851d628cf8fe89ab28d66f790ad98db766831e37 Author: Emmanuele Bassi Date: Thu Nov 19 13:31:38 2009 +0000 docs: Documentation fixes for CoglMaterial Clean up the references, the docbook tags, and the style to fit in with the rest of the API references for Cogl and Clutter. clutter/cogl/cogl/cogl-material.h | 404 +++++++++++++++++++------------------ 1 file changed, 205 insertions(+), 199 deletions(-) commit fe804f1d023b50801d400971bf311545727921e9 Author: Emmanuele Bassi Date: Thu Nov 19 13:29:02 2009 +0000 docs: Documentation fixes for CoglBitmap • Use the same style for the Cogl API reference as the one used for the Clutter API reference. • Fix the introspection annotations for cogl_bitmap_get_size_from_file() clutter/cogl/cogl/cogl-bitmap.h | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) commit 1bf8db9e75c6155bb852980cb40a9117c6190500 Author: Emmanuele Bassi Date: Thu Nov 19 12:34:06 2009 +0000 docs: Fix Cogl API reference build • Ignore all the private header files • Add all missing/unused symbols • Remove deprecated symbols from 0.* doc/reference/cogl/Makefile.am | 30 ++++++++++++++++++++++-------- doc/reference/cogl/cogl-sections.txt | 29 ++++++++++++++++++++++++----- 2 files changed, 46 insertions(+), 13 deletions(-) commit 05a5a7e759455a98233ea86016edf86d6d17be36 Author: Emmanuele Bassi Date: Thu Nov 19 12:32:59 2009 +0000 docs: Remove non-gtk-doc annotations The imported Mesa matrix code has some documentation annotations that make gtk-doc very angry. Since it's all private anyway we can safely make gtk-doc ignore the offending stuff. clutter/cogl/cogl/cogl-matrix-mesa.c | 136 +++++++++++++++++----------------- clutter/cogl/cogl/cogl-matrix-mesa.h | 12 +-- 2 files changed, 74 insertions(+), 74 deletions(-) commit 7a011af97406c0075cc32eb2fbe4a07dc3d828c2 Author: Neil Roberts Date: Thu Nov 19 11:51:21 2009 +0000 docs: Fix the 'Since' annotation for some functions The 'Since' annotation needs to have a colon after it or gtk-doc won't pick it up. clutter/clutter-behaviour-path.h | 2 +- clutter/clutter-text.c | 2 +- clutter/cogl/cogl/cogl-material.h | 40 +++++++++++++++--------------- clutter/cogl/cogl/cogl-texture.h | 6 ++--- clutter/cogl/cogl/cogl.h | 4 +-- clutter/x11/clutter-x11-texture-pixmap.c | 4 +-- 6 files changed, 29 insertions(+), 29 deletions(-) commit 8ef57898ad66af345946a1f69172fc8be7038def Author: Neil Roberts Date: Wed Nov 18 19:09:10 2009 +0000 cogl: Use APIENTRY for GL function pointer declarations This matters for platforms such as Windows that use a different calling covention from the default for GL functions. clutter/cogl/cogl/driver/gl/cogl-context-driver.h | 6 +++++- clutter/cogl/cogl/driver/gles/cogl-context-driver.h | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) commit be58e5261f3b0c6a760577f67f2859511d6e52f2 Author: Neil Roberts Date: Wed Nov 18 19:23:57 2009 +0000 build: Fix out-of-tree builds for cogl-defines.h $(COGL_DRIVER)/cogl-defines.h is generated in the configure script so it ends up in the build directory. Therefore the build rule for cogl/cogl-defines.h should depend on the file in $(builddir) not $(srcdir). clutter/cogl/cogl/Makefile.am | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 19e485325faa59d44556dd6dac9543fb616e680b Author: Emmanuele Bassi Date: Wed Nov 18 18:04:13 2009 +0000 docs: Clean up deprecation notices The deprecation notices in gtk-doc should also refer to the release that added the deprecation, and if the deprecated symbol has been replaced by something else then the new symbol should be correctly referenced. clutter/cogl/cogl/cogl.h | 46 +++++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 23 deletions(-) commit 5f28c8b654094e27112426c206cf8294428515f9 Author: Emmanuele Bassi Date: Wed Nov 18 17:35:07 2009 +0000 build: Make cogl.h not conditional on driver defines The main COGL header cogl.h is currently created at configure time because it conditionally includes the driver-dependent defines. This sometimes leads to a stale cogl.h with old definitions which can break the build until you clean out the whole tree and start from scratch. We can generate a stable cogl-defines.h at build time from the equivalent driver-dependent header and let cogl.h include that file instead. .gitignore | 7 +- clutter/cogl/cogl/Makefile.am | 18 +- clutter/cogl/cogl/cogl.h | 991 +++++++++++++++++++++++++++++++++++++++++ clutter/cogl/cogl/cogl.h.in | 991 ----------------------------------------- configure.ac | 5 +- 5 files changed, 1008 insertions(+), 1004 deletions(-) commit b869e87c86b73a8c09c5f509955a120978da7604 Author: Neil Roberts Date: Wed Nov 18 17:16:38 2009 +0000 test-npot-texture: Add some verbose notes This just adds some verbose output stating whether Cogl thinks that NPOT textures are supported. tests/conform/test-npot-texture.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit 8f1edcb6eda89405286b7b1cdab3b8d8b899a778 Author: Neil Roberts Date: Wed Nov 18 14:21:22 2009 +0000 disable-npots: Don't allow the GL version to be 2.0 Cogl now assumes non-power-of-two textures are supported if the GL version is >= 2.0 so the disable-npots utility should also change the GL version. tests/tools/disable-npots.c | 79 +++++++++++++++++++++++++++++++++++++++---- 1 file changed, 72 insertions(+), 7 deletions(-) commit e80030755e37df28b30903bad63dc776b546abc3 Author: Emmanuele Bassi Date: Wed Nov 18 15:21:09 2009 +0000 build: Fix EXTRA_DIST and MAINTAINERCLEANFILES rules Makefile.am | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) commit ed4f0beac944a036839cd860f8aad223ffc101f2 Author: Emmanuele Bassi Date: Wed Nov 18 15:11:56 2009 +0000 Update README file README | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) commit 44f926556d98737fd10b18fdb6951a41672c46db Author: Emmanuele Bassi Date: Wed Nov 18 15:06:37 2009 +0000 docs: Update the "writing a backend" documentation The documentation on how a ClutterBackend and stage are implemented is a wee bit out of date. HACKING.backends | 39 +++++++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 16 deletions(-) commit f8e4e6727290aa63d2ec7dc30ca46913c98cb7ea Author: Emmanuele Bassi Date: Wed Nov 18 14:56:59 2009 +0000 Remove clutter.symbols The symbols file is unused since Clutter 0.6, and the win32 backend does not depend on it anymore. clutter.symbols | 611 ------------------------------------------------------- 1 file changed, 611 deletions(-) commit a4f1d1d6cc12b7007ac467673cf8d98dba132c87 Author: Emmanuele Bassi Date: Wed Nov 18 14:56:25 2009 +0000 Rename ChangeLog.SVN ChangeLog.SVN |15737 ---------------------------------------------- ChangeLog.pre-git-import |15737 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 15737 insertions(+), 15737 deletions(-) commit 60fae6a92eff5b61e4074f40161aa7b0b40bf2b9 Author: Emmanuele Bassi Date: Wed Nov 18 14:37:43 2009 +0000 build: Add cogl-matrix-private.h to the dist clutter/cogl/cogl/Makefile.am | 1 + 1 file changed, 1 insertion(+) commit 425f3b466041f46d1faed06da1cc46665bad60c6 Author: Emmanuele Bassi Date: Wed Nov 18 14:34:33 2009 +0000 build: Add cogl-feature-functions.h to the dist clutter/cogl/cogl/driver/gl/Makefile.am | 1 + clutter/cogl/cogl/driver/gles/Makefile.am | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) commit d11343532d813cf9b16e5c1ac92c0f0bc56e8850 Author: Emmanuele Bassi Date: Wed Nov 18 14:21:08 2009 +0000 build: Generate per-cycle ChangeLog files We should generate a ChangeLog for each minor version cycle, starting from the Git import date (since before that we used ChangeLog-style commit messages that don't really look good with the Git ones). For this reason we can take Cairo's Makefile.am.changelog file and, after tweaking it to fit our use case, let it generate the correct ChangeLogs on dist. ChangeLog | 5 -- Makefile.am | 3 +- build/autotools/Makefile.am.changelog | 91 +++++++++++++++++++++++++++------ configure.ac | 8 +-- 4 files changed, 82 insertions(+), 25 deletions(-) commit 18e9d0db6fc9e120a63485d1ecbc8b5514d66c77 Author: Emmanuele Bassi Date: Wed Nov 18 12:20:53 2009 +0000 build: Move ChangeLog rules in a separate file The ChangeLog creation rules should be moved to their own file, to make it easier to fix or change them in the future. Makefile.am | 20 +------------------- build/autotools/Makefile.am | 1 + build/autotools/Makefile.am.changelog | 19 +++++++++++++++++++ 3 files changed, 21 insertions(+), 19 deletions(-) commit 142305b1d51e9a3c69e8e2e224480297e43f79ea Author: Neil Roberts Date: Wed Nov 18 13:23:10 2009 +0000 cogl: Add the missing terminators for the arrays of feature functions _cogl_feature_check expects the array of function names to be terminated with a NULL pointer but I forgot to add this. This was causing crashes depending on what happened to be in memory after the array. clutter/cogl/cogl/driver/gl/cogl.c | 1 + clutter/cogl/cogl/driver/gles/cogl.c | 1 + 2 files changed, 2 insertions(+) commit 70aeb1c64216d75ba63f1cbae1c824b69305bd73 Author: Christian Persch Date: Tue Nov 17 20:43:39 2009 +0100 Pass the interned string value to the binding callback http://bugzilla.openedhand.com/show_bug.cgi?id=1891 Signed-off-by: Emmanuele Bassi clutter/clutter-binding-pool.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2832940603733873a76cb4c890f4a3d656d07112 Author: Neil Roberts Date: Tue Nov 17 18:06:31 2009 +0000 cogl: Use the GL_EXT_blend_{func,equation}_separate extensions We should use these extensions to check for glBlendFuncSeparate and glBlendEquationSeparate as well as checking the GL version number. clutter/cogl/cogl/driver/gl/cogl-feature-functions.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 6e0877507e00016cac1136c4e0dbab67e6a3e9ba Author: Neil Roberts Date: Tue Nov 17 17:22:22 2009 +0000 cogl: Don't bother checking for NPOTs or VBOs on later GLs For VBOs, we don't need to check for the extension if the GL version is greater than 1.5. Non-power-of-two textures are given in 2.0. We could also assume shader support in GL 2.0 except that the function names are different from those in the extension so it wouldn't work well with the current mechanism. clutter/cogl/cogl/driver/gl/cogl-feature-functions.h | 4 +++- clutter/cogl/cogl/driver/gl/cogl.c | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) commit 4a8c1ff8fa6244cad0b0e770ab6f68e319271675 Author: Emmanuele Bassi Date: Tue Nov 17 15:32:00 2009 +0000 build: Clean up the configure summary Split out into section the configuration report, and clean up the reported settings - including when experimental features have been enabled. configure.ac | 97 ++++++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 64 insertions(+), 33 deletions(-) commit 91cde78a7023d728ebb33c73684fc3702ad87963 Author: Neil Roberts Date: Tue Nov 17 13:52:40 2009 +0000 cogl: Make it easier to add checks for GL extensions Previously if you need to depend on a new GL feature you had to: - Add typedefs for all of the functions in cogl-defines.h.in - Add function pointers for each of the functions in cogl-context-driver.h - Add an initializer for the function pointers in cogl-context-driver.c - Add a check for the extension and all of the functions in cogl_features_init. If the extension is available under multiple names then you have to duplicate the checks. This is quite tedious and error prone. This patch moves all of the features and their functions into a list of macro invocations in cogl-feature-functions.h. The macros can be redefined to implement all of the above tasks from the same header. The features are described in a struct with a pointer to a table of functions. A new function takes the feature description from this struct and checks for its availability. The feature can take a list of extension names with a list of alternate namespaces (such as "EXT" or "ARB"). It can also detect the feature from a particular version of GL. The typedefs are now gone and instead the function pointer in the Cogl context just directly contains the type. Some of the functions in the context were previously declared with the 'ARB' extension. This has been removed so that now all the functions have no suffix. This makes more sense when the extension could potentially be merged into GL core as well. clutter/cogl/cogl/Makefile.am | 2 + clutter/cogl/cogl/cogl-feature-private.c | 141 ++++++++ clutter/cogl/cogl/cogl-feature-private.h | 71 ++++ clutter/cogl/cogl/cogl-journal.c | 10 +- clutter/cogl/cogl/cogl-vertex-buffer.c | 21 +- clutter/cogl/cogl/driver/gl/cogl-context-driver.c | 58 +-- clutter/cogl/cogl/driver/gl/cogl-context-driver.h | 81 +---- clutter/cogl/cogl/driver/gl/cogl-defines.h.in | 361 ------------------- .../cogl/cogl/driver/gl/cogl-feature-functions.h | 326 +++++++++++++++++ clutter/cogl/cogl/driver/gl/cogl-program.c | 89 +++-- clutter/cogl/cogl/driver/gl/cogl-shader.c | 27 +- clutter/cogl/cogl/driver/gl/cogl.c | 369 ++------------------ .../cogl/cogl/driver/gles/cogl-context-driver.c | 19 +- .../cogl/cogl/driver/gles/cogl-context-driver.h | 25 +- clutter/cogl/cogl/driver/gles/cogl-defines.h.in | 70 ---- .../cogl/cogl/driver/gles/cogl-feature-functions.h | 72 ++++ clutter/cogl/cogl/driver/gles/cogl.c | 82 ++--- 17 files changed, 794 insertions(+), 1030 deletions(-) commit 4734b7be418274cf00390c805b472b9493100157 Author: Emmanuele Bassi Date: Sat Nov 14 13:03:59 2009 +0000 docs: Detail the Clutter debugging flags doc/reference/clutter/running-clutter.xml | 56 +++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) commit 037192552ed126c35e430c11f030f16e984ac0b4 Author: Neil Roberts Date: Fri Nov 13 17:23:13 2009 +0000 win32: Remove the check for GL 1.2 Since 568c29ba4 the GL version is now validated further up in ClutterStage via Cogl so there is no need for the Win32 backend to do it. clutter/win32/clutter-stage-win32.c | 42 ----------------------------------- 1 file changed, 42 deletions(-) commit 62a37d8e538abc6d0c67bd69b4eb2a724668cce0 Author: Neil Roberts Date: Wed Nov 11 16:42:53 2009 +0000 Use the GL_ARB_multitexture extension on GL 1.2 Cogl requires multi-texturing support. This is only available as an extension in GL 1.2 so we should check for it before accepting the driver. http://bugzilla.openedhand.com/show_bug.cgi?id=1875 clutter/cogl/cogl/driver/gl/cogl.c | 46 ++++++++++++++++++++++++++++++------ 1 file changed, 39 insertions(+), 7 deletions(-) commit 2e99b276a4d312d6123426e2c88adf621a427c86 Author: Neil Roberts Date: Wed Nov 11 13:38:52 2009 +0000 cogl-material: Fallback to BlendFunc if BlendFuncSeparate is unavailable glBlendFuncSeparate is only available in OpenGL 1.4. If we conditionally check for this then Clutter will work with OpenGL 1.2. http://bugzilla.openedhand.com/show_bug.cgi?id=1875 clutter/cogl/cogl/cogl-material.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) commit 568c29ba491e4a6b3bef426be528d7246110011c Author: Neil Roberts Date: Wed Nov 11 13:26:54 2009 +0000 Validate that the GL version is >= 1.2 There is a new internal Cogl function called _cogl_check_driver_valid which looks at the value of the GL_VERSION string to determine whether the driver is supported. Clutter now calls this after the stage is realized. If it fails then the stage is marked as unrealized and a warning is shown. _cogl_features_init now also checks the version number before getting the function pointers for glBlendFuncSeparate and glBlendEquationSeparate. It is not safe to just check for the presence of the functions because some drivers may define the function without fully implementing the spec. The GLES version of _cogl_check_driver_valid just always returns TRUE because there are no version requirements yet. Eventually the function could also check for mandatory extensions if there were any. http://bugzilla.openedhand.com/show_bug.cgi?id=1875 clutter/clutter-backend.c | 14 ++++-- clutter/clutter-private.h | 3 ++ clutter/clutter-stage.c | 22 ++++++++- clutter/cogl/cogl/cogl.c | 5 ++ clutter/cogl/cogl/cogl.h.in | 9 ++++ clutter/cogl/cogl/driver/gl/cogl.c | 87 +++++++++++++++++++++++++++++++--- clutter/cogl/cogl/driver/gles/cogl.c | 6 +++ 7 files changed, 133 insertions(+), 13 deletions(-) commit 677ff9fb30a99b850eb1b41c34f80e5e01f8e43e Author: Samuel Degrande Date: Tue Oct 27 11:18:49 2009 +0100 Can no more include clutter-stage.h inside clutter-win32.h http://bugzilla.openedhand.com/show_bug.cgi?id=1847 Signed-off-by: Neil Roberts clutter/win32/clutter-win32.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 26ce94eda071cc133ab2b469cae0b19aae727279 Author: Samuel Degrande Date: Mon Oct 26 16:28:36 2009 +0100 Adapt win32 backend to the semantic change of StageWindow http://bugzilla.openedhand.com/show_bug.cgi?id=1847 Signed-off-by: Neil Roberts clutter/win32/clutter-backend-win32.c | 34 ++-- clutter/win32/clutter-stage-win32.c | 345 +++++++++++++++++---------------- clutter/win32/clutter-stage-win32.h | 2 + 3 files changed, 194 insertions(+), 187 deletions(-) commit b69ee0989b3ec4b588a1e80ea933b3b8997f6898 Author: Emmanuele Bassi Date: Fri Nov 13 15:27:18 2009 +0000 tests: Add instructions to test-box-layout tests/interactive/test-box-layout.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) commit 568ad044eba38198ecdb32f671047bffa27353a9 Author: Neil Roberts Date: Fri Nov 13 13:39:24 2009 +0000 Clear pending events for a stage when it is destroyed We can not process events for a stage that has been destroyed so we should make sure that the events for the stage are removed from the global event queue during dispose. http://bugzilla.openedhand.com/show_bug.cgi?id=1882 clutter/clutter-stage.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) commit 49cd887aabf7ff8cbfb147ceacfc82e3c75c0c9b Author: Emmanuele Bassi Date: Fri Nov 13 14:43:57 2009 +0000 docs: Document the AnimationMode definition Both ClutterAlpha:mode and ClutterAnimation:mode can be defined using: • an integer id • the "nick" field of the AnimationMode GEnumValue • a custom, tweener-like string All these methods should be documented. clutter/clutter-alpha.c | 8 ++++-- clutter/clutter-animation.c | 61 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+), 2 deletions(-) commit c8d57037882729a7ea0117726f2e8e48b10416ac Author: Emmanuele Bassi Date: Fri Nov 13 14:10:29 2009 +0000 tests: Add unit for Animation definitions Verify that an Animation can be defined using ClutterScript. No initial/final state of the animation, yet. .gitignore | 1 + tests/conform/test-conform-main.c | 1 + tests/conform/test-script-parser.c | 22 ++++++++++++++++++++++ tests/data/test-script-animation.json | 14 ++++++++++++++ 4 files changed, 38 insertions(+) commit d54f4e944c8725c84a5534d519fb3f9de7b95430 Author: Emmanuele Bassi Date: Fri Nov 13 14:08:49 2009 +0000 Whitespace fixes clutter/clutter-animation.c | 7 +++---- clutter/clutter-script-parser.c | 3 +-- 2 files changed, 4 insertions(+), 6 deletions(-) commit 95b55588ad6c57cbeb7cda50886e709aa1ae1c00 Author: Emmanuele Bassi Date: Fri Nov 13 14:07:25 2009 +0000 tests: Print out parser errors if present If the conformance test for the Script parser throws an error and we've enabled verbosity then we should print out the error message before aborting. tests/conform/test-script-parser.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit 9bae5535646b64e7c43f3a628942531d14e5a0f1 Author: Emmanuele Bassi Date: Fri Nov 13 13:21:47 2009 +0000 animation: Override parsing :mode Like in ClutterAlpha, ClutterAnimation:mode must be overridden when parsing a Script definition, as we accept both a numeric id and the string id for easing modes. clutter/clutter-animation.c | 51 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-) commit dab1da20ae144afe56f48c0a3be5865d84245658 Author: Neil Roberts Date: Mon Oct 5 13:37:11 2009 +0100 [cogl-primitives] Don't clear the whole stencil buffer When _cogl_add_path_to_stencil_buffer is used to draw a path we don't need to clear the entire stencil buffer. Instead it can clear just the bounding box of the path. This adds an extra parameter called 'need_clear' which is only set if the stencil buffer is being used for clipping. http://bugzilla.openedhand.com/show_bug.cgi?id=1829 clutter/cogl/cogl/cogl-clip-stack.c | 6 ++++-- clutter/cogl/cogl/cogl-primitives.c | 37 ++++++++++++++++++++++++++++------- 2 files changed, 34 insertions(+), 9 deletions(-) commit bc8faf52f4a817d7d023f554dcd7ace0efac9942 Author: Neil Roberts Date: Thu Nov 12 17:00:15 2009 +0000 Remove _cogl_flush_matrix_stacks from cogl-internal.h The definition for this function was removed in f7d64e5abvoid so it should be removed from the header too. clutter/cogl/cogl/cogl-internal.h | 2 -- 1 file changed, 2 deletions(-) commit 9fa562ad216d516d1cd66f72aa39eaad0a5c40b9 Author: Emmanuele Bassi Date: Wed Nov 11 10:32:39 2009 +0000 cogl: Declare cogl_is_bitmap() The function is automatically defined by the CoglHandle type definition macro, but it still requires to be declared in the header file to be used. clutter/cogl/cogl/cogl-bitmap.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit 482e4e8d111fa76194a20ccd120eac41afa277d8 Author: Emmanuele Bassi Date: Tue Nov 10 12:21:26 2009 +0000 tests: Display the index inside text-box-layout Since the rectangles packed inside the BoxLayout interactive test have random colors it's not easy to verify the ordering. By using the CoglPango API to print out the index in the middle of each rectangle. tests/interactive/test-box-layout.c | 41 ++++++++++++++++++++++++++++++++--- 1 file changed, 38 insertions(+), 3 deletions(-) commit 4bc3d02ebd928b4bc7c59811b9e90aae36750cfb Author: Emmanuele Bassi Date: Tue Nov 10 12:20:14 2009 +0000 box-layout: Honour :text-direction During size request and allocation a ClutterBoxLayout should honour the ClutterActor:text-direction property, and change the order of the children. clutter/clutter-box-layout.c | 206 +++++++++++++++++++++++++++++------------- 1 file changed, 142 insertions(+), 64 deletions(-) commit adab87b520699892e012d601821a5aee11410125 Author: Emmanuele Bassi Date: Tue Nov 10 12:18:32 2009 +0000 text: Dirty layout cache on text direction changes When the text direction changes we should evict the cached layouts to avoid stale entries in case the direction change produces a layout with the same size. clutter/clutter-text.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) commit f94f7692a6836ed4a5f039e4c2a44966b47c77fc Author: Emmanuele Bassi Date: Fri Nov 6 16:55:46 2009 +0000 actor: Add :text-direction property Every actor should have a property for retrieving (and setting) the text direction. The text direction is used to provide a consisten behaviour in both left-to-right and right-to-left languages. For instance, ClutterText should perform key navigation following text direction. Layout managers should also take into account text direction to derive the right packing order for their children. clutter/clutter-actor.c | 116 ++++++++++++++++++++++++++++++++++++++++++++++- clutter/clutter-actor.h | 4 ++ 2 files changed, 119 insertions(+), 1 deletion(-) commit 53a9d0c637ee1ef07e9251b77f86f0cd42ab611e Author: Emmanuele Bassi Date: Fri Nov 6 16:50:53 2009 +0000 Use the newly added ClutterTextDirection enumeration Instead of using PangoDirection directly we should use the ClutterTextDirection enumeration. We also need a pair of accessor functions for setting and getting the default text direction. clutter/clutter-main.c | 43 +++++++++++++++++++++++++++++++++---------- clutter/clutter-main.h | 3 +++ 2 files changed, 36 insertions(+), 10 deletions(-) commit 3958df4ff9b3aa800df2e0f1695fd143439d870a Author: Emmanuele Bassi Date: Fri Nov 6 16:49:55 2009 +0000 Add ClutterTextDirection enumeration The ClutterTextDirection is composed of three values: DEFAULT: a flag for returning the default text direction LTR: left to right RTL: right to left clutter/clutter-types.h | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) commit 2671c425894c89a4afd415b70e8ebbc4f057e02b Author: Neil Roberts Date: Mon Nov 9 12:12:27 2009 +0000 Revert changes to test-cogl-primitives.c from 272e227109 These changes caused the test to try to load redhand.png but this no longer works since the TESTS_DATADIR changes in 0b4899ef23. The only use of the hand is commented out anyway so it looks like the changes were intended for temporary debugging. tests/interactive/test-cogl-primitives.c | 14 -------------- 1 file changed, 14 deletions(-) commit ac9f65cb92196e2eafd4b1e25dabd9cb6a428db3 Author: Damien Lespiau Date: Mon Nov 9 13:05:40 2009 +0000 build: Make the glib-mkenums generated files depend on their templates With this, if one changes the underlying template files, we run glib-mkenums again to generate updated glib_enum_[ch] files. Reviewed-by: Emmanuele Bassi build/autotools/Makefile.am.enums | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1be23c0cc9741cbe68a54cd84de772bd120254b6 Author: Emmanuele Bassi Date: Mon Nov 9 16:44:34 2009 +0000 build: Fix --with-imagebackend configure switch An overeager search and replace broke the image backend command line switch for the configure script. configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1ce25ffbb2561ab5eb3f6b07b74ec49587f44d32 Author: Neil Roberts Date: Mon Nov 9 11:50:16 2009 +0000 cogl: Add an initialiser for enable_flags in cogl_begin_gl This fixes a warning about an uninitialised value. It could also potentially fix some crashes for example if the enable_flags value happened to include a bit for enabling a vertex array if no vertex buffer pointer was set. clutter/cogl/cogl/cogl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 09c04d4c67ea8d3ebeb3ee5adfc3752562cae3cc Author: Emmanuele Bassi Date: Mon Nov 9 11:07:27 2009 +0000 text: Add a NULL preedit string check This commit avoids a critical warning introduced by commit bc51b8ca47ac90e52ab6a27ff791ea97d53f4648 clutter/clutter-text.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit bc51b8ca47ac90e52ab6a27ff791ea97d53f4648 Author: Raymond Liu Date: Mon Nov 9 16:42:15 2009 +0800 Fix cursor position in preedit status http://bugzilla.openedhand.com/show_bug.cgi?id=1871 Signed-off-by: Emmanuele Bassi clutter/clutter-text.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) commit 7e17822cfd860fd694735fbf550013f7f8b7a915 Author: Emmanuele Bassi Date: Fri Nov 6 15:06:39 2009 +0000 Clean up cogl.h template The inclusion order is mostly random, and it should really be in alphabetic order, just like clutter.h. Also, cogl-vertex-buffer.h is included twice. clutter/cogl/cogl/cogl.h.in | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) commit fcd8237ac5f5dc7bc485b8b5726824129215beea Author: Tim Horton Date: Fri Nov 6 11:57:43 2009 +0000 osx: CGBitmapContextCreate can't make 24bpp, alphaless offscreen pixmaps While loading a JPEG from disk (with clutter_texture_new_from_file), I got the following: : CGBitmapContextCreate: unsupported parameter combination: 8 integer bits/component; 24 bits/pixel; 3-component colorspace; kCGImageAlphaNone; 3072 bytes/row. : CGContextDrawImage: invalid context Looking around, I found that CGBitmapContextCreate can't make 24bpp offscreen pixmaps without an alpha channel... This fixes the bug, and seems to not break other things... http://bugzilla.openedhand.com/show_bug.cgi?id=1159 Signed-off-by: Emmanuele Bassi clutter/cogl/cogl/cogl-bitmap-pixbuf.c | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) commit 5c67e8e0c09c83c470f999c86091181cc373d5b6 Author: Emmanuele Bassi Date: Fri Nov 6 14:07:46 2009 +0000 script: Coding style clean-ups clutter/clutter-script.c | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) commit 179a66c922f85fdfc8968f7f60a5b76154696ad4 Author: Emmanuele Bassi Date: Fri Nov 6 14:07:26 2009 +0000 script: Document private functions clutter/clutter-script.c | 71 +++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 67 insertions(+), 4 deletions(-) commit 30bc36082e2922b11b98907fde12f64fd4f7399d Author: Emmanuele Bassi Date: Fri Nov 6 14:04:36 2009 +0000 Do not pass flags to g_module_open(NULL) The flags are ignored when opening the main module, so we should pass 0 to avoid confusion when reading the source. clutter/clutter-alpha.c | 2 +- clutter/clutter-script-parser.c | 6 +++--- clutter/clutter-script.c | 2 +- clutter/cogl/cogl/cogl.c | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) commit 4262f79f34c35a8eb620fb82eb0e36d5ac191600 Merge: b9e519c 031d4d6 Author: Emmanuele Bassi Date: Fri Nov 6 11:50:22 2009 +0000 Merge branch 'josh-osx-fixes' * josh-osx-fixes: osx: Fix a warning on Snow Leopard docs: Fix OS X docs to install Ports in correct order osx: Implement the updated ClutterStageWindow interface commit b9e519c3b2bc5fc01743568a2a37029c61fdf6ef Author: Joshua Lock Date: Thu Nov 5 15:50:21 2009 +0000 tests: Remove a spurious #include The test-backface-culling has what looks like a stray #include in which stops the test compiling for backends without GdkPixbuf. Remove it. http://bugzilla.openedhand.com/show_bug.cgi?id=1867 tests/conform/test-backface-culling.c | 2 -- 1 file changed, 2 deletions(-) commit 031d4d6203f007fea2b95ca883c7113d0160372d Author: Joshua Lock Date: Thu Nov 5 15:48:25 2009 +0000 osx: Fix a warning on Snow Leopard Apple where nice and changed API between releases. This patch checks the version of the compilation environment and tries to use the right parameter type. http://bugzilla.openedhand.com/show_bug.cgi?id=1866 clutter/osx/clutter-backend-osx.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 58f1dfcf35626b8b1ea896dfbd27623b15779fce Author: Joshua Lock Date: Thu Nov 5 15:31:56 2009 +0000 docs: Fix OS X docs to install Ports in correct order The order in which the MacPorts are installed is important otherwise we open the user up to a world of pain. This patch also tweaks the OS X docs to follow the formatting of the rest of the docs and to discuss the option of GtkDoc. http://bugzilla.openedhand.com/show_bug.cgi?id=1865 doc/reference/clutter/building-clutter.xml | 67 +++++++++++++++------------- 1 file changed, 37 insertions(+), 30 deletions(-) commit 4533e37744f8751e254741104d27b7b37e2fdfd7 Author: Joshua Lock Date: Thu Nov 5 15:44:32 2009 +0000 osx: Implement the updated ClutterStageWindow interface In the new Clutter world backend stage implementations should be lightweight objects implementing the ClutterStageWindow interface and not ClutterActor subclasses. This patch performs various cut-n-pastes to acheive that for the OSX backend http://bugzilla.openedhand.com/show_bug.cgi?id=1864 clutter/osx/clutter-backend-osx.c | 4 +- clutter/osx/clutter-stage-osx.c | 196 ++++++++++++++++--------------------- clutter/osx/clutter-stage-osx.h | 8 +- 3 files changed, 89 insertions(+), 119 deletions(-) commit cb60c038acb0de9178d0aee22e3a9847653c9627 Author: Emmanuele Bassi Date: Fri Nov 6 11:33:32 2009 +0000 behaviour: Implement the implicit alpha parsing ClutterBehaviour should implement the Scriptable interface and parse ClutterAlpha when implicitly defined, instead of having this ad hoc code inside ClutterScriptParser itself. After all, only ClutterBehaviour supports Alpha defined implicitly. clutter/clutter-behaviour.c | 46 +++++++++++++++++++++++++++++++++----- clutter/clutter-script-parser.c | 19 ++-------------- clutter/clutter-script-private.h | 4 ++-- 3 files changed, 45 insertions(+), 24 deletions(-) commit f1ed8be066a7c5f16e2e876cc76ef1f5348bc14e Author: Emmanuele Bassi Date: Fri Nov 6 11:32:28 2009 +0000 conform: Add unit for properties holding objects Exercise the definition of GObjects for properties defined using GParamSpecObject. .gitignore | 1 + tests/conform/test-conform-main.c | 1 + tests/conform/test-script-parser.c | 25 +++++++++++++++++++++++++ tests/data/test-script-object-property.json | 13 +++++++++++++ 4 files changed, 40 insertions(+) commit 7279afd28c1bc47e1b47f0c2f8d53e5ea75df832 Author: Emmanuele Bassi Date: Fri Nov 6 11:17:42 2009 +0000 script: Generic assignment of properties requiring objects The ClutterScriptParser should do most of the heavy-lifting for parsing a JSON object member defining another JSON object into a GObject property defined using a GParamSpecObject. clutter/clutter-script-parser.c | 62 ++++++++++++++++++++++++++++++++------- 1 file changed, 52 insertions(+), 10 deletions(-) commit 185107c6cfe174ed829ce26241bf0e2f532a4394 Author: Emmanuele Bassi Date: Fri Nov 6 10:53:43 2009 +0000 conformance: Add unit on the implicit alpha definition Exercise the implicit alpha and timeline definition to catch regressions in the ClutterScript parser code. .gitignore | 1 + tests/conform/test-conform-main.c | 1 + tests/conform/test-script-parser.c | 32 ++++++++++++++++++++++++++++ tests/data/test-script-implicit-alpha.json | 8 +++++++ 4 files changed, 42 insertions(+) commit f9581ca5ce87437df40e27bc0228fdb6c6897619 Author: Emmanuele Bassi Date: Fri Nov 6 10:17:30 2009 +0000 script: Apply properties when constructing implicit timelines The object construction is done in two passes, now, so we must do both passes when parsing implicit timelines from a fake ObjectInfo. clutter/clutter-script-parser.c | 1 + 1 file changed, 1 insertion(+) commit abae6013e10e08cc67be53d5d067ca5ed4ad7ee3 Author: Robert Bragg Date: Thu Nov 5 16:50:24 2009 +0000 Remove all internal use of deprecated cogl_clip_* API cogl_clip_push, and cogl_clip_push_window_rect which are now deprecated were used in various places internally so this just switches to using the replacement functions. clutter/clutter-actor.c | 10 +++++----- clutter/clutter-main.c | 2 +- clutter/clutter-text.c | 6 +++--- tests/conform/test-cogl-viewport.c | 10 ++++++---- tests/interactive/test-clip.c | 8 ++++---- 5 files changed, 19 insertions(+), 17 deletions(-) commit c1d9e09d38bcf61eb7e6f88f5a052870d8abdc5e Author: Robert Bragg Date: Thu Nov 5 10:56:24 2009 +0000 [clip-stack] stop using deprecated cogl_clip_push_window_rect API try_pushing_rect_as_window_rect now uses the new cogl_clip_push_window_rectangle API. clutter/cogl/cogl/cogl-clip-stack.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 272e227109387c9287081e9dad467290e4e93faf Author: Robert Bragg Date: Wed Nov 4 19:31:43 2009 +0000 [cogl-clip] deprecate parts and cleanup the API cogl_clip_push() which accepts a rectangle in model space shouldn't have been defined to take x,y,width,height arguments because this isn't consistant with other Cogl API dealing with model space rectangles. If you are using a coordinate system with the origin at the center and the y+ extending up, then x,y,width,height isn't as natural as (x0,y0)(x1,y1). This API has now been replace with cogl_clip_push_rectangle() (As a general note: the Cogl API should only use the x,y,width,height style when the appropriate coordinate space is defined by Cogl to have a top left origin. E.g. window coordinates, or potentially texture coordinates) cogl_clip_push_window_rect() shouldn't have been defined to take float arguments since we only clip with integral pixel precision. We also shouldn't have abbreviated "rectangle". This API has been replaced with cogl_clip_push_window_rectangle() cogl_clip_ensure() wasn't documented at all in Clutter 1.0 and probably no one even knew it existed. This API isn't useful, and so it's now deprecated. If no one complains we may remove the API altogether for Clutter 1.2. cogl_clip_stack_save() and cogl_clip_stack_restore() were originally added to allow us to save/restore the clip when switching to/from offscreen rendering. Now that offscreen draw buffers are defined to own their clip state and the state will be automatically saved and restored this API is now redundant and so deprecated. README | 13 +++++ clutter/cogl/cogl/cogl-clip-stack.c | 44 +++++++------- clutter/cogl/cogl/cogl.h.in | 92 ++++++++++++++++++++++++++++-- doc/reference/cogl/cogl-sections.txt | 9 ++- tests/interactive/test-cogl-primitives.c | 14 +++++ 5 files changed, 144 insertions(+), 28 deletions(-) commit 6cd49fdd40bd20716365e399c3dfa039e3b6f377 Author: Robert Bragg Date: Wed Nov 4 20:17:56 2009 +0000 [clip-stack] Internally track model space clip rects as (x0,y0)(x1,y1) pairs Don't track the rectangles as x0,y0,width,height. This is in preparation for some API tidy up. clutter/cogl/cogl/cogl-clip-stack.c | 113 ++++++++++++++++++----------------- 1 file changed, 59 insertions(+), 54 deletions(-) commit 7752ed98f1eafa9bd65fbdd2e018b0026430b579 Author: Robert Bragg Date: Wed Nov 4 19:42:17 2009 +0000 [clip-stack] move lots of supporting code from cogl.c to cogl-clip-stack.c There was quite a bit of code in cogl.c that was only used to support cogl-clip-stack.c, so this has now been moved to cogl-clip-stack.c clutter/cogl/cogl/cogl-clip-stack.c | 277 +++++++++++++++++++++++++++++++---- clutter/cogl/cogl/cogl.c | 237 ------------------------------ 2 files changed, 250 insertions(+), 264 deletions(-) commit 864e12df056ccbd116eb0a0992a82e5194c26787 Author: Robert Bragg Date: Wed Nov 4 16:55:18 2009 +0000 [debug] Adds a COGL_DEBUG=force-scanline-paths For a long time now the GLES driver for Cogl has supported a fallback scanline rasterizer for filling paths when no stencil buffer is available, but now that we build the same cogl-primitives code for GL and GLES I thought it may sometimes be useful for debugging to force Cogl to use the scanline rasterizer instead of the current stencil buffer approach. clutter/cogl/cogl/cogl-debug.c | 3 ++- clutter/cogl/cogl/cogl-debug.h | 3 ++- clutter/cogl/cogl/cogl-primitives.c | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) commit 0b4899ef23e4979326439613dfba814bd49aeb2e Author: Emmanuele Bassi Date: Thu Nov 5 17:30:33 2009 +0000 tests: Clean up interactive test build The build for interactive tests creates symbolic links for the data under tests/data; it also uses symbolic links for creating "binaries" for each interactive test. This is less than ideal, though. Instead, the tests should build a path to the data files by using a pre-processor define like TESTS_DATADIR; both g_build_filename() and pre-processor string concatenation can be used to generate a valid file name with the full path to the files. The build system should also create wrapper scripts, just like we do inside the conformance test suite, to be able to launch single tests. .gitignore | 1 + tests/interactive/Makefile.am | 59 ++++++++++--------- tests/interactive/test-actor-clone.c | 27 ++++----- tests/interactive/test-actors.c | 11 ++-- tests/interactive/test-behave.c | 14 +++-- tests/interactive/test-bin-layout.c | 6 +- tests/interactive/test-clip.c | 5 +- tests/interactive/test-cogl-multitexture.c | 15 ++++- tests/interactive/test-cogl-offscreen.c | 6 +- tests/interactive/test-cogl-tex-convert.c | 28 +++++++--- tests/interactive/test-cogl-tex-getset.c | 12 ++-- tests/interactive/test-cogl-tex-polygon.c | 9 ++- tests/interactive/test-cogl-tex-tile.c | 6 +- tests/interactive/test-depth.c | 5 +- tests/interactive/test-devices.c | 5 +- tests/interactive/test-fbo.c | 11 +++- tests/interactive/test-layout.c | 5 +- tests/interactive/test-multistage.c | 5 +- tests/interactive/test-paint-wrapper.c | 5 +- tests/interactive/test-pixmap.c | 2 +- tests/interactive/test-rotate.c | 8 ++- tests/interactive/test-script.c | 9 ++- tests/interactive/test-shader.c | 84 +++++++++++++++------------- tests/interactive/test-texture-async.c | 57 +++++++++---------- tests/interactive/test-texture-quality.c | 15 +++-- tests/interactive/test-viewport.c | 8 ++- tests/interactive/wrapper.sh | 4 +- 27 files changed, 260 insertions(+), 162 deletions(-) commit c3368c0d157c5fa28a4e29e6caaed4323e82990d Author: Emmanuele Bassi Date: Thu Nov 5 12:24:37 2009 +0000 layout: Add layout properties introspection In order to know if a layout property exists and retrieve its description in form of a GParamSpec, we need a wrapper API inside ClutterLayoutManager. This allows introspecting a LayoutManager sub-class and eventually serialize and deserialize it. clutter/clutter-layout-manager.c | 76 ++++++++++++++++++++++++++++ clutter/clutter-layout-manager.h | 103 ++++++++++++++++++++------------------ 2 files changed, 130 insertions(+), 49 deletions(-) commit b0c9de273096d8949c8eafa3d5da017bb551e3f0 Author: Emmanuele Bassi Date: Thu Nov 5 12:23:49 2009 +0000 box-layout: Add get_child_meta_type() override Return the GType of ClutterBoxChild. clutter/clutter-box-layout.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit eea00d280549641403dbaae27e370e16fe9f975b Author: Emmanuele Bassi Date: Thu Nov 5 12:23:22 2009 +0000 bin-layout: Add get_child_meta_type() override Return the GType of ClutterBinLayer. clutter/clutter-bin-layout.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit e6dff59b27d7eb6d9fca51f6ddf74fcb7d8253e3 Author: Emmanuele Bassi Date: Thu Nov 5 11:57:06 2009 +0000 layout: Add LayoutManager::get_child_meta_type() In order to inspect a LayoutManager using LayoutMeta we need a virtual function that returns the GType of the LayoutMeta used. clutter/clutter-layout-manager.c | 7 +++++++ clutter/clutter-layout-manager.h | 3 +++ 2 files changed, 10 insertions(+) commit 95d78acb4ca72951fc9552c9fcffa645b1be739a Author: Emmanuele Bassi Date: Wed Nov 4 16:45:44 2009 +0000 script: Allow parsing child properties The ClutterScript parser needs to be extended to parse child properties and apply them after an actor has been added to a container. In order to distinguish child properties from regular GObject properties we can use the "child::" prefix, e.g.: { "type" : "ClutterRectangle", "id" : "child-01", "child::has-focus" : true, ... } Parsing child properties can be deferred to the ClutterScriptable interface, just like regular properties. .gitignore | 1 + clutter/clutter-script-parser.c | 115 +++++++++++++++++++++++++- clutter/clutter-script-private.h | 2 + tests/conform/Makefile.am | 2 + tests/conform/test-conform-main.c | 1 + tests/conform/test-script-parser.c | 156 ++++++++++++++++++++++++++++++++++++ tests/data/test-script-child.json | 21 +++++ 7 files changed, 297 insertions(+), 1 deletion(-) commit c52d8780325a0077f7fc6e898d902462ffbe3c8c Author: Robert Bragg Date: Sat Oct 17 04:06:56 2009 +0100 [cogl-primitives] Get rid of driver specific cogl-primitives code These files were practically identical, except the gles code had additional support for filling paths without a stencil buffer. All the driver code has now been moved into cogl/cogl-primitives.c clutter/cogl/cogl/cogl-primitives.c | 488 ++++++++++++++++++++- clutter/cogl/cogl/driver/gl/Makefile.am | 1 - clutter/cogl/cogl/driver/gl/cogl-primitives.c | 313 -------------- clutter/cogl/cogl/driver/gles/Makefile.am | 1 - clutter/cogl/cogl/driver/gles/cogl-primitives.c | 516 ----------------------- 5 files changed, 482 insertions(+), 837 deletions(-) commit 8ba13d6495d00885380db3a23f552633c5c43c0a Author: Emmanuele Bassi Date: Wed Nov 4 15:21:03 2009 +0000 script: Clean up Color parsing rules All the ClutterColor parsing rules should be coalesced inside clutter_script_parse_color(): object, array and string notations are the canonical ways of defining a ClutterColor inside a ClutterScript definition. Having a single function in charge of the parsing cleans up the code. clutter/clutter-script-parser.c | 17 +++++++---------- tests/conform/test-script-parser.c | 6 ++++++ 2 files changed, 13 insertions(+), 10 deletions(-) commit 3e815de32b2aa525365b80fb7d2f5d5dc9d2fb72 Author: Emmanuele Bassi Date: Wed Nov 4 15:20:12 2009 +0000 script: Simplify boxed types parsing We should use the typed accessors for complex JSON types, and be more liberal in what we accept. clutter/clutter-script-parser.c | 147 +++++++++++++++------------------------ 1 file changed, 57 insertions(+), 90 deletions(-) commit 4df59d330ca4ba7ffcff830001ddbc4fe64167ee Author: Emmanuele Bassi Date: Wed Nov 4 14:05:13 2009 +0000 script: Separate construction from properties application Currently, ClutterScriptParser will construct the object (using the construct-only and construct parameters), apply the properties from the ClutterScript definition, and eventuall will add children and behaviours. The construction phase should be more compartimentalized: the objects should be constructed first and eventual children and behaviours added. Then, once an object is requested or when the parsing process has terminated, all the properties should be applied. This change allows us to set up the actors before setting their non-construct properties. clutter/clutter-script-parser.c | 137 ++++++++++++++++++-------------------- clutter/clutter-script-private.h | 8 ++- clutter/clutter-script.c | 22 ++++-- 3 files changed, 88 insertions(+), 79 deletions(-) commit 31e5dadb68cf285d57935573e16713201f24503e Author: Emmanuele Bassi Date: Wed Nov 4 13:32:26 2009 +0000 script: Move all parser code inside ClutterScriptParser ClutterScript is currently a mix of parser-related code and the ClutterScript object. All the parser-related code should be moved inside a private class, ClutterScriptParser, inheriting from JsonParser. clutter/clutter-script-parser.c | 1288 ++++++++++++++++++++++++++++++++- clutter/clutter-script-private.h | 38 +- clutter/clutter-script.c | 1485 +++----------------------------------- 3 files changed, 1438 insertions(+), 1373 deletions(-) commit d7cfa158513263a5f75934a8f9ddceea9a6b8800 Author: Emmanuele Bassi Date: Wed Nov 4 11:50:45 2009 +0000 conform: Add the beginnings of a ClutterScript test suite ClutterScript is a very complicated piece of machinery, with a parser that has custom variations on top of the basic JSON format; it could also be extended in the future, so if we don't want to introduce regressions or break existing ClutterScript definitions, we'd better have a conformance test suite. .gitignore | 1 + tests/conform/Makefile.am | 1 + tests/conform/test-conform-main.c | 2 ++ tests/conform/test-script-parser.c | 33 +++++++++++++++++++++++++++++++++ tests/data/Makefile.am | 13 ++++++++----- tests/data/test-script-single.json | 10 ++++++++++ 6 files changed, 55 insertions(+), 5 deletions(-) commit 7d891d9dd4acbaedc5b2a2f95445a1e93fd1529f Author: Emmanuele Bassi Date: Wed Nov 4 11:47:09 2009 +0000 tests: Allow getting data files from the tests/data directory The units under the conformance test suite should be able to use external files. Linking the files in tests/conform like the interactive tests do seems like a hack piled on top of a hack, so instead we should provide a programmatic way for a conformance test unit to get the full path of a file, regardless of where the tests/data directory is. We can use a define to get the full path of tests/data and then a function using g_build_filename() to construct the path to the file we want. tests/conform/Makefile.am | 14 +++++++++----- tests/conform/test-conform-common.h | 1 + tests/conform/test-conform-main.c | 6 ++++++ 3 files changed, 16 insertions(+), 5 deletions(-) commit 3e20468c6bd982eb8be0e3cbf9c9b72df38eaeeb Author: Emmanuele Bassi Date: Wed Nov 4 11:05:25 2009 +0000 Add new conformance tests to the ignore list .gitignore | 3 +++ 1 file changed, 3 insertions(+) commit 6e571928a49641f353f31e1f69328e1466b6ac66 Author: Emmanuele Bassi Date: Tue Nov 3 18:30:28 2009 +0000 script: Take a copy of property nodes Instead of counting on a JsonNode pointer to survive we should take a copy. This allows keeping unresolved properties across different ClutterScript passes. clutter/clutter-script.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 4ad57aa3e4caedd89e9c60c60aadbc239290cfe3 Author: Emmanuele Bassi Date: Tue Nov 3 18:29:52 2009 +0000 script: Use JsonObject direct accessors Instead of getting the JsonNode for a member of which we mandate the type we can use the typed accessors of JsonObject. clutter/clutter-script.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) commit 0ff420fab59221fccf711893c363145607b40898 Merge: f6e0e48 4258214 Author: Robert Bragg Date: Wed Nov 4 03:46:45 2009 +0000 Merge commit 'cogl-reorg-draw-buffers' * cogl-reorg-draw-buffers: (38 commits) [test-fbo] greatly simplify the test [tests] test-backface-culling: test culling with offscreen rendering [tests] Adds test-cogl-readpixels.c for very basic cogl_read_pixels testing [tests] Adds test-cogl-offscreen to validate offscreen draw buffer [tests] test-cogl-viewport tests semantics of over/under size viewports [test-texture-fbo] comment the colors defined in corner_colors Add a conformance test for clutter_texture_new_from_actor [cogl-texture-2d-sliced] allow COGL_FORMAT_ANY with _new_with_size() [texture] fix rounding when calculating update_fbo viewport offset [texture] switch to a new design for handling offscreen rendering [texture] split out fbo update code from cluter_texture_paint [texture] push/pop draw buffer when painting actors to a texture [texture] Avoid redundant use of cogl_clip_stack_save when drawing offscreen [cogl-draw-buffer] fix Cogl -> GL viewport coord conversion [cogl_clip_push_window_rect] fix Cogl -> GL coordinate conversion [matrix] Adds cogl_matrix_get_inverse API [debug] Adds a COGL_DEBUG=matrices debug option [cogl-matrix] Import Mesa's matrix manipulation code [cogl] avoid any state changes when cogl_set_backface_culling_enable is a nop [cogl] Use clockwise face winding for offscreen buffers with culling enabled ... commit 4258214e509edbc4ff82de418ffc9662088fa835 Author: Robert Bragg Date: Wed Oct 7 10:40:15 2009 +0100 [test-fbo] greatly simplify the test This test tried to do too much, and I can't remember the last time I saw this test work. It no longer tries to create a texture from an offscreen actor and it no longer tries to use shaders. It does though show that chaining of clutter_texture_new_from_actor now works, and that animating the source actor is reflected in textures created from it. When run you should see three actors: - on the left is the pristine source actor rotating around the y-axis - in the middle is the first texture created from the source actor - and on the right a texture created from the middle actor Note: the somewhat strange bobbing of the middle and right textures is actually correct given how it was decided long ago to map the transformed (to screen space) allocation of the source actor to the texture. When the hand spins around the perspective projection of the top of the hand results in the origin of the texture bobbing up to a higher stage position, but the position of the textures is fixed. This design also means we end up reallocating our offscreen draw buffer every frame that the actors transformed size changes, which isn't ideal. tests/interactive/test-fbo.c | 192 ++++++++---------------------------------- 1 file changed, 34 insertions(+), 158 deletions(-) commit ffb592de5908d844b527cb4fe75b7195eb0dc55d Author: Robert Bragg Date: Thu Oct 22 19:01:27 2009 +0100 [tests] test-backface-culling: test culling with offscreen rendering Since offscreen rendering is internally forced to be upside down Cogl needs to reverse the glFrontFace winding order so as not to interfere with the use of cogl_set_backface_culling_enabled() This ensures we test that mechanism. tests/conform/test-backface-culling.c | 172 +++++++++++++++++++++------------ 1 file changed, 111 insertions(+), 61 deletions(-) commit 60b642f5d6aada0d237cfb7d81f6b78299c29e73 Author: Robert Bragg Date: Thu Oct 22 16:56:01 2009 +0100 [tests] Adds test-cogl-readpixels.c for very basic cogl_read_pixels testing Mostly this was written to verify that we don't flip the data read back from an offscreen draw buffer. (since all offscreen rendering is done upside down) tests/conform/Makefile.am | 1 + tests/conform/test-cogl-readpixels.c | 153 ++++++++++++++++++++++++++++++++++ tests/conform/test-conform-main.c | 1 + 3 files changed, 155 insertions(+) commit 2ff7f2d287f8dc80f0e6e02bdc388d4fee99d878 Author: Robert Bragg Date: Thu Oct 22 12:36:17 2009 +0100 [tests] Adds test-cogl-offscreen to validate offscreen draw buffer This adds a basic test to check that rendering a few colored rectangles offscreen works and that the modelview gets restored when switching back to the previous buffer. tests/conform/Makefile.am | 1 + tests/conform/test-cogl-offscreen.c | 169 +++++++++++++++++++++++++++++++++++ tests/conform/test-conform-main.c | 1 + 3 files changed, 171 insertions(+) commit 369e68630daf7f833da986a19ad17043b43d61e3 Author: Robert Bragg Date: Wed Oct 21 16:06:43 2009 +0100 [tests] test-cogl-viewport tests semantics of over/under size viewports Unlike OpenGL Cogl puts the origin of windows/viewports at the top left instead of bottom left. This test verifies that we correctly translate Cogl viewports to OpenGL viewports for the awkward cases where the given viewport has an offset and/or the viewport has a different size to the current draw buffer. tests/conform/Makefile.am | 1 + tests/conform/test-cogl-viewport.c | 417 ++++++++++++++++++++++++++++++++++++ tests/conform/test-conform-main.c | 2 + 3 files changed, 420 insertions(+) commit bc24190b9ac32405d4be24d84968357921c7f7e2 Author: Robert Bragg Date: Mon Nov 2 01:23:25 2009 +0000 [test-texture-fbo] comment the colors defined in corner_colors It helps to be able to quickly glance at the definition to see which quadrant of the test actor should be which color, so when debugging a problem and looking at the visual output you can easily verify if it's being flipped upside down/left to right. tests/conform/test-texture-fbo.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit b41a81fb0868e51bf03d25446f8cc9748fcd6bc7 Author: Neil Roberts Date: Thu Sep 17 14:25:29 2009 +0100 Add a conformance test for clutter_texture_new_from_actor This contains four tests :- - A regular onscreen source with a clone next to it - An offscreen source with a clone. This is currently commented out because it no longer works. - An onscreen source with a rectangular clip and a clone. - An onscreen source with a clip from a path and a clone. The sources are all a 2x2 grid of colors. Each clone is tested that it either contains the color that should be at that grid position or that the stage color is showing through if the source is clipped. tests/conform/Makefile.am | 1 + tests/conform/test-conform-main.c | 1 + tests/conform/test-texture-fbo.c | 255 +++++++++++++++++++++++++++++++++++++ 3 files changed, 257 insertions(+) commit fec13f6202067f0700514db6676d3984b78a26df Author: Robert Bragg Date: Sat Oct 31 00:01:44 2009 +0000 [cogl-texture-2d-sliced] allow COGL_FORMAT_ANY with _new_with_size() It's useful when initialzing offscreen draw buffers to be able to ask Cogl to create a texture of a given size and with the default internal pixel format. clutter/cogl/cogl/cogl-texture-2d-sliced.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ae57c30e937d90eb1e541edd36ae9f81aedc2854 Author: Robert Bragg Date: Sun Nov 1 23:56:03 2009 +0000 [texture] fix rounding when calculating update_fbo viewport offset When rendering to an fbo for supporting clutter_texture_new_from_actor we render to an fbo with the same size as the source actor, but with a viewport the same size as the stage. We offset the viewport so when we render the source actor in its normal transformed stage position it lands on the fbo. Previously we were rounding the transformed position given as a float by truncating the fraction (just using a C cast) but that resulted in an incorrect pixel offset when rendering offscreen depending on the source position. We now simply + 0.5 before casting (or -0.5 for negative numbers) clutter/clutter-texture.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) commit 309f852efbde6a3e025225d01293509c28989d0c Author: Robert Bragg Date: Mon Nov 2 01:14:50 2009 +0000 [texture] switch to a new design for handling offscreen rendering For supporting clutter_texture_new_from_actor(): when updating a ClutterTexture's fbo we previously set up an offset frustum in the perspective matrix before rendering source actors to an offscreen draw buffer so as to give a perspective as if it were being drawn at its original stage location. Now that Cogl supports offset viewports there is a simpler way... When we come to render the source actor to our offscreen draw buffer we now copy the projection matrix from the stage; we create a viewport that's also the same size as the stage (though larger than the offscreen draw buffer) and as before we apply the modelview transformations of the source actors ancestry before painting it. The only trick we need now is to offset the viewport according to the transformed (to screen space) allocation of the source actor (something we required previously too). We negatively offset the stage sized viewport such that the smaller offscreen draw buffer is positioned to sit underneath the source actor in stage coordinates. clutter/clutter-texture.c | 100 ++++++++++++++++----------------------------- 1 file changed, 35 insertions(+), 65 deletions(-) commit 94a6028358caed32dba7ba37db9784c95d4690f2 Author: Robert Bragg Date: Thu Sep 24 14:34:09 2009 +0100 [texture] split out fbo update code from cluter_texture_paint To help keep clutter_texture_paint maintainable this splits out a big chunk of standalone code that's responsible for updating the fbo when clutter_texture_new_from_actor has been used. clutter/clutter-texture.c | 156 +++++++++++++++++++++++---------------------- 1 file changed, 81 insertions(+), 75 deletions(-) commit 2762e6d9b90731fd05b46aac407cebd3ba372027 Author: Robert Bragg Date: Tue Oct 13 22:22:39 2009 +0100 [texture] push/pop draw buffer when painting actors to a texture When updating the FBO for a source actor (to support clutter_texture_new_from_actor()) we used to simply set an offscreen draw buffer to be current, paint the source actor and then explicitly set the window to be current again. This precluded chaining texture_new_from_actor though because updating another FBO associated with a source actor would end up restoring the window as the current buffer instead of the previous offscreen buffer. Now that we use Cogl's draw buffer stack; chaining clutter_texture_new_from_actor() should be possible. clutter/clutter-texture.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit c7d229585f2e8dec30162cbad955230c25e16718 Author: Robert Bragg Date: Fri Oct 23 00:16:30 2009 +0100 [texture] Avoid redundant use of cogl_clip_stack_save when drawing offscreen Since cogl draw buffers now own their clip state the stage's clip state will automatically be saved and restored via the cogl_set_draw_buffer API. clutter/clutter-texture.c | 6 ------ 1 file changed, 6 deletions(-) commit 90dbae5aa9a31688f2dd73b75df67607795fa60e Author: Robert Bragg Date: Sat Oct 31 00:00:33 2009 +0000 [cogl-draw-buffer] fix Cogl -> GL viewport coord conversion Before we call glViewport we need to convert Cogl viewport coordinates (where the origin is defined to be top left) to OpenGL coordinates (where the origin is defined to be bottom left) We weren't considering that offscreen rendering is always upside down and in this case Cogl coordinates == OpenGL coordinates. clutter/cogl/cogl/cogl-draw-buffer.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) commit 149e3e168a14049bb496a6438b711caa1fbe8129 Author: Robert Bragg Date: Fri Oct 30 23:57:56 2009 +0000 [cogl_clip_push_window_rect] fix Cogl -> GL coordinate conversion Firstly this now uses the draw buffer height not the viewport height when we need to perform a y = height - y conversion, since (as the name suggests) we are dealing with window coordinates not viewport coordinates. Secondly this skips any conversion when the current draw buffer is an offscreen draw buffer since offscreen rendering is always forced to be upside down and in this case Cogl window coordinates == GL window coordinates. clutter/cogl/cogl/cogl-clip-stack.c | 32 ++++++++++++++++++++++++++------ 1 file changed, 26 insertions(+), 6 deletions(-) commit 0369a1b84d725c6dbd90f9a9dd1753bea1f9c3e1 Author: Robert Bragg Date: Mon Oct 26 17:51:34 2009 +0000 [matrix] Adds cogl_matrix_get_inverse API This new API takes advantage of the recently imported Mesa code to support inverse matrix calculation. The matrix code keeps track (via internal flags) of the transformations a matrix represents so that it can select an optimized inversion function. Note: although other aspects of the Cogl matrix API have followed a similar style to Cairo's matrix API we haven't added a cogl_matrix_invert API because the inverse of a CoglMatrix is actually cached as part of the CoglMatrix structure meaning a destructive API like cogl_matrix_invert doesn't let users take advantage of this caching design. clutter/cogl/cogl/cogl-context.h | 3 --- clutter/cogl/cogl/cogl-matrix-stack.c | 11 ++++++++ clutter/cogl/cogl/cogl-matrix-stack.h | 3 +++ clutter/cogl/cogl/cogl-matrix.c | 33 ++++++++++++++--------- clutter/cogl/cogl/cogl-matrix.h | 21 +++++++++++++++ clutter/cogl/cogl/cogl.c | 47 +++++++-------------------------- 6 files changed, 65 insertions(+), 53 deletions(-) commit 8051596e96a296cf30887f6e522a288895b628f8 Author: Robert Bragg Date: Mon Oct 26 11:01:33 2009 +0000 [debug] Adds a COGL_DEBUG=matrices debug option This adds a COGL_DEBUG=matrices debug option that can be used to trace all matrix manipulation done using the Cogl API. This can be handy when you break something in such a way that a trace is still comparable with a previous working version since you can simply diff a log of the broken version vs the working version to home in on the bug. clutter/cogl/cogl/cogl-debug.c | 3 +- clutter/cogl/cogl/cogl-debug.h | 3 +- clutter/cogl/cogl/cogl-matrix-private.h | 47 +++++++++++++++++++++++++++++++ clutter/cogl/cogl/cogl-matrix.c | 20 +++++++++++++ clutter/cogl/cogl/cogl.c | 5 ++++ 5 files changed, 76 insertions(+), 2 deletions(-) commit eb438dd499c002a7d770d5e3d0c1fb1c84da933e Author: Robert Bragg Date: Mon Oct 26 08:23:21 2009 +0000 [cogl-matrix] Import Mesa's matrix manipulation code This pulls in code from Mesa to improve our matrix manipulation support. It includes support for calculating the inverse of matrices based on top of a matrix categorizing system that allows optimizing certain matrix types. (the main thing we were after) but also adds some optimisations for rotations. Changes compared to the original code from Mesa: - Coding style is consistent with the rest of Cogl - Instead of allocating matrix->m and matrix->inv using malloc, our public CoglMatrix typedef is large enough to directly contain the matrix, its inverse, a type and a set of flags. - Instead of having a _math_matrix_analyse which updates the type, flags and inverse, we have _math_matrix_update_inverse which essentially does the same thing (internally making use of _math_matrix_update_type_and_flags()) but with additional guards in place to bail out when the inverse matrix is still valid. - When initializing a matrix with the identity matrix we don't immediately initialize the inverse matrix; rather we just set the dirty flag for the inverse (since it's likely the user won't request the inverse of the identity matrix) clutter/cogl/cogl/Makefile.am | 2 + clutter/cogl/cogl/cogl-matrix-mesa.c | 1698 ++++++++++++++++++++++++++++++++++ clutter/cogl/cogl/cogl-matrix-mesa.h | 226 +++++ clutter/cogl/cogl/cogl-matrix.c | 39 +- clutter/cogl/cogl/cogl-matrix.h | 6 +- 5 files changed, 1967 insertions(+), 4 deletions(-) commit d38d888f786f3be03778bcc10f20389e6c7ff1ff Author: Robert Bragg Date: Thu Oct 22 19:09:20 2009 +0100 [cogl] avoid any state changes when cogl_set_backface_culling_enable is a nop This is a simple optimization to bail out of cogl_set_backface_culling_enable if it's not resulting in a change of state. clutter/cogl/cogl/cogl.c | 3 +++ 1 file changed, 3 insertions(+) commit 764cca75b4ee6bb269097445cb5220f0e044a57c Author: Robert Bragg Date: Thu Oct 22 19:01:52 2009 +0100 [cogl] Use clockwise face winding for offscreen buffers with culling enabled Because Cogl defines the origin for texture as top left and offscreen draw buffers can be used to render to textures, we (internally) force all offscreen rendering to be upside down. (because OpenGL defines the origin to be bottom left) By forcing the users scene to be rendered upside down though we also reverse the winding order of all the drawn triangles which may interfere with the users use of backface culling. This patch ensures that we reverse the winding order for a front face (if culling is in use) while rendering offscreen so we don't conflict with the users back face culling. clutter/cogl/cogl/cogl-context.c | 2 ++ clutter/cogl/cogl/cogl-context.h | 1 + clutter/cogl/cogl/cogl-internal.h | 9 +++++++++ clutter/cogl/cogl/cogl-journal.c | 1 + clutter/cogl/cogl/cogl-primitives.c | 1 + clutter/cogl/cogl/cogl-vertex-buffer.c | 1 + clutter/cogl/cogl/cogl.c | 33 ++++++++++++++++++++++++++++++++ 7 files changed, 48 insertions(+) commit b2ebb7db485d0a58bcb642fe9e4584c85ac9a503 Author: Robert Bragg Date: Fri Oct 30 23:54:13 2009 +0000 [main] Use cogl_read_pixels not glReadPixels in clutter-main.c The debugging function read_pixels_to_file() and _clutter_do_pick were both directly calling glReadPixels, but we don't wan't Clutter making direct OpenGL calls and Cogl provides a suitable alternative. It also means read_pixels_to_file() doesn't need to manually flip the data read due to differences in Clutter/Cogl coordinate systems. clutter/clutter-main.c | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) commit 40b8399d49f6b0383b9eebcdf1ca501b5edb4f39 Author: Robert Bragg Date: Tue Nov 3 12:54:45 2009 +0000 [cogl_read_pixels] don't force a 4 byte pack alignment Technically this change shouldn't make a difference since we are calling glReadPixels with GL_RGBA GL_UNSIGNED_BYTE which is a 4 byte format and it should always result in the same value according to how OpenGL calculates the location of sequential rows. i.e. k = a/s * ceil(snl/a) where: a = alignment s = component size (1) n = number of components per pixel (4) l = number of pixels in a row gives: k = 4/1 * ceil(4l/4) and k = 1/1 * ceil(4l/1) which are equivalent I'm changing it because I've seen i915 driver code that bails out of hardware accelerated paths if the alignment isn't 1, and because conceptually we have no alignment constraints here so even if the current value has no effect, when we start reading back other formats it may upset things. clutter/cogl/cogl/cogl.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit a222ee22f9dd35c5e0671914206759699e63750d Author: Robert Bragg Date: Mon Nov 2 01:11:21 2009 +0000 [cogl_read_pixels] call cogl_flush() before changing glPixelStore state We were previously calling cogl_flush() after setting up the glPixelStore state for calling glReadPixels, but flushing the journal could itself change the glPixelStore state. clutter/cogl/cogl/cogl.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit ed431a3c65507b3e3da4760eae6e2b22be1f27f5 Author: Robert Bragg Date: Mon Nov 2 01:10:02 2009 +0000 [cogl_read_pixels] ensure we flush the current draw buffer state before reading Make sure we call _cogl_draw_buffer_flush_state() before glReadPixels() to be sure we have bound the correct framebuffer. clutter/cogl/cogl/cogl.c | 3 +++ 1 file changed, 3 insertions(+) commit b47404c91d6fac264840a0dafb5dd2dd5567c6a9 Author: Robert Bragg Date: Mon Nov 2 01:12:10 2009 +0000 [cogl_read_pixels] fixes for calculating the y offset when rendering offscreen Since offscreen rendering is forced to be upside down we don't need to do any conversion of the users coordinates to go from Cogl window coordinates to OpenGL window coordinates. clutter/cogl/cogl/cogl.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit 426197f51da9c4351b36812276f0caee06965cb1 Author: Robert Bragg Date: Thu Oct 22 16:55:07 2009 +0100 [read-pixels] don't flip data when reading from offscreen draw buffers Since we do all offscreen rendering upside down (so that we can have the origin for texture coordinates be the top left of textures for the cases where offscreen draw buffers are bound to textures) we don't need to flip data read back from an offscreen framebuffer before we we return it to the user. clutter/cogl/cogl/cogl.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit 21322848e0094a025dc0b5461eff30e0d66542da Author: Robert Bragg Date: Wed Oct 21 23:22:45 2009 +0100 [clip-stack] tidy up transform_point() code I was originally expecting the code not to handle offset viewports or viewports with a different size to the framebuffer, but it turns out the code worked fine. In the process though I think I made the code slightly more readable. clutter/cogl/cogl/cogl-clip-stack.c | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) commit 8c3a132ecb3ce805c45dad70c05417713ed9d05d Author: Robert Bragg Date: Tue Nov 3 13:26:58 2009 +0000 [cogl] deprecate cogl_viewport() in favour of cogl_set_viewport() cogl_viewport only accepted a viewport width and height, but there are times when it's also desireable to have a viewport offset so that a scene can be translated after projection but before hitting the framebuffer. README | 6 ++++++ clutter/clutter-texture.c | 2 +- clutter/cogl/cogl/cogl.c | 12 ++++++------ clutter/cogl/cogl/cogl.h.in | 22 +++++++++++++++++++++- 4 files changed, 34 insertions(+), 8 deletions(-) commit 1e2d88e7891a02b26d0143e28788072e8731be6b Author: Robert Bragg Date: Wed Oct 21 23:24:28 2009 +0100 [cogl_read_pixels] use buffer not viewport height to calculate y offset glReadPixel takes window coordinates not viewport coordinates so we shouldn't have been assuming that the viewport height == window height. clutter/cogl/cogl/cogl.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit e1630be35a912125b1f493c7d1007b65eaecd048 Author: Robert Bragg Date: Wed Oct 21 23:20:44 2009 +0100 [draw-buffer] Adds cogl_draw_buffer_get_{width,height} API Simply adds missing API to query the width and height of any Cogl draw buffer. clutter/cogl/cogl/cogl-draw-buffer-private.h | 4 ++++ clutter/cogl/cogl/cogl-draw-buffer.c | 14 ++++++++++++++ 2 files changed, 18 insertions(+) commit 12af2751392ea53959fa41dd7cb19e07358655f2 Author: Robert Bragg Date: Wed Oct 21 23:24:49 2009 +0100 [cogl] Make sure Cogl always knows the current window geometry Because Cogl defines the origin of viewport and window coordinates to be top-left it always needs to know the size of the current window so that Cogl window/viewport coordinates can be transformed into OpenGL coordinates. This also fixes cogl_read_pixels to use the current draw buffer height instead of the viewport height to determine the OpenGL y coordinate to use for glReadPixels. clutter/clutter-backend.c | 19 +++++++++++++++++- clutter/clutter-stage.c | 8 ++++++++ clutter/cogl/cogl/cogl-context.c | 2 +- clutter/cogl/cogl/cogl-context.h | 2 +- clutter/cogl/cogl/cogl-draw-buffer.c | 36 +++++++++++++++++++++++++++++----- clutter/cogl/cogl/cogl.h.in | 3 +++ 6 files changed, 62 insertions(+), 8 deletions(-) commit e3391b0173479b9ba3b01321ab606d83999bee1a Author: Robert Bragg Date: Thu Oct 22 16:13:01 2009 +0100 [cogl] Make sure we draw upside down to offscreen draw buffers First a few notes about Cogl coordinate systems: - Cogl defines the window origin, viewport origin and texture coordinates origin to be top left unlike OpenGL which defines them as bottom left. - Cogl defines the modelview and projection identity matrices in exactly the same way as OpenGL. - I.e. we believe that for 2D centric constructs: windows/framebuffers, viewports and textures developers are more used to dealing with a top left origin, but when modeling objects in 3D; an origin at the center with y going up is quite natural. The way Cogl handles textures is by uploading data upside down in OpenGL terms so that bottom left becomes top left. (Note: This also has the benefit that we don't need to flip the data we get from image decoding libraries since they typically also consider top left to be the image origin.) The viewport and window coords are mostly handled with various y = height - y tweaks before we pass y coordinates to OpenGL. Generally speaking though the handling of coordinate spaces in Cogl is a bit fragile. I guess partly because none of it was design to be, it just evolved from how Clutter defines its coordinates without much consideration or testing. I hope to improve this over a number of commits; starting here. This commit deals with the fact that offscreen draw buffers may be bound to textures but we don't "upload" the texture data upside down, and so if you texture from an offscreen draw buffer you need to manually flip the texture coordinates to get it the right way around. We now force offscreen rendering to be flipped upside down by tweaking the projection matrix right before we submit it to OpenGL to scale y by -1. The tweak is entirely hidden from the user such that if you call cogl_get_projection you will not see this scale. clutter/cogl/cogl/cogl-context.c | 4 +++ clutter/cogl/cogl/cogl-context.h | 4 +++ clutter/cogl/cogl/cogl-draw-buffer-private.h | 3 +++ clutter/cogl/cogl/cogl-matrix-stack.c | 36 +++++++++++++++++++------- 4 files changed, 37 insertions(+), 10 deletions(-) commit 8b4c496f2a0291eb202d775e210b5901b6b73940 Author: Robert Bragg Date: Thu Oct 22 12:35:33 2009 +0100 [cogl] Ensure features are initialized first in cogl_create_context Previously some context initializing was being done without valid feature flags. clutter/cogl/cogl/cogl-context.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 419db4dcfbef74475e155f8dd060bc1c526d5643 Author: Robert Bragg Date: Sat Oct 17 00:31:26 2009 +0100 [clip-stack] Handle flipped rectangles in try_pushing_rect_as_window_rect() We were ignoring the possibility that the current modelview matrix may flip the incoming rectangle in which case we didn't calculate a valid scissor rectangle for clipping. This fixes: http://bugzilla.o-hand.com/show_bug.cgi?id=1809 (Clipping doesn't work within an FBO) clutter/cogl/cogl/cogl-clip-stack.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) commit f7d64e5abd5717bb522d28b7565ecccae63271fc Author: Robert Bragg Date: Fri Sep 25 14:34:34 2009 +0100 [draw-buffers] First pass at overhauling Cogl's framebuffer management Cogl's support for offscreen rendering was originally written just to support the clutter_texture_new_from_actor API and due to lack of documentation and several confusing - non orthogonal - side effects of using the API it wasn't really possible to use directly. This commit does a number of things: - It removes {gl,gles}/cogl-fbo.{c,h} and adds shared cogl-draw-buffer.{c,h} files instead which should be easier to maintain. - internally CoglFbo objects are now called CoglDrawBuffers. A CoglDrawBuffer is an abstract base class that is inherited from to implement CoglOnscreen and CoglOffscreen draw buffers. CoglOffscreen draw buffers will initially be used to support the cogl_offscreen_new_to_texture API, and CoglOnscreen draw buffers will start to be used internally to represent windows as we aim to migrate some of Clutter's backend code to Cogl. - It makes draw buffer objects the owners of the following state: - viewport - projection matrix stack - modelview matrix stack - clip state (This means when you switch between draw buffers you will automatically be switching to their associated viewport, matrix and clip state) Aside from hopefully making cogl_offscreen_new_to_texture be more useful short term by having simpler and well defined semantics for cogl_set_draw_buffer, as mentioned above this is the first step for a couple of other things: - Its a step toward moving ownership for windows down from Clutter backends into Cogl, by (internally at least) introducing the CoglOnscreen draw buffer. Note: the plan is that cogl_set_draw_buffer will accept on or offscreen draw buffer handles, and the "target" argument will become redundant since we will instead query the type of the given draw buffer handle. - Because we have a common type for on and offscreen framebuffers we can provide a unified API for framebuffer management. Things like: - blitting between buffers - managing ancillary buffers (e.g. attaching depth and stencil buffers) - size requisition - clearing clutter/clutter-main.c | 5 +- clutter/cogl/cogl/Makefile.am | 2 + clutter/cogl/cogl/cogl-clip-stack.c | 199 +++++-- clutter/cogl/cogl/cogl-clip-stack.h | 9 +- clutter/cogl/cogl/cogl-context.c | 34 +- clutter/cogl/cogl/cogl-context.h | 20 +- clutter/cogl/cogl/cogl-draw-buffer-private.h | 126 +++++ clutter/cogl/cogl/cogl-draw-buffer.c | 555 ++++++++++++++++++++ clutter/cogl/cogl/cogl-journal.c | 33 +- clutter/cogl/cogl/cogl-primitives.c | 19 +- clutter/cogl/cogl/cogl-texture.c | 19 +- clutter/cogl/cogl/cogl-vertex-buffer.c | 14 +- clutter/cogl/cogl/cogl.c | 220 +++++--- clutter/cogl/cogl/cogl.h.in | 1 + clutter/cogl/cogl/driver/gl/Makefile.am | 2 - clutter/cogl/cogl/driver/gl/cogl-context-driver.c | 19 +- clutter/cogl/cogl/driver/gl/cogl-context-driver.h | 23 +- clutter/cogl/cogl/driver/gl/cogl-defines.h.in | 28 +- clutter/cogl/cogl/driver/gl/cogl-fbo.c | 315 ----------- clutter/cogl/cogl/driver/gl/cogl-fbo.h | 39 -- clutter/cogl/cogl/driver/gl/cogl-primitives.c | 99 +++- clutter/cogl/cogl/driver/gl/cogl-texture-driver.c | 2 +- clutter/cogl/cogl/driver/gl/cogl.c | 114 ++-- clutter/cogl/cogl/driver/gles/Makefile.am | 2 - .../cogl/cogl/driver/gles/cogl-context-driver.c | 10 + .../cogl/cogl/driver/gles/cogl-context-driver.h | 17 +- clutter/cogl/cogl/driver/gles/cogl-defines.h.in | 70 +++ clutter/cogl/cogl/driver/gles/cogl-fbo.c | 328 ------------ clutter/cogl/cogl/driver/gles/cogl-fbo.h | 39 -- clutter/cogl/cogl/driver/gles/cogl-primitives.c | 121 ++++- clutter/cogl/cogl/driver/gles/cogl.c | 75 +++ 31 files changed, 1471 insertions(+), 1088 deletions(-) commit f8f8873714043efbcbf92718493a94ac9ddf303f Author: Robert Bragg Date: Tue Oct 20 16:55:10 2009 +0100 [stage-x11] Ensure viewport is initialized before first stage paint This ensures that glViewport is called before the first stage paint. Previously _clutter_stage_maybe_setup_viewport (which is done before we start painting) was bailing out without calling cogl_setup_viewport because the CLUTTER_STAGE_IN_RESIZE flag may be set if the stage was resized before the first paint. (NB: The CLUTTER_STAGE_IN_RESIZE flag isn't removed until we get an explicit event back from the X server since the window manager may choose to deny/alter the resize.) We now special case the first resize - where the viewport hasn't previously been initialized and use the requested geometry to initialize the glViewport without waiting for a reply from the server. clutter/x11/clutter-stage-x11.c | 18 ++++++++++++++++++ clutter/x11/clutter-stage-x11.h | 7 ++++--- 2 files changed, 22 insertions(+), 3 deletions(-) commit ad98e96d977e43a882b8a2f680e59ed281c90baf Author: Robert Bragg Date: Tue Sep 15 22:19:01 2009 +0100 [cogl-fbo] Bring the gles code more in line with gl code Over time the two cogl-fbo.c files have needlessly diverged as bug fixes or cleanups went into one version but not the other. This tries to bring them back in line with each other. It should actually be simple enough to move cogl-fbo.c to be a common file, and simply not build it for GLES 1.1, so maybe I'll follow up with such a patch soon. clutter/cogl/cogl/driver/gles/cogl-fbo.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 613977f7108efb8897bffb2e47bfcf29bce29ddc Author: Robert Bragg Date: Tue Sep 15 22:15:03 2009 +0100 [cogl-fbo] Remove poorly documented workaround for unknown driver/hardware The comment just said: "Some implementation require a clear before drawing to an fbo. Luckily it is affected by scissor test." and did a scissored clear, which is clearly a driver bug workaround, but for what driver? The fact that it was copied into the gles backend (or vica versa is also suspicious since it seems unlikely that the workaround is necessary for both backends.) We can easily restore the workaround with a better comment if this problem really still exists on current drivers, but for now I'd rather minimize hand-wavey workaround code that can't be tested. clutter/cogl/cogl/driver/gl/cogl-fbo.c | 10 ---------- clutter/cogl/cogl/driver/gles/cogl-fbo.c | 19 ------------------- 2 files changed, 29 deletions(-) commit 0599d12ec94344174c947310bddb5658f1b9db58 Author: Damien Lespiau Date: Sun Nov 1 14:36:05 2009 +0000 texture: Don't compare fbo_source with COGL_INVALID_HANDLE fbo_source is a ClutterActor, it should be compared to NULL instead of COGL_INVALID_HANDLE. clutter/clutter-texture.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f6e0e48ac613d10d02d27182ebd48be1aeb8b474 Author: Emmanuele Bassi Date: Fri Oct 30 12:11:19 2009 +0000 build: Add missing gles/cogl-context-driver.h to dist The gles/cogl-context-driver.h header file is missing from the dist target, which means it's not in the tarballs. clutter/cogl/cogl/driver/gles/Makefile.am | 1 + 1 file changed, 1 insertion(+) commit f551cbfb61adb1c454fa36477ad5847b6238e17b Author: Emmanuele Bassi Date: Fri Oct 30 11:02:35 2009 +0000 Add run-time version checks Just like CLUTTER_CHECK_VERSION does version checking at compile time, we need a way to verify the version of the library that we are linking against. This is mostly needed for language bindings and for run-time loadable modules -- when we'll get those. clutter/clutter-main.c | 34 ++++++++++++++++++++++++++++ clutter/clutter-version.h.in | 15 +++++++++++- doc/reference/clutter/clutter-sections.txt | 7 ++++++ 3 files changed, 55 insertions(+), 1 deletion(-) commit f8e6727e74c80b80bba3ccb9201e1afd23349c35 Author: Neil Roberts Date: Tue Oct 27 13:18:51 2009 +0000 [cogl_polygon] Enable COGL_ENABLE_BLEND when use_color is set Otherwise you can't use the alpha channel of the vertex colors unless the material has a texture with alpha or the material's color has alpha less than 255. clutter/cogl/cogl/cogl-primitives.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0c32573ffa980fffc966cf35768233a3ff1ed076 Author: Neil Roberts Date: Tue Oct 27 12:38:10 2009 +0000 build: Add $(top_buiddir)/clutter/cogl to the include path in clutter/cogl/cogl Some files try to include "cogl/cogl-defines-gl.h" so $(top_builddir)/clutter/cogl needs to be in the include path for out of tree builds to work. clutter/cogl/cogl/Makefile.am | 1 + 1 file changed, 1 insertion(+) commit c387513a5fd5293cb8cf60e9c1334ceeff905852 Author: Emmanuele Bassi Date: Mon Oct 26 16:29:31 2009 +0000 color: Fix HLS-to-RGB conversion Apparently, on 64bit systems the floating point noise is enough to screw up the float-to-int truncation. The solution is to round up by 0.5 and then use floorf(). This gives predictable and correct results on both 32bit and 64bit systems. clutter/clutter-color.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 5a14db50891196a9d17a0df49bf0858551e5a0af Author: Emmanuele Bassi Date: Mon Oct 26 16:02:06 2009 +0000 layout: Do not create a LayoutMeta on remove When calling remove_child_meta() we check if there is a LayoutMeta already attached to the Actor, and if that LayoutMeta matches the (manager, container, actor) tuple. If the LayoutMeta does not match, though, we create a new LayoutMeta instance -- in order to remove it right afterwards. Instead of doing this, we can simply check for a matching LayoutMeta and if present, remove it. In case of an existing, non-matching LayoutMeta, we're left with a dangling instance, but it does not matter: the removal happens in the unparenting phase of a ClutterContainer, so either the Actor will be destroyed and thus the LayoutMeta will be disposed along with it; or it will be parented to another container, and thus the LayoutMeta will be replaced. clutter/clutter-layout-manager.c | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) commit 5a63e8af8f715c3fe6ded8a9432c999aab73311a Author: Emmanuele Bassi Date: Mon Oct 26 15:10:20 2009 +0000 tests: Use the right key symbol for adding children The test-box-layout should be using CLUTTER_plus instead of a literal '+'. tests/interactive/test-box-layout.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a5a0171cb02dcbd67efbf87480aa5cea215c128d Author: Emmanuele Bassi Date: Mon Oct 26 15:09:07 2009 +0000 box: Depth level changes should queue a relayout ClutterBox is not ClutterGroup: a change in the level of an actor through raise, lower or depth sorting must trigger a relayout. clutter/clutter-box.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 2cad7e24f00e2f8fccfdc75086dd9e1071d71c18 Author: Emmanuele Bassi Date: Mon Oct 26 15:08:03 2009 +0000 box: Check before using the LayoutManager instance A ClutterBox might not have a ClutterLayoutManager instance associated -- for instance, during destruction. We should check for one before calling methods on it. clutter/clutter-box.c | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) commit 81c8cf3e6d839b13e106ab346feaccf1f2f9d3fd Author: Emmanuele Bassi Date: Mon Oct 26 11:51:30 2009 +0000 texture: Error handling fix When cogl_texture_new_from_data() fails in clutter_texture_set_from_data() and no GError is provided, the clutter app will segfault when dereferencing the GError ** and emitting LOAD_FINISHED signal. Based on a patch by: Haakon Sporsheim http://bugzilla.openedhand.com/show_bug.cgi?id=1806 clutter/clutter-texture.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) commit 00748f66560f3105ff9c636cd01428d8b5e30e9e Author: Emmanuele Bassi Date: Mon Oct 26 11:42:16 2009 +0000 tests: Print out the captured event type The ::captured-event signal on the Stage is not printing out the event type. tests/interactive/test-events.c | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) commit f0b434918bcdb0d77467d66d28448672940f6a90 Author: Emmanuele Bassi Date: Fri Oct 23 17:32:18 2009 +0100 docs: Add images for layout managers It's easier to show the layout manager policy with a simple screen shot coming from our interactive tests. clutter/clutter-bin-layout.c | 10 ++++++++++ clutter/clutter-box-layout.c | 7 +++++++ clutter/clutter-flow-layout.c | 16 ++++++++++++++++ doc/reference/clutter/Makefile.am | 8 ++++++++ doc/reference/clutter/bin-layout.png | Bin 0 -> 12890 bytes doc/reference/clutter/box-layout.png | Bin 0 -> 5119 bytes doc/reference/clutter/flow-layout-horizontal.png | Bin 0 -> 5888 bytes doc/reference/clutter/flow-layout-vertical.png | Bin 0 -> 5333 bytes 8 files changed, 41 insertions(+) commit 924780ce3511ba9bc9e2a6b955836eaaa4d0a216 Author: Emmanuele Bassi Date: Fri Oct 23 16:44:28 2009 +0100 cogl: Avoid C99-isms Do not declare variables after statements. clutter/cogl/cogl/cogl.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b56b26cc62a851ee4a851a27ce0d6b76936afc6a Author: Emmanuele Bassi Date: Fri Oct 23 15:46:25 2009 +0100 cogl: Remove cogl-current-matrix.c The cogl-current-matrix.c file is unused since commit 5e5d94dfbed18bf2b4c8c7a7ff9847952b2c4ae2 and it's not compiled or distributed anymore. clutter/cogl/cogl/cogl-current-matrix.c | 409 ------------------------------- 1 file changed, 409 deletions(-) commit 1c43c195098b4705b59891b6b98bc24407cb3264 Author: Emmanuele Bassi Date: Fri Oct 23 14:30:15 2009 +0100 Update Git ignore rules .gitignore | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 0d5af4c24932b5e468fa21e8ddd1c85d9c807320 Author: Emmanuele Bassi Date: Fri Oct 23 13:55:50 2009 +0100 Post-release bump to 1.1.3 configure.ac | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit dec06979b911ca410cc289f12e053a2d49c49abb Author: Emmanuele Bassi Date: Fri Oct 23 13:38:28 2009 +0100 Release 1.1.2 developers snapshot .gitignore | 2 +- NEWS | 95 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ README | 8 +++++ configure.ac | 2 +- 4 files changed, 105 insertions(+), 2 deletions(-) commit 24594bcde40cc282efa94f9076a1b687c9e9827e Author: Emmanuele Bassi Date: Fri Oct 23 12:15:25 2009 +0100 build: Make COGL pass distcheck Some changes to make COGL pass distcheck with Automake 1.11 and anal-retentiveness turned up to 11. The "major" change is the flattening of the winsys/ part of COGL, which is built directly inside libclutter-cogl.la instead of an intermediate libclutter-cogl-winsys.la object. Ideally, the whole COGL should be flattened out using a quasi-non-recursive Automake layout; unfortunately, the driver/ sub-section ships with identical targets and Automake cannot distinguish GL and GLES objects. clutter/cogl/cogl/Makefile.am | 196 +++++++++++++++++----------------- clutter/cogl/cogl/winsys/Makefile.am | 43 -------- configure.ac | 1 - 3 files changed, 98 insertions(+), 142 deletions(-) commit c882893e91b1b3ec42be8d790a8210c17de58666 Author: Emmanuele Bassi Date: Fri Oct 23 10:17:40 2009 +0100 actor: Identify allocation cycles If an actor calls directly or indirectly clutter_actor_queue_relayout() on itself from within the allocate() implementation it will cause a relayout cycle. This is usually a condition that should be checked by ClutterActor and we should emit a warning if it is verified. clutter/clutter-actor.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit ca15143d1fbb09d5dbe0daeb09d7765b7cf0dfe3 Author: Emmanuele Bassi Date: Fri Oct 23 10:08:02 2009 +0100 actor: Add checks for IN_DESTRUCTION flag ClutterActor should check whether the current instance is being destroyed and avoid performing operations like: • queueing redraws • queueing relayouts It should also warn if the actor is being parented to an actor currently being destroyed. clutter/clutter-actor.c | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) commit 7de47e74bda68c5d4dde82f2cbba6782fcf69d27 Author: Emmanuele Bassi Date: Fri Oct 23 09:48:35 2009 +0100 actor: Show actor name or type in the state checks warnings When showing a warning in the state checks we perform to verify that the invariants are maintained when showing, mapping and realizing, we should also print out the name of the actor failing the checks. If the actor has no name, the GType name should be used as a fallback. clutter/clutter-actor.c | 69 ++++++++++++++++++++++++++++++++--------------- 1 file changed, 47 insertions(+), 22 deletions(-) commit f02874470682f819766055f3976a2d6c74988dc7 Author: Neil Roberts Date: Thu Oct 22 16:55:29 2009 +0100 Fix some compilation errors in cogl-gles2-wrapper.c The changes in 74f2122b6 introduced some syntax errors which were preventing the GLES2 backend from compiling. clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.c | 27 +++++++++----------- 1 file changed, 12 insertions(+), 15 deletions(-) commit 8727c3127cc049bf22e3b7cb89041b104ae4fea7 Author: Emmanuele Bassi Date: Thu Oct 22 13:48:49 2009 +0100 clone: Set :source as CONSTRUCT The :source property for ClutterClone is a constructor property, but it most definitely is not a constructor-only one. clutter/clutter-clone.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b82f874b464b252c5f3bbb5e903197a048034430 Author: Neil Roberts Date: Thu Oct 22 15:39:30 2009 +0100 Remove cogl/{gl,gles}/Makefile.am These are no longer used anywhere. clutter/cogl/gl/Makefile.am | 62 ----------------------------- clutter/cogl/gles/Makefile.am | 88 ----------------------------------------- 2 files changed, 150 deletions(-) commit bd809f690a447c813bba02d83ba3c8b22a825b38 Author: Emmanuele Bassi Date: Wed Oct 21 17:44:44 2009 +0100 docs: Close the right tag to avoid XML errors clutter/clutter-alpha.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4996b2224a54efeddce776cade725ec1cd7fca69 Author: Emmanuele Bassi Date: Wed Oct 21 17:43:34 2009 +0100 docs: Rename the Shader and StageManager sections doc/reference/clutter/clutter-sections.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 673199b6e0399e8f1fcd52662429287f92cb95e9 Author: Emmanuele Bassi Date: Wed Oct 21 16:15:18 2009 +0100 tests: Update test-script Use explicit alpha definition and custom alpha functions. tests/interactive/test-script.c | 41 +++++++++++++++++++++++++++++++++------ 1 file changed, 35 insertions(+), 6 deletions(-) commit 7a52fddcd673c4aa14faf2396a0a74db644ba64d Author: Emmanuele Bassi Date: Wed Oct 21 16:04:12 2009 +0100 alpha: Manually parse the :mode property in ClutterScript The :mode property for a ClutterAlpha can either be an integer, for an easing mode logical id, or a string for the easing mode "nickname". clutter/clutter-alpha.c | 33 ++++++++++++++++++++++++++++++++- clutter/clutter-script-private.h | 2 ++ clutter/clutter-script.c | 12 +++++++++--- 3 files changed, 43 insertions(+), 4 deletions(-) commit 01bc3fa2c80e9c965222b88ad20b470ae00028ec Author: Emmanuele Bassi Date: Wed Oct 21 15:43:01 2009 +0100 script, docs: Update documentation for alphas It is now possible to have Alpha instances defined explicitly for behaviours, so we need to fix the documentation. clutter/clutter-script.c | 40 +++++++++++++++++++++++++++++++--------- 1 file changed, 31 insertions(+), 9 deletions(-) commit f0ed71c77dd94e6bf644aba84f2e1cdc2d874fc1 Author: Emmanuele Bassi Date: Wed Oct 21 15:29:25 2009 +0100 alpha: Allow setting the function in ClutterScript When defining an Alpha in ClutterScript we should allow setting the alpha function by using a custom property. This makes it possible to have both: { "id" : "behaviour-1", "type" : "ClutterBehaviourDepth", "alpha" : { "timeline" : "timeline-1", "function" : "alpha_func" }, ... } And: { "id" : "alpha-1", "type" : "ClutterAlpha", "timeline" : "timeline-1", "function" : "alpha_func" }, { "id" : "behaviour-1", "type" : "ClutterBehaviourDepth", "alpha" : "alpha-1", ... } The latter allows defining a single alpha function for multiple behaviours. clutter/clutter-alpha.c | 102 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 101 insertions(+), 1 deletion(-) commit 50aec3c540d6609d9980fab6a26ba14869982c8b Author: Emmanuele Bassi Date: Wed Oct 21 15:17:50 2009 +0100 script: Always allow setting object properties by id reference The block that allows setting a GObject property holding an object instance is conditionally depending on the USE_PIXBUF define. This makes it impossible to reference an object inside ClutterScript on platforms not using GdkPixbuf. clutter/clutter-script.c | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) commit ef8ae7d72f752e10552e254c1ff9e76d19430aac Author: Emmanuele Bassi Date: Wed Oct 21 15:16:43 2009 +0100 behaviour: Notify changes of the :alpha property The set_alpha() setter of ClutterBehaviour is not emitting notifications for the alpha property. clutter/clutter-behaviour.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) commit c13701052497b4cdb009f95ad8ccce9f4a7d825e Author: Owen W. Taylor Date: Mon Oct 5 23:20:07 2009 -0400 Force a relayout when showing an actor When an actor is hidden, the parent actor is not required to size request or allocate it. (ClutterGroup does, but, for example, NbtkBoxLayout doesn't.) This means that the needs_width_request/needs_height_request/needs_allocate can be stale when we go to show it again - they are set for the actor but not the parent. Explicitly setting them to FALSE avoids clutter_actor_relayout() improperly short-circuiting. http://bugzilla.openedhand.com/show_bug.cgi?id=1831 Signed-off-by: Emmanuele Bassi clutter/clutter-actor.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 571df43b6d2348fd4db4b0275c8ed55e760ab353 Author: Emmanuele Bassi Date: Tue Oct 20 22:05:04 2009 +0100 text: Invalidate caches and sizes in set_text_internal() The change in commit 3bbc96e17e5a03ba931c86a5cd2a0ecaa2a3b77b moved the :text property setter to use set_text_internal(); this function does not invalidate the Layout cache and does not queue a relayout, thus breaking the behaviour of ClutterText when setting the contents of the actor using the property. http://bugzilla.openedhand.com/show_bug.cgi?id=1851 clutter/clutter-text.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) commit 91c38f877fe0a6224c648ec9f6ecbab8190b536e Author: Robert Bragg Date: Tue Oct 20 14:57:40 2009 +0100 [group] Fix copy & paste error from 857b0239e (Use FixedLayout inside Group) clutter_group_get_preferred_height was calling clutter_layout_manager_get_preferred_width which e.g. broke test-actor-clone. clutter/clutter-group.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 74f2122b68547ac6228c1a8d49765aa71638fa1b Author: Robert Bragg Date: Tue Sep 29 02:56:23 2009 +0100 [gles2] remove lots of redundant matrix stack code Since we no longer depend on the GL matrix API in Cogl we can remove a lot of wrapper code from the GLES 2 backend. This is particularly nice given that there was no code shared between the cogl-matrix-stack API and gles2 wrappers so we had a lot of duplicated logic. clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.c | 287 +++----------------- clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.h | 9 +- 2 files changed, 34 insertions(+), 262 deletions(-) commit 5e5d94dfbed18bf2b4c8c7a7ff9847952b2c4ae2 Author: Robert Bragg Date: Tue Oct 13 23:09:42 2009 +0100 [cogl] Removes the cogl-current-matrix abstraction The indirection through this API isn't necessary since we no longer arbitrate between the OpenGL matrix API and Cogl's client side API. Also it doesn't help to maintain an OpenGL style matrix mode API for internal use since it's awkward to keep restoring the MODELVIEW mode and easy enough to directly work with the matrix stacks of interest. This replaces use of the _cogl_current_matrix API with direct use of the _cogl_matrix_stack API. All the unused cogl_current_matrix API is removed and the matrix utility code left in cogl-current-matrix.c was moved to cogl.c. clutter/cogl/cogl/Makefile.am | 2 - clutter/cogl/cogl/cogl-clip-stack.c | 15 +- clutter/cogl/cogl/cogl-context.c | 8 +- clutter/cogl/cogl/cogl-context.h | 4 +- clutter/cogl/cogl/cogl-current-matrix.h | 95 ---------- clutter/cogl/cogl/cogl-internal.h | 14 +- clutter/cogl/cogl/cogl-material.c | 2 + clutter/cogl/cogl/cogl-texture.c | 28 ++- clutter/cogl/cogl/cogl-util.c | 1 - clutter/cogl/cogl/cogl.c | 228 +++++++++++++++++++---- clutter/cogl/cogl/driver/gl/cogl-fbo.c | 26 +-- clutter/cogl/cogl/driver/gl/cogl-primitives.c | 24 +-- clutter/cogl/cogl/driver/gles/cogl-fbo.c | 27 ++- clutter/cogl/cogl/driver/gles/cogl-primitives.c | 24 +-- doc/reference/cogl/Makefile.am | 1 - 15 files changed, 271 insertions(+), 228 deletions(-) commit 9f7bf9fb4d234a25aba03266a286bc8c2d41f3fd Author: Robert Bragg Date: Wed Oct 14 10:53:48 2009 +0100 [matrix-stack] Adds ctx->flushed_matrix_mode to cache the gl matrix mode This cache of the gl matrix mode lets us avoid repeat calls to glMatrixMode in _cogl_matrix_stack_flush_to_gl when we have lots of sequential modelview matrix modifications. clutter/cogl/cogl/cogl-context.c | 1 + clutter/cogl/cogl/cogl-context.h | 1 + clutter/cogl/cogl/cogl-matrix-stack.c | 30 ++++++++++++++++++------------ 3 files changed, 20 insertions(+), 12 deletions(-) commit b1f9f0a97d1abd4465ed7c7bed1da4ed366491ad Author: Robert Bragg Date: Tue Oct 6 12:36:32 2009 +0100 matrix-stack: more optimization for load_identity case This goes a bit further than the previous patch, and as a special case we now simply represent identity matrices using a boolean, and only lazily initialize them when they need to be modified. clutter/cogl/cogl/cogl-matrix-stack.c | 82 ++++++++++++++++++++++++++++----- 1 file changed, 71 insertions(+), 11 deletions(-) commit 460025d60348e3346cfd864b81d9867ea8474eee Author: Robert Bragg Date: Tue Oct 6 10:52:07 2009 +0100 [matrix-stack] avoid redundant clearing of matrix when using load_identity The journal always uses an identity matrix since it uses software transformation. Currently it manually uses glLoadMatrix since previous experimentation showed that the cogl-matrix-stack gave bad performance, but it would be nice to fix performance so we only have to care about one path for loading matrices. For the common case where we do: cogl_matrix_stack_push() cogl_matrix_stack_load_identity() we were effectively initializing the matrix 3 times. Once due to use of g_slice_new0, then we had a cogl_matrix_init_identity in _cogl_matrix_state_new for good measure, and then finally in cogl_matrix_stack_load_identity we did another cogl_matrix_init_identity. We don't use g_slice_new0 anymore, _cogl_matrix_state_new is documented as not initializing the matrix (instead _cogl_matrix_stack_top_mutable now takes a boolean to choose if new stack entries should be initialised) and so we now only initialize once in cogl_matrix_stack_load_identity. clutter/cogl/cogl/cogl-matrix-stack.c | 54 ++++++++++++++++----------------- 1 file changed, 26 insertions(+), 28 deletions(-) commit 2656b569b9911b8aa427a5a02c8b1f4095de6ed7 Author: Robert Bragg Date: Tue Sep 29 02:58:27 2009 +0100 [current-matrix] Adds texture matrix stacks + removes GL matrix API usage This relates back to an earlier commitment to stop using the OpenGL matrix API which is considered deprecated. (ref 54159f5a1d029db) The new texture matrix stacks are hung from a list of (internal only) CoglTextureUnit structures which the CoglMaterial code internally references via _cogl_get_texure_unit (). So we would be left with only the cogl-matrix-stack code being responsible for glMatrixMode, glLoadMatrix and glLoadIdentity this commit updates the journal code so it now uses the matrix-stack API instead of GL directly. clutter/cogl/cogl/cogl-context.c | 4 + clutter/cogl/cogl/cogl-context.h | 5 +- clutter/cogl/cogl/cogl-current-matrix.c | 236 +++++++------------------------ clutter/cogl/cogl/cogl-internal.h | 12 ++ clutter/cogl/cogl/cogl-journal.c | 33 +++-- clutter/cogl/cogl/cogl-material.c | 22 +-- clutter/cogl/cogl/cogl-matrix-stack.c | 15 +- clutter/cogl/cogl/cogl.c | 59 ++++++++ 8 files changed, 174 insertions(+), 212 deletions(-) commit 473f7ee31ebd6d52126978ba4e155a3bebc4cac1 Author: Emmanuele Bassi Date: Mon Oct 19 15:31:29 2009 +0100 text: Take pre-edit cursor position into account When determining the cursor position we also need to take into account the pre-edit cursor position as set by the set_preedit_string() function. clutter/clutter-text.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) commit 23cd0b79254acd2b97467a62010244328e210a87 Author: Emmanuele Bassi Date: Mon Oct 19 12:01:38 2009 +0100 docs: Documentation fixes • Fix list_stages() and peek_stages() documentation • Fix clutter_text_set_preedit_string() arguments in the header to match source and documentation • Add clutter_units_cm() to the private section for Units • Rename the LayoutManager section • Add FlowLayout:homogeneous accessors clutter/clutter-stage-manager.c | 4 ++-- clutter/clutter-text.h | 4 ++-- doc/reference/clutter/clutter-sections.txt | 9 ++++++--- 3 files changed, 10 insertions(+), 7 deletions(-) commit ba25571c8e34593f99ba302edf381a0151c98bbb Merge: 936779f 8ce8b91 Author: Emmanuele Bassi Date: Mon Oct 19 11:45:15 2009 +0100 Merge branch 'layout-manager' * layout-manager: (50 commits) docs: Reword a link layout, docs: Add more documentation to LayoutManager layout, docs: Fix description of Bin properties layout, bin: Use ceilf() instead of casting to int layout, docs: Add long description for FlowLayout layout, box: Clean up layout, box: Write long description for Box layout, docs: Remove unused functions layout: Document BoxLayout layout: Add BoxLayout, a single line layout manager layout: Report the correct size of FlowLayout layout: Resizing the stage resizes the FlowLayout box layout: Use the get_request_mode() getter in BinLayout layout: Change the request-mode along with the orientation actor: Add set_request_mode() method [layout] Remove FlowLayout:wrap [layout] Rename BinLayout and FlowLayout interactive tests [layout] Skip invisible children in FlowLayout [layout] Clean up and document FlowLayout [layout] Snap children of FlowLayout to column/row ... commit 8ce8b91383390482efe56d982d945a384766ca8c Author: Emmanuele Bassi Date: Mon Oct 19 11:44:29 2009 +0100 docs: Reword a link clutter/clutter-layout-manager.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit cd3c85f7ba9094a250ec03f0380428fadafef0df Author: Emmanuele Bassi Date: Mon Oct 19 11:00:23 2009 +0100 layout, docs: Add more documentation to LayoutManager The layout manager reference should have some documentation on how to use a LayoutManager object inside a container and how to implement a LayoutManager sub-class correctly. clutter/clutter-layout-manager.c | 41 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) commit 936779fd96cc0d8d6713c5cb4c5dc9240cc04d97 Author: Emmanuele Bassi Date: Sun Oct 18 17:49:00 2009 +0100 build: Add back QUIET_GEN to the GIR generation clutter/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bc8a7bd5b4c70247e4bc8cccc194c12e5b6a9a2f Author: Emmanuele Bassi Date: Sun Oct 18 17:15:04 2009 +0100 Update ignore file .gitignore | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) commit ab376d961fee066f809169f32946a32700ea0e53 Author: Emmanuele Bassi Date: Sun Oct 18 17:12:12 2009 +0100 build: De-nest the JSON from the introspection rules The JSON conditional rules can be moved outside the introspection conditional ones to avoid a nested check, as all the JSON rules do is setting up variables that may or may not be used. clutter/Makefile.am | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) commit 5c162d904bbbbd5ae0f66885497dd0658d27e87f Author: Emmanuele Bassi Date: Sun Oct 18 17:11:42 2009 +0100 build: Use QUIET_GEN when building ClutterJson GIR clutter/json/Makefile.am | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 8f11b3ca48fde34f5bc214f1ff122e5ed6298eac Author: Emmanuele Bassi Date: Sun Oct 18 17:00:24 2009 +0100 build: Fix up the GIR generation rules The rules for generating Clutter's introspection data are still referencing the old COGL layout. clutter/Makefile.am | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit ad5c0af6399353ad49663954c6abd7305ecc9ad6 Author: Emmanuele Bassi Date: Sat Oct 17 00:30:37 2009 +0100 build: Add CPPFLAGS for the g-ir-scanner command line When I moved all CPP flags to AM_CPPFLAGS from the INCLUDES directive I forgot that g-ir-scanner needs those defines as well. clutter/Makefile.am | 1 + 1 file changed, 1 insertion(+) commit ef9ea9e2377f63e8bbf22f4829b8a51953a434ef Author: Robert Bragg Date: Wed Sep 16 14:01:57 2009 +0100 [cogl-primitives] Split the journal out from cogl-primitives.c The Journal can be considered a standalone component, so even though it's currently only used to log quads, it seems better to split it out into its own file. clutter/cogl/cogl/Makefile.am | 2 + clutter/cogl/cogl/cogl-context.c | 1 + clutter/cogl/cogl/cogl-journal-private.h | 57 +++ clutter/cogl/cogl/cogl-journal.c | 744 ++++++++++++++++++++++++++++++ clutter/cogl/cogl/cogl-primitives.c | 705 +--------------------------- clutter/cogl/cogl/cogl-texture-private.h | 14 - 6 files changed, 805 insertions(+), 718 deletions(-) commit 8790306629f8186bba7998b5567c2a45aafb87d9 Author: Robert Bragg Date: Sun Sep 6 21:47:46 2009 +0100 [test-backface-culling] Check that inverted tex coords don't affect culling The additional check draws another front facing rectangle but this time with the texture coords flipped on the x axis. The code that handles sliced textures in cogl-primitives.c makes some suspicious changes to the geometry when the texture coords are inverted. tests/conform/test-backface-culling.c | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) commit 2f628b1a8a405d2e4c08f2b2d125002ded0d8981 Author: Robert Bragg Date: Wed Sep 23 15:11:55 2009 +0100 [cogl-spans] split out cogl-spans code from cogl-texture-2d-sliced When we implement atlas textures we will probably want to use the spans API to handle texture repeating so it doesn't make sense to leave the code in cogl-texture-2d-sliced.c. Since it's a standalone set of data structures and algorithms it also seems reasonable to split out from cogl-texture. clutter/cogl/cogl/Makefile.am | 2 + clutter/cogl/cogl/cogl-spans.c | 132 +++++++++++++ clutter/cogl/cogl/cogl-spans.h | 70 +++++++ clutter/cogl/cogl/cogl-texture-2d-sliced-private.h | 27 --- clutter/cogl/cogl/cogl-texture-2d-sliced.c | 195 +++++--------------- 5 files changed, 248 insertions(+), 178 deletions(-) commit 568d6841871bdfea5d49d2a8143a49a0a7664a7b Author: Vladimir Nadvornik Date: Sun Aug 30 12:36:11 2009 +0200 [cogl-texture] Split CoglTexture into an abstract class + CoglTexture2dSliced cogl-texture-2d-sliced provides an implementation of CoglTexture and this seperation lays the foundation for potentially supporting atlas textures, pixmap textures (as in GLX_EXT_texture_from_pixmap) and fast-path GL_TEXTURE_{1D,2D,3D,RECTANGLE} textures in a maintainable fashion. clutter/cogl/cogl/Makefile.am | 2 + clutter/cogl/cogl/cogl-context.c | 2 + clutter/cogl/cogl/cogl-context.h | 2 + clutter/cogl/cogl/cogl-handle.h | 4 +- clutter/cogl/cogl/cogl-texture-2d-sliced-private.h | 191 ++ clutter/cogl/cogl/cogl-texture-2d-sliced.c | 1871 +++++++++++++++++++ clutter/cogl/cogl/cogl-texture-driver.h | 12 + clutter/cogl/cogl/cogl-texture-private.h | 80 +- clutter/cogl/cogl/cogl-texture.c | 1926 +++++--------------- clutter/cogl/cogl/driver/gl/cogl-texture-driver.c | 97 +- .../cogl/cogl/driver/gles/cogl-context-driver.c | 2 - .../cogl/cogl/driver/gles/cogl-context-driver.h | 2 - .../cogl/cogl/driver/gles/cogl-texture-driver.c | 217 +-- 13 files changed, 2551 insertions(+), 1857 deletions(-) commit 9da26fc1ca820d12d325df400e6e02d7cd25423a Author: Robert Bragg Date: Wed Sep 16 11:56:17 2009 +0100 [cogl-texture] Seal CoglTexture internals from cogl-primitives.c cogl-primitives.c was previously digging right into CoglTextures so it could manually iterate the texture slices for texturing quads and polygons and because we were missing some state getters we were lazily just poking into the structures directly. This adds some extra state getter functions, and adds a higher level _cogl_texture_foreach_slice () API that hopefully simplifies the way in which sliced textures may be used to render primitives. This lets you specify a rectangle in "virtual" texture coords and it will call a given callback for each slice that intersects that rectangle giving the virtual coords of the current slice and corresponding "real" texture coordinates for the underlying gl texture. At the same time a noteable bug in how we previously iterated sliced textures was fixed, whereby we weren't correctly handling inverted texture coordinates. E.g. with the previous code if you supplied texture coords of tx1=100,ty1=0,tx2=0,ty2=100 (inverted along y axis) that would result in a back-facing quad, which could be discarded if using back-face culling. clutter/cogl/cogl/cogl-material.c | 9 +- clutter/cogl/cogl/cogl-primitives.c | 736 ++++++++++++++---------------- clutter/cogl/cogl/cogl-texture-private.h | 47 +- clutter/cogl/cogl/cogl-texture.c | 239 +++++++++- clutter/cogl/cogl/cogl-vertex-buffer.c | 6 +- clutter/cogl/cogl/driver/gl/cogl-fbo.c | 29 +- clutter/cogl/cogl/driver/gles/cogl-fbo.c | 29 +- 7 files changed, 640 insertions(+), 455 deletions(-) commit 52cecd50ec87b617cc20dbc3ba4f843340fb5d63 Author: Robert Bragg Date: Thu Jul 30 12:06:02 2009 +0100 [docs] switch gl_handle+gl_target docs for cogl_texture_new_from_foreign The descriptions for gl_handle and gl_target were inverted. Thanks to Young-Ho Cha for spotting that. Signed-off-by: Robert Bragg clutter/cogl/cogl/cogl-texture.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 95a869dab1b893f74c5b880e7be43e134eeb706f Author: Robert Bragg Date: Wed Jul 29 17:21:07 2009 +0100 [cogl] move clutter/pango to clutter/cogl/pango As part of the re-organisation of Cogl; move clutter/pango to be part of the cogl sub-project. clutter/Makefile.am | 22 +- clutter/cogl/Makefile.am | 2 +- clutter/cogl/pango/Makefile.am | 33 ++ clutter/cogl/pango/cogl-pango-display-list.c | 417 +++++++++++++++ clutter/cogl/pango/cogl-pango-display-list.h | 70 +++ clutter/cogl/pango/cogl-pango-fontmap.c | 209 ++++++++ clutter/cogl/pango/cogl-pango-glyph-cache.c | 352 +++++++++++++ clutter/cogl/pango/cogl-pango-glyph-cache.h | 78 +++ clutter/cogl/pango/cogl-pango-private.h | 38 ++ clutter/cogl/pango/cogl-pango-render.c | 697 ++++++++++++++++++++++++++ clutter/cogl/pango/cogl-pango.h | 85 ++++ clutter/pango/Makefile.am | 33 -- clutter/pango/cogl-pango-display-list.c | 417 --------------- clutter/pango/cogl-pango-display-list.h | 70 --- clutter/pango/cogl-pango-fontmap.c | 209 -------- clutter/pango/cogl-pango-glyph-cache.c | 352 ------------- clutter/pango/cogl-pango-glyph-cache.h | 78 --- clutter/pango/cogl-pango-private.h | 38 -- clutter/pango/cogl-pango-render.c | 697 -------------------------- clutter/pango/cogl-pango.h | 85 ---- configure.ac | 2 +- 21 files changed, 1992 insertions(+), 1992 deletions(-) commit 43efab46bcf88c14cc429c6c7b659bdbc84f1f71 Author: Robert Bragg Date: Tue Jul 28 02:02:02 2009 +0100 Intial Re-layout of the Cogl source code and introduction of a Cogl Winsys As part of an incremental process to have Cogl be a standalone project we want to re-consider how we organise the Cogl source code. Currently this is the structure I'm aiming for: cogl/ cogl/ winsys/ cogl-glx.c cogl-wgl.c driver/ gl/ gles/ os/ ? utils/ cogl-fixed cogl-matrix-stack? cogl-journal? cogl-primitives? pango/ The new winsys component is a starting point for migrating window system code (i.e. x11,glx,wgl,osx,egl etc) from Clutter to Cogl. The utils/ and pango/ directories aren't added by this commit, but they are noted because I plan to add them soon. Overview of the planned structure: * The winsys/ API is the API that binds OpenGL to a specific window system, be that X11 or win32 etc. Example are glx, wgl and egl. Much of the logic under clutter/{glx,osx,win32 etc} should migrate here. * Note there is also the idea of a winsys-base that may represent a window system for which there are multiple winsys APIs. An example of this is x11, since glx and egl may both be used with x11. (currently only Clutter has the idea of a winsys-base) * The driver/ represents a specific varient of OpenGL. Currently we have "gl" representing OpenGL 1.4-2.1 (mostly fixed function) and "gles" representing GLES 1.1 (fixed funciton) and 2.0 (fully shader based) * Everything under cogl/ should fundamentally be supporting access to the GPU. Essentially Cogl's most basic requirement is to provide a nice GPU Graphics API and drawing a line between this and the utility functionality we add to support Clutter should help keep this lean and maintainable. * Code under utils/ as suggested builds on cogl/ adding more convenient APIs or mechanism to optimize special cases. Broadly speaking you can compare cogl/ to OpenGL and utils/ to GLU. * clutter/pango will be moved to clutter/cogl/pango How some of the internal configure.ac/pkg-config terminology has changed: backendextra -> CLUTTER_WINSYS_BASE # e.g. "x11" backendextralib -> CLUTTER_WINSYS_BASE_LIB # e.g. "x11/libclutter-x11.la" clutterbackend -> {CLUTTER,COGL}_WINSYS # e.g. "glx" CLUTTER_FLAVOUR -> {CLUTTER,COGL}_WINSYS clutterbackendlib -> CLUTTER_WINSYS_LIB CLUTTER_COGL -> COGL_DRIVER # e.g. "gl" Note: The CLUTTER_FLAVOUR and CLUTTER_COGL defines are kept for apps As the first thing to take advantage of the new winsys component in Cogl; cogl_get_proc_address() has been moved from cogl/{gl,gles}/cogl.c into cogl/common/cogl.c and this common implementation first trys _cogl_winsys_get_proc_address() but if that fails then it falls back to gmodule. Makefile.am | 8 +- clutter.pc.in | 10 +- clutter/Makefile.am | 38 +- clutter/cogl/Makefile.am | 89 +- clutter/cogl/TODO | 25 - clutter/cogl/cogl-bitmap.h | 80 - clutter/cogl/cogl-color.h | 261 -- clutter/cogl/cogl-debug.h | 79 - clutter/cogl/cogl-deprecated.h | 36 - clutter/cogl/cogl-fixed.h | 782 ---- clutter/cogl/cogl-material.h | 781 ---- clutter/cogl/cogl-matrix.h | 290 -- clutter/cogl/cogl-offscreen.h | 96 - clutter/cogl/cogl-path.h | 347 -- clutter/cogl/cogl-shader.h | 313 -- clutter/cogl/cogl-texture.h | 465 --- clutter/cogl/cogl-types.h | 328 -- clutter/cogl/cogl-vertex-buffer.h | 452 --- clutter/cogl/cogl.h.in | 875 ----- clutter/cogl/cogl.pc.in | 15 - clutter/cogl/cogl/Makefile.am | 161 + clutter/cogl/cogl/cogl-bitmap-fallback.c | 460 +++ clutter/cogl/cogl/cogl-bitmap-pixbuf.c | 368 ++ clutter/cogl/cogl/cogl-bitmap-private.h | 115 + clutter/cogl/cogl/cogl-bitmap.c | 208 ++ clutter/cogl/cogl/cogl-bitmap.h | 80 + clutter/cogl/cogl/cogl-blend-string.c | 1005 ++++++ clutter/cogl/cogl/cogl-blend-string.h | 138 + clutter/cogl/cogl/cogl-clip-stack.c | 503 +++ clutter/cogl/cogl/cogl-clip-stack.h | 43 + clutter/cogl/cogl/cogl-color.c | 201 ++ clutter/cogl/cogl/cogl-color.h | 261 ++ clutter/cogl/cogl/cogl-context.c | 215 ++ clutter/cogl/cogl/cogl-context.h | 131 + clutter/cogl/cogl/cogl-current-matrix.c | 549 +++ clutter/cogl/cogl/cogl-current-matrix.h | 95 + clutter/cogl/cogl/cogl-debug.c | 131 + clutter/cogl/cogl/cogl-debug.h | 79 + clutter/cogl/cogl/cogl-deprecated.h | 36 + clutter/cogl/cogl/cogl-enum-types.c.in | 41 + clutter/cogl/cogl/cogl-enum-types.h.in | 25 + clutter/cogl/cogl/cogl-fixed.c | 950 +++++ clutter/cogl/cogl/cogl-fixed.h | 782 ++++ clutter/cogl/cogl/cogl-handle.h | 157 + clutter/cogl/cogl/cogl-internal.h | 88 + clutter/cogl/cogl/cogl-material-private.h | 255 ++ clutter/cogl/cogl/cogl-material.c | 1972 ++++++++++ clutter/cogl/cogl/cogl-material.h | 781 ++++ clutter/cogl/cogl/cogl-matrix-stack.c | 363 ++ clutter/cogl/cogl/cogl-matrix-stack.h | 82 + clutter/cogl/cogl/cogl-matrix.c | 282 ++ clutter/cogl/cogl/cogl-matrix.h | 290 ++ clutter/cogl/cogl/cogl-offscreen.h | 96 + clutter/cogl/cogl/cogl-path.h | 347 ++ clutter/cogl/cogl/cogl-primitives.c | 2329 ++++++++++++ clutter/cogl/cogl/cogl-primitives.h | 62 + clutter/cogl/cogl/cogl-shader.h | 313 ++ clutter/cogl/cogl/cogl-texture-driver.h | 157 + clutter/cogl/cogl/cogl-texture-private.h | 151 + clutter/cogl/cogl/cogl-texture.c | 1682 +++++++++ clutter/cogl/cogl/cogl-texture.h | 465 +++ clutter/cogl/cogl/cogl-types.h | 328 ++ clutter/cogl/cogl/cogl-util.c | 252 ++ clutter/cogl/cogl/cogl-util.h | 30 + clutter/cogl/cogl/cogl-vertex-buffer-private.h | 169 + clutter/cogl/cogl/cogl-vertex-buffer.c | 2016 +++++++++++ clutter/cogl/cogl/cogl-vertex-buffer.h | 452 +++ clutter/cogl/cogl/cogl.c | 879 +++++ clutter/cogl/cogl/cogl.h.in | 875 +++++ clutter/cogl/cogl/cogl.pc.in | 17 + clutter/cogl/cogl/driver/Makefile.am | 7 + clutter/cogl/cogl/driver/gl/Makefile.am | 39 + clutter/cogl/cogl/driver/gl/cogl-context-driver.c | 84 + clutter/cogl/cogl/driver/gl/cogl-context-driver.h | 103 + clutter/cogl/cogl/driver/gl/cogl-defines.h.in | 1053 ++++++ clutter/cogl/cogl/driver/gl/cogl-fbo.c | 330 ++ clutter/cogl/cogl/driver/gl/cogl-fbo.h | 39 + clutter/cogl/cogl/driver/gl/cogl-primitives.c | 282 ++ clutter/cogl/cogl/driver/gl/cogl-program.c | 255 ++ clutter/cogl/cogl/driver/gl/cogl-program.h | 39 + clutter/cogl/cogl/driver/gl/cogl-shader-private.h | 39 + clutter/cogl/cogl/driver/gl/cogl-shader.c | 177 + clutter/cogl/cogl/driver/gl/cogl-texture-driver.c | 454 +++ clutter/cogl/cogl/driver/gl/cogl.c | 443 +++ clutter/cogl/cogl/driver/gles/Makefile.am | 62 + .../cogl/cogl/driver/gles/cogl-context-driver.c | 41 + .../cogl/cogl/driver/gles/cogl-context-driver.h | 44 + clutter/cogl/cogl/driver/gles/cogl-defines.h.in | 638 ++++ clutter/cogl/cogl/driver/gles/cogl-fbo.c | 343 ++ clutter/cogl/cogl/driver/gles/cogl-fbo.h | 39 + .../driver/gles/cogl-fixed-fragment-shader.glsl | 62 + .../cogl/driver/gles/cogl-fixed-vertex-shader.glsl | 65 + clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.c | 1635 +++++++++ clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.h | 433 +++ clutter/cogl/cogl/driver/gles/cogl-primitives.c | 453 +++ clutter/cogl/cogl/driver/gles/cogl-program.c | 338 ++ clutter/cogl/cogl/driver/gles/cogl-program.h | 43 + .../cogl/cogl/driver/gles/cogl-shader-private.h | 40 + clutter/cogl/cogl/driver/gles/cogl-shader.c | 221 ++ .../cogl/cogl/driver/gles/cogl-texture-driver.c | 481 +++ clutter/cogl/cogl/driver/gles/cogl-util.c | 49 + clutter/cogl/cogl/driver/gles/cogl-util.h | 30 + clutter/cogl/cogl/driver/gles/cogl.c | 64 + clutter/cogl/cogl/driver/gles/stringify.sh | 94 + clutter/cogl/cogl/stb_image.c | 3772 ++++++++++++++++++++ clutter/cogl/cogl/winsys/Makefile.am | 43 + clutter/cogl/cogl/winsys/cogl-eglnative.c | 35 + clutter/cogl/cogl/winsys/cogl-eglx.c | 35 + clutter/cogl/cogl/winsys/cogl-fruity.c | 35 + clutter/cogl/cogl/winsys/cogl-glx.c | 78 + clutter/cogl/cogl/winsys/cogl-osx.c | 35 + clutter/cogl/cogl/winsys/cogl-sdl.c | 35 + clutter/cogl/cogl/winsys/cogl-win32.c | 35 + clutter/cogl/cogl/winsys/cogl-winsys.h | 30 + clutter/cogl/common/Makefile.am | 96 - clutter/cogl/common/cogl-bitmap-fallback.c | 460 --- clutter/cogl/common/cogl-bitmap-pixbuf.c | 368 -- clutter/cogl/common/cogl-bitmap-private.h | 115 - clutter/cogl/common/cogl-bitmap.c | 208 -- clutter/cogl/common/cogl-blend-string.c | 1005 ------ clutter/cogl/common/cogl-blend-string.h | 138 - clutter/cogl/common/cogl-clip-stack.c | 503 --- clutter/cogl/common/cogl-clip-stack.h | 43 - clutter/cogl/common/cogl-color.c | 201 -- clutter/cogl/common/cogl-context.c | 215 -- clutter/cogl/common/cogl-context.h | 131 - clutter/cogl/common/cogl-current-matrix.c | 549 --- clutter/cogl/common/cogl-current-matrix.h | 95 - clutter/cogl/common/cogl-debug.c | 131 - clutter/cogl/common/cogl-enum-types.c.in | 41 - clutter/cogl/common/cogl-enum-types.h.in | 25 - clutter/cogl/common/cogl-fixed.c | 950 ----- clutter/cogl/common/cogl-handle.h | 157 - clutter/cogl/common/cogl-internal.h | 88 - clutter/cogl/common/cogl-material-private.h | 255 -- clutter/cogl/common/cogl-material.c | 1972 ---------- clutter/cogl/common/cogl-matrix-stack.c | 363 -- clutter/cogl/common/cogl-matrix-stack.h | 81 - clutter/cogl/common/cogl-matrix.c | 282 -- clutter/cogl/common/cogl-primitives.c | 2329 ------------ clutter/cogl/common/cogl-primitives.h | 62 - clutter/cogl/common/cogl-texture-driver.h | 157 - clutter/cogl/common/cogl-texture-private.h | 151 - clutter/cogl/common/cogl-texture.c | 1682 --------- clutter/cogl/common/cogl-util.c | 252 -- clutter/cogl/common/cogl-util.h | 30 - clutter/cogl/common/cogl-vertex-buffer-private.h | 169 - clutter/cogl/common/cogl-vertex-buffer.c | 2016 ----------- clutter/cogl/common/cogl.c | 858 ----- clutter/cogl/common/stb_image.c | 3772 -------------------- clutter/cogl/gl/cogl-context-driver.c | 84 - clutter/cogl/gl/cogl-context-driver.h | 103 - clutter/cogl/gl/cogl-defines.h.in | 1053 ------ clutter/cogl/gl/cogl-fbo.c | 330 -- clutter/cogl/gl/cogl-fbo.h | 39 - clutter/cogl/gl/cogl-primitives.c | 282 -- clutter/cogl/gl/cogl-program.c | 255 -- clutter/cogl/gl/cogl-program.h | 39 - clutter/cogl/gl/cogl-shader-private.h | 39 - clutter/cogl/gl/cogl-shader.c | 177 - clutter/cogl/gl/cogl-texture-driver.c | 454 --- clutter/cogl/gl/cogl.c | 515 --- clutter/cogl/gles/cogl-context-driver.c | 41 - clutter/cogl/gles/cogl-context-driver.h | 44 - clutter/cogl/gles/cogl-defines.h.in | 638 ---- clutter/cogl/gles/cogl-fbo.c | 343 -- clutter/cogl/gles/cogl-fbo.h | 39 - clutter/cogl/gles/cogl-fixed-fragment-shader.glsl | 62 - clutter/cogl/gles/cogl-fixed-vertex-shader.glsl | 65 - clutter/cogl/gles/cogl-gles2-wrapper.c | 1635 --------- clutter/cogl/gles/cogl-gles2-wrapper.h | 433 --- clutter/cogl/gles/cogl-primitives.c | 453 --- clutter/cogl/gles/cogl-program.c | 338 -- clutter/cogl/gles/cogl-program.h | 43 - clutter/cogl/gles/cogl-shader-private.h | 40 - clutter/cogl/gles/cogl-shader.c | 221 -- clutter/cogl/gles/cogl-texture-driver.c | 481 --- clutter/cogl/gles/cogl-util.c | 49 - clutter/cogl/gles/cogl-util.h | 30 - clutter/cogl/gles/cogl.c | 74 - clutter/cogl/gles/stringify.sh | 94 - clutter/eglnative/Makefile.am | 12 +- clutter/eglx/Makefile.am | 2 + clutter/fruity/Makefile.am | 8 +- clutter/glx/Makefile.am | 2 + clutter/osx/Makefile.am | 6 +- clutter/sdl/Makefile.am | 2 + clutter/win32/Makefile.am | 2 + clutter/win32/clutter-win32.pc.in | 8 +- clutter/x11/Makefile.am | 2 + clutter/x11/clutter-x11.pc.in | 10 +- configure.ac | 119 +- doc/reference/clutter/Makefile.am | 6 +- doc/reference/cogl/Makefile.am | 11 +- tests/conform/Makefile.am | 4 +- tests/interactive/Makefile.am | 4 +- tests/micro-bench/Makefile.am | 9 +- tests/tools/Makefile.am | 2 + 198 files changed, 34272 insertions(+), 33869 deletions(-) commit 2eea83de75cec3dbc334feecd004a180a7f5b1e5 Author: Robert Bragg Date: Tue Jul 28 01:34:33 2009 +0100 Make the CoglContext structure a bit more maintainable This moves most of cogl-context.{c.h} to cogl/common with some driver specific members now living in a CoglContextDriver struct. Driver specific context initialization and typedefs now live in cogl/{gl,gles}/cogl-context-driver.{c,h} Driver specific members can be found under ctx->drv.stuff clutter/cogl/common/Makefile.am | 2 + clutter/cogl/common/cogl-blend-string.c | 2 +- clutter/cogl/common/cogl-context.c | 215 +++++++++++++++++++++++++ clutter/cogl/common/cogl-context.h | 131 +++++++++++++++ clutter/cogl/common/cogl-material.c | 14 +- clutter/cogl/common/cogl-primitives.c | 12 +- clutter/cogl/common/cogl-vertex-buffer.c | 26 +-- clutter/cogl/common/cogl.c | 2 +- clutter/cogl/gl/Makefile.am | 2 +- clutter/cogl/gl/cogl-context-driver.c | 84 ++++++++++ clutter/cogl/gl/cogl-context-driver.h | 103 ++++++++++++ clutter/cogl/gl/cogl-context.c | 259 ------------------------------ clutter/cogl/gl/cogl-context.h | 197 ----------------------- clutter/cogl/gl/cogl-fbo.c | 24 +-- clutter/cogl/gl/cogl-primitives.c | 2 +- clutter/cogl/gl/cogl-program.c | 50 +++--- clutter/cogl/gl/cogl-shader.c | 12 +- clutter/cogl/gl/cogl-texture-driver.c | 2 +- clutter/cogl/gl/cogl.c | 224 +++++++++++++------------- clutter/cogl/gles/Makefile.am | 2 +- clutter/cogl/gles/cogl-context-driver.c | 41 +++++ clutter/cogl/gles/cogl-context-driver.h | 44 +++++ clutter/cogl/gles/cogl-context.c | 214 ------------------------ clutter/cogl/gles/cogl-context.h | 136 ---------------- clutter/cogl/gles/cogl-fbo.c | 8 +- clutter/cogl/gles/cogl-gles2-wrapper.c | 2 +- clutter/cogl/gles/cogl-program.c | 16 +- clutter/cogl/gles/cogl-texture-driver.c | 14 +- 28 files changed, 828 insertions(+), 1012 deletions(-) commit 157eb437bac38d7a61991f47bd943cb9f6d84ad7 Author: Robert Bragg Date: Tue Jul 28 00:37:11 2009 +0100 Improve cogl-texture maintainability by moving 90% into cogl/common This splits the limited components that differed between cogl/{gl,gles}/cogl-texture.c into new {gl,gles}/cogl-texture-driver.c files and the rest that can now be shared into cogl/common/cogl-texture.c clutter/cogl/common/Makefile.am | 3 + clutter/cogl/common/cogl-internal.h | 1 + clutter/cogl/common/cogl-texture-driver.h | 157 +++ clutter/cogl/common/cogl-texture-private.h | 151 ++ clutter/cogl/common/cogl-texture.c | 1682 ++++++++++++++++++++++ clutter/cogl/gl/Makefile.am | 3 +- clutter/cogl/gl/cogl-texture-driver.c | 454 ++++++ clutter/cogl/gl/cogl-texture-private.h | 145 -- clutter/cogl/gl/cogl-texture.c | 1996 --------------------------- clutter/cogl/gles/Makefile.am | 3 +- clutter/cogl/gles/cogl-gles2-wrapper.h | 1 + clutter/cogl/gles/cogl-texture-driver.c | 481 +++++++ clutter/cogl/gles/cogl-texture-private.h | 144 -- clutter/cogl/gles/cogl-texture.c | 2066 ---------------------------- 14 files changed, 2932 insertions(+), 4355 deletions(-) commit fe01ec6323967614c6404bc193503adb5bda1624 Author: Robert Bragg Date: Thu Aug 20 11:54:41 2009 +0100 [stage-egl] support fallbacks in clutter_stage_egl_realize Most of clutter_stage_egl_realize was renamed to _clutter_stage_egl_try_realize which now takes a cookie indicating which fallback number should tried next. clutter_stage_egl_realize now keeps trying to realize with successive fallback numbers until it succeeds or runs out of fallbacks. The only fallback supported for now is for hardware with no stencil buffer support. clutter/eglx/clutter-stage-egl.c | 112 ++++++++++++++++++++++++++++---------- 1 file changed, 82 insertions(+), 30 deletions(-) commit 3187e1964279b3fb93703fe6c67df5b6025729c9 Author: Robert Bragg Date: Mon Aug 3 14:50:10 2009 +0100 [x11 backend] remove data duplicated between backends and stages Make backends the canonical point of reference for the xdisplay, the xscreen number, the x root window and the xvisinfo for creating foreign stages. clutter/eglx/clutter-backend-egl.c | 10 +- clutter/eglx/clutter-stage-egl.c | 18 ++-- clutter/glx/clutter-backend-glx.c | 59 +++++++----- clutter/glx/clutter-backend-glx.h | 6 ++ clutter/glx/clutter-stage-glx.c | 58 ++++++------ clutter/x11/clutter-backend-x11.c | 1 + clutter/x11/clutter-backend-x11.h | 5 + clutter/x11/clutter-stage-x11.c | 177 ++++++++++++++++++++++-------------- clutter/x11/clutter-stage-x11.h | 8 +- 9 files changed, 200 insertions(+), 142 deletions(-) commit 63414ab233522b0da8462b32c4e36e74be891475 Author: Robert Bragg Date: Fri Jul 31 20:39:28 2009 +0100 [glx backend] white space fixes Simply removes lots of trailing white spaces clutter/glx/clutter-backend-glx.c | 40 ++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 20 deletions(-) commit 45a668bef855b8564236a3153bf07e1ea0148d16 Author: Robert Bragg Date: Fri Jul 31 17:07:10 2009 +0100 [glx backend] use FBConfigs instead of Visuals for GL context creation This replaces calls to the old (glx 1.2) functions glXChooseVisual, glXCreateContext, glXMakeCurrent with the 1.3+ fbconfig varients glXChooseFBConfig, glXCreateNewContext, glXMakeContextCurrent. clutter/glx/clutter-backend-glx.c | 122 +++++++++++++++++++++++-------------- 1 file changed, 75 insertions(+), 47 deletions(-) commit 15d7a86621f3fc80d3d50e7f5a3a141412163e7f Author: Robert Bragg Date: Fri Jul 31 18:34:51 2009 +0100 [backends] Remove the idea of offscreen stages from all backends The only backend that tried to implement offscreen stages was the GLX backend and even this has apparently be broken for some time without anyone noticing. The property still remains and since the property already clearly states that it may not work I don't expect anyone to notice. This simplifies quite a bit of the GLX code which is very desireable from the POV that we want to start migrating window system code down to Cogl and the simpler the code is the more straight forward this work will be. In the future when Cogl has a nicely designed API for framebuffer objects then re-implementing offscreen stages cleanly for *all* backends should be quite straightforward. clutter/clutter-backend.c | 3 +- clutter/clutter-backend.h | 1 - clutter/clutter-private.h | 1 - clutter/clutter-stage.c | 33 +--- clutter/eglnative/clutter-stage-egl.c | 217 +++++++++++------------ clutter/eglx/clutter-backend-egl.c | 3 +- clutter/eglx/clutter-stage-egl.c | 307 +++++++++++++++------------------ clutter/fruity/clutter-stage-fruity.c | 175 +++++++++---------- clutter/glx/clutter-backend-glx.c | 59 ++----- clutter/glx/clutter-stage-glx.c | 224 ++++++++---------------- clutter/osx/clutter-stage-osx.c | 10 -- clutter/sdl/clutter-stage-sdl.c | 39 ++--- clutter/x11/clutter-backend-x11.c | 5 +- clutter/x11/clutter-backend-x11.h | 8 +- clutter/x11/clutter-stage-x11.c | 5 +- 15 files changed, 435 insertions(+), 655 deletions(-) commit 35f11d863c4ac66136df9846c898ed88ff8ffb34 Author: Robert Bragg Date: Fri Oct 16 17:15:47 2009 +0100 [build] more Makefile.am.{enums,marshal} fixes for out of tree builds for the marshal files $(srcdir) was getting prefixed twice since my last commit (2cc88f1140) since it was already being prefixed including Makefile.am. The problem with prefixing it in the includer file though is that the Make variable substitutions like :.list=.h mean we end up generating into the $(srcdir). This removes the prefix added in clutter/Makefile.am We were also missing a $(srcdir) prefix when setting EXTRA_DIST build/autotools/Makefile.am.enums | 2 +- build/autotools/Makefile.am.marshal | 3 ++- clutter/Makefile.am | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) commit f1acc91f3704bfff45652aea4f14355485f34df0 Author: Emmanuele Bassi Date: Fri Oct 16 15:57:21 2009 +0100 Simple coding style fix for commit c5551184 clutter/clutter-interval.c | 2 ++ 1 file changed, 2 insertions(+) commit a9d2c0f6903fff5a5b445265040f8bb689c10750 Merge: b5adbf8 70c8128 Author: Emmanuele Bassi Date: Fri Oct 16 15:55:05 2009 +0100 Merge branch 'bug-1846' * bug-1846: Fix warning message in the ParamSpec validation commit b5adbf89b851baa9fb833b00ad6137cc5e6547cb Merge: ee9f8c3 c555118 Author: Emmanuele Bassi Date: Fri Oct 16 15:55:04 2009 +0100 Merge branch 'bug-1845' * bug-1845: Add a warning when ClutterInterval can't compute progress commit 70c8128457d49bf9dde0838470f1b4b363f9aafb Author: Damien Lespiau Date: Mon Oct 12 17:05:05 2009 +0100 Fix warning message in the ParamSpec validation When validating a new GValue against the ClutterParamSpecUnits, we issue a warning when the units do not match with both the new value and the unit we expect to have. Unfortunately we were printing the unit of the new value twice and not the unit of the ParamSpec. http://bugzilla.openedhand.com/show_bug.cgi?id=1846 clutter/clutter-units.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c5551184b0337ea8a990b14e52eb15e855a27ca9 Author: Damien Lespiau Date: Mon Oct 12 16:45:39 2009 +0100 Add a warning when ClutterInterval can't compute progress This is really useful when trying to animate GTypes that haven't registered any progress function. Instead of silently not working it will warn the developer. http://bugzilla.openedhand.com/show_bug.cgi?id=1845 clutter/clutter-interval.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit ee9f8c3bdf9672e0d79598eed8f73569190888dc Author: Damien Lespiau Date: Mon Oct 12 16:28:10 2009 +0100 Add ClutterInterval integration To be able to animate CLUTTER_TYPE_UNITS properties we need to register the GType and its progress function against the ClutterInterval code. The two ClutterUnits defining the interval can use different units, the resulting unit will always be in pixels, so calculating a progress between 10px and 4cm is valid. http://bugzilla.openedhand.com/show_bug.cgi?id=1844 clutter/clutter-units.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) commit 83b4ec7a12ea279b59a80f6008e1bece25de3a8c Author: Emmanuele Bassi Date: Fri Oct 16 15:25:37 2009 +0100 units: Cache the pixels value inside Units When computing the pixels value of a ClutterUnits value we should be caching the value to avoid recomputing for every call of clutter_units_to_pixels(). We already have a flag telling us to return the cached value, but we miss the mechanism to evict the cache whenever the Backend settings affecting the conversion, that is default font and resolution, change. In order to implement the eviction we can use a "serial"; the Backend will have an internal serial field which we retrieve and put inside the ClutterUnits structure (we split one of the two 64 bit padding fields into two 32 bit fields to maintain ABI); every time we call clutter_units_to_pixels() we compare the units serial with that of the Backend; if they match and pixels_set is set to TRUE then we just return the stored pixels value. If the serials do not match then we unset the pixels_set flag and recompute the pixels value. We can verify this by adding a simple test unit checking that by changing the resolution of ClutterBackend we get different pixel values for 1 em. http://bugzilla.openedhand.com/show_bug.cgi?id=1843 .gitignore | 1 + clutter/clutter-backend.c | 21 +++++++++++++++-- clutter/clutter-private.h | 2 ++ clutter/clutter-units.c | 45 ++++++++++++++++++++++++++++++++++++ clutter/clutter-units.h | 9 +++++++- tests/conform/test-clutter-units.c | 23 ++++++++++++++++++ tests/conform/test-conform-main.c | 1 + 7 files changed, 99 insertions(+), 3 deletions(-) commit 2ff31dfbaaad3056265b05efe57eac63f8e3ce61 Author: Emmanuele Bassi Date: Fri Oct 16 14:22:15 2009 +0100 text: Notify :position when it changes The :position property is not notified when changed. http://bugzilla.openedhand.com/show_bug.cgi?id=1830 clutter/clutter-text.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit bc424fb56c3a75a822b22c0e5b284b5775f76abe Author: Emmanuele Bassi Date: Sat Sep 19 09:19:06 2009 +0100 [text] NULL-ify strings to avoid double-frees clutter/clutter-text.c | 1 + 1 file changed, 1 insertion(+) commit 6f43f4b805387e0cac054d7b002634da3b00b106 Author: Emmanuele Bassi Date: Sat Sep 19 09:18:06 2009 +0100 [text] Do not apply unset preedit attributes The pre-edit attributes are optional and thus should only be applied if they have been set to avoid assertion failures. clutter/clutter-text.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) commit 28837283877c11f26565d79e6bcd4b171203a9b0 Author: Emmanuele Bassi Date: Wed Sep 9 12:15:23 2009 +0100 [text] Add pre-edit string to ClutterText Input Methods require to be able to set a "pre-edit string", that is a string that it's just displayed into the Text actor without being committed to the actor's buffer. The string might require custom Pango attributes, and an update of the cursor position. clutter/clutter-text.c | 193 +++++++++++++++++++++++----- clutter/clutter-text.h | 5 + doc/reference/clutter/clutter-sections.txt | 1 + tests/interactive/test-text-field.c | 179 ++++++++++++++++++++++++++ 4 files changed, 346 insertions(+), 32 deletions(-) commit 2cc88f1140ffa774371b877d723dfaf9e33a6ce5 Author: Robert Bragg Date: Thu Oct 15 19:12:34 2009 +0100 [build] fix Makefile.am.{enums,marshal} to support out of tree builds Out of tree builds were broken in commit 46b736f42e1165 since we didn't explicitly use $(srcdir) to find the input files for glib-mkenums and glib-genmarshal. build/autotools/Makefile.am.enums | 4 ++-- build/autotools/Makefile.am.marshal | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit 87f0b94df7524400b233cd1acca871fa6f8f0a02 Author: Emmanuele Bassi Date: Thu Oct 15 14:20:44 2009 +0100 layout, docs: Fix description of Bin properties The BinLayer and BinLayout properties name and blurb for introspection should be slightly more descriptive. clutter/clutter-bin-layout.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 852abbb138898467fb6497508e99fb1a92203c78 Author: Emmanuele Bassi Date: Thu Oct 15 14:12:37 2009 +0100 layout, bin: Use ceilf() instead of casting to int Casting a float to int to truncate it before assigning the value to a float again is wrong. We should use ceilf() instead which does what we want to achieve (rounding up the size to avoid sub-pixel positioning of children). clutter/clutter-bin-layout.c | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) commit 308c930f37c7c00eb6791d53fced7d1c2ac9600e Author: Emmanuele Bassi Date: Thu Oct 15 14:11:36 2009 +0100 layout, docs: Add long description for FlowLayout Add the full description of the layout policy clutter/clutter-flow-layout.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit 4d153e4507fdd8fc135998f771e1826a9b02e658 Author: Emmanuele Bassi Date: Thu Oct 15 12:15:49 2009 +0100 layout, box: Clean up * Use g_list_foreach() instead of iterating over the list inside the destruction sequence, since we are causing the widgets to be implicitly removed from the list via the destroy() call. * Use g_signal_connect_swapped() and spare us from a callback. clutter/clutter-box.c | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) commit adca939101e3a25309c29e6a263c1c7ac7b0d877 Author: Emmanuele Bassi Date: Thu Oct 15 12:04:50 2009 +0100 layout, box: Write long description for Box Also have an example of how to create a Box with a layout manager and how to use the pack() method. clutter/clutter-box.c | 45 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) commit 9f06f726d409d0ac948179b9771350147c5e699b Author: Emmanuele Bassi Date: Tue Oct 13 16:52:57 2009 +0100 layout, docs: Remove unused functions The :wrap property and its accessor functions were removed from ClutterFlowLayout. doc/reference/clutter/clutter-sections.txt | 2 -- 1 file changed, 2 deletions(-) commit cd3dce1d5d957046934062780d21558e182ceb1a Author: Emmanuele Bassi Date: Tue Oct 13 12:15:25 2009 +0100 layout: Document BoxLayout Add BoxLayout to the API reference. doc/reference/clutter/clutter-docs.xml.in | 1 + doc/reference/clutter/clutter-sections.txt | 38 ++++++++++++++++++++++++++++ doc/reference/clutter/clutter.types | 1 + 3 files changed, 40 insertions(+) commit b526b765931bcf4e44feac4ab1b72763eb68f264 Author: Emmanuele Bassi Date: Tue Oct 13 12:14:05 2009 +0100 layout: Add BoxLayout, a single line layout manager The BoxLayout layout manager implements a layout policy for arranging children on a single line, either alongside the X axis or alongside the Y axis. .gitignore | 1 + clutter/Makefile.am | 2 + clutter/clutter-box-layout.c | 1496 +++++++++++++++++++++++++++++++++++ clutter/clutter-box-layout.h | 143 ++++ clutter/clutter.h | 1 + tests/interactive/Makefile.am | 3 +- tests/interactive/test-box-layout.c | 207 +++++ 7 files changed, 1852 insertions(+), 1 deletion(-) commit c4b2d4ce797b5ac4c61865d4249badcfb85657f0 Author: Emmanuele Bassi Date: Thu Oct 8 15:45:29 2009 +0100 layout: Report the correct size of FlowLayout FlowLayout should compute the correct height for the assigned width when in horizontal flow, and the correct width for the assigned height when in vertical flow. This means pre-computing the number of lines inside the get_preferred_width() and get_preferred_height(). We can then cache the computed column width and row height, cache them inside the layout and then use them when allocating the children. clutter/clutter-flow-layout.c | 457 +++++++++++++++++++++++++++------- tests/interactive/test-flow-layout.c | 4 +- 2 files changed, 369 insertions(+), 92 deletions(-) commit 6f19666b13ac9bde44996620df714484dbe4bd67 Author: Emmanuele Bassi Date: Wed Oct 7 15:30:29 2009 +0100 layout: Resizing the stage resizes the FlowLayout box Add some user interaction to verify the dynamic reflowing. tests/interactive/test-flow-layout.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) commit 0876575a9549acd54fbc3c70b4e7178e9e4e1e65 Author: Emmanuele Bassi Date: Wed Oct 7 15:29:47 2009 +0100 layout: Use the get_request_mode() getter in BinLayout Instead of using g_object_get(child, "request-mode", ...). clutter/clutter-bin-layout.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit eb40e856e1a687c27d047ee6069b6ec84e1e1237 Author: Emmanuele Bassi Date: Wed Oct 7 15:28:01 2009 +0100 layout: Change the request-mode along with the orientation When changing the orientation of a FlowLayout, the associated container should also change its request mode. A horizontally flowing layout has a height depending on the width, since it will reflow vertically; similarly, a vertically reflowing layout will have a width depending on the height. clutter/clutter-flow-layout.c | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) commit b5895335ab2d6975665426693fb1b96d7ca86f74 Author: Emmanuele Bassi Date: Wed Oct 7 15:15:02 2009 +0100 actor: Add set_request_mode() method We should not require the use g_object_set()/_get() for accessing the :request-mode property. A proper accessors pair should be preferred. clutter/clutter-actor.c | 48 ++++++++++++++++++++++++---- clutter/clutter-actor.h | 3 ++ doc/reference/clutter/clutter-sections.txt | 2 ++ 3 files changed, 46 insertions(+), 7 deletions(-) commit 19317520b57461b505751411cf9d9f39bbf12ad5 Author: Emmanuele Bassi Date: Wed Oct 7 12:35:39 2009 +0100 [layout] Remove FlowLayout:wrap The :wrap property is not implemented, and mostly useless: the FlowLayout is a reflowing grid. This means that if it receives less than the preferred width or height in the flow direction then it should always reflow. clutter/clutter-flow-layout.c | 107 +++-------------------------------------- clutter/clutter-flow-layout.h | 3 -- 2 files changed, 8 insertions(+), 102 deletions(-) commit 6d954ec0742bad823c8c474873a21ab990a56c7f Author: Emmanuele Bassi Date: Wed Oct 7 11:42:09 2009 +0100 [layout] Rename BinLayout and FlowLayout interactive tests The BinLayout and FlowLayout interactive tests should be named more explicitly. .gitignore | 4 +- tests/interactive/Makefile.am | 4 +- tests/interactive/test-bin-layout.c | 185 ++++++++++++++++++++++++++++++++++ tests/interactive/test-box.c | 185 ---------------------------------- tests/interactive/test-flow-layout.c | 148 +++++++++++++++++++++++++++ tests/interactive/test-flow.c | 148 --------------------------- 6 files changed, 337 insertions(+), 337 deletions(-) commit 4ea57bc685abeea9273b2b8427a9199980cc2f40 Author: Emmanuele Bassi Date: Wed Oct 7 11:39:18 2009 +0100 [layout] Skip invisible children in FlowLayout Skip hidden actors when computing the preferred size and when allocating. clutter/clutter-flow-layout.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit b1bae4d66afc8420209f72dabcbf2fe81b461ff3 Author: Emmanuele Bassi Date: Wed Oct 7 11:08:51 2009 +0100 [layout] Clean up and document FlowLayout clutter/clutter-flow-layout.c | 177 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 168 insertions(+), 9 deletions(-) commit db3ef971705485b1000def688635daaac99f79cd Author: Emmanuele Bassi Date: Tue Oct 6 17:30:49 2009 +0100 [layout] Snap children of FlowLayout to column/row Use the column and row size to align each child; with :homogeneous set to TRUE, or with children with the same size, the FlowLayout will behave like a reflowing grid. clutter/clutter-flow-layout.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) commit e5a074fd9e487444db9114c2970a4d83c1661c7f Author: Emmanuele Bassi Date: Tue Oct 6 16:17:16 2009 +0100 [layout] Add :homogeneous to FlowLayout clutter/clutter-flow-layout.c | 90 +++++++++++++++++++++++++++++++++++------ clutter/clutter-flow-layout.h | 3 ++ tests/interactive/test-flow.c | 37 +++++++++++++++-- 3 files changed, 115 insertions(+), 15 deletions(-) commit 5737cf869f162f5539ae00f86db7923502c38dab Author: Emmanuele Bassi Date: Fri Sep 18 17:28:02 2009 +0100 [layout] Initial implementation of FlowLayout FlowLayout is a layout manager that arranges its children in a reflowing line; the orientation controls the major axis for the layout: horizontal, for reflow on the Y axis, and vertical, for reflow on the X axis. .gitignore | 1 + clutter/Makefile.am | 2 + clutter/clutter-flow-layout.c | 855 ++++++++++++++++++++++++++++ clutter/clutter-flow-layout.h | 127 +++++ clutter/clutter.h | 1 + doc/reference/clutter/clutter-docs.xml.in | 1 + doc/reference/clutter/clutter-sections.txt | 34 ++ doc/reference/clutter/clutter.types | 1 + tests/interactive/Makefile.am | 3 +- tests/interactive/test-flow.c | 117 ++++ 10 files changed, 1141 insertions(+), 1 deletion(-) commit 857b0239e906b0e5eb1a2fec8703eb675a70675f Author: Emmanuele Bassi Date: Mon Oct 5 17:21:41 2009 +0100 [layout] Use FixedLayout inside Group The Group actor should use the FixedLayout layout manager object to avoid duplicating code. clutter/clutter-group.c | 138 ++++++++++------------------------------------- 1 file changed, 29 insertions(+), 109 deletions(-) commit 62db72cf4106f498a041d02d67de72460130acdd Author: Emmanuele Bassi Date: Mon Oct 5 17:09:04 2009 +0100 [layout] Update FixedLayout The behaviour of ClutterGroup has been fixed with regards to the preferred size request; the fixed layout manager should use the same behaviour. clutter/clutter-fixed-layout.c | 116 +++++++--------------------------------- 1 file changed, 20 insertions(+), 96 deletions(-) commit 4663552a0017f85c818a664b3528fab617e6e15c Author: Emmanuele Bassi Date: Fri Sep 18 15:29:09 2009 +0100 [layout] Typo and whitespace fixes clutter/clutter-box.c | 2 +- clutter/clutter-box.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit c98388bb0166fedd4e72bca42b99782a9b2fb52c Author: Emmanuele Bassi Date: Thu Sep 17 18:21:51 2009 +0100 [layout, box] Add Box:color Allow setting the background color of a ClutterBox clutter/clutter-box.c | 136 +++++++++++++++++++++++++++- clutter/clutter-box.h | 5 + doc/reference/clutter/clutter-sections.txt | 4 + 3 files changed, 144 insertions(+), 1 deletion(-) commit df6ca3d171a6a8d1a18cbf0fe70f4e4572e54479 Author: Emmanuele Bassi Date: Thu Sep 17 11:38:43 2009 +0100 [layout, docs] Clean up BinLayout documentation Documentation and code style fixes for BinLayout. clutter/clutter-bin-layout.c | 120 +++++++++++++++++++++++++++++++----------- clutter/clutter-bin-layout.h | 24 +++++++++ 2 files changed, 112 insertions(+), 32 deletions(-) commit 8b2088a91787562c01d5b8184f1f2b2f1d225371 Author: Emmanuele Bassi Date: Wed Sep 16 15:55:30 2009 +0100 [layout, tests] Use variants for child packing in Box There are three potential variants to add a child inside a Box with a BinLayout: - clutter_box_pack(), a variadic argument function which allows passing arbitrary LayoutMeta properties and values; - clutter_bin_layout_add(), which uses the backpointer to the container from the LayoutManager and sets the layout properties directly without GValue (de)marshalling - clutter_container_add_actor() and clutter_bin_layout_set_alignment(), similar to the clutter_bin_layout_add() function above, but split in two The test-box interactive test should exercise all three variants. tests/interactive/test-box.c | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) commit 431a63d04adc40dfd719563c4f9978324f618b4e Author: Emmanuele Bassi Date: Wed Sep 16 15:51:13 2009 +0100 [layout] Store and use the container inside BinLayout The BinLayout should store a pointer to the Container that it is using it as the layout manager. This allows us to fix the API and drop the additional Container arguments from set_alignment() and get_alignment(). This also allows us to add a ClutterBinLayout::add() method which adds an actor and sets the alignment policies without dealing with variadic arguments functions and GValue (de)marshalling. clutter/clutter-bin-layout.c | 120 +++++++++++++++++++++++++--- clutter/clutter-bin-layout.h | 7 +- doc/reference/clutter/clutter-sections.txt | 1 + 3 files changed, 114 insertions(+), 14 deletions(-) commit 755896664f7efc4bbfce0bfb6ea3249b6c526a59 Author: Emmanuele Bassi Date: Wed Sep 16 15:48:28 2009 +0100 [layout] Set a back pointer to Box inside the layout Use the LayoutManager API to set a back pointer to the Box actor inside the LayoutManager used by the box. This also allows us to replace the LayoutManager on a Box, since the LayoutManager will be able to replace all the metadata if needed. clutter/clutter-box.c | 37 ++++++++++++++++++++++++++-- clutter/clutter-box.h | 2 ++ doc/reference/clutter/clutter-sections.txt | 1 + 3 files changed, 38 insertions(+), 2 deletions(-) commit 22bb243ec24821cd18e7dba791e793884ffe2a63 Author: Emmanuele Bassi Date: Wed Sep 16 15:47:26 2009 +0100 [layout] Replace stale LayoutMeta If a LayoutMeta references a different container and/or layout manager then we should simply replace it and discard the previous one. clutter/clutter-layout-manager.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) commit 9117ee205691a5bb1a3bb65e1963ed5b8826b79f Author: Emmanuele Bassi Date: Wed Sep 16 14:58:30 2009 +0100 [layout] Allow taking a back pointer to the Container The LayoutManager implementation might opt to take a back pointer to the Container that is using the layout instance; this allows direct access to the container itself from within the implementation. clutter/clutter-layout-manager.c | 28 ++++++++++++++++++++++++++++ clutter/clutter-layout-manager.h | 12 ++++++++++++ doc/reference/clutter/clutter-sections.txt | 1 + 3 files changed, 41 insertions(+) commit f58bdbad15206f4369589f50789b9db9585f6e03 Author: Emmanuele Bassi Date: Wed Sep 16 11:10:45 2009 +0100 [layout] Rename Box::add to Box::pack Since ClutterBox is a ClutterContainer we should avoid naming collisions between methods. clutter/clutter-box.c | 24 ++++++++++++------------ clutter/clutter-box.h | 4 ++-- doc/reference/clutter/clutter-sections.txt | 4 ++-- tests/interactive/test-box.c | 24 ++++++++++++------------ 4 files changed, 28 insertions(+), 28 deletions(-) commit c6f67bf872ec2b51951a554e0351e6d7615d28ce Author: Emmanuele Bassi Date: Wed Sep 16 11:10:38 2009 +0100 [layout, docs] Document FixedLayout clutter/clutter-fixed-layout.c | 45 ++++++++++++++++++++++++++++++++++++++++ clutter/clutter-fixed-layout.h | 42 +++++++++++++++++++++++++++++++++++++ 2 files changed, 87 insertions(+) commit aaae60e17837d6f0b330c04345f1e2c2be9f24b9 Author: Emmanuele Bassi Date: Tue Sep 15 23:20:51 2009 +0100 [layout] Implement ClutterBox::add The ClutterBox::add method is a simple wrapper around the Container add_actor() method and the LayoutManager layout properties API. It allows adding an actor to a Box and setting the layout properties in one call. If the LayoutManager used by the Box does not support layout properties then the add() method short-circuits out. Along with the varargs version of the method there's also a vector-based variant, for language bindings to use. clutter/clutter-box.c | 186 ++++++++++++++++++++++++++++ clutter/clutter-box.h | 10 ++ doc/reference/clutter/clutter-sections.txt | 2 + tests/interactive/test-box.c | 31 ++--- 4 files changed, 210 insertions(+), 19 deletions(-) commit a2086f1178fa3aed7fdc6f94d09efbc0e1bc2c11 Author: Emmanuele Bassi Date: Tue Sep 15 17:37:11 2009 +0100 [layout] Add LayoutMeta Instead of overloading ClutterChildMeta with both container and layout metadata and delegate to every LayoutManager implementation to keep a backpointer to the layout manager instance, we can simply subclass ChildMeta into LayoutMeta and presto! everything works out pretty well for everyone. clutter/Makefile.am | 2 + clutter/clutter-bin-layout.c | 35 ++++--- clutter/clutter-layout-manager.c | 58 +++++++----- clutter/clutter-layout-manager.h | 133 +++++++++++++------------- clutter/clutter-layout-meta.c | 142 ++++++++++++++++++++++++++++ clutter/clutter-layout-meta.h | 85 +++++++++++++++++ clutter/clutter-types.h | 1 + clutter/clutter.h | 1 + doc/reference/clutter/clutter-docs.xml.in | 5 +- doc/reference/clutter/clutter-sections.txt | 19 ++++ doc/reference/clutter/clutter.types | 1 + 11 files changed, 369 insertions(+), 113 deletions(-) commit 899db6f226864614350d6aa07d8313dccf7d652f Author: Emmanuele Bassi Date: Tue Sep 15 16:24:47 2009 +0100 [layout, docs] Add layout managers sections Add LayoutManager and its subclasses, and the Box actor to the gtk-doc machinery needed to generate the API reference. clutter/clutter-bin-layout.c | 6 +- clutter/clutter-bin-layout.h | 4 +- clutter/clutter-layout-manager.c | 145 +++++++++++++++++++++++++++- clutter/clutter-layout-manager.h | 16 ++- doc/reference/clutter/clutter-docs.xml.in | 9 ++ doc/reference/clutter/clutter-sections.txt | 94 ++++++++++++++++++ doc/reference/clutter/clutter.types | 4 + 7 files changed, 269 insertions(+), 9 deletions(-) commit 9cccff504a40706e70b11878572d7e7db7430792 Author: Emmanuele Bassi Date: Mon Sep 14 21:51:49 2009 +0100 [layout] Add layers to BinLayout Each actor managed by a BinLayout policy should reside inside its own "layer", with horizontal and vertical alignment. The :x-align and :y-align properties of the BinLayout are the default alignment policies, which are copied to each new "layer" when it is created. The set_alignment() and get_alignment() methods of BinLayout can be changed to operate on a specific "layer". The whole machinery uses the new ChildMeta support inside the LayoutManager base abstract class. clutter/clutter-bin-layout.c | 265 +++++++++++++++++++++++++++++++++++++----- clutter/clutter-bin-layout.h | 4 + tests/interactive/test-box.c | 147 ++++++++++++++++++++++- 3 files changed, 385 insertions(+), 31 deletions(-) commit 98474076a1310494fec252fb6bfce8001bca78da Author: Emmanuele Bassi Date: Mon Sep 14 21:50:20 2009 +0100 [layout] Bind the layout ChildMeta inside Box The ClutterBox container actor should add and remove ChildMeta to each actor that has been added and removed to the list of children, respectively. clutter/clutter-box.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 7051fe275d9d052ce42e8237080844aa18ee927c Author: Emmanuele Bassi Date: Mon Sep 14 21:48:06 2009 +0100 [layout] Bind ChildMeta to LayoutManager The ChildMeta object is a storage for child-container properties, that is properties that exist only when an actor is inside a specific container. The LayoutManager delegate class should also have layout-specific properties -- so, for this job, we can "recycle" ChildMeta as the storage. clutter/clutter-layout-manager.c | 372 ++++++++++++++++++++++++++++++++++++++ clutter/clutter-layout-manager.h | 92 ++++++---- 2 files changed, 432 insertions(+), 32 deletions(-) commit 83a4e9626772453804c61d7aa022eacf540bf0ce Author: Emmanuele Bassi Date: Mon Sep 14 12:04:42 2009 +0100 [layout] Document BinLayout clutter/clutter-bin-layout.c | 93 ++++++++++++++++++++++++++++++++++++++++++ clutter/clutter-bin-layout.h | 46 ++++++++++++++++++++- 2 files changed, 137 insertions(+), 2 deletions(-) commit b06a3293fe3d065369d9f97ad8bfa77051414fec Author: Emmanuele Bassi Date: Mon Sep 14 12:03:38 2009 +0100 [layout] Notify of alignment changes in BinLayout Emit the ::layout-changed when the BinLayout alignment policies change. This will result in a queue_relayout() on the containers using the BinLayout layout manager. clutter/clutter-bin-layout.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 4e8d8bbc15f26e95adfd59469306b7098f9fd491 Author: Emmanuele Bassi Date: Mon Sep 14 11:28:34 2009 +0100 [layout] Update Box * Use ::layout-changed to queue a relayout when the layout changes * Destroy the Box children when destroying the Box * Allow getting the layout manager from the Box clutter/clutter-box.c | 72 +++++++++++++++++++++++++++++++++++++++++++++---- clutter/clutter-box.h | 4 ++- 2 files changed, 70 insertions(+), 6 deletions(-) commit d096a3c791ab5b105d55a19ab316cd8b2fff878b Author: Emmanuele Bassi Date: Mon Sep 14 11:04:11 2009 +0100 [layout] Add LayoutManager::layout-changed signal If a sub-class of LayoutManager wishes to implement a parametrized layout policy it also needs a way to notify the container using the layout manager that the layout has changed. We cannot do it directly and automatically from the LayoutManager because a) it has no back link to the actor that it is using it and b) it can be attached to multiple actors. This is a job for signals! By adding ClutterLayoutManager::layout-changed (and its relative emitted function) we can notify actors using the layout manager that the layout parameters have been changed, and thus they should queue a relayout. clutter/clutter-layout-manager.c | 103 +++++++++++++++++++++++++++++++++++++- clutter/clutter-layout-manager.h | 44 ++++++++++++++++ 2 files changed, 146 insertions(+), 1 deletion(-) commit a1853892bae7c54d28a86e253e04c3753d65e159 Author: Emmanuele Bassi Date: Fri Sep 11 15:34:13 2009 +0100 [tests] Add a Box interactive test .gitignore | 1 + tests/interactive/Makefile.am | 3 ++- tests/interactive/test-box.c | 47 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 50 insertions(+), 1 deletion(-) commit 1061ebeac90a5b03a172aa649aa5a8b8cfb5b293 Author: Emmanuele Bassi Date: Fri Sep 11 13:51:23 2009 +0100 [layout] Add BinLayout A BinLayout is a simple layout manager that allocates a single cell, providing alignment on both the horizontal and vertical axis. If the container associated to the BinLayout has more than one child, the preferred size returned by the layout manager will be as big as the maximum of the children preferred sizes; the allocation will be applied to all children - but it will still depend on each child preferred size and the BinLayout horizontal and vertical alignment properties. The supported alignment properties are: * center: align the child by centering it * start: align the child at the top or left border of the layout * end: align the child at the bottom or right border of the layout * fill: expand the child to fill the size of the layout * fixed: let the child position itself clutter/Makefile.am | 2 + clutter/clutter-bin-layout.c | 397 ++++++++++++++++++++++++++++++++++++++++++ clutter/clutter-bin-layout.h | 50 ++++++ clutter/clutter.h | 1 + 4 files changed, 450 insertions(+) commit 6d4cc13f7c7047a609dd8055ce63048da294af39 Author: Emmanuele Bassi Date: Wed Sep 2 12:37:16 2009 +0100 [layout] Add Fixed layout manager The FixedLayout layout manager object implements the same layout policy of ClutterGroup. clutter/Makefile.am | 2 + clutter/clutter-fixed-layout.c | 217 ++++++++++++++++++++++++++++++++++++++++ clutter/clutter-fixed-layout.h | 38 +++++++ clutter/clutter.h | 1 + 4 files changed, 258 insertions(+) commit 141a1556908749236c90e69fc2388f4fc40c6d8f Author: Emmanuele Bassi Date: Wed Sep 2 11:55:22 2009 +0100 [layout] Make LayoutManager a floating object A layout manager instance makes only sense if it's owned by a container. For this reason, it should have a floating reference instead of a full reference on construction; this allows constructing Boxes like: box = clutter_box_new (clutter_fixed_layout_new ()); without leaking the layout manager instance. clutter/clutter-box.c | 3 ++- clutter/clutter-layout-manager.c | 4 +++- clutter/clutter-layout-manager.h | 4 ++-- 3 files changed, 7 insertions(+), 4 deletions(-) commit 0340f656346d80696305218897720e28c88f367a Author: Emmanuele Bassi Date: Tue Sep 1 17:42:50 2009 +0100 [box] Add ClutterBox ClutterBox is an actor with no layout management. It relies on a ClutterLayoutManager to perform size requisition and allocation of its children. clutter/Makefile.am | 2 + clutter/clutter-box.c | 368 +++++++++++++++++++++++++++++++++++++++++++++++++ clutter/clutter-box.h | 43 ++++++ clutter/clutter.h | 1 + 4 files changed, 414 insertions(+) commit d6183e95e51d1e3807ed5150768de2426b6b8e65 Author: Emmanuele Bassi Date: Tue Sep 1 16:34:28 2009 +0100 [layout] Add initial implementation of LayoutManager The LayoutManager class is an abstract proxy for the size requesition and size allocation process in ClutterActor. A ClutterLayoutManager sub-class must implement get_preferred_width(), get_preferred_height() and allocate(); a ClutterContainer using the LayoutManager API will then proxy the corresponding Actor virtual functions to the LayoutManager instance. This allows having a generic "blank" ClutterActor sub-class, implementing the ClutterContainer interface, which leaves only the layout management implementation to the application developers. clutter/Makefile.am | 2 + clutter/clutter-layout-manager.c | 180 ++++++++++++++++++++++++++++++++++++++ clutter/clutter-layout-manager.h | 92 +++++++++++++++++++ clutter/clutter.h | 1 + 4 files changed, 275 insertions(+) commit 4f2bfc003ad0f5b0b9d69693eed1bdbc9655f947 Author: Emmanuele Bassi Date: Tue Oct 13 19:27:03 2009 +0100 build: Clean up main Makefile.am clutter/Makefile.am | 55 +++++++++++++++++++++++++++------------------------ 1 file changed, 29 insertions(+), 26 deletions(-) commit 46b736f42e1165420796ed2afe4fc791d82381da Author: Emmanuele Bassi Date: Tue Oct 13 17:27:19 2009 +0100 build: Move marshallers and enum types rules out The rules to create signal marshallers and enumeration GTypes are usually copied and pasted all over different projects, though they are pretty generic and, given a little bit of parametrization, can be put in separate Makefile.am files and included whenever needed. build/autotools/Makefile.am | 2 + build/autotools/Makefile.am.enums | 43 ++++++++++++++++++++ build/autotools/Makefile.am.marshal | 44 ++++++++++++++++++++ clutter/Makefile.am | 75 +++++++++-------------------------- 4 files changed, 107 insertions(+), 57 deletions(-) commit 0e33c10048dd3cba33644fd51ae3e1ea18dcc357 Author: Emmanuele Bassi Date: Tue Oct 13 17:00:15 2009 +0100 docs: Allow XInclude fallback for the annotation glossary doc/reference/clutter/clutter-docs.xml.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a99f693c85cee6e389892b271f8aa25532bd7a6f Author: Emmanuele Bassi Date: Sat Oct 10 13:52:46 2009 +0100 docs: Make StageManager a public class The StageManager API is useful to track the stages of an application. It will also be useful when we land the modules API. doc/reference/clutter/Makefile.am | 1 - doc/reference/clutter/clutter-docs.xml.in | 1 + doc/reference/clutter/clutter-sections.txt | 23 +++++++++++++++++++++++ doc/reference/clutter/clutter.types | 2 ++ 4 files changed, 26 insertions(+), 1 deletion(-) commit c3d056533c8733160227b790388723a4c8a16123 Author: Emmanuele Bassi Date: Sat Oct 10 13:51:47 2009 +0100 stage/manager: Set :default-stage as read-only The StageManager:default-stage property should be read-only, since the default stage is owned by Clutter itself. clutter/clutter-stage-manager.c | 23 ++--------------------- 1 file changed, 2 insertions(+), 21 deletions(-) commit 74eaa2941327d3ee7762a93136b647979b6e094a Author: Emmanuele Bassi Date: Sat Oct 10 13:50:25 2009 +0100 stage/manager: Deprecate set_default_stage() The set_default_stage() method of StageManager should not be used by application code; technically, nothing in Clutter uses it, and StageManager's API is not considered public anyway. clutter/clutter-stage-manager.c | 52 ++++++++++++++++++++++++++++++--------- clutter/clutter-stage-manager.h | 23 ++++++++++++++--- 2 files changed, 60 insertions(+), 15 deletions(-) commit a7ff5385a5071824e996eae6b92486ef07bd143e Author: Damien Lespiau Date: Fri Oct 9 17:18:34 2009 +0100 [actor] Unset the IN_DESTRUCTION flag when leaving ::destroy() The IN_DESTRUCTION flag is set around the unrealization and disposal of the actor in clutter_actor_destroy() but is never unset (it's set twice instead). Reviewed-by: Emmanuele Bassi clutter/clutter-actor.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3bbc96e17e5a03ba931c86a5cd2a0ecaa2a3b77b Author: Emmanuele Bassi Date: Wed Oct 7 21:44:17 2009 +0100 text: Make the :text property not set the :use-markup one Currently, setting the :text property has the side-effect of setting the :use-markup property to FALSE. This prevents constructing a Text actor, or setting its properties, like: g_object_set (text, "use-markup", TRUE, "text", some_string, NULL); as the ordering becomes important. Unfortunately, the ordering of the properties cannot be enforced with ClutterScript or with language bindings. The documentation of the clutter_text_set_text() method should be expanded to properly specify that the set_text() method will change the :use-markup property to FALSE as a side effect. clutter/clutter-text.c | 283 ++++++++++++++++++++++++------------------------ 1 file changed, 144 insertions(+), 139 deletions(-) commit 1f207c00d96e08141f6b998269732d9e65d4cf14 Author: Emmanuele Bassi Date: Wed Oct 7 17:35:11 2009 +0100 docs: Add the "clipping" section to the COGL API reference All the clip-related API in COGL is missing from the API reference because the cogl-clipping section is not included inside the main index file. doc/reference/cogl/cogl-docs.xml.in | 1 + doc/reference/cogl/cogl-sections.txt | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) commit 80b3a8d3283fcc8af89bc83b2266ccd894cc50a6 Author: Damien Lespiau Date: Wed Oct 7 17:09:41 2009 +0100 [units] Ensure we don't have ponies The documentation states we should not parse ponies. Even with those with exclamation marks. Reviewed-by: Emmanuele Bassi tests/conform/test-clutter-units.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 19c68799608910635b70c9befb92c1a6a21c15f3 Author: Damien Lespiau Date: Tue Oct 6 00:49:40 2009 +0100 [path] Add GValue transform functions from and to G_TYPE_STRING Transform functions allow the use of g_value_transform() to cast GValues. It's very handy to have casts to and from G_TYPE_STRING as it allows generic serialization and parsing of GTypes. Reviewed-by: Emmanuele Bassi clutter/clutter-path.c | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) commit 8605073edb7a1e830696632a6de5ad694f1af98d Author: Damien Lespiau Date: Tue Oct 6 17:47:34 2009 +0100 [units] Add support for centimeters The only tricky part of the patch is to remember that 1cm is 10mm. Reviewed-by: Emmanuele Bassi clutter/clutter-units.c | 48 ++++++++++++++++++++++++++-- clutter/clutter-units.h | 7 +++- doc/reference/clutter/clutter-sections.txt | 1 + tests/conform/test-clutter-units.c | 17 ++++++++-- 4 files changed, 67 insertions(+), 6 deletions(-) commit 96859959bd24d99f51d5dea3b5ec7bc4bf7071f3 Author: Damien Lespiau Date: Tue Oct 6 12:02:15 2009 +0100 [units] Be more strict in the grammar we are parsing Current parsing of units has a number of shortcomings: * a number followed by trailing space (without any unit specified) was not recognized, * "5 emeralds" was parsed as 5em, * the way we parse the digits after the separator makes us lose precision for no good reason (5.0 is parsed as 5.00010014...f which makes g_assert_cmpfloat() fail) Let's define a stricter grammar we can recognize and try to do so. The description is in EBNF form, removing the optional <> which is a pain when having to write DocBook, and using '' for the terminal symbols. Last step, add more ClutterUnits unit test to get a better coverage of the grammar we want to parse. Reviewed-by: Emmanuele Bassi clutter/clutter-units.c | 76 +++++++++++++++++++++++------------- tests/conform/test-clutter-units.c | 22 +++++++++++ 2 files changed, 70 insertions(+), 28 deletions(-) commit 4d481e03f3534cb703a276cd430056d3ec27fcb0 Author: Emmanuele Bassi Date: Wed Oct 7 13:00:57 2009 +0100 color: Measure the string just once when parsing Instead of measuring the color hexadecimal string for each case, just measure it once and then use a switch() to go to the right case. clutter/clutter-color.c | 40 ++++++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 18 deletions(-) commit c7d50083ec1d1209dd8653bc30ba4f3bec09e976 Author: Thomas Wood Date: Wed Oct 7 12:27:38 2009 +0100 [color] allow alpha to be omitted when converting to color from string Parse #rgb and #rrggbb in addition to forms with the alpha channel specified. This allows conversion of colour strings from documents such as CSS where the alpha channel is not specified when using '#' notation. This patch also adds the relevant conformance test. clutter/clutter-color.c | 22 ++++++++++++++++++++++ tests/conform/test-color.c | 28 ++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) commit 13ac1fe75bec418f4e37e04540e6d16af55413f5 Author: Neil Roberts Date: Wed Oct 7 11:31:44 2009 +0100 [clutter-id-pool] Also warn if the ID refers to a deleted actor We should also warn if the glReadPixels happens to generate an ID that is within the range of the ID array but no longer points to an existing actor. clutter/clutter-id-pool.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit a4ff4d37a40b60ce7f7029c6fe12181c0e1e89e5 Author: Neil Roberts Date: Wed Oct 7 12:46:43 2009 +0100 [clutter-id-pool] Fix the check for out-of-range IDs If id == the length of the array then it is also invalid and could cause a crash. clutter/clutter-id-pool.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 142f8865181e92fb405ae0d2b2bc65468a9d2262 Author: Thomas Wood Date: Wed Oct 7 12:15:26 2009 +0100 Revert "[color] allow alpha to omitted when converting from strings" This reverts commit eb8daac4b0726c1d9925bbbaeed7a8f39007da21. The original commit was incorrect and pushed accidentally. clutter/clutter-color.c | 22 ---------------------- 1 file changed, 22 deletions(-) commit bdf7499207d3fdba440228832445b71b9f64d300 Author: Thomas Wood Date: Wed Oct 7 11:40:41 2009 +0100 [color] add a note to the documentation to specify the values of the alpha The alpha channel is fully opaque at 255 and fully transparent at 0. clutter/clutter-color.c | 2 ++ 1 file changed, 2 insertions(+) commit eb8daac4b0726c1d9925bbbaeed7a8f39007da21 Author: Thomas Wood Date: Wed Oct 7 11:38:08 2009 +0100 [color] allow alpha to omitted when converting from strings Parse #rgb and #rrggbb in addition to forms with the alpha channel specified. This allows conversion of colour strings from documents such as CSS where the alpha channel is not specified when using '#' notation. clutter/clutter-color.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) commit 9e03d9231696160ef7d4d98cf6c1d2f2214c7172 Author: Damien Lespiau Date: Tue Oct 6 01:04:50 2009 +0100 [path] MOVE_TO and LINE_TO only use a pair of coordinates The documentation of ClutterPathNode had a small typo and stated that they use 2 pairs of coordinates. clutter/clutter-path.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit dd8e4dcd62979bf8b7c8ad0e8898888a065ba445 Author: Robert Bragg Date: Mon Oct 5 16:46:24 2009 +0100 [debug] Guard the use of gdk_pixbuf for pick debugging by #ifdef USE_GDKPIXBUF gdk is an optional clutter dependency, so the pick buffer debugging option needs some guards so we don't break, for example, the OSX builds. This also adds a comment for the bit fiddling done on the pick colors used to ensure the pick colors are more distinguished while debugging. (we swap the nibbles of each color component so that pick buffers don't just look black.) clutter/clutter-main.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) commit f7c02642453420cf5866f9759d5f266d8ada40a5 Author: Emmanuele Bassi Date: Mon Oct 5 15:51:28 2009 +0100 [sdl] Update the SDL backend to the new StageWindow API The SDL backend remains experimental and not meant for public consumption, but at least it compiles and runs successfully. clutter/sdl/clutter-backend-sdl.c | 8 +-- clutter/sdl/clutter-stage-sdl.c | 130 +++++++++++++++---------------------- 2 files changed, 57 insertions(+), 81 deletions(-) commit 3fee43560d8108f9508cbb24ee98228e50b79e5d Author: Emmanuele Bassi Date: Mon Oct 5 15:53:06 2009 +0100 [eglx] Create a StageWindow, not an Actor The Backend should create a StageWindow instance, not an Actor. clutter/eglx/clutter-backend-egl.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 40222e891bec62e4e7187a3e66bdf7866a60bd38 Author: Neil Roberts Date: Tue Sep 29 12:11:55 2009 +0100 [ClutterGroup] Don't take into account the left edges when calculating the size ClutterGroup previously calculated the size as the distance from the left edge of the leftmost child to the right edge of the rightmost child except if there were any chidren left of the origin then the left edge would be zero. However the group is always allocated its size relative to its origin so if all of the children are to the right of the origin then the preferred size would not be large enough to reach the rightmost child. origin ┼──────────┐ │Group │ │ ┌────────┼─┐ │ │Child │ │ │ │ │ │ └─┼────────┘ │ │ │ └──────────┘ group size ╟──────────╢ This patch makes it so the size is always just the rightmost edge. origin ┼────────────┐ │Group │ │ ┌──────────┤ │ │Child │ │ │ │ │ │ │ │ │ │ └─┴──────────┘ group size ╟────────────╢ Fixes bug: http://bugzilla.openedhand.com/show_bug.cgi?id=1825 clutter/clutter-group.c | 122 ++++++++++------------------------------------- 1 file changed, 26 insertions(+), 96 deletions(-) commit 14e12ae4fd9320eeb970ff8aa7dfcd43dcfd5975 Author: Emmanuele Bassi Date: Mon Oct 5 14:58:08 2009 +0100 [eglx] Update the EGLX Stage to the new StageWindow API Move the ::realize and ::unrealize implementations over to the StageWindow instead of using Actor. clutter/eglx/clutter-stage-egl.c | 120 +++++++++++++++++++------------------- 1 file changed, 60 insertions(+), 60 deletions(-) commit a799f6ccec0ea755c7677c5fe20c1bd52b321c05 Author: Damien Lespiau Date: Sat Oct 3 14:08:33 2009 +0100 Fix string parsing when no unit is given The check should really be on the character pointed by str. Added the corresponding test case. clutter/clutter-units.c | 2 +- tests/conform/test-clutter-units.c | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) commit 4d7b8c9d4290c91ea69d992bad396d067e84b15b Author: Damien Lespiau Date: Sat Oct 3 12:15:13 2009 +0100 clutter_value_get_unit() has not be renamed Since the Great Rework of ClutterUnits, functions have been using 'units' not 'unit' in their name. clutter_value_get_unit() is a left over from a dark age, its declaration and documentation have been updated but not the symbol itself. clutter/clutter-units.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 72243081b5b0bf0518951f9f5f3ae91a7d4c640f Merge: ad83caa 111512a Author: Emmanuele Bassi Date: Mon Oct 5 12:37:08 2009 +0100 Merge branch 'stage-window-object' * stage-window-object: [x11] Fix Stage user-initiated resize [x11] Remove a useless forced paint [stage] Rework the Stage implementation class commit ad83caaed16a36aea0fafd4ed87cc283c30c413b Author: Emmanuele Bassi Date: Mon Oct 5 12:34:48 2009 +0100 Clarify the IdPool warning Instead of having an assertion failure with a message of dubious usefulness, we should probably use a more verbose warning explaining what is the problem and what might be the cause. clutter/clutter-id-pool.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit 111512a2a05243a7fc6f999f18805eae9bd6bfce Author: Emmanuele Bassi Date: Mon Oct 5 12:24:19 2009 +0100 [x11] Fix Stage user-initiated resize The user-initiated resize is conflicting with the allocated size. This happens because we change the size of the stage's X Window behind the back of the size allocation machinery. Instead, we should change the size of the actor whenever we receive a ConfigureNotify event to reflect the new size of the actor. clutter/x11/clutter-event-x11.c | 7 +++---- clutter/x11/clutter-stage-x11.c | 6 +++++- tests/interactive/test-actors.c | 1 + 3 files changed, 9 insertions(+), 5 deletions(-) commit e3c2ed0009e2ce85e65d5a1724a807faae865494 Author: Emmanuele Bassi Date: Mon Oct 5 12:21:02 2009 +0100 [x11] Remove a useless forced paint We force the redraw before mapping, in the hope that when a composited window manager maps the window it will have its contents ready; that is not going to work: the solution for this problem requires the implementation of a protocol for compositors, and not a hack. Moreover, painting before mapping will cause a paint with the wrong GL viewport size, which is the wrong thing to do on GLX. clutter/x11/clutter-stage-x11.c | 5 ----- 1 file changed, 5 deletions(-) commit 6ddffac93561b5d3aa6226ee54bd8a5e1fcedeb5 Author: Emmanuele Bassi Date: Sun Sep 27 11:38:01 2009 +0100 [docs] Update the "Subclassing Actor" chapter The chapter on how to subclass ClutterActor inside the API reference for Clutter is still using ClutterUnit and referencing to concepts that have been changed since the document was written. doc/reference/clutter/subclassing-ClutterActor.xml | 169 +++++++++++++------- 1 file changed, 107 insertions(+), 62 deletions(-) commit ab76d64df02bc03f935e9cdf5a0a29c6ffeace72 Author: Robert Bragg Date: Tue Jul 28 00:40:29 2009 +0100 [cogl-debug] avoid warnings when using COGL_NOTE with unbraced else clauses When not building a debug build the compiler was warning about empty else clauses with no braces due to code like: if (blah) do_foo(); else COGL_NOTE (DRAW, "a-wibble"); This simply ensures that even for non debug builds COGL_NOTE will expand to a single statement. clutter/cogl/cogl-debug.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 904c495c6d3c59b34148c9a4834e4803b488997b Author: Robert Bragg Date: Thu Sep 24 17:34:26 2009 +0100 [cogl-vertex-buffer] fix n_components validation for GL's builtin attributes glVertexPointer expects positions with 2, 3 or 4 components, glColorPointer expects colors with 3 or 4 components and glNormalPointer expects normals with three components so when adding vertex buffer atributes with the names "gl_Vertex", "gl_Color" or "gl_Normal" we assert these constraints and print an explanation to the developer if not met. This also fixes the previosly incorrect constraint that gl_Normal attributes must have n_components == 1; thanks to Cat Sidhe for reporting this: Bug: http://bugzilla.openedhand.com/show_bug.cgi?id=1819 clutter/cogl/common/cogl-vertex-buffer.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) commit dae569b468c286ea23aa0e74e910232e025932db Author: Robert Bragg Date: Thu Sep 24 12:49:17 2009 +0100 [debug] Adds a dump-pick-buffers CLUTTER_DEBUG option Now if you export CLUTTER_DEBUG=dump-pick-buffers clutter will write out a png, e.g. pick-buffer-00000.png, each time _clutter_to_pick() is called. It's a rather crude way to debug the picking (realtime visualization in a second stage would probably be nicer) but it we've used this approach successfully numerous times when debugging Clutter picking issues so it makes sense to have a debug option for it. clutter/clutter-debug.h | 35 +++++++++--------- clutter/clutter-main.c | 94 ++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 106 insertions(+), 23 deletions(-) commit 27ae9722dedb5bc25415c32326ffc7ba4ef1557d Author: Neil Roberts Date: Tue Sep 22 17:55:04 2009 +0100 [container] Remove the unused 'object' variable in destroy_child_meta Since commit b2f958a61 this variable is no longer used so it was causing compiler warnings. clutter/clutter-container.c | 1 - 1 file changed, 1 deletion(-) commit 4293920a11d5216095577cdfc46b9e21bb427a12 Author: Robert Bragg Date: Tue Sep 22 11:27:47 2009 +0100 [tests] Remove test-entry.c since we don't have a ClutterEntry any more Removes an unused interactive unit test for the old ClutterEntry actor we used to have. .gitignore | 1 - tests/interactive/test-entry.c | 47 ---------------------------------------- 2 files changed, 48 deletions(-) commit b710ed0eeace5561ccec1b1558ad26abb4af0da3 Author: Robert Bragg Date: Thu Aug 20 11:53:37 2009 +0100 [backend-egl] fix clutter_backend_egl_get_visual_info to not use Xalloc It looks like the intention was to duplicate an XVisualInfo in such a way that the pointer could be returned and then later freed using XFree. But Xalloc isn't an Xlib counterpart to XFree; Xlib doesn't provide a general purpose malloc wrapper afik. By shuffling things about a bit, it was possible to avoid the need for this hack. clutter/eglx/clutter-backend-egl.c | 46 ++++++++++++------------------------ 1 file changed, 15 insertions(+), 31 deletions(-) commit 6e50e26c86af20597b118f5a71d04f70b173f733 Author: Damien Lespiau Date: Mon Sep 21 15:21:21 2009 +0100 Add a few annotations on Cogl primitives functions By default, float * is considered as an out argument by gobject introspection which is wrong for quite a few Cogl symbols. Start adding annotations to fix that for the ones in the "Primitives" gtk-doc section. clutter/cogl/cogl-path.h | 8 ++++---- clutter/cogl/cogl-texture.h | 15 ++++++++------- 2 files changed, 12 insertions(+), 11 deletions(-) commit 1b37cb6cb79dc36279d40ef108576aafeb905412 Author: Robert Bragg Date: Mon Sep 21 18:12:02 2009 +0100 [container] cast actor to gobject before calling g_object_set_qdata A minor compiler warning fix: in destroy_child_meta we weren't casting the first argument to g_object_set_qdata to a gobject. clutter/clutter-container.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b2f958a61807ca36ccc1e7b3edf112b317885528 Author: Øyvind Kolås Date: Mon Sep 21 15:55:58 2009 +0100 [container] unset the child meta qdata on the child, not the container In the default implementation of container::destroy_child_meta Set child meta qdata to NULL on the child and not the container, since the child is the object that owns the data. clutter/clutter-container.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d4e46bb893d41f7e9d80d3d272765e7b2779d32b Author: Thomas Wood Date: Mon Sep 21 15:40:53 2009 +0100 [container] set the child meta qdata on the child, not the container Set child meta qdata on the child and not the container, since the child is the object that owns the data. clutter/clutter-container.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1c3d5a0e870d6a8f221577783f4c9d79dbc062c5 Author: Neil Roberts Date: Thu Sep 17 18:29:03 2009 +0100 [cogl] Remove CoglContext->journal_vbo{,_len} The lifetime of the journal VBO is entirely within the scope of the cogl_journal_flush function so there is no need to store it globally in the Cogl context. Instead, upload_vertices_to_vbo just returns the new VBO. cogl_journal_flush stores this in a local variable and destroys it before returning. This also fixes an assertion when using the GLES backend which was caused by nothing initialising the journal_vbo variable. clutter/cogl/common/cogl-primitives.c | 20 ++++++++++---------- clutter/cogl/gl/cogl-context.c | 2 -- clutter/cogl/gl/cogl-context.h | 2 -- clutter/cogl/gles/cogl-context.h | 1 - 4 files changed, 10 insertions(+), 15 deletions(-) commit ecfa0c4f92e3a78bdc4257c62a61b47aa41e0d05 Author: Emmanuele Bassi Date: Wed Sep 16 17:43:58 2009 +0100 [build] Split out the custom silent rules The silent rules we use for custom targets should be moved into a separate Makefile.am that gets included from all the others. Makefile.am | 2 ++ build/autotools/Makefile.am | 1 + build/autotools/Makefile.am.silent | 17 +++++++++++++++++ clutter/Makefile.am | 12 +++++------- clutter/cogl/Makefile.am | 8 ++------ clutter/cogl/common/Makefile.am | 8 ++------ clutter/cogl/gl/Makefile.am | 2 ++ clutter/cogl/gles/Makefile.am | 2 ++ clutter/glx/Makefile.am | 2 ++ clutter/pango/Makefile.am | 2 ++ clutter/x11/Makefile.am | 2 ++ tests/conform/Makefile.am | 8 +++++--- tests/data/Makefile.am | 1 - tests/interactive/Makefile.am | 11 ++++++----- tests/micro-bench/Makefile.am | 2 ++ tests/tools/Makefile.am | 9 ++++++--- 16 files changed, 58 insertions(+), 31 deletions(-) commit 94e60c393b6be8b69140da01835a377409f6a77b Author: Robert Bragg Date: Wed Sep 16 17:12:30 2009 +0100 [test-cogl-multitexture] Print an error if textures can't be loaded I just wasted a silly amount time trying to bisect an apparently broken cogl-test-multitexture until I realized it was just silently failing to load any textures. tests/interactive/test-cogl-multitexture.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) commit 3b4f46a18a1c631410b324d5f926c64f0e22ae93 Author: Emmanuele Bassi Date: Wed Sep 16 12:47:46 2009 +0100 [docs] Fix the comment on version bumps configure.ac | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 35c0da2b3a2558964ba74b9a213262f377aa2650 Author: Emmanuele Bassi Date: Wed Sep 16 11:57:45 2009 +0100 [gitignore] Add test-preferred-size .gitignore | 1 + 1 file changed, 1 insertion(+) commit 9dc012c07d1f6760d8d4cca07f5279e7b316dbd0 Author: Emmanuele Bassi Date: Wed Sep 16 11:55:04 2009 +0100 [timeline] Account for clock roll backs between frames If the system clock rolls back between two frames then we need to account for the change, to avoid stopping the timeline. The best option, since a roll back can be any arbitrary amount of milliseconds, is to skip a frame. Fixes bug: http://bugzilla.moblin.org/show_bug.cgi?id=3839 clutter/clutter-timeline.c | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) commit 0d08f6e0707c1b3274227abc8054529422206e22 Author: Robert Bragg Date: Tue Sep 15 16:27:45 2009 +0100 [cogl-fbo] Disable mipmap filters before calling glCheckFramebufferStatusEXT The framebuffer_object spec isn't clear in defining whether attaching a texture as a renderbuffer with mipmap filtering enabled while the mipmaps have not been uploaded should result in an incomplete framebuffer object. (different drivers make different decisions) To avoid an error with drivers that do consider this a problem we explicitly set non mipmapped filters before calling glCheckFramebufferStatusEXT. The filters will later be reset when the texture is actually used for rendering according to the filters set on the corresponding CoglMaterial. clutter/cogl/gl/cogl-fbo.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 561f5868e876ec17e9a6fa66282b8dcdf3ead6b6 Author: Emmanuele Bassi Date: Tue Sep 15 11:09:49 2009 +0100 [tests] Add preferred size conformance test unit This unit verifies that an Actor class will invoke the get_preferred_* virtual functions unless the caching is in effect; it also verifies that the cached values are correctly evicted. tests/conform/test-actor-size.c | 136 ++++++++++++++++++++++++++++++++++++- tests/conform/test-conform-main.c | 1 + 2 files changed, 136 insertions(+), 1 deletion(-) commit 092401c01b249cd3ae9e4788ecbcce91ebb80f38 Author: Emmanuele Bassi Date: Mon Sep 14 21:45:51 2009 +0100 [tests] Add initial sizing conformance test suite The size requisition and allocation mechanisms should be thoroughly tested to avoid unwanted regressions. For starters, we can test the explicit size setting and the side effects of calling clutter_actor_set_size(). .gitignore | 1 + tests/conform/Makefile.am | 1 + tests/conform/test-actor-size.c | 77 +++++++++++++++++++++++++++++++++++++ tests/conform/test-conform-main.c | 2 + 4 files changed, 81 insertions(+) commit abbe2ebf8baa61edeaa2071fa850d000d565a6ce Author: Emmanuele Bassi Date: Mon Sep 14 15:57:31 2009 +0100 [container] Use a 1:1 mapping between child and ChildMeta Since an actor can only be parented to one container we don't need the extra complications of maintaining a list of ChildMeta objects attached to an actor in the default implementation of the Container interface. clutter/clutter-container.c | 50 ++++++++----------------------------------- 1 file changed, 9 insertions(+), 41 deletions(-) commit 6e3afa4ebed9ea4f9347e8dfd6f3cc20d1042dcd Author: Damien Lespiau Date: Thu Sep 10 13:27:02 2009 +0100 [docs] Clutter's model implementation is called ClutterListModel It was renamed from ClutterModelDefault to ClutterListModel a while back. Update the reference to this class in ClutterModel documentation. clutter/clutter-model.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit c5195dda1533e2f42514a880bb5b7d105d4fe541 Author: Emmanuele Bassi Date: Wed Sep 9 16:15:54 2009 +0100 [docs] Add fixxref for Cairo symbols Let gtk-doc resolve the Cairo types and symbols to the installed Cairo documentation. configure.ac | 2 ++ doc/reference/clutter/Makefile.am | 6 +++--- 2 files changed, 5 insertions(+), 3 deletions(-) commit f4e272ee9b6224cddc7eca54172025c5232e37bf Author: Emmanuele Bassi Date: Wed Sep 9 16:01:07 2009 +0100 [docs] Add a Path migration guide ClutterBehaviourPath has been changed and ClutterBehaviourBspline has been removed; now we use ClutterPath everywhere we need to describe a path. This warrants a chapter in the migration guide. doc/reference/clutter/Makefile.am | 6 +- doc/reference/clutter/clutter-docs.xml.in | 1 + doc/reference/clutter/migrating-ClutterPath.xml | 167 +++++++++++++++++++++++ 3 files changed, 172 insertions(+), 2 deletions(-) commit 3cc56b2b138ff6451ba73e088d1023705455aef7 Author: Øyvind Kolås Date: Tue Sep 8 13:06:51 2009 +0100 [text] implement get_property for "use-markup" clutter/clutter-text.c | 4 ++++ 1 file changed, 4 insertions(+) commit 6988744db750dc3430a6c8cdd6274bc7e855aaf5 Author: Emmanuele Bassi Date: Thu Aug 13 12:34:07 2009 +0100 [stage] Rework the Stage implementation class Instead of using ClutterActor for the base class of the Stage implementation we should extend the StageWindow interface with the required bits (geometry, realization) and use a simple object class. This require a wee bit of changes across Backend, Stage and StageWindow, even though it's mostly re-shuffling. First of all, StageWindow should get new virtual functions: * geometry: - resize() - get_geometry() * realization - realize() - unrealize() This covers all the bits that we use from ClutterActor currently inside the stage implementations. The ClutterBackend::create_stage() virtual function should create a StageWindow, and not an Actor (it should always have been; the fact that it returned an Actor was a leak of the black magic going on underneath). Since we never guaranteed ABI compatibility for the Backend class, this is not a problem. Internally to ClutterStage we can finally drop the shenanigans of setting/unsetting actor flags on the implementation: if the realization succeeds, for instance, we set the REALIZED flag on the Stage and we're done. As an initial proof of concept, the X11 and GLX stage implementations have been ported to the New World Order(tm) and show no regressions. clutter/Makefile.am | 2 +- clutter/clutter-backend.c | 14 ++-- clutter/clutter-backend.h | 5 +- clutter/clutter-private.h | 2 +- clutter/clutter-stage-window.c | 79 +++++++++++++++++- clutter/clutter-stage-window.h | 33 ++++++++ clutter/clutter-stage.c | 105 ++++++++++++------------ clutter/clutter.h | 1 + clutter/glx/clutter-backend-glx.c | 14 ++-- clutter/glx/clutter-stage-glx.c | 50 +++++------- clutter/x11/clutter-stage-x11.c | 161 +++++++++++-------------------------- 11 files changed, 253 insertions(+), 213 deletions(-) commit 742cc4d95b602440c004d5af09a7fab662f03596 Author: Emmanuele Bassi Date: Mon Sep 7 11:44:44 2009 +0100 [docs] Small annotation fixes clutter/clutter-behaviour.c | 5 +++-- clutter/cogl/cogl-material.h | 29 ++++++++++++++++++----------- clutter/cogl/cogl-texture.h | 7 ++++--- 3 files changed, 25 insertions(+), 16 deletions(-) commit c69209a253c7ccbfe5d2c91e6972fa3dc1deb50c Author: Neil Roberts Date: Mon Sep 7 11:36:05 2009 +0100 [animation] Move the check for the 'signal::' prefix into a separate function The old code checked whether the property began with 'signal-' and then checked for 'signal-swapped' and 'signal-after'. This prevented you from animating a property called for example 'signal-strength'. The check for the prefix is now in a separate function which also adds a 'signal-swapped-after' prefix for completeness. Fixes bug: http://bugzilla.openedhand.com/show_bug.cgi?id=1798 clutter/clutter-animation.c | 75 +++++++++++++++++++++++-------------------- 1 file changed, 41 insertions(+), 34 deletions(-) commit 7783635af3c78cf65fcb62ccb03478f1a9556b05 Author: Emmanuele Bassi Date: Thu Sep 3 16:51:14 2009 +0100 [docs] Add more collateral documentation * Add the main Glossary for Clutter terms * Add the annotation glossary, as generated by gtk-doc * Add the objects index and tree doc/reference/clutter/Makefile.am | 2 + doc/reference/clutter/clutter-docs.xml.in | 45 ++++++++- doc/reference/clutter/glossary.xml | 142 +++++++++++++++++++++++++++++ 3 files changed, 184 insertions(+), 5 deletions(-) commit 763f5a9d014656c09c4684bc69a0e45862882f43 Author: Samuel Degrande Date: Wed Sep 2 16:27:22 2009 +0100 DOT3_RGB[A] cannot be used in a Blend String The blend string compiler checks that the syntax of a function name is [A-Za-z_]*, preventing the use of DOT3_RGB[A]. Signed-off-by: Emmanuele Bassi clutter/cogl/common/cogl-blend-string.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit a5e081dc9c8f39ce66270b77f5beaa6ac53e7a91 Author: Emmanuele Bassi Date: Wed Sep 2 15:26:33 2009 +0100 [model] Do not attempt to free empty column names The column names are optional - ClutterModel will use the GType name if there is no user-specified column name. Hence, the ::finalize vfunc should not try to free an empty column names vector. Fixes bug: http://bugzilla.openedhand.com/show_bug.cgi?id=1790 clutter/clutter-model.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) commit 3686107460847d6b9333ff2149b850401590bae8 Author: Emmanuele Bassi Date: Mon Aug 31 15:49:39 2009 +0100 [docs] Make sure to document the point-release process Put the documentation right inside configure.ac, lest I forget. configure.ac | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) commit db6b0a91e0c2aebb245ad5d382769889abbf88dd Author: Neil Roberts Date: Wed Aug 26 18:28:35 2009 +0100 Take a reference to the material in clutter_texture_set_cogl_material The material is unref'd in clutter_texture_finalize and the documentation explicitly states that the function will take a ref so it really should. clutter/clutter-texture.c | 2 ++ 1 file changed, 2 insertions(+) commit bad7782ab4bc0b5a96d8a97b9b32d5726343b1c2 Author: Neil Roberts Date: Wed Aug 26 18:24:48 2009 +0100 Fix the documentation for clutter_texture_set_cogl_material The documentation was a copy of the docs for set_cogl_texture so it was somewhat broken. clutter/clutter-texture.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) commit b766a1cc100778c7f74acd9dcc280400eae4c55b Author: Emmanuele Bassi Date: Wed Aug 26 16:50:37 2009 +0100 [tests] Update the script test JSON The test-script.json UI definition still used old types, like ClutterLabel and ClutterCloneTexture. It should move to the classes that have replaced them. tests/data/test-script.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit bb17dc1ce5d91f68da53944b5d7565be00b179eb Author: Emmanuele Bassi Date: Wed Aug 26 16:49:45 2009 +0100 [script] Clean up the ad hoc parsing code in Actor The old parsing code still assumed we had integers for pixels and floating point values for percentages; this is not the case anymore. clutter/clutter-actor.c | 38 ++------------------------------------ 1 file changed, 2 insertions(+), 36 deletions(-) commit 2ffebad3d9b29931c29b8cb927580f9166ab39df Author: Emmanuele Bassi Date: Wed Aug 26 16:48:32 2009 +0100 [script] Convert double to float when parsing The default floating point type for JSON is double precision; this means that we need to conver to single precision when setting a property with type G_TYPE_FLOAT. clutter/clutter-script.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit 87831b3427be959bea6a649e2718a5bda5927463 Author: Emmanuele Bassi Date: Tue Aug 25 17:55:51 2009 +0100 [tests] Add a Group actor unit We need to test that the depth sorting of ClutterGroup works correctly in case we wish to change the data structure that stores the children, and do so without changing the default behaviour. .gitignore | 1 + tests/conform/Makefile.am | 1 + tests/conform/test-conform-main.c | 2 ++ tests/conform/test-group.c | 57 +++++++++++++++++++++++++++++++++++++ 4 files changed, 61 insertions(+) commit f1d58812078e04c7db17c80b51d48bb716b868d1 Author: Øyvind Kolås Date: Tue Aug 25 17:32:42 2009 +0100 [group] Use floating point in sort_z_order clutter/clutter-group.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit d8d344f52930872a8eabdcc801872246b7ae61d1 Author: Emmanuele Bassi Date: Tue Aug 25 12:39:40 2009 +0100 [docs] Add Interval get_type function The get_type() function for ClutterInterval is missing from the known GObject types, so gtk-doc doesn't know that it has to introspect it for hierarchy, properties and signals. doc/reference/clutter/clutter.types | 1 + 1 file changed, 1 insertion(+) commit 95a6e1c925c7dd24ba97a4625d1da09ff861e5c3 Author: Emmanuele Bassi Date: Tue Aug 25 12:18:32 2009 +0100 Fix the warnings for Animation::update_interval() The bindings for update_interval() were copied from bind(). clutter/clutter-animation.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 899f051cd92fb0b5d41948897c7130b86a98dae9 Author: Emmanuele Bassi Date: Tue Aug 25 12:16:41 2009 +0100 [animation] Add Animation::update() Currently, to update a property inside an animation you have to get the interval for that property and then call the set_final_value() method. We can provide a simpler, bind()-like method for the convenience of the developers that just validates everything and then calls the Interval.set_final_value(). clutter/clutter-animation.c | 53 ++++++++++++++++++++++++++++ clutter/clutter-animation.h | 3 ++ doc/reference/clutter/clutter-sections.txt | 1 + 3 files changed, 57 insertions(+) commit 4ca375e8fe395e375826ea795566b8af8029e09f Author: Neil Roberts Date: Mon Aug 24 12:50:57 2009 +0100 [cogl-texture] Set GL_PACK_ROW_LENGTH when downloading texture data Otherwise the rowstride passed in from an application is not used correctly so you can not download to an area with a much larger rowstride. clutter/cogl/gl/cogl-texture.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) commit 172074fd29cd42bf2790f78aa736f854218906f0 Author: Emmanuele Bassi Date: Fri Aug 21 12:05:52 2009 +0100 [glx] Perform more checks before calling glXMakeCurrent Right now we just check for a NULL stage before calling glXMakeCurrent(). We can, though, get a valid stage without an implementation attached to it while we are disposing a stage after a CLUTTER_DELETE event, since the events processing is performed on a vblank-locked basis. clutter/glx/clutter-backend-glx.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) commit 93e1d8e7a35afd0f1c08022bdf0f04154ad08ef1 Author: Owen W. Taylor Date: Fri Aug 7 21:16:04 2009 -0400 Add ::queue-relayout signal to ClutterActor for ClutterClone ClutterClone bases its preferred size on the preferred size of the source actor, so it needs to invalid its cached preferred size when the preferred size of the source actor changes. In order for this to work, we need to have notification when the size of the source actor changes, so add a ::queue-relayout signal to ClutterActor. Then connect to this from ClutterClone and queue a relayout on the clone when a relayout is queued on the source. http://bugzilla.openedhand.com/show_bug.cgi?id=1755 Signed-off-by: Emmanuele Bassi clutter/clutter-actor.c | 56 ++++++++++++++++++++++++++++++++++++++--------- clutter/clutter-actor.h | 5 ++++- clutter/clutter-clone.c | 12 ++++++++++ 3 files changed, 62 insertions(+), 11 deletions(-) commit 56daae9d7bc49a29a4e1c4e093928efb747ed675 Author: Robert Bragg Date: Thu Aug 20 12:53:32 2009 +0100 Revert "[cogl] Allow Cogl to create NPOT textures for GLES2" This reverts commit 3c47a3beb51462ef8af1070b75123660059e97d0. Of course I remembered just after pushing the patch why we hadn't done this before :-) If you look in the glsl spec: http://www.khronos.org/registry/gles/specs/2.0/es_full_spec_2.0.24.pdf Section 3.7.10 Texture Completeness and Non-Power-Of-Two Textures you can see GLES 2.0 doesn't support mipmaps for npot textures. There is possibly some way we could support this in Cogl but at least it's not as simple as or-ing in the feature flag, sadly. clutter/cogl/gles/cogl.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 3c47a3beb51462ef8af1070b75123660059e97d0 Author: Robert Bragg Date: Thu Aug 20 12:15:21 2009 +0100 [cogl] Allow Cogl to create NPOT textures for GLES2 The core GLES2 API supports NPOT textures, i.e. there is no extension as for OpenGL, so we now add COGL_FEATURE_TEXTURE_NPOT to the feature flags in _cogl_features_init. Thanks to Gordon Williams for spotting this. clutter/cogl/gles/cogl.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit a5fe4ae4ec5c5c43aa0898095284447095462e37 Author: Robert Bragg Date: Wed Aug 19 15:38:25 2009 +0100 [cogl] %.c: %.glsl codegen: use BUILT_SOURCES var + fix stringify.sh Don't let stringify.sh write to the $srcdir + use the BUILT_SOURCES var in Makefile.am so as to ensure all .c. and .h files get generated from their corresponding .glsl files before building other targets. clutter/cogl/gles/Makefile.am | 14 +++++++++----- clutter/cogl/gles/stringify.sh | 40 +++++++++++++++++++--------------------- 2 files changed, 28 insertions(+), 26 deletions(-) commit 3761e9cd47950bfade7d3b829b20b245806632a2 Author: Jonas Bonn Date: Wed Aug 19 13:14:10 2009 +0000 Check timeline direction when forcing final state If the timeline is running backwards, the completed signal handler should set the final state from the interval's initial value. Signed-off-by: Emmanuele Bassi clutter/clutter-animation.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit 373b165b3f1adc556e7ee70f01cff66d4a38cd60 Author: Emmanuele Bassi Date: Mon Aug 10 12:45:44 2009 +0200 Use AM_SILENT_RULES if automake >= 1.11 is installed Fixes bug: http://bugzilla.openedhand.com/show_bug.cgi?id=1756 Based on a patch by: Javier Jardón clutter/Makefile.am | 7 +++++-- clutter/cogl/Makefile.am | 6 ++++-- clutter/cogl/common/Makefile.am | 7 ++++--- configure.ac | 18 +++++++++++++++--- 4 files changed, 28 insertions(+), 10 deletions(-) commit 6a9130f10fe5ed3c78b541cf0d021857efb57cb4 Author: Neil Roberts Date: Tue Aug 18 18:07:37 2009 +0100 [pango-display-list] Don't premultiply the colour twice When rendering a glyph run from a texture we were premultiplying the colour once in display_list_render() and then again in display_list_render_texture(). This was causing the color to come out wrong. This fixes bug #1775. Thanks to Pierre-Luc Beaudoin for reporting. clutter/pango/cogl-pango-display-list.c | 1 - 1 file changed, 1 deletion(-) commit 9befb055d0dd993d1171bf5652eefdc35567e7f5 Author: Robert Bragg Date: Tue Aug 18 16:13:13 2009 +0100 [cogl-material] Fix some brackets in _layer_flush_gl_sampler_state The wrong part of an expression was bracketed in the test to determine when a new texture matrix needed to be loaded which resulted in the first pass through _cogl_material_layer_flush_gl_sampler_state not uploading any user matrix. clutter/cogl/common/cogl-material.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 366e0725ce1bb804219b28a29539add1e05f73e8 Author: Emmanuele Bassi Date: Tue Aug 18 11:11:29 2009 +0100 [docs] texture_polygon() is called polygon() Remove the mentions to the old name of cogl_polygon(). clutter/cogl/cogl-types.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit f655b28e669b7aec5b3ace0d8873adeefa11b4de Author: Emmanuele Bassi Date: Mon Aug 17 23:27:22 2009 +0100 [build] Nothing can be prepended to QUIET_* rules Move the LD_LIBRARY_PATH override after the QUIET_GEN rule and unbreak the typelib compilation. clutter/Makefile.am | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 8c00d705c0ec009c08950f314ab896b6ff40aa37 Author: Jussi Kukkonen Date: Mon Aug 17 00:00:35 2009 +0300 [text] move_word_backward/forward fixes clutter_text_move_word_backward/forward() calls did not use the start argument consistently. Also, clutter_text_move_word_forward() bound check checked the wrong end. Fixes #1765 Signed-off-by: Emmanuele Bassi clutter/clutter-text.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 99437c476136ec6a735270efd8670efcd1f2c77e Author: Neil Roberts Date: Mon Aug 17 17:43:42 2009 +0100 [text] Don't interpret the unicode value when the control modifier is on When a letter key is pressed with the control key held down one of three things will happen :- a) If the stage is embedded within a GtkClutterEmbed the unicode value will be filled from gdk_keyval_to_unicode. This will be the same value as if control was not pressed (so Ctrl+V will be 'v'). b) If the stage is not in a GtkClutterEmbed and Clutter is running on the X11 backend then it will try to fill in the unicode value from XLookupString. This *will* take into account the control so the unicode value will represent a control character (Ctrl+V will be '\x16'). c) Most other backends will not bother to fill in the unicode value. Therefore clutter_keysym_to_unicode will be used which also does not take into account the control key (so Ctrl+V will be 'v'). For cut and paste to work in Nbtk, the control keys need to bubble up to the parent NbtkEntry container. This works fine for 'b' but not 'a' and 'c'. This patch makes ClutterText always allow the event to bubble if the key is not handled by the binding pool and the control modifier is down. Ideally ClutterText would always get a unicode value that takes into account the modifiers but this is probably best left up to the input methods. Signed-off-by: Emmanuele Bassi clutter/clutter-text.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 5d7c2e7c4495b3d6f35ed3f4e50857f17b946872 Author: Owen W. Taylor Date: Mon Aug 17 13:57:18 2009 -0400 Set LD_LIBRARY_PATH when running g-ir-compiler g-ir-compiler currently opens the library for the .gir it is compiling; to make that work we need to set LD_LIBRARY_PATH before running g-ir-compiler to include .libs. (I think this may have been working earlier because there was a hack that substituted .so with .la and tried opening that; that works for the incorrect libclutter-glx-1.0.so but not for the correct libclutter-glx-1.0.so.0) http://bugzilla.openedhand.com/show_bug.cgi?id=1771 clutter/Makefile.am | 1 + 1 file changed, 1 insertion(+) commit 4c1248c5e9b934b23bdabbfc3d2dabdb8bab0656 Author: Owen W. Taylor Date: Mon Aug 17 15:41:27 2009 +0100 Full fix for the G-I support in Clutter Update the sed hack for the shared library to be more robust. Remove the --shared-library command line argument from g-ir-scanner, as no distribution will ever ship the .la files. This effectively reverts commit 68f8a98cfbf70e2b7bfcda7831907633eb08ca50. Signed-off-by: Emmanuele Bassi clutter/Makefile.am | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 68f8a98cfbf70e2b7bfcda7831907633eb08ca50 Author: Götz Waschk Date: Mon Aug 17 14:21:42 2009 +0100 Specify the shared library for g-ir-compile Use the --shared-library option to specify the shared object to link against when compiling the typelib from the GIR data. Signed-off-by: Emmanuele Bassi clutter/Makefile.am | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 366e0f9cd7773433ba14cc531119bca3b9879a1e Author: Götz Waschk Date: Mon Aug 17 14:12:21 2009 +0100 Update Clutter to use G-I 0.6.4 Following bug #1762, the syntax of g-ir-scanner was changed in gobject-introspection, so Clutter does not build anymore with 0.6.4. See the bugzilla bug: http://bugzilla.gnome.org/show_bug.cgi?id=591669 GObject-Introspection now uses a different mechanism to extract the SONAME when building the gir file and it needs the libtool archive as option. Signed-off-by: Emmanuele Bassi README | 2 +- clutter/Makefile.am | 2 +- clutter/cogl/Makefile.am | 2 +- clutter/json/Makefile.am | 2 +- configure.ac | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) commit 53cb86d94ba258cb917221856501c60738a143f3 Author: Emmanuele Bassi Date: Mon Aug 17 10:27:13 2009 +0100 [docs] Update the requirements section README | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit 90d8f3183193176b796ac533158e3b0c2a4c2e85 Author: Emmanuele Bassi Date: Fri Aug 14 15:59:29 2009 +0100 [units] Do not be locale-dependant on string conversion When dumping a ClutterUnits structure to a string we are using a bare g_strdup_printf(), which unfortunately is locale dependant. So, for instance, a type of CLUTTER_UNIT_EM and a value of 42 are stringified as: C: 42.00 em en_GB 42.00 em it_IT 42,00 em fr_FR 42,00 em This would not be a problem -- clutter_units_from_string() allows both '.' and ',' as fractionary part delimiters. The test suite, on the other hand, does not know that, and it checks for exact matches with the C locale. Calling setlocale(LC_ALL,"C") at the beginning of the conformance test suite is not a good idea, because it would prevent external testing; and it's a lame cop out from doing exactly what we have to do -- pick a format and stick with it. Like other platforms, languages and frameworks before us, we opt to be less liberal in what we create; so, we choose to always stringify ClutterUnits with fractionary parts using '.' as the delimiter. Fixes bug: http://bugzilla.openedhand.com/show_bug.cgi?id=1763 clutter/clutter-units.c | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) commit f08b583a312cd87f3263078eecdb19a9328ac79f Author: Emmanuele Bassi Date: Fri Aug 14 15:58:00 2009 +0100 [tests] Abstract GTest and Clutter initialization The set up process of the conformance test suite is complex enough to warrant a split up into its own function. tests/conform/test-conform-main.c | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) commit b31e2d59bdfcc3be46f3ec87de4bcabc32747133 Author: Emmanuele Bassi Date: Fri Aug 14 13:08:59 2009 +0100 [build] Remove last user of CLUTTER_MAJORMINOR We should always use CLUTTER_API_VERSION instead. doc/manual/Makefile.am | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 5274b4e4c48dbd81c7553ef9889b5897afe932c5 Author: Emmanuele Bassi Date: Fri Aug 14 13:08:17 2009 +0100 [build] Clean up the eglnative and fruity Makefile.am * Do not use CLUTTER_MAJORMINOR * Use per-target compiler flags and libraries clutter/eglnative/Makefile.am | 11 +++++------ clutter/fruity/Makefile.am | 21 ++++++++++----------- 2 files changed, 15 insertions(+), 17 deletions(-) commit f7edc97d8df2f035fa81343126884b0cbfc9bc3a Author: Xu Li Date: Tue Aug 4 22:06:27 2009 +0800 Add new Atom atom_NET_WM_PID to set pid info Clutter advertises itself on X11 as implementing the _NET_WM_PING protocol, which is needed to be able to detect frozen applications; this allows us to stop the destruction of the stage by blocking the CLUTTER_DELETE event and wait for user feedback without the Window Manager thinking that the app has gone unresponsive. In order to implement the _NET_WM_PING protocol properly, though, we need to add the _NET_WM_PID property on the Stage window, since the EWMH states: [_NET_WM_PID] MAY be used by the Window Manager to kill windows which do not respond to the _NET_WM_PING protocol. Meaning that an unresponsive Clutter application might not be killable by the window manager. Fixes bug: http://bugzilla.openedhand.com/show_bug.cgi?id=1748 Signed-off-by: Emmanuele Bassi clutter/x11/clutter-backend-x11.c | 22 ++++++++++++---------- clutter/x11/clutter-backend-x11.h | 1 + clutter/x11/clutter-stage-x11.c | 25 +++++++++++++++++++++++++ 3 files changed, 38 insertions(+), 10 deletions(-) commit 3abf393b87d83211d82b161c0417d80312b8783f Author: Emmanuele Bassi Date: Fri Aug 14 11:29:03 2009 +0100 [build] Clean up cogl-pango Makefile * Do _not_ use CLUTTER_MAJORMINOR to define the installation path for the headers; we must use CLUTTER_API_VERSION for that. * Do not put the C compiler flags in the INCLUDES directive. Bases on a patch by: Gary Ching-Pang Lin clutter/pango/Makefile.am | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit 5c8ae6d2dcdb592a56f33927dcec2369a9147396 Author: Emmanuele Bassi Date: Thu Aug 13 18:05:38 2009 +0100 [json] Fix compilation of the internal JSON-GLib Define the symbols needed to pass the single include policy when compiling the static object. clutter/json/Makefile.am | 4 +++- clutter/json/json-glib.h | 4 ++++ 2 files changed, 7 insertions(+), 1 deletion(-) commit 6e1f9ad9b65fedaa18950de712d7f6ab39b809f0 Author: Emmanuele Bassi Date: Thu Aug 13 16:15:04 2009 +0100 [docs] Remove the version number from the title The version number in the title made sense when we were breaking API with every minor release. Now that we're API stable we can drop that and make the output in Devhelp and on the website slightly more good looking. doc/reference/clutter/clutter-docs.xml.in | 4 ++-- doc/reference/cogl/cogl-docs.xml.in | 9 +++++++-- 2 files changed, 9 insertions(+), 4 deletions(-) commit 8a794a85337c01a21f88a02c84bd519ed511b6c6 Author: Emmanuele Bassi Date: Thu Aug 13 16:13:55 2009 +0100 [docs] Fix the examples for animate() Update the examples to reference to existing easing modes and to make sure to use floating point values for floating point properties. clutter/clutter-animation.c | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) commit f25cdf066c023222330119a1fe8ef5204773faa7 Author: Emmanuele Bassi Date: Thu Aug 13 12:26:09 2009 +0100 [actor] Allow unsetting width and height separately It is possible to unset the size of an actor specified with set_width() and set_height() by using: clutter_actor_set_size (actor, -1, -1); Which works by unsetting the :min-*-set and the :natural-*-set properties. Calling set_width(-1) and set_height(-1) separately, though, doesn't work thus implicitly breaking the assumption that set_size() is nothing more than set_width()+set_height(). This was obviously due to the face that pre-1.0 set_width() and set_height() took an unsigned integer as an argument. clutter/clutter-actor.c | 81 ++++++++++++++++++++++++++++++----------------- 1 file changed, 52 insertions(+), 29 deletions(-) commit d3e06bc1e5654248d86aaa568179c5732839412e Author: Colin Walters Date: Thu Aug 13 10:49:39 2009 +0100 Add (allow-none) for clutter_stage_set_key_focus() The @actor argument can be NULL to unset the key focus. Signed-off-by: Emmanuele Bassi clutter/clutter-stage.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9766fb13005b04669e60befd9e0e3cddf822ac1c Author: Emmanuele Bassi Date: Wed Aug 12 16:02:23 2009 +0100 [script] Fix Actor's ad-hoc parser ClutterActor parses positional and dimensional properties with a custom deserializer. We need to: - handle G_TYPE_INT64, the default integer type for JSON-GLib - use G_TYPE_FLOAT for properties, since Actor switched to it for the pixel-based ones This makes ClutterScript work again. clutter/clutter-actor.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit cfbbacb8079e2ad92d5e538195d49cfdf8818144 Author: Emmanuele Bassi Date: Wed Aug 12 16:01:25 2009 +0100 [script] Fix the default deserialization Properties parsed from ClutterScript should now use G_TYPE_INT64 and automatically convert between G_TYPE_INT and G_TYPE_INT64. clutter/clutter-script.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) commit 4d522456372c2394046968ce0a4b22f603023d32 Author: Emmanuele Bassi Date: Wed Aug 12 16:00:13 2009 +0100 [json] Update the internal copy of JSON-GLib JSON-GLib switch to 64 bit integers upstream, to avoid the undefined integer size of the JSON RFC. All integers are automatically promoted to gint64. clutter/json/json-array.c | 4 +-- clutter/json/json-node.c | 61 +++++++++++++++++++++++++++++++++++--------- clutter/json/json-object.c | 41 ++++++++--------------------- clutter/json/json-parser.c | 13 +++++----- clutter/json/json-types.h | 16 +++++++----- 5 files changed, 78 insertions(+), 57 deletions(-) commit 2b70b0d4ed791e8bc25b59eb3b2e9dbeb8201b11 Author: Emmanuele Bassi Date: Wed Aug 12 15:57:25 2009 +0100 Include clutter-json.h, not json-types.h The json-types.h header is found by the mere fact of it being in the project; if we are compiling against the system JSON-GLib this could be horribly out of date. We need to use clutter-json.h, which will include the right header for us. clutter/clutter-script-private.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cc6aa6e4d537c5eec3fda85475f78bdf0da2ea10 Author: Emmanuele Bassi Date: Wed Aug 12 15:32:18 2009 +0100 Clutter GIR depends on ClutterJson GIR conditionally If we're building Clutter with a system JSON-GLib we need to skip the typelib compilation of ClutterJson since we depend on Json-1.0.gir directly. clutter/Makefile.am | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 6fcf5c1820b29610a05e0f5022d1d6d907716df5 Author: Emmanuele Bassi Date: Wed Aug 12 15:31:16 2009 +0100 [json] Include only json-glib.h JSON-GLib moved to a single include scheme, so we should only include json-glib.h. If we use the internal copy it doesn't matter, since the header does the right thing. clutter/clutter-json.h.in | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 8c49e227536fabddd2cbf81aa94e1624d30ca312 Author: Emmanuele Bassi Date: Wed Aug 12 10:30:11 2009 +0100 Add copyright and license notice The clutter-script-parser.c does not have a copyright and license notices; even though the LGPL is a per-project license and not a per-file license, having those notices in every source file is a good idea. clutter/clutter-script-parser.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) commit 13e055a351f83c56b895b131566a6e842d24ed2a Author: zhou jiangwei Date: Tue Aug 11 14:18:37 2009 +0100 [eglx] Update the EGLX backend The EGLX backend needs to be updated to the new ClutterBackendX11 code. Signed-off-by: Emmanuele Bassi clutter/eglx/clutter-backend-egl.c | 43 ++++++++++++++++++++++++++++++++++++ clutter/eglx/clutter-backend-egl.h | 1 + clutter/eglx/clutter-stage-egl.c | 4 ++-- 3 files changed, 46 insertions(+), 2 deletions(-) commit 2ab9bef5873ca9d226ddf31fc65b96fe20fa72d5 Author: zhou jiangwei Date: Tue Aug 11 14:17:28 2009 +0100 [cogl] Fix the GLES 2.0 backend Update the GLES 2.0 backend to the new COGL API after the breakage introduced by the journal. Signed-off-by: Emmanuele Bassi clutter/cogl/common/cogl-primitives.c | 5 +++-- clutter/cogl/gles/cogl-context.h | 5 ++++- clutter/cogl/gles/cogl-gles2-wrapper.h | 5 +++++ clutter/cogl/gles/cogl-primitives.c | 10 +++++----- clutter/cogl/gles/cogl-texture-private.h | 3 +++ 5 files changed, 20 insertions(+), 8 deletions(-) commit dbfd3f0f444680d85556edc0b96dff68ea22722d Author: Robert Bragg Date: Tue Aug 11 13:49:12 2009 +0100 [cogl_clear] Also pass the alpha component of the CoglColor to glClearColor Previously we were passing a constant of 0.0 for the alpha component which wasn't as flexible. clutter/cogl/common/cogl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f0cb337d920c46cb7ca45d80ade69057d0408ff5 Author: Emmanuele Bassi Date: Tue Aug 11 13:27:25 2009 +0100 [build] Fix LDADD -> LIBADD usage clutter/osx/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit dfc32b60c4b1b0b83fbf70d7e02b58cbc919326a Author: Emmanuele Bassi Date: Tue Aug 11 13:11:34 2009 +0100 [osx] Clean up Makefile.am The OS X backend Makefile.am was missing a line concatenation, and so the -xobjective-c directive was always ignored. Instead of dumping everything into INCLUDES and LDADD we should follow what the rest of the backends do, and use per-target CFLAGS and LDADD, and reserve the INCLUDES to -D and -I directives. Thanks to: Christian Hergert clutter/osx/Makefile.am | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) commit d0748b3b9b34bf77ed3b813e3872cac64d6a6c35 Merge: d263e7a df572d0 Author: Emmanuele Bassi Date: Mon Aug 10 17:21:20 2009 +0100 Merge branch 'system-json-glib' * system-json-glib: [script] Simplify the parser code Update JSON-GLib dependency commit d263e7a78b7e98b2b87a51a194b93473344b6b27 Author: Emmanuele Bassi Date: Mon Aug 10 17:19:04 2009 +0100 [build] Install JSON headers inside the right directory Don't install inside the clutter-MAJOR_MINOR/ directory, but use the API_VERSION (1.0). Otherwise we'd have the Clutter headers for 1.x inside: $includedir/clutter-1.0/clutter And the JSON-related headers inside: $includedir/clutter-1./clutter clutter/json/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 19a53054fde3ccfac365452618e4524e3f3c7efc Author: Emmanuele Bassi Date: Fri Aug 7 15:27:25 2009 +0100 Bump to 1.1.1 after branching 1.0 configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 420ed353b53bd624331bd249d7df98d14714b504 Author: Emmanuele Bassi Date: Fri Aug 7 08:18:17 2009 +0100 [x11] Do not ask to destroy an empty Window The fix for bug 1750 inside commit b190448e made Clutter-GTK spew BadWindow errors. The reason for that is that we call XDestroyWindow() without checking if the old Window is None; this happens if we call clutter_x11_set_stage_foreign() on a new ClutterStage before it has been realized. Since Clutter-GTK does not need to realize the Stage it is going to embed anymore (the only reason for that was to obtain a proper Visual but now there's ClutterBackendX11 API for that), the set_stage_foreign() call is effectively setting the StageX11 Window for the first time. clutter/x11/clutter-stage-x11.c | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) commit 335fb07ab02bc719c04bf2de115a88216f1321f7 Author: Emmanuele Bassi Date: Wed Aug 5 17:46:18 2009 +0100 [actor] Add missing return_if_fail() The queue_relayout() method was missing the argument check. Thanks to: Neil Patel clutter/clutter-actor.c | 2 ++ 1 file changed, 2 insertions(+) commit 1434d7213487ad42626fcc4b1da180fe98192ef1 Author: Neil Roberts Date: Wed Aug 5 15:51:49 2009 +0100 Small doc fix to clutter_text_get_color Bug reported by Rob Bradford. clutter/clutter-text.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b190448ed460ae466cd6d1c7c34e47d4386fe4c4 Author: Emmanuele Bassi Date: Tue Aug 4 16:59:15 2009 +0100 [x11] Destroy the Window we own when setting a foreign one When we replace the stage Window using a foreign one we also need to destroy the Window we created, if needed, to avoid leaking resources all around. Fixes bug: http://bugzilla.openedhand.com/show_bug.cgi?id=1750 clutter/x11/clutter-stage-x11.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 7963254c23f42a43b64ca3f2401499b456d677ce Author: Emmanuele Bassi Date: Tue Aug 4 11:39:09 2009 +0100 [docs] Close a tag doc/reference/clutter/building-clutter.xml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 79288b46ed60efe4cf3f970ef7f1cce17685cd84 Author: Emmanuele Bassi Date: Tue Aug 4 11:38:48 2009 +0100 [docs] Fix a missing parameter clutter/cogl/cogl-vertex-buffer.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9cda8d130f7097d8ca43ffb0e50206ab72d1892d Author: Emmanuele Bassi Date: Tue Aug 4 11:11:59 2009 +0100 [actor] Be more explicit when warning about invariants The "catch all" warning for a the mapped invariant violation is too generic: it doesn't tell you why the invariant was broken in case we are trying to map an unparented actor - e.g. through a Clone. clutter/clutter-actor.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit f8a964b422c195219c59a3b21d9bb3125ce215dd Author: Emmanuele Bassi Date: Tue Aug 4 11:10:55 2009 +0100 [cogl] Expose cogl_is_vertex_buffer() The function is public and available in the shared object, but it's not present in the header, so this is not an API/ABI change. clutter/cogl/cogl-vertex-buffer.h | 14 ++++++++++++++ doc/reference/cogl/cogl-sections.txt | 1 + 2 files changed, 15 insertions(+) commit c9f57452e60c89c0b046def2f1787773545244df Author: Robert Bragg Date: Mon Aug 3 15:03:19 2009 +0100 [build] remove reference to light1.png in tests/interactive/Makefile.am This file doesn't exist in the repo and isn't referenced by any unit tests. tests/interactive/Makefile.am | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 71c4fa0f73ec9a101a4dcb07a0d782e075185d4b Author: Robert Bragg Date: Mon Aug 3 14:53:46 2009 +0100 [build] dist tests/interactive/wrapper.sh in tests/interactive/Makefile.am add wrapper.sh to EXTRA_DIST otherwise interactive unit tests wont be runnable when building from distributed tarballs. tests/interactive/Makefile.am | 3 +++ 1 file changed, 3 insertions(+) commit c9c87543e8f827ee4c3510cd0025e8653d3309b1 Author: Damien Lespiau Date: Mon Aug 3 14:11:33 2009 +0100 [debug] CLUTTER_{NOTE,MARK,DBG,GLERR,TIMESTAMP} should always be statements In case someone tries to do: if (foo) CLUTTER_NOTE(DOMAIN, "%s", blah); CLUTTER_NOTE () should always be a statement clutter/clutter-debug.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit cd35f3b384b645d171de49eee555363d4b2acc94 Author: Damien Lespiau Date: Mon Aug 3 13:58:52 2009 +0100 [debug] Fix __GNUC__ typo The right gcc define is __GNUC__ not __GNUC_. This typo had the side effect that we were using the non gcc specific debug macros leading to a less optmised CLUTTER_NOTE () than one could have dreamed of. clutter/clutter-debug.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 94b35a4a5ee4fa86d837b2deb06fe849a2a68977 Author: Damien Lespiau Date: Mon Aug 3 13:56:32 2009 +0100 [build] GCC_FLAGS is no more, MAINTAINER_CFLAGS is the One. CC_FLAGS was a left over from the 0.8.x age. Killed it and use the newer MAINTAINER_CFLAGS variable instead. clutter/Makefile.am | 2 +- clutter/eglnative/Makefile.am | 2 +- clutter/eglx/Makefile.am | 2 +- clutter/fruity/Makefile.am | 2 +- clutter/glx/Makefile.am | 3 +-- clutter/json/Makefile.am | 2 ++ clutter/osx/Makefile.am | 2 +- clutter/sdl/Makefile.am | 2 +- clutter/win32/Makefile.am | 2 +- clutter/x11/Makefile.am | 3 +-- 10 files changed, 11 insertions(+), 11 deletions(-) commit 4ee49eded0561ad987b50e1b04e15a685c1c06e2 Author: Damien Lespiau Date: Mon Aug 3 13:58:21 2009 +0100 [gitignore] Ignore new test-color-hls-roundtrip test tests/.gitignore | 1 + 1 file changed, 1 insertion(+) commit b2ab2b953548bb9af41789e2465dfa9a588c9b2d Author: Emmanuele Bassi Date: Sun Aug 2 18:34:17 2009 +0100 [actor] Use the right vertex The vertex that should be used by the apply_relative_transform is the one passed in as const, and the result should be placed inside the non-const ClutterVertext. Currently, we are using the latter, and thus the function is completely useless. clutter/clutter-actor.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit ae2a861a0b042e36393e5eb76ecb17759a933892 Author: Emmanuele Bassi Date: Fri Jul 31 10:29:33 2009 +0100 [x11] Force a redraw before mapping the stage Does as it says on the tin: run a paint cycle before calling XMapWindow(). clutter/x11/clutter-stage-x11.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit abdcf4debbedd9f924da4db9403ecbc9a030cb20 Author: Joshua Lock Date: Fri Jul 31 10:16:56 2009 +0100 [docs] Update building instructions for OS X Recommend OS X users install the dependencies using MacPorts and build Clutter themselves. Signed-off-by: Emmanuele Bassi doc/reference/clutter/building-clutter.xml | 41 ++++++++++++++++------------ 1 file changed, 23 insertions(+), 18 deletions(-) commit b3842a6b62979d264b7d7057e4125602e644ccad Author: Neil Roberts Date: Wed Jul 29 19:06:36 2009 +0100 [mingw] Update the README The README has been updated to say that you can use the script under MSYS and also to contain a pointer to OAH. It also contains the updated contents of a blog post¹ about building with MSYS. 1. http://www.busydoingnothing.co.uk/blog/2008/07/13#ClutterWin32 build/mingw/README | 133 +++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 127 insertions(+), 6 deletions(-) commit 8ad446f3e9903d2339536db4febef1cbc77db643 Author: Neil Roberts Date: Wed Jul 29 18:13:19 2009 +0100 [mingw-cross-compile.sh] Fix to use git rather than svn The script includes a part to automatically checkout the Clutter source and build it but it was using the old svn repo instead of git. build/mingw/mingw-cross-compile.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit d796d3c88c3d3044d1c1bf54c320504f4e5886eb Author: Neil Roberts Date: Wed Jul 29 17:59:54 2009 +0100 [mingw-cross-compile.sh] Add a note about MSYS in the comment The comment previously implied that you could only use the script to cross compile but it works just as well under MSYS. build/mingw/mingw-cross-compile.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 1e14d3041dc2f68d18dcd3e03d34e8d0fa7a05f4 Author: Neil Roberts Date: Wed Jul 29 17:58:02 2009 +0100 [mingw-cross-compile.sh] Update version numbers of all the dependencies This updates the URLs for the binary dependencies to use the latest versions. build/mingw/mingw-cross-compile.sh | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) commit a3c323c52c42785f93641e3603a5426bbb371876 Author: Emmanuele Bassi Date: Wed Jul 29 17:22:18 2009 +0100 [docs] Remove mentions of Clutter-Cairo The mingw README file still mentions Clutter-Cairo as a known issue. build/mingw/README | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit 0ec6793738085308206e028d1136cb4cd4274f11 Author: Emmanuele Bassi Date: Wed Jul 29 17:21:13 2009 +0100 [mingw/win32] Remove clutter-cairo The Clutter-Cairo library has been removed, so there's no point in checking it out -- from Subversion, even. build/mingw/mingw-cross-compile.sh | 23 ----------------------- 1 file changed, 23 deletions(-) commit fba1045bcb46da4ed04bd789b7650e985915243b Author: Emmanuele Bassi Date: Tue Jul 28 18:39:24 2009 +0100 Post-release bump to 1.0.1 configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit df572d089c0811ecbc5e41d1c68d39fae47040e9 Author: Emmanuele Bassi Date: Mon Jun 29 16:33:36 2009 +0100 [script] Simplify the parser code JSON-GLib provides simple accessors for basic types so that we can avoid getting the JsonNode out of a complex type. This makes the code simpler to understand. clutter/clutter-script.c | 39 ++++++++++----------------------------- 1 file changed, 10 insertions(+), 29 deletions(-) commit 354fa437cdc4b67ca6c2452756a261222109b289 Author: Emmanuele Bassi Date: Thu Jun 25 18:56:52 2009 +0100 Update JSON-GLib dependency Currently, Clutter depends on the internal copy of JSON-GLib for the ClutterScript parser. This is done to allow building Clutter on platforms that do not have the library installed on the system. Just like we use the internal PNG/JPEG loader as a fallback in case we don't have GdkPixbuf or CoreGraphics available, we should use the internal copy of JSON-GLib only in case the system copy is not present. The change is simply to move the default for the --with-json configure switch from "internal" to "check". In order to allow stricter compliance, a third setting should be present: "system", which fails if the system copy is not available. We should also change the introspection generation to avoid breaking in case we require the installed Json-1.0.gir instead of the generated ClutterJson.gir clutter/Makefile.am | 5 ++++- configure.ac | 44 +++++++++++++++++++++++++++++++++++--------- 2 files changed, 39 insertions(+), 10 deletions(-)