commit ab6184298083541d37356f1f5656380d0cda047c
Author: Emmanuele Bassi <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <neil@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <pippin@linux.intel.com>
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 <robert@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <pippin@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <otaylor@fishsoup.net>
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 <neil@linux.intel.com>

 clutter/cogl/cogl/cogl-texture-2d.c | 3 +++
 1 file changed, 3 insertions(+)

commit 74a27bbb1c0ae12ba937d215323d5a716781cb1b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
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 <neil@linux.intel.com>
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 <pippin@linux.intel.com>
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 <buz@netbuz.org>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <chris@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <neil@linux.intel.com>
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 ++-
 clutter/cogl/cogl/driver/gles/cogl-feature-functions.h |  6 ++++++
 5 files changed, 37 insertions(+), 3 deletions(-)

commit 67d9d928147aa59905960480a5d0b4c19c9d1920
Author: Emmanuele Bassi <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <buz@netbuz.org>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <pippin@linux.intel.com>
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 <pippin@linux.intel.com>
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 <pippin@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <buz@netbuz.org>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
Date:   Wed Feb 24 14:20:14 2010 +0000

    Update NEWS file

 NEWS | 44 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)

commit d1ca0e1b8f3dc6f5b5fec0ce3fba4702b9e75386
Author: Emmanuele Bassi <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <robert@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <neil@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <neil@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <chris@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <chris@linux.intel.com>
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 <chris@linux.intel.com>
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 <chris@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <chris@linux.intel.com>
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 <chris@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <chris@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <damien.lespiau@intel.com>
Date:   Mon Feb 8 19:18:36 2010 +0000

    docs: Add 2010 in COGL's Copyright notice
    
    While at it, fix the usage of <year> in <copyright> 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 <damien.lespiau@intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <neil@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
Date:   Wed Feb 10 22:47:49 2010 +0000

    cogl: explicitly mark cogl_<object>_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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <neil@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <neil@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <neil@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <neil@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <buz@netbuz.org>
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 <ebassi@linux.intel.com>

 clutter/cogl/cogl/cogl-buffer.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 9aac36b47e43e95d12c8d28bd3671e6f5e000d32
Author: Emmanuele Bassi <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
Date:   Tue Feb 9 12:59:18 2010 +0000

    Update NEWS file

 NEWS | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

commit cccf23caa481a239b747d1fdd5e0ca5ae7f6682c
Author: Emmanuele Bassi <ebassi@linux.intel.com>
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 <robert@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <ebassi@linux.intel.com>

 clutter/cogl/cogl/cogl-bitmap-fallback.c | 104 ++++++++++++++++++++++++++++++-
 1 file changed, 103 insertions(+), 1 deletion(-)

commit bbb058df40a5e1acf7b8e42049c3cd5d966f762d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
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 <halton.huo@gmail.com>
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 <ebassi@linux.intel.com>

 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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
Date:   Mon Feb 8 17:34:11 2010 +0000

    Merge me

 NEWS | 4 ++++
 1 file changed, 4 insertions(+)

commit 814d3acd0730f2e418ccc44d550e1fa369c142fe
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Feb 8 17:27:20 2010 +0000

    docs: Update NEWS

 NEWS | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 53 insertions(+)

commit 419afc01e8f2c96f7cf5c0962e5c421f8f3a476f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
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 <damien.lespiau@intel.com>
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 <damien.lespiau@intel.com>
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 <damien.lespiau@intel.com>
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 <damien.lespiau@intel.com>
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 <damien.lespiau@intel.com>
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 <damien.lespiau@intel.com>
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 <damien.lespiau@intel.com>
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 <damien.lespiau@intel.com>
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 <damien.lespiau@intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <robert@linux.intel.com>
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 <neil@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <pippin@linux.intel.com>
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 <ebassi@linux.intel.com>

 .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 <chris@linux.intel.com>
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 <chris@linux.intel.com>
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 <chris@linux.intel.com>
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 <chris@linux.intel.com>
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 <chris@linux.intel.com>
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 <chris@linux.intel.com>
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 <chris@linux.intel.com>
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 <chris@linux.intel.com>
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 <chris@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <damien.lespiau@intel.com>
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 <damien.lespiau@intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <neil@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <jku@linux.intel.com>
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 <ebassi@linux.intel.com>

 clutter/clutter-text.c | 95 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 95 insertions(+)

commit d8d728a8d7ac4bc56f058379d76f4539d01189de
Author: Emmanuele Bassi <ebassi@linux.intel.com>
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 <neil@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <neil@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <krh@bitplanet.net>
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 <ebassi@linux.intel.com>

 tests/interactive/test-clutter-cairo-flowers.c | 24 +++++++++++++++++-------
 1 file changed, 17 insertions(+), 7 deletions(-)

commit c9a6e63fa4d1d710d9efeb850f3fc336933ee2a8
Author: Emmanuele Bassi <ebassi@linux.intel.com>
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 <neil@linux.intel.com>

 clutter/clutter-group.c | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

commit 12b004b0e7e13ca64d7d35cd3fe083f582b7aa09
Author: Emmanuele Bassi <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <apinheiro@igalia.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>

 clutter/clutter-stage.c | 30 +++++++++++++++++++++++++++++-
 1 file changed, 29 insertions(+), 1 deletion(-)

commit 95712f9897db7f06a6ca34661f20b388dd5a5f77
Author: Emmanuele Bassi <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <damien.lespiau@intel.com>
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 <damien.lespiau@intel.com>
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 <damien.lespiau@intel.com>
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 <damien.lespiau@intel.com>
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 <damien.lespiau@intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <neil@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <Samuel.Degrande@lifl.fr> 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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <Samuel.Degrande@lifl.fr>
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 <neil@linux.intel.com>

 clutter/win32/clutter-stage-win32.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 12a9150f5b455e5700c745de4ad1ac5f2e43631f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
Date:   Fri Jan 15 12:15:46 2010 +0000

    Merge branch 'master' into more-texture-backends

commit a70ebe4f52e192c11f8db6a4fa1f419a5b175ab3
Author: Neil Roberts <neil@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <neil@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <damien.lespiau@intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <robert@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <robert@linux.intel.com>
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 <damien.lespiau@intel.com>
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 <ebassi@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <damien.lespiau@intel.com>
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 <ebassi@linux.intel.com>
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 <neil@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <neil@linux.intel.com>
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 '&lt;' 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 <neil@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <carlos@cmartin.tk>
    
    Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>

 clutter/x11/clutter-x11-texture-pixmap.c | 22 +++++++++++++---------
 1 file changed, 13 insertions(+), 9 deletions(-)

commit fa298b45b530c6b6821e73b011c3c7d226950ce0
Merge: 4207524 4adc2c2
Author: Emmanuele Bassi <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <damien.lespiau@intel.com>
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 <ebassi@linux.intel.com>
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 <apinheiro@igalia.com>
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 <ebassi@linux.intel.com>
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 <halton.huo@sun.com>
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 <ebassi@linux.intel.com>

 clutter/cogl/cogl/cogl-texture.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

commit b98d486fc99fd46626877be728961190dbf831dc
Author: Emmanuele Bassi <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <thomas.wood@intel.com>

 clutter/clutter-box-layout.c | 130 +++++++++++++++++++++++++++++++++++++------
 1 file changed, 113 insertions(+), 17 deletions(-)

commit f94a903d9ebdbc055010bb4a4c6fe7e76f418bd8
Author: Emmanuele Bassi <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <walters@verbum.org>
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 <ebassi@linux.intel.com>

 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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@gnome.org>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <jobi@via.ecp.fr>
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 <ebassi@linux.intel.com>

 clutter/clutter-actor.c | 137 +++++++++++++++++++++++++++++++++++++++++-------
 1 file changed, 117 insertions(+), 20 deletions(-)

commit 18860eb16f36eb62b94aee353b4e2ace76e2fffa
Author: Bastian Winkler <buz@netbuz.org>
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 <ebassi@linux.intel.com>

 clutter/clutter-flow-layout.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 6c3e1989e47b17f826d25704b2433ffecc6e83b9
Author: Neil Roberts <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
Date:   Wed Dec 2 14:15:19 2009 +0000

    docs: Fix docbook syntax
    
    The <variablename> tag is really called <varname> in DocBook.

 clutter/clutter-layout-manager.c | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

commit 3c08c411d2ccd1523439c4f35427d266d1ef67dd
Author: Emmanuele Bassi <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <rob@linux.intel.com>
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 <rob@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <buz@netbuz.org>
Date:   Tue Dec 1 12:31:07 2009 +0000

    build: Fix the SUBDIRS ordering
    
    Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>

 Makefile.am | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

commit 220a8fbfda5bda38e6c7689176fd876c57074ab5
Author: Emmanuele Bassi <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <damien.lespiau@intel.com>
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 <damien.lespiau@intel.com>
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 <ebassi@linux.intel.com>

 tests/interactive/test-texture-quality.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit e4180b283836ccd665d23d1e19d35a8911c40436
Author: Damien Lespiau <damien.lespiau@intel.com>
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 <ebassi@linux.intel.com>

 tests/interactive/Makefile.am | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 934eb5d251ad9d9987d0ff1f0f9878fffc2484f1
Author: Robert Bragg <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <neil@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <neil@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <neil@linux.intel.com>
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 <chpe@gnome.org>
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 <ebassi@linux.intel.com>

 clutter/clutter-binding-pool.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 2832940603733873a76cb4c890f4a3d656d07112
Author: Neil Roberts <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <neil@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <Samuel.Degrande@lifl.fr>
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 <neil@linux.intel.com>

 clutter/win32/clutter-win32.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 26ce94eda071cc133ab2b469cae0b19aae727279
Author: Samuel Degrande <Samuel.Degrande@lifl.fr>
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 <neil@linux.intel.com>

 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 <ebassi@linux.intel.com>
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 <neil@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <neil@linux.intel.com>
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 <damien.lespiau@intel.com>
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 <ebassi@linux.intel.com>

 build/autotools/Makefile.am.enums | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 1be23c0cc9741cbe68a54cd84de772bd120254b6
Author: Emmanuele Bassi <ebassi@linux.intel.com>
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 <neil@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <raymond.liu@intel.com>
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 <ebassi@linux.intel.com>

 clutter/clutter-text.c | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

commit 7e17822cfd860fd694735fbf550013f7f8b7a915
Author: Emmanuele Bassi <ebassi@linux.intel.com>
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 <hortont424@gmail.com>
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:
    
    <Error>: CGBitmapContextCreate: unsupported parameter combination: 8
    integer bits/component; 24 bits/pixel; 3-component colorspace;
    kCGImageAlphaNone; 3072 bytes/row.
    <Error>: 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 <ebassi@linux.intel.com>

 clutter/cogl/cogl/cogl-bitmap-pixbuf.c | 18 +++---------------
 1 file changed, 3 insertions(+), 15 deletions(-)

commit 5c67e8e0c09c83c470f999c86091181cc373d5b6
Author: Emmanuele Bassi <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <josh@linux.intel.com>
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 <josh@linux.intel.com>
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 <josh@linux.intel.com>
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 <josh@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <robert@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <neil@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <damien.lespiau@gmail.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <haakon.sporsheim@gmail.com>
    
    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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <neil@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <neil@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <otaylor@fishsoup.net>
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 <ebassi@linux.intel.com>

 clutter/clutter-actor.c | 9 +++++++++
 1 file changed, 9 insertions(+)

commit 571df43b6d2348fd4db4b0275c8ed55e760ab353
Author: Emmanuele Bassi <ebassi@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@gnome.org>
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 <ebassi@gnome.org>
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 <ebassi@gnome.org>
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 <ebassi@gnome.org>
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 <ebassi@gnome.org>
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 <ebassi@gnome.org>
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 <ebassi@gnome.org>
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 <ebassi@gnome.org>
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 <ebassi@gnome.org>
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 <ebassi@gnome.org>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <nadvornik@suse.cz>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>

 clutter/cogl/cogl/cogl-texture.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 95a869dab1b893f74c5b880e7be43e134eeb706f
Author: Robert Bragg <robert@linux.intel.com>
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 <robert@linux.intel.com>
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/
    	<put common source here>
    	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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <ebassi@gnome.org>
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 <ebassi@gnome.org>
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 <ebassi@gnome.org>
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 <damien.lespiau@intel.com>
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 <damien.lespiau@intel.com>
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 <damien.lespiau@intel.com>
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 <ebassi@gnome.org>
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 <ebassi@gnome.org>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <robert@linux.intel.com>
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 <ebassi@gnome.org>
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 <ebassi@gnome.org>
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 <ebassi@gnome.org>
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 <ebassi@gnome.org>
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 <ebassi@gnome.org>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@gnome.org>
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 <ebassi@gnome.org>
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 <ebassi@gnome.org>
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 <ebassi@gnome.org>
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 <ebassi@gnome.org>
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 <ebassi@gnome.org>
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 <ebassi@gnome.org>
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 <ebassi@gnome.org>
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 <ebassi@gnome.org>
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 <ebassi@gnome.org>
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 <ebassi@gnome.org>
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 <ebassi@linux.intel.com>
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 <ebassi@gnome.org>
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 <ebassi@gnome.org>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <cue raising dramatic music> 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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <damien.lespiau@intel.com>
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 <ebassi@linux.intel.com>

 clutter/clutter-actor.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 3bbc96e17e5a03ba931c86a5cd2a0ecaa2a3b77b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
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 <ebassi@gnome.org>
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 <damien.lespiau@intel.com>
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 <ebassi@linux.intel.com>

 tests/conform/test-clutter-units.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 19c68799608910635b70c9befb92c1a6a21c15f3
Author: Damien Lespiau <damien.lespiau@intel.com>
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 <ebassi@linux.intel.com>

 clutter/clutter-path.c | 36 +++++++++++++++++++++++++++++++++++-
 1 file changed, 35 insertions(+), 1 deletion(-)

commit 8605073edb7a1e830696632a6de5ad694f1af98d
Author: Damien Lespiau <damien.lespiau@intel.com>
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 <ebassi@linux.intel.com>

 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 <damien.lespiau@intel.com>
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 <ebassi@linux.intel.com>

 clutter/clutter-units.c            | 76 ++++++++++++++++++++++++--------------
 tests/conform/test-clutter-units.c | 22 +++++++++++
 2 files changed, 70 insertions(+), 28 deletions(-)

commit 4d481e03f3534cb703a276cd430056d3ec27fcb0
Author: Emmanuele Bassi <ebassi@gnome.org>
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 <thomas.wood@intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <thomas.wood@intel.com>
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 <thomas.wood@intel.com>
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 <thomas.wood@intel.com>
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 <damien.lespiau@intel.com>
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 <robert@linux.intel.com>
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 <ebassi@gnome.org>
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 <ebassi@gnome.org>
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 <neil@linux.intel.com>
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 <ebassi@gnome.org>
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 <damien.lespiau@intel.com>
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 <damien.lespiau@intel.com>
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 <ebassi@gnome.org>
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 <ebassi@gnome.org>
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 <ebassi@gnome.org>
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 <ebassi@gnome.org>
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 <ebassi@gnome.org>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <neil@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <damien.lespiau@intel.com>
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 <robert@linux.intel.com>
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 <pippin@linux.intel.com>
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 <thomas.wood@intel.com>
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 <neil@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <robert@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <robert@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <damien.lespiau@intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <pippin@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <neil@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <samuel.degrande@lifl.fr>
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 <ebassi@linux.intel.com>

 clutter/cogl/common/cogl-blend-string.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

commit a5e081dc9c8f39ce66270b77f5beaa6ac53e7a91
Author: Emmanuele Bassi <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <pippin@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <neil@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <otaylor@fishsoup.net>
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 <ebassi@linux.intel.com>

 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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <jonas@southpole.se>
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 <ebassi@linux.intel.com>

 clutter/clutter-animation.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

commit 373b165b3f1adc556e7ee70f01cff66d4a38cd60
Author: Emmanuele Bassi <ebassi@linux.intel.com>
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 <javierjc1982@gmail.com>

 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 <neil@linux.intel.com>
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 <robert@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <jku@linux.intel.com>
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 <ebassi@linux.intel.com>

 clutter/clutter-text.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit 99437c476136ec6a735270efd8670efcd1f2c77e
Author: Neil Roberts <neil@linux.intel.com>
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 <ebassi@linux.intel.com>

 clutter/clutter-text.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 5d7c2e7c4495b3d6f35ed3f4e50857f17b946872
Author: Owen W. Taylor <otaylor@fishsoup.net>
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 <otaylor@fishsoup.net>
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 <ebassi@linux.intel.com>

 clutter/Makefile.am | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

commit 68f8a98cfbf70e2b7bfcda7831907633eb08ca50
Author: Götz Waschk <waschk@mandriva.org>
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 <ebassi@linux.intel.com>

 clutter/Makefile.am | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit 366e0f9cd7773433ba14cc531119bca3b9879a1e
Author: Götz Waschk <waschk@mandriva.org>
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 <ebassi@linux.intel.com>

 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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <xu.li@intel.com>
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 <ebassi@linux.intel.com>

 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 <ebassi@linux.intel.com>
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 <glin@novell.com>

 clutter/pango/Makefile.am | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

commit 5c8ae6d2dcdb592a56f33927dcec2369a9147396
Author: Emmanuele Bassi <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <walters@verbum.org>
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 <ebassi@linux.intel.com>

 clutter/clutter-stage.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 9766fb13005b04669e60befd9e0e3cddf822ac1c
Author: Emmanuele Bassi <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <dyllan.zhou@samsung.com>
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 <ebassi@linux.intel.com>

 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 <dyllan.zhou@samsung.com>
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 <ebassi@linux.intel.com>

 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 <robert@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <chris@dronelabs.com>

 clutter/osx/Makefile.am | 30 ++++++++++++++----------------
 1 file changed, 14 insertions(+), 16 deletions(-)

commit d0748b3b9b34bf77ed3b813e3872cac64d6a6c35
Merge: d263e7a df572d0
Author: Emmanuele Bassi <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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.<minor>/clutter

 clutter/json/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 19a53054fde3ccfac365452618e4524e3f3c7efc
Author: Emmanuele Bassi <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <njpatel@gmail.com>

 clutter/clutter-actor.c | 2 ++
 1 file changed, 2 insertions(+)

commit 1434d7213487ad42626fcc4b1da180fe98192ef1
Author: Neil Roberts <neil@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <robert@linux.intel.com>
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 <robert@linux.intel.com>
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 <damien.lespiau@intel.com>
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 <damien.lespiau@intel.com>
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 <damien.lespiau@intel.com>
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 <damien.lespiau@intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <josh@linux.intel.com>
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 <ebassi@linux.intel.com>

 doc/reference/clutter/building-clutter.xml | 41 +++++++++++++++++-------------
 1 file changed, 23 insertions(+), 18 deletions(-)

commit b3842a6b62979d264b7d7057e4125602e644ccad
Author: Neil Roberts <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <neil@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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 <ebassi@linux.intel.com>
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(-)
