commit 01cbd47b19a57a70924c4cc4ecad52319a446b29
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Jan 31 14:47:37 2011 +0000

    Release Clutter 1.6.0

 configure.ac | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit c060f086c5af655a52d7b2651abd76eb10394534
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Jan 31 13:59:14 2011 +0000

    docs: Update the NEWS file

 NEWS | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit bb44d51fc934e2360eb8d529be7cdcec438d32b5
Merge: 5859efa 6680ceb
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Jan 31 13:58:12 2011 +0000

    Merge remote branch 'elliot/cookbook-actors-composite'
    
    * elliot/cookbook-actors-composite:
      docs: Add reference to useful GObject tutorial
      docs: Explain why destroy() is implemented
      docs: Implement destroy() rather than dispose()
      docs: Don't use clutter_stage_get_default()
      docs: Change text on button
      docs: Add a note about other state variables
      docs: Complete composite actor recipe
      docs: Change order of functions in example to match docs
      docs: Add more comments on how allocate() works
      docs: Include code examples in the recipe
      docs: Explain enums for properties and signals
      docs: Don't set explicit size on button
      docs: Add example of preferred_height() and preferred_width()
      docs: Add recipe for creating a custom ClutterActor with composition
      docs: Add more comments on code example for composite actor
      docs: Improve example code formatting
      docs: Add some gtk-doc annotations to example
      docs: Add custom ClutterActor example which uses composition

commit 5859efa34ff530a9452877a46cc120ca1d36a8e1
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Jan 31 13:50:37 2011 +0000

    docs: Update NEWS file

 NEWS | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

commit 2c1f8c9ad367035f7fd0d5177c60816440d916b2
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Jan 28 14:53:08 2011 +0000

    osx: Add devices to event translation code
    
    Use a DeviceManager sub-class similar to the Win32 backend one, which
    creates two InputDevices: a core pointer and a core keyboard.
    
    The event translation code then uses these two devices to fill out the
    .device field of the events.
    
    Throw in enter/leave tracking, given that we need to update the device's
    state.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2490

 clutter/osx/clutter-backend-osx.c        |  45 ++++++--
 clutter/osx/clutter-device-manager-osx.c | 180 +++++++++++++++++++++++++++++++
 clutter/osx/clutter-device-manager-osx.h |  58 ++++++++++
 clutter/osx/clutter-event-osx.c          |  83 ++++++++++----
 clutter/osx/clutter-stage-osx.c          |   7 +-
 clutter/osx/clutter-stage-osx.h          |  12 +--
 6 files changed, 350 insertions(+), 35 deletions(-)

commit 634e4ffd1a93d62c3875e02f5ba69085fa0b4bcf
Author: Viatcheslav Gachkaylo <vgachkaylo@crystalnix.com>
Date:   Fri Jan 28 12:56:57 2011 +0000

    osx: Improve the event loop
    
    Implementation of event loop which works with GLib events, native OS X
    events and Clutter events.
    
    The event loop source code comes from the equivalent code in the Quartz
    GDK backend from GTK+ 2.22.1, which is LGPL v2.1+ and thus compatible
    with Clutter's licensing terms.
    
    The code has been tested with libsoup, which did not work before together
    with Clutter.
    
    Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2490

 clutter/Makefile.am                  |    6 +-
 clutter/clutter-debug.h              |    3 +-
 clutter/osx/clutter-event-loop-osx.c | 1051 ++++++++++++++++++++++++++++++++++
 clutter/osx/clutter-event-loop-osx.h |   32 ++
 clutter/osx/clutter-event-osx.c      |  223 +++-----
 clutter/osx/clutter-stage-osx.h      |    3 +
 6 files changed, 1176 insertions(+), 142 deletions(-)

commit 6680cebfe1f0ef697e16f6db26d1e7fb70d5e459
Author: Elliot Smith <elliot.smith@intel.com>
Date:   Mon Jan 31 13:40:10 2011 +0000

    docs: Add reference to useful GObject tutorial
    
    Add a reference to a GObject tutorial which
    is a good introduction to the various macros etc.
    and what they're for.

 doc/cookbook/actors.xml | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 885664f725aa3704c46db62e7b1fa951819fc22c
Author: Elliot Smith <elliot.smith@intel.com>
Date:   Mon Jan 31 13:39:11 2011 +0000

    docs: Explain why destroy() is implemented
    
    As destroy() is Clutter-specific and not generic
    GObject code, explain why we implement it
    (rather than dispose()).

 doc/cookbook/actors.xml | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

commit 1558975bc38c87690f26bc54849459c4db581371
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Jan 31 13:37:32 2011 +0000

    docs: Fix documentation for clutter_actor_pop_internal()
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2534

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

commit e69d60e8b64bbe0811479dac96aee6009560be4e
Author: Elliot Smith <elliot.smith@intel.com>
Date:   Mon Jan 31 13:36:37 2011 +0000

    docs: Implement destroy() rather than dispose()
    
    Remove the dispose() implementation and replace
    with destroy().
    
    This should be promoted as the standard approach
    for implementing a composite actor, as it emits a
    signal when instances of the actor subclass are destroyed.

 doc/cookbook/examples/cb-button.c | 61 ++++++++++++++++++++-------------------
 1 file changed, 31 insertions(+), 30 deletions(-)

commit 9753cd4a59f3849090bf8cee247fafd806729826
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Jan 31 13:04:49 2011 +0000

    docs: Update Cogl release notes for 1.6

 README | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

commit f954b8e1bb309d4f9487edb558f4280c772cffb5
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Jan 31 13:04:35 2011 +0000

    Update the NEWS file

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

commit ef36d7cbccbd9225f2a16328522c1cbf3d0befd0
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Jan 31 12:51:14 2011 +0000

    docs: Update the documentation for clutter_actor_unparent()
    
    Make sure that we document the semantics of unparent() and who should
    call it.

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

commit e32253508de412c3d91c55e73e099ddcc38e1082
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Jan 31 12:50:25 2011 +0000

    docs: Update documentation for ::destroy
    
    The ::destroy signal is meant to be used to break reference cycles on
    third party code. The documentation should really make it clear.

 clutter/clutter-actor.c | 19 +++++++++++++++----
 1 file changed, 15 insertions(+), 4 deletions(-)

commit e0580127f8f3510c2a8b4d2906c66835ac7bc5a5
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Jan 31 12:28:03 2011 +0000

    docs: Update release notes for 1.6

 README | 90 +++++++++++++++++++++++++++++++++++++++++++++++++-----------------
 1 file changed, 67 insertions(+), 23 deletions(-)

commit f63158c2a2c27e7d4a264caf994f799a38fb6398
Author: Elliot Smith <elliot.smith@intel.com>
Date:   Mon Jan 31 12:18:58 2011 +0000

    docs: Don't use clutter_stage_get_default()
    
    clutter_stage_get_new() is the recommended way to
    get a stage instance, so use that instead.

 doc/cookbook/examples/actors-composite-main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 3f64137a7937498ea4982edf9c1fb133fe9321e4
Author: Elliot Smith <elliot.smith@intel.com>
Date:   Mon Jan 31 11:06:01 2011 +0000

    docs: Change text on button
    
    Modify the text shown on the button to "hello / world"
    rather than "winkle / pickers". Slightly more
    sensible.

 doc/cookbook/examples/actors-composite-main.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 5530c5e2ec9605722e7f65b60b73e8fe396e6c39
Author: Elliot Smith <elliot.smith@intel.com>
Date:   Mon Jan 31 11:05:27 2011 +0000

    docs: Add a note about other state variables
    
    Explain that the private structure would be the
    place to store other state variables for the instance.

 doc/cookbook/examples/cb-button.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 08f5dc08d0e11e2f03b3a9c8889222a584cbe0e7
Author: Elliot Smith <elliot.smith@intel.com>
Date:   Mon Jan 31 10:53:52 2011 +0000

    docs: Complete composite actor recipe
    
    Add some extra detail to the Discussion section of the
    composite actor recipe, concentrating on the pros and
    cons of this approach.
    
    Also explain more about the Clutter parts of the implementation.
    
    Also general tidy up of language and style.

 doc/cookbook/actors.xml | 220 +++++++++++++++++++++++++++++++++++++-----------
 1 file changed, 170 insertions(+), 50 deletions(-)

commit 238fd52c4b0660ac61b3ae125f3eef8f71b0f6b0
Author: Elliot Smith <elliot.smith@intel.com>
Date:   Fri Jan 28 17:09:24 2011 +0000

    docs: Change order of functions in example to match docs
    
    Moved the functions around in the C code file, to match
    the order Clutter uses them, and the order they are explained
    in the recipe.

 doc/cookbook/examples/cb-button.c | 99 +++++++++++++++++----------------------
 1 file changed, 44 insertions(+), 55 deletions(-)

commit 6934b3645164b5e2a4d4c3da5ed99fe93bb9a95d
Author: Elliot Smith <elliot.smith@intel.com>
Date:   Fri Jan 28 16:43:22 2011 +0000

    docs: Add more comments on how allocate() works
    
    Add some extra description to the allocate() function,
    explaining how the allocation has to be adjusted to
    coordinates relative to the actor as a whole, before
    applying to the single child actor it is composed from.

 doc/cookbook/examples/cb-button.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

commit 00deb59a9daa45558753810fcc18c738f61b0a6e
Author: Elliot Smith <elliot.smith@intel.com>
Date:   Fri Jan 28 11:49:08 2011 +0000

    docs: Include code examples in the recipe
    
    Include all the code examples inline as part of the recipe.
    
    Remove sections around each code example, as these are
    unnecessary; leave full discussion for the Discussion section
    instead of trying to cram it in around the code example.

 doc/cookbook/actors.xml | 103 ++++++++++++++++--------------------------------
 1 file changed, 34 insertions(+), 69 deletions(-)

commit 5f676ce3253f4e6f5ac07a1c1099d17e8384d5ee
Author: Elliot Smith <elliot.smith@intel.com>
Date:   Fri Jan 28 11:39:26 2011 +0000

    docs: Explain enums for properties and signals
    
    Add some more explanatory comments about the PROP_ and
    signals enums.

 doc/cookbook/examples/cb-button.c | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

commit 18b90f100c259db2e5ef19874277b3d5d50791f0
Author: Elliot Smith <elliot.smith@intel.com>
Date:   Fri Jan 28 11:36:20 2011 +0000

    docs: Don't set explicit size on button
    
    Rather than set a size on the CbButton instance, let it
    size itself automatically, based on the size requisition
    functions.

 doc/cookbook/examples/actors-composite-main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 951f13bb8dc2ead8fe3fd3a6f2fede2618c57a19
Author: Elliot Smith <elliot.smith@intel.com>
Date:   Fri Jan 28 11:35:14 2011 +0000

    docs: Add example of preferred_height() and preferred_width()
    
    As most actor subclasses will probably want to implement
    size requisition, give a simple example of how to do this
    on the basis of the composed actor's size, plus some padding.

 doc/cookbook/examples/cb-button.c | 67 +++++++++++++++++++++++++++++++++++++--
 1 file changed, 64 insertions(+), 3 deletions(-)

commit 2adc224f0e701648ff0f08ed80317f4b3d4109df
Author: Elliot Smith <elliot.smith@intel.com>
Date:   Wed Jan 26 11:22:07 2011 +0000

    docs: Add recipe for creating a custom ClutterActor with composition

 doc/cookbook/actors.xml | 190 +++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 189 insertions(+), 1 deletion(-)

commit 7059be499ab8c31bcc9825f823587d05410f186a
Author: Elliot Smith <elliot.smith@intel.com>
Date:   Fri Jan 28 11:13:47 2011 +0000

    docs: Add more comments on code example for composite actor
    
    Add more comments about the specific purpose of functions
    and variables in the composite actor example, particularly
    around GObject implementation.

 doc/cookbook/examples/cb-button.c | 69 ++++++++++++++++++++++++++++++++++-----
 doc/cookbook/examples/cb-button.h | 11 +++++++
 2 files changed, 72 insertions(+), 8 deletions(-)

commit b3954878c2827e78c0d800a038d6ae5cb515a136
Author: Elliot Smith <elliot.smith@intel.com>
Date:   Wed Jan 26 11:18:23 2011 +0000

    docs: Improve example code formatting
    
    Improve code formatting to adhere to Clutter uncrustify rules.

 doc/cookbook/examples/cb-button.c | 16 +++++++---------
 doc/cookbook/examples/cb-button.h | 29 +++++++++++++++--------------
 2 files changed, 22 insertions(+), 23 deletions(-)

commit 7b9eaeeadbf6ff10b4e467d13a873685a613ba37
Author: Elliot Smith <elliot.smith@intel.com>
Date:   Tue Jan 25 11:36:13 2011 +0000

    docs: Add some gtk-doc annotations to example
    
    As this is a full GObject class implementation, add some
    gtk-doc annotations to demonstrate how how custom actor subclasses
    should be documented.

 doc/cookbook/examples/cb-button.c | 65 +++++++++++++++++++++++++++++++++------
 1 file changed, 55 insertions(+), 10 deletions(-)

commit 8a5967f0cc4ca2ce2b4e8869f4a0ec3bdee07912
Author: Elliot Smith <elliot.smith@intel.com>
Date:   Fri Jan 21 16:43:03 2011 +0000

    docs: Add custom ClutterActor example which uses composition

 doc/cookbook/examples/Makefile.am             |   2 +
 doc/cookbook/examples/actors-composite-main.c |  79 +++++++
 doc/cookbook/examples/cb-button.c             | 287 ++++++++++++++++++++++++++
 doc/cookbook/examples/cb-button.h             |  72 +++++++
 4 files changed, 440 insertions(+)

commit b820e3940681e4a08ec4985bb13c7f53faf657d4
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sun Jan 30 23:00:00 2011 +0000

    text: Bind BackSpace + Shift as BackSpace
    
    Follow this old GTK+ bug:
    
      https://bugzilla.gnome.org/show_bug.cgi?id=80302
    
    and ignore the Shift mask.

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

commit 9be4cfe8a9eef6a7a15c7100731a199f9348e73b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Jan 28 18:05:06 2011 +0000

    x11/stage: Use a global Window ↔ Stage relationship
    
    Since we need to find the stage from the X11 Window, it's better to use
    a static hashmap that gets updated every time the ClutterStageX11:xwin
    member is changed, instead of iterating over every stage handled by the
    global ClutterStageManager singleton.

 clutter/glx/clutter-backend-glx.c |  7 ++++--
 clutter/x11/clutter-stage-x11.c   | 49 +++++++++++++++++++++++++--------------
 2 files changed, 37 insertions(+), 19 deletions(-)

commit f4508be4ab18f741bea12ea993c635fa9d632de2
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Jan 28 17:25:43 2011 +0000

    win32: Small clean ups in the event code
    
    Use clutter_event_set_device() instead of setting the device field.
    
    Also, use G_N_ELEMENTS() to determine the size of the key symbols
    mapping array.

 clutter/win32/clutter-event-win32.c | 31 ++++++++++++++++++++-----------
 1 file changed, 20 insertions(+), 11 deletions(-)

commit 82d1e5a6ee081cf462999ea04fbd51cdb91f70c9
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Jan 27 17:26:16 2011 +0000

    Clean up crossing event synthesis code
    
    Clutter should just require that the windowing system used by a backend
    adds a device to the stage when the device enters, and removes it from
    the stage when the device leaves; with this information, we can
    synthesize every crossing event and update the device state without
    other intervention from the backend-specific code.
    
    The generation of additional crossing events for actors that are
    covering the stage at the coordinates of the crossing event should be
    delegated to the event processing code.
    
    The x11 and win32 backends need to be modified to relay the enter and
    leave events from the windowing system.

 clutter/clutter-device-manager-private.h      |   6 +-
 clutter/clutter-device-manager.c              |   2 +-
 clutter/clutter-event.c                       |   1 +
 clutter/clutter-input-device.c                | 152 +++++++++-----------------
 clutter/clutter-main.c                        |  90 +++++++++++----
 clutter/clutter-stage-private.h               |   8 ++
 clutter/clutter-stage.c                       |  48 +++++++-
 clutter/win32/clutter-event-win32.c           |  19 +++-
 clutter/x11/clutter-device-manager-core-x11.c |  45 ++++----
 clutter/x11/clutter-device-manager-xi2.c      |  32 +++---
 10 files changed, 242 insertions(+), 161 deletions(-)

commit b3784bd2b4c9aeac809cca70681bc248123133f8
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Jan 27 17:21:08 2011 +0000

    event: Add a setter for the device field
    
    When synthesizing events coming from input devices it should be
    possible to just call a setter function, to avoid a huge switch
    on the type of the event.
    
    Clutter should also store the device pointer inside the private
    data, for faster access of the pointer in allocated events.
    
    Finally, the get_device_id() and get_device_type() accessors should
    just be wrappers around clutter_event_get_device(), to reduce the
    amount of code duplication.

 clutter/clutter-event.c                    | 98 ++++++++++++++++++------------
 clutter/clutter-event.h                    |  3 +
 doc/reference/clutter/clutter-sections.txt |  1 +
 3 files changed, 64 insertions(+), 38 deletions(-)

commit 3502f326b21856ed7720c8541aa4eb3990517a6f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Jan 26 12:44:03 2011 +0000

    x11/stage: Remove redundant line location
    
    The CLUTTER_NOTE() macro already adds the line location; adding another
    will just clutter up the log.

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

commit acf51259d2057b412d1d32fa8246fd14c9ddb66f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Jan 26 11:58:08 2011 +0000

    x11: Store a back pointer to the backend in the stage
    
    Since we access it in order to get the X11 Display pointer, it makes
    sense to have the ClutterBackendX11 already available inside the
    ClutterStageX11 structure, and avoid the pattern:
    
      ClutterBackend *backend = clutter_get_default_backend ();
      ClutterBackendX11 *backend_x11 = CLUTTER_BACKEND_X11 (backend);
    
    which costs us a function call, a type cast and an unused variable.

 clutter/egl/clutter-backend-egl.c |   1 +
 clutter/glx/clutter-backend-glx.c |   1 +
 clutter/x11/clutter-stage-x11.c   | 129 +++++++++++---------------------------
 clutter/x11/clutter-stage-x11.h   |   5 +-
 4 files changed, 41 insertions(+), 95 deletions(-)

commit 1d7e2233130b3041cc204fed326087c3a2bc9867
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Jan 28 18:11:38 2011 +0000

    test-path: Fix the test when running against latest Cairo versions
    
    Cairo has recently changed so that it no longer adds a final move-to
    command when the path ends with a close. This patch makes the test
    check the run-time version number of Cairo to avoid duplicating this
    behaviour when testing the conversion to and from a Cairo path.

 tests/conform/test-path.c | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

commit e7519a149beb78b92ab8e5b2d315fbab3102dbc2
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Jan 25 15:53:35 2011 +0000

    clutter-stage-x11: Don't ensure the viewport when the window moves
    
    When we receive a ConfigureNotify event that doesn't affect the size
    of the window (only the position) then we were still calling
    clutter_stage_ensure_viewport which ends up queueing a full stage
    redraw. This patch makes it so that it only ensures the viewport when
    the size changes as it already did for avoiding queueing a relayout.
    
    It now also avoids setting the clipped redraws cool off period when
    the window only moves under the assumption that it's only necessary
    for size changes.

 clutter/x11/clutter-stage-x11.c | 134 +++++++++++++++++++++-------------------
 1 file changed, 69 insertions(+), 65 deletions(-)

commit dc6f6d6445a1fb9090ce63947218578b969c8718
Author: Rob Bradford <rob@linux.intel.com>
Date:   Mon Jan 24 18:41:49 2011 +0000

    animator: Only free the animator key when we've finished with it
    
    Fixes: http://bugzilla.clutter-project.org/show_bug.cgi?id=2530

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

commit 5593792a40850b6a8f96afa91745115191a45c67
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Jan 26 10:32:42 2011 +0000

    Include stdint.h when using uint32_t
    
    Since the XI2 device manager code is going to be compiled only on
    POSIX compliant systems, we can safely assume the presence of stdint.h
    and include it unconditionally.

 clutter/x11/clutter-device-manager-xi2.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

commit 5329c986947d08fd724585d8eac61f8e0b0553b5
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Jan 25 11:10:29 2011 +0000

    bind-constraint: Add BIND_POSITION and BIND_SIZE
    
    CLUTTER_BIND_POSITION and CLUTTER_BIND_SIZE are two convenience
    enumeration values for binding x and y, and width and height
    respectively, using a single ClutterBindConstraint.

 clutter/clutter-bind-constraint.c    | 12 ++++++++++++
 clutter/clutter-bind-constraint.h    |  8 +++++++-
 tests/interactive/test-constraints.c |  4 +++-
 tests/interactive/test-flow-layout.c |  5 +----
 4 files changed, 23 insertions(+), 6 deletions(-)

commit 4f53653bf9f2d4ea30ee77e686b4799d8e356c99
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Jan 25 11:00:20 2011 +0000

    x11: Remove more private symbols
    
    Some private functions escaped my wrath in commit
    a277b4091a3fa09a39cf001809c3048eb27f3952.
    
    Thanks to: Emilio Pozuelo Monfort on #clutter

 clutter/x11/clutter-backend-x11.c             | 4 ++--
 clutter/x11/clutter-device-manager-core-x11.c | 2 ++
 clutter/x11/clutter-device-manager-core-x11.h | 4 ++--
 3 files changed, 6 insertions(+), 4 deletions(-)

commit 32486fe995911256a76673bf62609312893281be
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Jan 24 18:42:28 2011 +0000

    pipeline: fix for _init_multi_property_sparse_state
    
    When copying COMBINE state in
    _cogl_pipeline_layer_init_multi_property_sparse_state we would read some
    state from the destination layer (invalid data potentially), then
    redundantly set the value back on the destination. This was picked up by
    valgrind, and the code is now more careful about how it references the
    src layer vs the destination layer.

 clutter/cogl/cogl/cogl-pipeline.c | 27 ++++++++++++++-------------
 1 file changed, 14 insertions(+), 13 deletions(-)

commit bca39776d3080c180cdcf6698a54ee2c25bb5383
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Jan 21 19:05:23 2011 +0000

    framebuffer: flush journal when switching framebuffers
    
    There is currently a problem with per-framebuffer journals in that it's
    possible to create a framebuffer from a texture which then gets rendered
    too but the framebuffer (and corresponding journal) can be freed before
    the texture gets used to draw with.
    
    Conceptually we want to make sure when freeing a framebuffer that - if
    it is associated with a texture - we flush the journal as the last thing
    before really freeing the framebuffer's meta data. Technically though
    this is awkward to implement since the obvious mechanism for us to be
    notified about the framebuffer's destruction (by setting some user data
    internally with a callback) notifies when the framebuffer has a
    ref-count of 0. This means we'd have to be careful what we do with the
    framebuffer to consider e.g. recursive destruction; anything that would
    set more user data on the framebuffer while it is being destroyed and
    ensuring nothing else gets notified of the framebuffer's destruction
    before the journal has been flushed.
    
    For simplicity, for now, this patch provides another solution which is
    to flush framebuffer journals whenever we switch away from a given
    framebuffer via cogl_set_framebuffer or cogl_push/pop_framebuffer. The
    disadvantage of this approach is that we can't batch all the geometry of
    a scene that involves intermediate renders to offscreen framebufers.
    Clutter is doing this more and more with applications that use the
    ClutterEffect APIs so this is a shame. Hopefully this will only be a
    stop-gap solution while we consider how to reliably support journal
    logging across framebuffer changes.

 clutter/cogl/cogl/cogl-framebuffer.c | 26 ++++++++++++++++++++++----
 1 file changed, 22 insertions(+), 4 deletions(-)

commit 4609770bb9faa4dc74ddd0f25e099ff46b91e258
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Jan 24 17:32:06 2011 +0000

    cogl-clip-stack: Fix flushing multiple stencil rectangles
    
    When flushing a clip stack that contains more than one rectangle which
    needs to use the stencil buffer the code takes a different path so
    that it can combine the new rectangle with the existing contents of
    the stencil buffer. However it was not correctly flushing the
    modelview and projection matrices so that rectangle would be in the
    wrong place.

 clutter/cogl/cogl/cogl-clip-stack.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

commit 6102f802449d22d543621532b543d6879fdb1925
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Jan 24 17:17:16 2011 +0000

    test-clip: Replace the ellipse with a rotated rectangle
    
    With test-clip it's possible to draw three different shapes depending
    on what mouse button is used: a rectangle, an ellipse or a path
    containing multiple shapes. However the ellipse is also a path so it
    doesn't really test anything extra from the third option. This
    replaces the ellipse with a rectangle that is first rotated by the
    modelview matrix. The rotated matrix won't be able to use the scissor
    so it can be used to test stencil and clip plane clipping.

 tests/interactive/test-clip.c | 41 ++++++++++++++++++++++++++++++++++-------
 1 file changed, 34 insertions(+), 7 deletions(-)

commit 5137d0a23f19ce461f178596b687479bd62d8522
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Jan 24 16:36:56 2011 +0000

    cogl-debug: Add a debug option for tracing clipping
    
    This adds a COGL_DEBUG=clipping option that reports how the clip is
    being flushed. This is needed to determine whether the scissor,
    stencil clip planes or software clipping is being used.

 clutter/cogl/cogl/cogl-clip-stack.c    | 12 ++++++++++++
 clutter/cogl/cogl/cogl-debug-options.h |  5 +++++
 clutter/cogl/cogl/cogl-debug.c         |  3 ++-
 clutter/cogl/cogl/cogl-debug.h         |  1 +
 clutter/cogl/cogl/cogl-journal.c       |  2 ++
 5 files changed, 22 insertions(+), 1 deletion(-)

commit 35a2d79e462c2d27e462f0e614c475cce17b883b
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Jan 24 14:28:00 2011 +0000

    cogl-debug: Split the flags to support more than 32
    
    The CoglDebugFlags are now stored in an array of unsigned ints rather
    than a single variable. The flags are accessed using macros instead of
    directly peeking at the cogl_debug_flags variable. The index values
    are stored in the enum rather than the actual mask values so that the
    enum doesn't need to be more than 32 bits wide. The hope is that the
    code to determine the index into the array can be optimized out by the
    compiler so it should have exactly the same performance as the old
    code.

 clutter/cogl/cogl/cogl-atlas-texture.c          |   2 +-
 clutter/cogl/cogl/cogl-attribute.c              |   8 +-
 clutter/cogl/cogl/cogl-blend-string.c           |  14 ++--
 clutter/cogl/cogl/cogl-context.c                |  10 +--
 clutter/cogl/cogl/cogl-debug.c                  |  85 ++++++++++++++-----
 clutter/cogl/cogl/cogl-debug.h                  | 105 ++++++++++++++++--------
 clutter/cogl/cogl/cogl-framebuffer.c            |   4 +-
 clutter/cogl/cogl/cogl-journal.c                |  38 ++++-----
 clutter/cogl/cogl/cogl-matrix-private.h         |   2 +-
 clutter/cogl/cogl/cogl-pipeline-fragend-arbfp.c |   6 +-
 clutter/cogl/cogl/cogl-pipeline-fragend-fixed.c |   6 +-
 clutter/cogl/cogl/cogl-pipeline-vertend-fixed.c |   2 +-
 clutter/cogl/cogl/cogl-pipeline.c               |   2 +-
 clutter/cogl/cogl/cogl-profile.c                |  10 +--
 clutter/cogl/cogl/cogl-rectangle-map.c          |   4 +-
 clutter/cogl/cogl/cogl-shader.c                 |   4 +-
 16 files changed, 191 insertions(+), 111 deletions(-)

commit 67fdb5c9f8494117e3d763693041be3ace8168f4
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Jan 14 11:11:44 2011 +0000

    cogl-pipeline: Flush the lighting params in common code not vertend
    
    The lighting parameters such as the diffuse and ambient colors were
    previously only flushed in the fixed vertend. This meant that if a
    vertex shader was used then they would not be set. The lighting
    parameters are uniforms which are just as useful in a fragment shader
    so it doesn't really make sense to set them in the vertend. They are
    now flushed in the common cogl-pipeline-opengl code but the code is
    #ifdef'd for GLES2 because they need to be part of the progend in that
    case.

 clutter/cogl/cogl/cogl-pipeline-opengl.c        | 25 ++++++++++++++++++++++++-
 clutter/cogl/cogl/cogl-pipeline-vertend-fixed.c | 19 -------------------
 2 files changed, 24 insertions(+), 20 deletions(-)

commit e778018d0d3247a64a7de64f0937a1335a22b56e
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Jan 13 18:24:22 2011 +0000

    cogl-pipeline-progend-glsl: Generalize updating GLES2 uniforms
    
    The uniforms for the alpha test reference value and point size on
    GLES2 are updating using similar code. This generalizes the code so
    that there is a static array of predefined builtin uniforms which
    contains the uniform name, a pointer to a function to get the value
    from the pipeline, a pointer to a function to update the uniform and a
    flag representing which CoglPipelineState change affects the
    uniform. The uniforms are then updated in a loop. This should simplify
    adding more builtin uniforms.

 clutter/cogl/cogl/cogl-pipeline-progend-glsl.c | 134 ++++++++++++++-----------
 1 file changed, 77 insertions(+), 57 deletions(-)

commit 9ff04e8a998af90891996fe8c2a4439e5736e4f4
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Jan 12 13:47:55 2011 +0000

    cogl-shader-boilerplate: Move the uniforms to the common code
    
    The builtin uniforms are accessible from either the vertex shader or
    the fragment shader so we should define them in the common
    section. This doesn't really matter for the current list of uniforms
    because it's pretty unlikely that you'd want to access the matrices
    from the fragment shader, but for other builtins such as the lighting
    material properties it makes sense.

 clutter/cogl/cogl/cogl-shader-boilerplate.h | 31 ++++++++++++++++-------------
 1 file changed, 17 insertions(+), 14 deletions(-)

commit e8d5be0ba79eef766fff723012c5d1994da84b4c
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Jan 24 11:49:04 2011 +0000

    ClutterTimeline: Fix the 'msecs' parameter for the new-frame signal
    
    Between Clutter 0.8 and 1.0, the new-frame signal of ClutterTimeline
    changed the second parameter to be an elapsed time in milliseconds
    rather than the frame number. However a few places in clutter were
    still calling the parameter 'frame_num' which is a bit
    misleading. Notably the signature for the signal class closure in the
    header was using the wrong name. This changes them to use 'msecs'.

 clutter/clutter-alpha.c              | 2 +-
 clutter/clutter-timeline.h           | 2 +-
 tests/conform/test-timeline-rewind.c | 4 +---
 3 files changed, 3 insertions(+), 5 deletions(-)

commit 5c0aaf50a7b3d1914d4580d5f853faa9a4b10f73
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Jan 24 11:29:59 2011 +0000

    clutter-timeline: Emit the new-frame signal even on the first frame
    
    ClutterTimeline has special handling for the first time do_tick is
    called which was not emitting a new-frame signal. This meant that an
    application which directly uses the timeline would have to manually
    setup the initial state of an animation after starting a timeline to
    avoid painting a single frame with the wrong state. It seems to make
    more sense to instead emit the new-frame signal so that the
    application always sees a new-frame when the progress changes before a
    paint.

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

commit b917285e24a355d38678b4a1cdce9e572ac34c14
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Jan 24 10:51:06 2011 +0000

    Post-release version bump to 1.5.15

 configure.ac       |   2 +-
 po/clutter-1.0.pot | 445 ++++++++++++++++++++++++++++------------------------
 po/de.po           | 445 ++++++++++++++++++++++++++++------------------------
 po/fr.po           | 449 ++++++++++++++++++++++++++++------------------------
 po/id.po           | 450 +++++++++++++++++++++++++++++------------------------
 po/it.po           | 450 +++++++++++++++++++++++++++++------------------------
 po/pl.po           | 450 +++++++++++++++++++++++++++++------------------------
 po/zh_CN.po        | 449 ++++++++++++++++++++++++++++------------------------
 8 files changed, 1731 insertions(+), 1409 deletions(-)

commit 3e05d2df8de5ded545393994aff29ef9a8f7a0c5
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Jan 24 10:23:36 2011 +0000

    Release Clutter 1.5.14 (1.6.0rc1)

 NEWS         | 42 ++++++++++++++++++++++++++++++++++--------
 configure.ac |  2 +-
 2 files changed, 35 insertions(+), 9 deletions(-)

commit 79b936aa4a829ffd5b5677da228425c4e0c46623
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Jan 21 20:46:09 2011 +0000

    Update the NEWS file

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

commit 6bffd407fd4f4d4d5b5c5f5ef6d9b43c44b7fe03
Author: Bastian Winkler <buz@netbuz.org>
Date:   Fri Jan 21 14:50:44 2011 +0100

    model: Add support to define rows in ClutterScript
    
    This adds a custom "rows" property, that allows to define the rows of a
    ClutterModel. A single row can either an array of all columns or an
    object with column-name : column-value pairs.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2528

 clutter/clutter-model.c           | 210 +++++++++++++++++++++++++++++++-------
 tests/conform/test-model.c        |  35 +++++++
 tests/data/test-script-model.json |   8 ++
 3 files changed, 218 insertions(+), 35 deletions(-)

commit 95b3a718ef5c08f058e2bf0e3e56df390408821f
Author: Bastian Winkler <buz@netbuz.org>
Date:   Wed Jan 12 13:09:52 2011 +0100

    script-parser: Allow initialized GValue arg in clutter_script_parse_node
    
    Allow to 'abuse' the clutter_script_parse_node function by calling it
    with an initialized GValue instead of a valid GParamSpec argument to
    obtain the correct typed value from the json node.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2528

 clutter/clutter-script-parser.c | 23 +++++++++++++++--------
 1 file changed, 15 insertions(+), 8 deletions(-)

commit 8e1c1909f80b4513154a3dfd8980160f94ec036f
Author: Bastian Winkler <buz@netbuz.org>
Date:   Wed Jan 12 12:54:43 2011 +0100

    model: Change the column argument type to gint for clutter_model_set_sort
    
    Like in clutter_model_set_sorting_column this function should take a
    gint column, otherwise GObject-Introspection won't allow to pass a NULL
    sorting function.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2527

 clutter/clutter-model.c | 2 +-
 clutter/clutter-model.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 8a6986089b79f9d6cbb7012d12087d2d2e42526c
Author: Bastian Winkler <buz@netbuz.org>
Date:   Sat Jan 22 12:51:31 2011 +0100

    model: Fix some GObject-Introspection annotations
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2526

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

commit 86c786aaad28e439146af4a93f787163e96bab6d
Merge: 8a58677 b7d26b2
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Jan 21 20:22:32 2011 +0000

    Merge branch 'xi2'
    
    * xi2: (41 commits)
      test-devices: Actually print the axis data
      device-manager/xi2: Sync the stage of source devices
      event: Clean up clutter_event_copy()
      device: unset the axes array pointer when resetting
      device-manager/xi2: Fix device hotplugging
      glx: Clean up GLX implementation
      device/x11: Store min/max keycode in the XI device class
      x11: Hide all private symbols
      docs: More documentation fixes for InputDevice
      */event: Never manipulate the event queue directly
      win32: Update DeviceManager device creation
      device: Allow enabling/disabling non-master devices
      backend/eglx: Add newly created stages to the translators
      device: Add more doc annotations
      device: Use a double for translate_axis() argument
      test-devices: Clean up and show axes data
      event: Fix up clutter_event_copy()
      device/xi2: Translate the axis data after setting devices
      device: Add more accessors for properties
      docs: Update API reference
      ...

commit 8a5867799c5809854dfac9c2b7e704bcc6e9455b
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Jan 21 18:43:35 2011 +0000

    cogl: call _cogl_texture_init for x11 tfp
    
    When we added the texture->framebuffers member a _cogl_texture_init
    funciton was added to initialize the list of framebuffers associated
    with a texture to NULL. All the backends were updated except the
    x11 tfp backend. This was causing crashes in test-pixmap.

 clutter/cogl/cogl/winsys/cogl-texture-pixmap-x11.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 1973168bbaa133215df73eaeeef25c6dcc0d6a07
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Jan 21 17:38:14 2011 +0000

    journal: start uprof flush timer after flushing fb deps
    
    This avoids us recursively starting the _cogl_journal_flush uprof timer
    by only starting it after flushing the journals of dependency
    framebuffers.

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

commit f9d4846d6acc493b9fd52d627a82a0302d507a17
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Jan 21 17:28:34 2011 +0000

    cogl: make sure to init ctx->framebuffers
    
    This makes sure to initialize ctx->framebuffers to NULL otherwise we can
    get apps crashing when they create their first framebuffer.

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

commit 326c51630492ab13a2e584f9efb0dc5673966c0e
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Jan 20 19:31:53 2011 +0000

    cogl: rename CoglVertexAttribute CoglAttribute
    
    This is part of a broader cleanup of some of the experimental Cogl API.
    One of the reasons for this particular rename is to reduce the verbosity
    of using the API. Another reason is that CoglVertexArray is going to be
    renamed CoglAttributeBuffer and we want to help emphasize the
    relationship between CoglAttributes and CoglAttributeBuffers.

 clutter/cogl/cogl/Makefile.am                      |    6 +-
 clutter/cogl/cogl/cogl-attribute-private.h         |  103 ++
 clutter/cogl/cogl/cogl-attribute.c                 | 1272 ++++++++++++++++++++
 clutter/cogl/cogl/cogl-attribute.h                 |  182 +++
 clutter/cogl/cogl/cogl-context.c                   |    2 +-
 clutter/cogl/cogl/cogl-index-array.c               |    4 +-
 clutter/cogl/cogl/cogl-journal.c                   |  117 +-
 clutter/cogl/cogl/cogl-path-private.h              |    4 +-
 .../cogl/cogl/cogl-pipeline-progend-glsl-private.h |    2 +-
 clutter/cogl/cogl/cogl-primitive.c                 |  309 +++--
 clutter/cogl/cogl/cogl-primitive.h                 |   26 +-
 clutter/cogl/cogl/cogl-primitives.c                |   84 +-
 clutter/cogl/cogl/cogl-types.h                     |   22 +
 clutter/cogl/cogl/cogl-vertex-attribute-private.h  |  103 --
 clutter/cogl/cogl/cogl-vertex-attribute.c          | 1272 --------------------
 clutter/cogl/cogl/cogl-vertex-attribute.h          |  205 ----
 clutter/cogl/cogl/cogl-vertex-buffer-private.h     |    4 +-
 clutter/cogl/cogl/cogl-vertex-buffer.c             |   18 +-
 clutter/cogl/cogl/cogl-vertex-buffer.h             |   22 -
 clutter/cogl/cogl/cogl.c                           |    4 +-
 clutter/cogl/cogl/cogl.h                           |    2 +-
 clutter/cogl/cogl/cogl2-path.c                     |   28 +-
 doc/reference/cogl-2.0/cogl-docs.xml.in            |    2 +-
 23 files changed, 1873 insertions(+), 1920 deletions(-)

commit c4bafb48b6e4a3b35a13252e5ade500c01c4a392
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Jan 20 18:51:24 2011 +0000

    docs: Adds bitmap section to cogl reference manual
    
    This adds an include for the cogl-bitmap section to cogl-docs.xml.in

 doc/reference/cogl/cogl-docs.xml.in | 1 +
 1 file changed, 1 insertion(+)

commit b3775a75640ae2be0cef489c69d7e4213f170cb9
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Jan 20 12:29:49 2011 +0000

    cogl: s/Cogl*Vertex/CoglVertex*/
    
    We have a bunch of experimental convenience functions like
    cogl_primitive_p2/p2t2 that have corresponding vertex structures but it
    seemed a bit odd to have the vertex annotation e.g. "P2T2" be an infix
    of the type like CoglP2T2Vertex instead of be a postfix like
    CoglVertexP2T2. This switches them all to follow the postfix naming
    style.

 clutter/cogl/cogl/cogl-primitive.c        | 96 +++++++++++++++----------------
 clutter/cogl/cogl/cogl-primitive.h        | 80 +++++++++++++-------------
 clutter/cogl/cogl/cogl-vertex-attribute.c | 20 +++----
 tests/conform/test-cogl-primitive.c       | 16 +++---
 4 files changed, 106 insertions(+), 106 deletions(-)

commit 3f9e8591671d0c81d5d4034f0895bca3f98cb4c0
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Jan 20 18:30:55 2011 +0000

    test-picking: Don't manually paint the stage
    
    Instead of using an idle handler that synchonously paints the stage
    by manually calling clutter_actor_paint (stage) the test now uses an
    idle handler that repeatedly queues a redraw on the stage.
    
    do_events is now called from a "paint" signal handler for the stage, and
    instead of manually determining the fps the test now uses
    CLUTTER_SHOW_FPS=1 instead.

 tests/micro-bench/test-picking.c | 38 +++++++++++++++-----------------------
 1 file changed, 15 insertions(+), 23 deletions(-)

commit 9a663d8e4106e43f8f214b7fdded555ee408cf28
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Jan 20 14:41:51 2011 +0000

    debug: Adds a COGL_DEBUG=disable-fast-read-pixel option
    
    COGL_DEBUG=disable-fast-read-pixel can be used to disable the
    optimization for reading a single pixel colour back by looking at the
    geometry in the journal and not involving the GPU. With this disabled we
    will always flush the journal, rendering to the framebuffer and then use
    glReadPixels to get the result.

 clutter/cogl/cogl/cogl-debug-options.h |  7 +++-
 clutter/cogl/cogl/cogl-debug.c         |  3 +-
 clutter/cogl/cogl/cogl-debug.h         | 61 +++++++++++++++++-----------------
 clutter/cogl/cogl/cogl-framebuffer.c   |  3 ++
 clutter/cogl/cogl/cogl-journal.c       |  3 ++
 5 files changed, 45 insertions(+), 32 deletions(-)

commit 1bdb0e6e98db719c8652c85fc234c21437ad071a
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Jan 12 22:12:41 2011 +0000

    cogl: Implements a software only read-pixel fast-path
    
    This adds a transparent optimization to cogl_read_pixels for when a
    single pixel is being read back and it happens that all the geometry of
    the current frame is still available in the framebuffer's associated
    journal.
    
    The intention is to indirectly optimize Clutter's render based picking
    mechanism in such a way that the 99% of cases where scenes are comprised
    of trivial quad primitives that can easily be intersected we can avoid
    the latency of kicking a GPU render and blocking for the result when we
    know we can calculate the result manually on the CPU probably faster
    than we could even kick a render.
    
    A nice property of this solution is that it maintains all the
    flexibility of the render based picking provided by Clutter and it can
    gracefully fall back to GPU rendering if actors are drawn using anything
    more complex than a quad for their geometry.
    
    It seems worth noting that there is a limitation to the extensibility of
    this approach in that it can only optimize picking a against geometry
    that passes through Cogl's journal which isn't something Clutter
    directly controls.  For now though this really doesn't matter since
    basically all apps should end up hitting this fast-path. The current
    idea to address this longer term would be a pick2 vfunc for ClutterActor
    that can support geometry and render based input regions of actors and
    move this optimization up into Clutter instead.
    
    Note: currently we don't have a primitive count threshold to consider
    that there could be scenes with enough geometry for us to compensate for
    the cost of kicking a render and determine a result more efficiently by
    utilizing the GPU. We don't currently expect this to be common though.
    
    Note: in the future it could still be interesting to revive something
    like the wip/async-pbo-picking branch to provide an asynchronous
    read-pixels based optimization for Clutter picking in cases where more
    complex input regions that necessitate rendering are in use or if we do
    add a threshold for rendering as mentioned above.

 clutter/clutter-main.c                       |   3 -
 clutter/cogl/cogl/cogl-framebuffer-private.h |  27 +
 clutter/cogl/cogl/cogl-framebuffer.c         | 196 +++++++-
 clutter/cogl/cogl/cogl-journal-private.h     |  20 +
 clutter/cogl/cogl/cogl-journal.c             | 710 ++++++++++++++++++++-------
 clutter/cogl/cogl/cogl-vertex-attribute.c    |   7 +
 clutter/cogl/cogl/cogl.c                     |  20 +-
 7 files changed, 800 insertions(+), 183 deletions(-)

commit e289e85397cb52f421e64e253e1af2628909f424
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Jan 18 16:37:01 2011 +0000

    matrix: fix transform/project_points() APIs
    
    Both cogl_matrix_transform_points and _project_points take points_in and
    points_out arguments and explicitly allow pointing to the same array
    (i.e. to transform in-place) The implementation of the various internal
    transform functions though were not handling this possability and so it
    was possible the reference partially transformed vertex values as if
    they were original input values leading to incorrect results. This patch
    ensures we take a temporary copy of the current input point when
    transforming.

 clutter/cogl/cogl/cogl-matrix.c | 136 ++++++++++++++++++++--------------------
 1 file changed, 68 insertions(+), 68 deletions(-)

commit 23ed01d4e933da803bb7bbe4d0439de0824532c1
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Jan 13 14:29:46 2011 +0000

    cogl: Adds _cogl_util_point_in_polygon API
    
    This adds a utility function that can determine if a given point
    intersects an arbitrary polygon, by counting how many edges a
    "semi-infinite" horizontal ray crosses from that point. The plan is to
    use this for a software based read-pixel fast path that avoids using the
    GPU to rasterize journaled primitives and can instead intersect a point
    being read with quads in the journal to determine the correct color.

 clutter/cogl/cogl/Makefile.am                  |  2 +
 clutter/cogl/cogl/cogl-point-in-poly-private.h | 40 +++++++++++++++
 clutter/cogl/cogl/cogl-point-in-poly.c         | 69 ++++++++++++++++++++++++++
 3 files changed, 111 insertions(+)

commit 142b229c5c2684f94af32358d1401b61aa3019aa
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Jan 12 22:06:58 2011 +0000

    cogl: Adds _cogl_swap_buffers_notify for clutter backends
    
    This adds a stop-gap mechanism for Cogl to know when the window system
    is requested to present the current backbuffer to the frontbuffer by
    adding a _cogl_swap_buffers_notify function that backends are now
    expected to call right after issuing the equivalent request to OpenGL
    vie the platforms OpenGL binding layer. This (blindly) updates all the
    backends to call this new function.
    
    For now Cogl doesn't do anything with the notification but the intention
    is to use it as part of a planned read-pixel optimization which will
    need to reset some state at the start of each new frame.

 clutter/cogl/cogl/cogl-framebuffer-private.h |  3 +++
 clutter/cogl/cogl/cogl-framebuffer.c         |  5 +++++
 clutter/cogl/cogl/cogl.c                     | 10 ++++++++++
 clutter/cogl/cogl/cogl.h                     |  3 +++
 clutter/egl/clutter-stage-egl.c              |  1 +
 clutter/fruity/clutter-backend-fruity.c      |  1 +
 clutter/glx/clutter-stage-glx.c              |  1 +
 clutter/osx/clutter-stage-osx.c              |  1 +
 clutter/wayland/clutter-stage-wayland.c      |  2 ++
 clutter/win32/clutter-backend-win32.c        |  5 ++++-
 10 files changed, 31 insertions(+), 1 deletion(-)

commit e150f474b3e9e58565dc894b4ae9234406d90675
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Jan 12 19:30:30 2011 +0000

    clip: rename get_clip_stack + add framebuffer_get_stack
    
    Instead of having _cogl_get/set_clip stack which reference the global
    CoglContext this instead makes those into CoglClipState method functions
    named _cogl_clip_state_get/set_stack that take an explicit pointer to a
    CoglClipState.
    
    This also adds _cogl_framebuffer_get/set_clip_stack convenience
    functions that avoid having to first get the ClipState from a
    framebuffer then the stack from that - so we can maintain the
    convenience of _cogl_get_clip_stack.

 clutter/cogl/cogl/cogl-clip-state.c          | 21 +++------------------
 clutter/cogl/cogl/cogl-clip-state.h          | 21 +++------------------
 clutter/cogl/cogl/cogl-framebuffer-private.h | 26 ++++++++++++++++++++++++++
 clutter/cogl/cogl/cogl-framebuffer.c         | 17 +++++++++++++++++
 clutter/cogl/cogl/cogl-journal.c             |  5 ++++-
 5 files changed, 53 insertions(+), 37 deletions(-)

commit 179dc9b7d1d9d14227c7f4eef241faf2d1affda0
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Jan 12 19:13:45 2011 +0000

    clip-stack: Adds _cogl_clip_stack_get_bounds API
    
    This adds an internal function to be able to query the screen space
    bounding box of the current clip entries contained in a given
    CoglClipStack.
    
    This bounding box which is cheap to determine can be useful to know the
    largest extents that might be updated while drawing with this clip
    stack.
    
    For example the plan is to use this as part of an optimized read-pixel
    path handled on the CPU which will need to track the currently valid
    extents of the last call to cogl_clear()

 clutter/cogl/cogl/cogl-clip-stack.c | 45 ++++++++++++++++++++++++++-----------
 clutter/cogl/cogl/cogl-clip-stack.h |  7 ++++++
 2 files changed, 39 insertions(+), 13 deletions(-)

commit f834596fd42b26d471a80cfec08c0d6e8c53f39a
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Jan 6 13:25:45 2011 +0000

    journal: Support per-framebuffer journals
    
    Instead of having a single journal per context, we now have a
    CoglJournal object for each CoglFramebuffer. This means we now don't
    have to flush the journal when switching/pushing/popping between
    different framebuffers so for example a Clutter scene that involves some
    ClutterEffect actors that transiently redirect to an FBO can still be
    batched.
    
    This also allows us to track state in the journal that relates to the
    current frame of its associated framebuffer which we'll need for our
    optimization for using the CPU to handle reading a single pixel back
    from a framebuffer when we know the whole scene is currently comprised
    of simple rectangles in a journal.

 clutter/cogl/cogl/cogl-atlas-texture.c       |  22 +++--
 clutter/cogl/cogl/cogl-clip-state.c          |   5 +-
 clutter/cogl/cogl/cogl-context.c             |   6 --
 clutter/cogl/cogl/cogl-context.h             |  12 +--
 clutter/cogl/cogl/cogl-framebuffer-private.h |  23 +++++
 clutter/cogl/cogl/cogl-framebuffer.c         | 111 ++++++++++++++++++---
 clutter/cogl/cogl/cogl-journal-private.h     |  19 +++-
 clutter/cogl/cogl/cogl-journal.c             | 140 ++++++++++++++++++---------
 clutter/cogl/cogl/cogl-pipeline-private.h    |   3 +
 clutter/cogl/cogl/cogl-pipeline.c            |   7 +-
 clutter/cogl/cogl/cogl-primitives.c          |   9 +-
 clutter/cogl/cogl/cogl-sub-texture.c         |   3 +-
 clutter/cogl/cogl/cogl-texture-2d-sliced.c   |   2 +-
 clutter/cogl/cogl/cogl-texture-2d.c          |   2 +-
 clutter/cogl/cogl/cogl-texture-3d.c          |   2 +-
 clutter/cogl/cogl/cogl-texture-private.h     |  15 +++
 clutter/cogl/cogl/cogl-texture-rectangle.c   |   2 +-
 clutter/cogl/cogl/cogl-texture.c             |  58 +++++++++++
 clutter/cogl/cogl/cogl-vertex-attribute.c    |   7 +-
 clutter/cogl/cogl/cogl.c                     |  20 +++-
 clutter/cogl/cogl/cogl2-path.c               |   8 +-
 21 files changed, 375 insertions(+), 101 deletions(-)

commit 385e0f84c6179a30f9031aba974131e1cf3e6a4e
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Jan 12 20:37:53 2011 +0000

    cogl-object: Adds an internal _cogl_object_set_user_data
    
    This adds an internal alternative to cogl_object_set_user_data that also
    passes an instance pointer to destroy notify callbacks.
    
    When setting private data on a CoglObject it's often desirable to know
    the instance being destroyed when we are being notified to free the
    private data due to the object being freed. The typical solution to this
    is to track a pointer to the instance in the private data itself so it
    can be identified but that usually requires an extra micro allocation
    for the private data that could have been avoided if only the callback
    were given an instance pointer.
    
    The new internal _cogl_object_set_user_data passes the instance pointer
    as a second argument which means it is ABI compatible for us to layer
    the public version on top of this internal function.

 clutter/cogl/cogl/cogl-object-private.h | 21 ++++++++++++++++++++-
 clutter/cogl/cogl/cogl-object.c         | 24 +++++++++++++++++-------
 2 files changed, 37 insertions(+), 8 deletions(-)

commit 131578c13aeeb53d99d7c63a0b2ddaded23524fc
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Jan 5 15:30:04 2011 +0000

    framebuffer: Move clear code to cogl-framebuffer.c
    
    This moves the implementation of cogl_clear into cogl-framebuffer.c as
    two new internal functions _cogl_framebuffer_clear and
    _cogl_framebuffer_clear4f. It's not clear if this is what the API will
    look like as we make more of the CoglFramebuffer API public due to the
    limitations of using flags to identify buffers when framebuffers may
    contain any number of ancillary buffers but conceptually it makes some
    sense to tie the operation of clearing a color buffer to a framebuffer.
    
    The short term intention is to enable tracking the current clear color
    as a property of the framebuffer as part of an optimization for reading
    back single pixels when the geometry is simple enough that we can
    compute the result quickly on the CPU. (If the point doesn't intersect
    any geometry we'll need to return the last clear color.)

 clutter/cogl/cogl/cogl-framebuffer-private.h |  20 ++++++
 clutter/cogl/cogl/cogl-framebuffer.c         | 103 +++++++++++++++++++++++++++
 clutter/cogl/cogl/cogl.c                     |  66 ++---------------
 clutter/cogl/cogl/cogl2-path.c               |   4 +-
 4 files changed, 129 insertions(+), 64 deletions(-)

commit b7d26b2d02729b2d5eeb1650ca4e89a723afc1c7
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Jan 21 15:27:56 2011 +0000

    test-devices: Actually print the axis data
    
    Returning in an if() block whose condition we assume to be true doesn't
    play nicely with having statements after the block. Let's fix that.

 tests/interactive/test-devices.c | 31 ++++++++++++++++---------------
 1 file changed, 16 insertions(+), 15 deletions(-)

commit e46571d63911df23cb25fb0b3fcfe5e86f50d81b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Jan 21 15:26:52 2011 +0000

    device-manager/xi2: Sync the stage of source devices
    
    Keep the slave devices in sync with their master, so that we don't
    ignore their events because they lack the stage pointer.

 clutter/x11/clutter-device-manager-xi2.c | 51 +++++++++++++++++++++-----------
 1 file changed, 34 insertions(+), 17 deletions(-)

commit 516366d7691128e9f2138781bcc144cd628b110f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Jan 21 15:14:11 2011 +0000

    event: Clean up clutter_event_copy()
    
    Try to avoid duplication of variables and blocks.

 clutter/clutter-event.c | 46 +++++++++++++++++++++-------------------------
 1 file changed, 21 insertions(+), 25 deletions(-)

commit 7a339d1663b94e4cbc07ffa8a8c3bf0a47d84cae
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Jan 21 14:12:19 2011 +0000

    device: unset the axes array pointer when resetting
    
    Otherwise we'll get a nice realloc() error from glibc.

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

commit 4ab8a3f0c16b82d4f223de869e1b87279dcff272
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Jan 21 11:43:00 2011 +0000

    stage: Do not create the default stage on stage.is_default()
    
    Use the stage manager to see if a default stage was effectively set,
    otherwise we end up creating a default stage when destroying a
    non-default one.

 clutter/clutter-stage.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

commit 0e993469155516dde673292bafe72d1c8308e27f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Jan 21 11:41:36 2011 +0000

    device-manager/xi2: Fix device hotplugging
    
    Hierarchy and Device changed events come through with the X window set
    to be the root window, not the stage window. We need to whitelist them
    so that we can actually support hotplugging and device changes.

 clutter/x11/clutter-device-manager-xi2.c | 32 +++++++-----
 tests/interactive/test-devices.c         | 83 ++++++++++++++++++++++++++++----
 2 files changed, 95 insertions(+), 20 deletions(-)

commit 7514f5fe92844a57d33a4811fd20687bbb391c8b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Jan 21 10:49:12 2011 +0000

    glx: Clean up GLX implementation
    
    Like commit a277b4091a3fa09a39cf001809c3048eb27f3952, but targeted at
    the GLX backend.

 clutter/glx/clutter-backend-glx.c | 22 +++++++--------
 clutter/glx/clutter-stage-glx.c   | 57 ++++++++++++++++++---------------------
 clutter/glx/clutter-stage-glx.h   |  2 +-
 3 files changed, 38 insertions(+), 43 deletions(-)

commit 6da51f6ed379f531bee72b688366dc734082a573
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Jan 21 10:24:34 2011 +0000

    device/x11: Store min/max keycode in the XI device class
    
    The generic device class shouldn't have the minimum and maximum keycode,
    since no other input backend provides those.

 clutter/clutter-device-manager-private.h      |  8 ++------
 clutter/clutter-input-device.c                | 18 +++---------------
 clutter/x11/clutter-device-manager-core-x11.c | 10 +++++++---
 clutter/x11/clutter-device-manager-xi2.c      |  6 ++----
 clutter/x11/clutter-input-device-core-x11.c   |  9 ++++++---
 5 files changed, 20 insertions(+), 31 deletions(-)

commit a277b4091a3fa09a39cf001809c3048eb27f3952
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Jan 20 15:39:28 2011 +0000

    x11: Hide all private symbols
    
    The x11 backend exposes a lot of symbols that are meant to only be used
    when implementing a subclassed backend, like the glx and eglx ones.
    
    The uninstalled headers are also filled with cruft declarations of
    functions long since removed.
    
    Let's try to clean up this mess.

 clutter/egl/clutter-backend-egl.c | 13 +++++++++----
 clutter/glx/clutter-backend-glx.c | 19 ++++++++++++++-----
 clutter/x11/clutter-backend-x11.c | 28 ++++++++++------------------
 clutter/x11/clutter-backend-x11.h | 31 +++----------------------------
 clutter/x11/clutter-keymap-x11.c  |  4 ++--
 clutter/x11/clutter-keymap-x11.h  |  4 ++--
 clutter/x11/clutter-stage-x11.c   | 12 +++++++-----
 clutter/x11/clutter-stage-x11.h   | 13 ++-----------
 8 files changed, 49 insertions(+), 75 deletions(-)

commit 89467abae591fb07afed507323f086264d73e68d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Jan 19 17:03:27 2011 +0000

    docs: More documentation fixes for InputDevice

 clutter/clutter-input-device.c             | 107 ++++++++++++++++++++++++-----
 doc/reference/clutter/clutter-sections.txt |  10 ++-
 2 files changed, 95 insertions(+), 22 deletions(-)

commit 0f56abf569d524bd42d4a3cdc6a5321a3de2b7f9
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Jan 19 16:34:49 2011 +0000

    */event: Never manipulate the event queue directly
    
    Always use _clutter_event_push() instead.

 clutter/egl/clutter-event-tslib.c              |  2 +-
 clutter/evdev/clutter-device-manager-evdev.c   |  5 +----
 clutter/wayland/clutter-input-device-wayland.c | 26 +++++++-------------------
 clutter/win32/clutter-event-win32.c            |  6 +-----
 4 files changed, 10 insertions(+), 29 deletions(-)

commit 400ecdfc81d19ab27cbc7a4f416b6fc109556ebf
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Jan 19 16:34:37 2011 +0000

    win32: Update DeviceManager device creation

 clutter/win32/clutter-device-manager-win32.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

commit 73cf6bd52c282acc1cdb67724d2b55d3f822f7ef
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Jan 19 16:23:45 2011 +0000

    device: Allow enabling/disabling non-master devices
    
    Slave and floating devices should always be disabled, and not deliver
    events to the scene. It is up to the user to enable non-master devices
    and handle events coming from them.
    
    ClutterInputDevice gets a new :enabled property, defaulting to FALSE;
    when a device manager creates a new device it has to set it to TRUE if
    the :device-mode property is set to CLUTTER_INPUT_MODE_MASTER.
    
    The main event queue entry point, _clutter_event_push(), will
    automatically discard events coming from disabled devices.

 clutter/clutter-device-manager-private.h      |  3 +-
 clutter/clutter-event.c                       |  9 ++++
 clutter/clutter-input-device.c                | 66 +++++++++++++++++++++++++++
 clutter/clutter-input-device.h                |  3 ++
 clutter/x11/clutter-device-manager-core-x11.c |  3 ++
 clutter/x11/clutter-device-manager-xi2.c      | 10 +++-
 tests/interactive/test-devices.c              | 10 +++-
 7 files changed, 100 insertions(+), 4 deletions(-)

commit 137f7d42a8db40a85ae95b10d9ed0fa895f48b0a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Jan 19 15:17:34 2011 +0000

    backend/eglx: Add newly created stages to the translators
    
    The events directed to the stage should be translated by the stage.

 clutter/egl/clutter-backend-egl.c | 4 ++++
 1 file changed, 4 insertions(+)

commit d3ed3d3a7b3950160a3351d54e766628fd916ad8
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Jan 19 13:54:27 2011 +0000

    device: Add more doc annotations
    
    Even for internal API.

 clutter/clutter-input-device.c | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

commit 50e52f550a14e86a689673ce898970337cc46e8b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Jan 19 13:53:20 2011 +0000

    device: Use a double for translate_axis() argument
    
    While XI1 has axis data in events exposed as integers, XI2 uses double
    precision floating point values.

 clutter/clutter-device-manager-private.h |  2 +-
 clutter/clutter-input-device.c           | 17 ++++++++++++++++-
 2 files changed, 17 insertions(+), 2 deletions(-)

commit f54044f7e45fe37538187ca06f7d378ae8d64800
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Jan 19 13:52:33 2011 +0000

    test-devices: Clean up and show axes data

 tests/interactive/test-devices.c | 106 +++++++++++++++++++++++++++++++++------
 1 file changed, 92 insertions(+), 14 deletions(-)

commit d078fe09301db384b7a465b86ad83dab860576b4
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Jan 18 22:31:14 2011 +0000

    event: Fix up clutter_event_copy()
    
    We need to copy the scroll axis data, and we need to copy the private
    Event data from the source event to the target event structure.

 clutter/clutter-event.c | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

commit 405e611279321ebe293e02b4507899355f49cc64
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Jan 18 22:30:21 2011 +0000

    device/xi2: Translate the axis data after setting devices
    
    We need the devices (source and virtual) to be set before translating
    the axis data from XI2 to the Clutter event.

 clutter/x11/clutter-device-manager-xi2.c | 30 +++++++++++++++++++-----------
 1 file changed, 19 insertions(+), 11 deletions(-)

commit dd5f6ca7e1b5042beca6363109424565a7d8223b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Jan 18 17:33:22 2011 +0000

    device: Add more accessors for properties
    
    Allow using real accessor methods for getting the ClutterInputDevice
    properties set on construction.

 clutter/clutter-input-device.c             | 38 ++++++++++++++++++++++++++++++
 clutter/clutter-input-device.h             |  2 ++
 doc/reference/clutter/clutter-sections.txt |  2 ++
 3 files changed, 42 insertions(+)

commit ad06f1b20fcac9167f456ba21674d8f7a2c0cd3b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Jan 18 16:57:14 2011 +0000

    docs: Update API reference

 doc/reference/clutter/clutter-sections.txt | 2 ++
 1 file changed, 2 insertions(+)

commit 333ca35ceca739388be36cf48514fcb68f3b7aef
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Jan 18 16:55:14 2011 +0000

    device: Add get_axis_value()
    
    We need a convenience function for extracting the value of a specific
    axis type out of the array of axis values attached to events.

 clutter/clutter-input-device.c | 47 ++++++++++++++++++++++++++++++++++++++++++
 clutter/clutter-input-device.h |  4 ++++
 2 files changed, 51 insertions(+)

commit d805237c313f5e2ce85b93fd167569c25b702163
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Jan 18 16:54:12 2011 +0000

    event: Add accessor for the axes field
    
    CLUTTER_BUTTON_* and CLUTTER_MOTION event types have axes data attached
    to them, so we want to expose a common ClutterEvent method for
    extracting that data.

 clutter/clutter-event.c | 57 +++++++++++++++++++++++++++++++++++++++++++++++++
 clutter/clutter-event.h |  2 ++
 2 files changed, 59 insertions(+)

commit 431200f40dad93bcaeff76ad34f3fdd431d5a8f2
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Jan 18 16:13:26 2011 +0000

    device: Add keys and axes accessors
    
    Allow retrieving the number of keys and axes, since we provide the API
    to iterate over them both.

 clutter/clutter-device-manager-private.h    |  2 --
 clutter/clutter-input-device.c              | 30 +++++++++++++++++++++++------
 clutter/clutter-input-device.h              |  3 +++
 clutter/x11/clutter-device-manager-xi2.c    |  2 +-
 clutter/x11/clutter-input-device-core-x11.c |  3 +--
 doc/reference/clutter/clutter-sections.txt  | 10 ++++++++--
 6 files changed, 37 insertions(+), 13 deletions(-)

commit b662a070f2c5ebe2af479fd0290745ad923b3c42
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Jan 18 15:42:02 2011 +0000

    docs: Update dependencies in README

 README | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 0a869e0718331737a1126da861222f7b0162fcce
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Jan 18 14:16:11 2011 +0000

    egl/x11: Defer X11-specific code to the X11 backend
    
    The ClutterStageX11 implementation does most of the heavy lifting, so
    subclasses like ClutterStageGLX and ClutterStageEGL do not need to
    handle things like creating the stage Window and selecting events; just
    chaining up and using the internal API will suffice.

 clutter/egl/clutter-stage-egl.c | 108 +++-------------------------------------
 1 file changed, 8 insertions(+), 100 deletions(-)

commit a3102a777ead15f7ba4b671bd25fd642762fec57
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Jan 18 14:09:04 2011 +0000

    docs: Fill out documentation for new symbols

 clutter/clutter-event.c                    | 82 ++++++++++++++++++++++++++++++
 clutter/clutter-event.h                    |  1 +
 clutter/clutter-input-device.c             | 37 ++++++++++++++
 clutter/clutter-input-device.h             | 29 +++++++++++
 clutter/clutter-private.h                  |  4 ++
 clutter/x11/clutter-device-manager-xi2.c   | 39 ++++++++++----
 doc/reference/clutter/Makefile.am          |  1 +
 doc/reference/clutter/clutter-sections.txt | 12 ++++-
 8 files changed, 194 insertions(+), 11 deletions(-)

commit fa3c5a28a7b82d817ae7b83a058158a101e1e4b0
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Jan 18 13:15:20 2011 +0000

    backend/x11: Allow querying xinput support
    
    Undeprecate the XInput-related X11 API: since we don't enable XI support
    by default we still need to ask for it, and see if we have it after the
    backend initialization sequence.

 clutter/x11/clutter-backend-x11.c | 14 ++++++++------
 clutter/x11/clutter-backend-x11.h |  5 +----
 2 files changed, 9 insertions(+), 10 deletions(-)

commit c8cc03f8a7b13db01a71c4a597c05a7b94ba664c
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Jan 18 13:08:09 2011 +0000

    event/x11: Epic clean up
    
    Event translation is now done where it belongs: we don't need a massive
    switch in a file with direct access to private structure members.
    
    So long, event_translate(); and thanks for all the fish.

 clutter/x11/clutter-event-x11.c | 869 ----------------------------------------
 1 file changed, 869 deletions(-)

commit c044e44dc798a4afede519abe430ff6a20bd745d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Jan 18 13:07:36 2011 +0000

    device/x11: Use similar core for axis translation as XI2

 clutter/x11/clutter-input-device-core-x11.c | 39 ++++++++++++++---------------
 1 file changed, 19 insertions(+), 20 deletions(-)

commit c9c6236d3786ed3f69f170b02523e08a91b7f644
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Jan 18 13:05:46 2011 +0000

    stage/x11: Do not check a boolean for equality
    
    Booleans should only be used like direct conditions, never as
    comparisons with TRUE or FALSE.

 clutter/x11/clutter-stage-x11.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

commit ee15d0d2d01a02e426cbb8c340738e4f8411fc4f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Jan 18 13:05:17 2011 +0000

    Add copyright and licensing blurbs

 clutter/x11/clutter-input-device-core-x11.h | 23 +++++++++++++++++++++++
 clutter/x11/clutter-input-device-xi2.c      | 23 +++++++++++++++++++++++
 clutter/x11/clutter-input-device-xi2.h      | 23 +++++++++++++++++++++++
 3 files changed, 69 insertions(+)

commit 2cb0077f7d7260109f0974d260cb4ed63ade6e9e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Jan 18 13:03:07 2011 +0000

    device/xi2: Implement get_core_device()
    
    We ask XI2 to get the client pointer for CLUTTER_POINTER_DEVICE, and
    we use the attached keyboard device for CLUTTER_KEYBOARD_DEVICE. For
    everything else, we return NULL.

 clutter/x11/clutter-device-manager-xi2.c | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

commit 9c48486d7ac73aa55b69a70cf1ef7009a0af2a09
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Jan 18 13:02:15 2011 +0000

    device/xi2: Remove the ::remove implementation
    
    Removing a device is only internal API, and we already have a function
    for that: we don't need to implement the DeviceManager virtual as well.

 clutter/x11/clutter-device-manager-xi2.c | 18 ++----------------
 1 file changed, 2 insertions(+), 16 deletions(-)

commit 0075c45ca49569988fb6b8f1b4a60cd4e77be287
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Jan 18 13:01:27 2011 +0000

    device/xi2: Blow the cached devices list
    
    Every time we add or remove a device we should clear the cached list
    that we return in get_devices(), so that it gets repopulated.

 clutter/x11/clutter-device-manager-xi2.c | 8 ++++++++
 1 file changed, 8 insertions(+)

commit de93f721c1314321bf78acec2f50d5a481210ec9
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Jan 18 12:59:49 2011 +0000

    Clean up the copyright and licensing blurbs

 clutter/glx/clutter-stage-glx.c               |  9 +++++----
 clutter/x11/clutter-device-manager-core-x11.c |  2 +-
 clutter/x11/clutter-device-manager-core-x11.h |  2 +-
 clutter/x11/clutter-device-manager-xi2.c      |  2 +-
 clutter/x11/clutter-device-manager-xi2.h      |  2 +-
 clutter/x11/clutter-input-device-core-x11.c   | 23 +++++++++++++++++++++++
 6 files changed, 32 insertions(+), 8 deletions(-)

commit 7c25b063aafc21527413106dca6db3fcb50bd5ad
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Jan 18 12:57:50 2011 +0000

    x11: Use XI2 API only if we support it
    
    XIQueryVersion() is XI2 API.

 clutter/x11/clutter-backend-x11.c | 43 +++++++++++++++++++++++++++++----------
 1 file changed, 32 insertions(+), 11 deletions(-)

commit caf359d8c9a110797e9ad64a7cb3600b7b964275
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Jan 18 12:57:12 2011 +0000

    input-device: Add documentation

 clutter/clutter-input-device.c | 48 +++++++++++++++++++++++++++++++++++++++++-
 clutter/clutter-input-device.h |  2 +-
 2 files changed, 48 insertions(+), 2 deletions(-)

commit 342cdd25756b37745bfd1725d78f6f670f77bee0
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Jan 17 17:01:58 2011 +0000

    input-device: Move select_stage_events() to a vfunc
    
    Don't use a signal, use a virtual function.

 clutter/clutter-device-manager-private.h    |  4 ++++
 clutter/clutter-input-device.c              | 28 +++++-----------------------
 clutter/x11/clutter-input-device-core-x11.c |  5 ++---
 clutter/x11/clutter-input-device-xi2.c      |  5 ++---
 4 files changed, 13 insertions(+), 29 deletions(-)

commit 2777c52f2759513c8e4b66e474ed2da587bd5de5
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Jan 17 16:56:07 2011 +0000

    input-device: Make ClutterInputDeviceClass private
    
    We keep the symbol in the public header, but the definition is now
    private. You could not sub-class InputDevice anyway, without the
    instance structure, and the lack of padding in the class made actually
    implementing devices in backends really hard.

 clutter/clutter-device-manager-private.h |  5 +++++
 clutter/clutter-input-device.h           | 14 --------------
 2 files changed, 5 insertions(+), 14 deletions(-)

commit 001f84875aa5a0f0871b0f86a73d4c1972c12430
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Jan 17 16:42:18 2011 +0000

    Enable XInput support by default
    
    Since we have a decent XI1 and XI2 implementation, now, we should turn
    the support for XInput on by default.
    
    The actual implementation to be used at run-time is still left to be
    decided by the user.

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 1b1e77b46989ba97bfff8abdfa61df0f514a7eae
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Jan 4 12:32:04 2011 +0000

    event/x11: Rework the way we translate X11 events
    
    This is a lump commit that is fairly difficult to break down without
    either breaking bisecting or breaking the test cases.
    
    The new design for handling X11 event translation works this way:
    
      - ClutterBackend::translate_event() has been added as the central
        point used by a ClutterBackend implementation to translate a
        native event into a ClutterEvent;
    
      - ClutterEventTranslator is a private interface that should be
        implemented by backend-specific objects, like stage
        implementations and ClutterDeviceManager sub-classes, and
        allows dealing with class-specific event translation;
    
      - ClutterStageX11 implements EventTranslator, and deals with the
        stage-relative X11 events coming from the X11 event source;
    
      - ClutterStageGLX overrides EventTranslator, in order to
        deal with the INTEL_GLX_swap_event extension, and it chains up
        to the X11 default implementation;
    
      - ClutterDeviceManagerX11 has been split into two separate classes,
        one that deals with core and (optionally) XI1 events, and the
        other that deals with XI2 events; the selection is done at run-time,
        since the core+XI1 and XI2 mechanisms are mutually exclusive.
    
    All the other backends we officially support still use their own
    custom event source and translation function, but the end goal is to
    migrate them to the translate_event() virtual function, and have the
    event source be a shared part of Clutter core.

 clutter/Makefile.am                           |   24 +-
 clutter/clutter-backend-private.h             |    8 +
 clutter/clutter-backend.c                     |   12 +
 clutter/clutter-device-manager-private.h      |  105 ++-
 clutter/clutter-device-manager.c              |   29 +
 clutter/clutter-device-manager.h              |    1 +
 clutter/clutter-event-translator.c            |   38 +
 clutter/clutter-event-translator.h            |   40 +
 clutter/clutter-event.c                       |   77 +-
 clutter/clutter-event.h                       |   51 --
 clutter/clutter-input-device.c                |  476 ++++++++++-
 clutter/clutter-input-device.h                |   57 +-
 clutter/clutter-marshal.list                  |    1 +
 clutter/clutter-private.h                     |    3 +
 clutter/clutter-types.h                       |   51 ++
 clutter/glx/clutter-backend-glx.c             |   11 +-
 clutter/glx/clutter-event-glx.c               |  105 ---
 clutter/glx/clutter-event-glx.h               |   38 -
 clutter/glx/clutter-stage-glx.c               |  186 ++---
 clutter/x11/clutter-backend-x11.c             |  358 +++++++--
 clutter/x11/clutter-backend-x11.h             |   55 +-
 clutter/x11/clutter-device-manager-core-x11.c |  745 +++++++++++++++++
 clutter/x11/clutter-device-manager-core-x11.h |   70 ++
 clutter/x11/clutter-device-manager-x11.c      |  354 ---------
 clutter/x11/clutter-device-manager-x11.h      |   68 --
 clutter/x11/clutter-device-manager-xi2.c      | 1058 +++++++++++++++++++++++++
 clutter/x11/clutter-device-manager-xi2.h      |   66 ++
 clutter/x11/clutter-event-x11.c               |  116 +--
 clutter/x11/clutter-input-device-core-x11.c   |  414 ++++++++++
 clutter/x11/clutter-input-device-core-x11.h   |   26 +
 clutter/x11/clutter-input-device-x11.c        |  228 ------
 clutter/x11/clutter-input-device-x11.h        |   25 -
 clutter/x11/clutter-input-device-xi2.c        |  161 ++++
 clutter/x11/clutter-input-device-xi2.h        |   22 +
 clutter/x11/clutter-stage-x11.c               |  552 ++++++++++++-
 clutter/x11/clutter-stage-x11.h               |    9 +
 configure.ac                                  |   50 +-
 tests/interactive/test-devices.c              |   13 +
 38 files changed, 4436 insertions(+), 1267 deletions(-)

commit ca092477c2d3fcc74384c3f46216802db32ba0d9
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Jan 20 16:18:16 2011 +0000

    Appease the gods in introspection
    
    Reduce the amount of bogus warnings g-ir-scanner prints out.

 clutter/clutter-align-constraint.c         |  2 --
 clutter/clutter-align-constraint.h         |  3 ++-
 clutter/clutter-backend-private.h          |  1 -
 clutter/clutter-backend.h                  |  9 +++++++++
 clutter/clutter-bind-constraint.c          |  2 --
 clutter/clutter-bind-constraint.h          |  3 ++-
 clutter/clutter-binding-pool.c             |  1 -
 clutter/clutter-binding-pool.h             |  1 +
 clutter/clutter-blur-effect.c              |  2 --
 clutter/clutter-blur-effect.h              |  1 +
 clutter/clutter-colorize-effect.c          |  2 --
 clutter/clutter-colorize-effect.h          |  3 ++-
 clutter/clutter-desaturate-effect.c        |  2 --
 clutter/clutter-desaturate-effect.h        |  1 +
 clutter/clutter-page-turn-effect.c         |  2 --
 clutter/clutter-page-turn-effect.h         |  1 +
 clutter/clutter-path-constraint.c          |  2 --
 clutter/clutter-path-constraint.h          |  3 ++-
 clutter/clutter-settings.c                 |  2 --
 clutter/clutter-settings.h                 |  1 +
 clutter/clutter-snap-constraint.c          |  2 --
 clutter/clutter-snap-constraint.h          |  3 ++-
 doc/reference/clutter/clutter-sections.txt | 17 ++++++++++++++---
 23 files changed, 38 insertions(+), 28 deletions(-)

commit 439553a1b7e7d6a1731df7124b74545881ce4fbf
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Jan 20 13:44:16 2011 +0000

    Update the NEWS file

 NEWS | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

commit ef7810422764f7297f295a7c8189204de1eb4c3f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Jan 20 13:29:37 2011 +0000

    Expose deprecated symbols whilst building Clutter
    
    Don't use ugly "#undef CLUTTER_DISABLE_DEPRECATED" inside source code
    using deprecated symbols; we have the handy CLUTTER_COMPILATION define
    that we can use as part of the "disable deprecated" conditional.

 clutter/clutter-actor.c             | 4 +---
 clutter/clutter-behaviour-depth.c   | 1 -
 clutter/clutter-behaviour-depth.h   | 2 +-
 clutter/clutter-behaviour-ellipse.c | 1 -
 clutter/clutter-behaviour-ellipse.h | 2 +-
 clutter/clutter-behaviour-opacity.c | 1 -
 clutter/clutter-behaviour-opacity.h | 2 +-
 clutter/clutter-behaviour-path.c    | 1 -
 clutter/clutter-behaviour-path.h    | 2 +-
 clutter/clutter-behaviour-rotate.c  | 1 -
 clutter/clutter-behaviour-rotate.h  | 2 +-
 clutter/clutter-behaviour-scale.c   | 1 -
 clutter/clutter-behaviour-scale.h   | 2 +-
 clutter/clutter-behaviour.c         | 1 -
 clutter/clutter-behaviour.h         | 4 ++--
 clutter/clutter-frame-source.h      | 2 +-
 clutter/clutter-timeout-pool.c      | 1 -
 clutter/clutter-timeout-pool.h      | 2 +-
 18 files changed, 11 insertions(+), 21 deletions(-)

commit cd96e631f15ee623116cf3d330cc046e7855ee56
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Jan 20 13:19:03 2011 +0000

    glx: Deprecate ClutterGLXTexturePixmap
    
    Since 1.4 the ClutterGLXTexturePixmap is just a wrapper around
    ClutterX11TexturePixmap, so we can safely deprecate it. All the
    functionality it provided is now effectively available from the
    superclass or directly from Cogl.

 clutter/glx/clutter-glx-texture-pixmap.c | 23 +++++++++++++++--------
 clutter/glx/clutter-glx-texture-pixmap.h | 12 ++++++++----
 2 files changed, 23 insertions(+), 12 deletions(-)

commit 770bcd5b4042818008e3fbbfab8e11722681a5fa
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Jan 20 12:59:56 2011 +0000

    test-pixmap: Remove the GLX code
    
    The ClutterGLXTexturePixmap actor is just a wrapper around
    ClutterX11TexturePixmap, since the relevant texture-from-pixmap code has
    been moved down to Cogl.

 tests/interactive/test-pixmap.c | 41 -----------------------------------------
 1 file changed, 41 deletions(-)

commit a2d6edd4223fc18a9b3902e388ddd105db468f32
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Jan 19 18:51:01 2011 +0000

    test-pixmap: Fix up compilation on EGLX
    
    We need to check for the GLX windowing system if we are to include
    clutter-glx.h.

 tests/interactive/test-pixmap.c | 2 ++
 1 file changed, 2 insertions(+)

commit 62a0584f115f4a1cc6138c2915d90e24c69c4002
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Jan 19 17:54:28 2011 +0000

    docs: Ignore clutter-config.h when scanning headers

 doc/reference/clutter/Makefile.am | 1 +
 1 file changed, 1 insertion(+)

commit a43c5f10bb5f3273378fedecd618260b96499cff
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Jan 19 14:36:30 2011 +0000

    tests: Try to drop including config.h
    
    The config.h header should be considered a Clutter internal header, and
    the test cases (especially the interactive test cases) should strive to
    never rely on internal headers.

 tests/interactive/test-cogl-offscreen.c     |  1 -
 tests/interactive/test-cogl-primitives.c    |  6 ++---
 tests/interactive/test-cogl-tex-convert.c   |  1 -
 tests/interactive/test-cogl-tex-foreign.c   |  1 -
 tests/interactive/test-cogl-tex-getset.c    |  1 -
 tests/interactive/test-cogl-tex-polygon.c   |  1 -
 tests/interactive/test-cogl-tex-tile.c      |  1 -
 tests/interactive/test-cogl-vertex-buffer.c |  1 -
 tests/interactive/test-paint-wrapper.c      |  8 ++-----
 tests/interactive/test-pixmap.c             | 34 ++++++++++++++++++-----------
 tests/interactive/test-textures.c           |  4 ----
 11 files changed, 26 insertions(+), 33 deletions(-)

commit 94b905b9e110c671698a0cd59fa827f6ddb0a84d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Jan 19 14:33:27 2011 +0000

    build: Generate an instealled config header
    
    Clutter has some platform-specific API that is accessible only if the
    right backend has been compiled in. Third party applications that wish
    to be portable across backends might want to use defines and other
    pre-processor tricks to determine header inclusion and API usage.
    
    While Clutter has an internal set of symbols it can use, third party
    applications don't have the luxury of being able to access the config.h
    generated by Clutter's configure script.
    
    For this reason, Clutter should install a configuration header with a
    series of namespaced defines that can be picked up by applications and
    other third party code.

 .gitignore                  |  1 +
 clutter/Makefile.am         |  5 +++++
 clutter/clutter-config.h.in | 16 ++++++++++++++++
 clutter/clutter.h           |  2 ++
 configure.ac                | 30 ++++++++++++++++++++++++++++++
 5 files changed, 54 insertions(+)

commit 90a01b479c432310f9fcfb5fcd04e23d8fc1a92a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Jan 18 15:14:58 2011 +0000

    Update the NEWS file

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

commit bb41cb54cbdbb21f3be26ac14c07fd1c804b4d31
Author: Chris Lord <chris@linux.intel.com>
Date:   Tue Jan 18 15:48:29 2011 +0000

    timeline: Check if the timeline is playing in do_tick
    
    Check that the timeline is still playing before executing in
    _clutter_timeline_do_tick. This fixes the possibility of receiving a
    new-frame signal when stopping a timeline in response to a different
    timeline's signal emission.

 clutter/clutter-timeline.c | 8 ++++++++
 1 file changed, 8 insertions(+)

commit c61e22d06787effcd4c260a817ba4845d5eedfdb
Author: Lucas Rocha <lucasr@litl.com>
Date:   Mon Jan 17 18:28:49 2011 +0000

    drag-action: fix case where motion events are indefinitely disabled
    
    When drag threshold is not reached, emit_drag_begin() is not called
    causing default value of priv->motion_events_enabled (false) to used to
    restore motion events enabled state in Clutter. This causes drag action
    to indefinitely disable motion events. The current value of motion
    events enabled state is now queried on button press which guarantees
    that the state will be restored with the correct value in
    emit_drag_end()
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2522

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

commit cecc7a4bfbae6dc4891f3cd1888e85fc1148dc1a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Jan 18 14:46:02 2011 +0000

    stage: Fix gtk-doc annotation for set_accept_focus()

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

commit 5d8b6aa6fa2c51b72079d52766e5013ff612af19
Author: Bastian Winkler <buz@netbuz.org>
Date:   Fri Jan 14 14:53:05 2011 +0100

    introspection: Add missing (out) annotations for get_color()
    
    Some actors are missing the (out) annotations for the get_color()
    methods.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2518

 clutter/clutter-rectangle.c | 4 ++--
 clutter/clutter-stage.c     | 2 +-
 clutter/clutter-text.c      | 2 +-
 3 files changed, 4 insertions(+), 4 deletions(-)

commit 54d00ebaf0a0084c7b0580a7b234e214ce95dd16
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Jan 17 17:30:47 2011 +0000

    docs: Add ClutterClickAction.get_state()

 doc/reference/clutter/clutter-sections.txt | 3 +++
 1 file changed, 3 insertions(+)

commit 6af7b76cb5959616ea828678e1fb0258a7a04d2d
Author: Lucas Rocha <lucasr@gnome.org>
Date:   Mon Jan 17 00:38:04 2011 +0000

    click-action: add API to get modifier type
    
    This is to allow implementing modified click such as ctrl+click,
    shift+click, and so on.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2520

 clutter/clutter-click-action.c | 37 +++++++++++++++++++++++++++++++++++++
 clutter/clutter-click-action.h |  6 ++++--
 2 files changed, 41 insertions(+), 2 deletions(-)

commit 6100aee5bd8d1c11fcaf6f7b3ac9a9317fbe39af
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Mon Jan 17 15:22:48 2011 +0000

    color: Mark the new static color API as being new from 1.6
    
    The patch was written a while ago but only merged in the 1.5.x cycle.

 clutter/clutter-color.c | 2 +-
 clutter/clutter-color.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit ae9781e5266464314fda19ab8495e9824edbcdfb
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Jan 17 12:21:33 2011 +0000

    cogl-program: Don't use separate definitions on GLES 1.1
    
    Previously most of the code for cogl-program and cogl-shader was
    ifdef'd out for GLES 1.1 and alternate stub definitions were
    defined. This patch removes those and instead puts #ifdef's directly
    in the functions that need it. This should make it a little bit easier
    to maintain.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2516

 clutter/cogl/cogl/cogl-program.c | 105 +++++----------------------------------
 clutter/cogl/cogl/cogl-shader.c  |  91 ++++++++++++---------------------
 2 files changed, 44 insertions(+), 152 deletions(-)

commit b7677d047df6b8c96605454717873bbcb1722763
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Jan 17 12:20:06 2011 +0000

    cogl-pipeline-opengl: #ifdef out set_glsl_program for GLES 1.1
    
    glUseProgram is not available under GLES 1.1 so it was breaking the
    build.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2516

 clutter/cogl/cogl/cogl-pipeline-opengl.c | 9 +++++++++
 1 file changed, 9 insertions(+)

commit 568d32acf3604a9c68556224844a839f0e014bcf
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Jan 17 12:06:13 2011 +0000

    cogl-pipeline: Fix the enum names for the constant combine source
    
    When determining whether to hash the combine constant Cogl checks the
    arguments to the combine funcs to determine whether the combine
    constant is used. However is was using the GLenums GL_CONSTANT_COLOR
    and GL_CONSTANT_ALPHA but these are not valid values for the
    CoglPipelineCombineSource enum so presumably the constant would never
    get hashed. This patch makes it use Cogl's enum of
    COGL_PIPELINE_COMBINE_SOURCE_CONSTANT instead.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2516

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

commit 0c070cdf91c2956ba057364eb63cc422a79b6c88
Author: Adel Gadllah <adel.gadllah@gmail.com>
Date:   Sun Jan 16 23:19:28 2011 +0100

    ClutterX11TexturePixmap: Fix doc comment
    
    The wrong signal name was used probably a copy & paste
    mistake, fix that.

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

commit 88fe56d1752ad64f404da2baa1bc74f2ebbae64c
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Jan 13 15:54:50 2011 +0000

    cogl-buffer: Support mapping buffers for write on GLES
    
    GLES has an extension called GL_OES_mapbuffer to support mapping
    buffer objects but only for writing. Cogl now has two new feature
    flags to advertise whether mapping for reading and writing is
    supported. Under OpenGL, these features are always set if the VBO
    extension is advertised and under GLES only the write flag is set if
    the GL_OES_mapbuffer extension is advertised.

 clutter/cogl/cogl/cogl-buffer.c                    | 44 ++++++++++------------
 clutter/cogl/cogl/cogl-types.h                     |  8 +++-
 .../cogl/driver/gl/cogl-feature-functions-gl.h     |  4 +-
 .../cogl/driver/gles/cogl-feature-functions-gles.h | 12 ++++++
 4 files changed, 42 insertions(+), 26 deletions(-)

commit 7e73f0d4232338741e2dc811cdb2039287f384bb
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Jan 13 15:36:08 2011 +0000

    cogl: Enable the VBOs feature for GLES2
    
    The GLES2 wrapper code has been removed so there are no longer any
    problems with enabling VBOs.

 clutter/cogl/cogl/driver/gles/cogl-gles.c | 5 -----
 1 file changed, 5 deletions(-)

commit 9bb74988d5b7c7df3678185ed4488c9957f00a9d
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Jan 13 15:35:30 2011 +0000

    cogl: Fallback to set_data when mapping a buffer to fill it
    
    In the journal code and when generating the stroke path the vertices
    are generated on the fly and stored in a CoglBuffer using
    cogl_buffer_map. However cogl_buffer_map is allowed to fail but it
    wasn't checking for a NULL return value. In particular on GLES it will
    always fail because glMapBuffer is only provided by an extension. This
    adds a new pair of internal functions called
    _cogl_buffer_{un,}map_for_fill_or_fallback which wrap
    cogl_buffer_map. If the map fails then it will instead return a
    pointer into a GByteArray attached to the context. When the buffer is
    unmapped the array is copied into the buffer using
    cogl_buffer_set_data.

 clutter/cogl/cogl/cogl-buffer-private.h | 19 ++++++++++--
 clutter/cogl/cogl/cogl-buffer.c         | 51 +++++++++++++++++++++++++++++++++
 clutter/cogl/cogl/cogl-context.c        |  5 ++++
 clutter/cogl/cogl/cogl-context.h        |  6 ++++
 clutter/cogl/cogl/cogl-journal.c        |  5 ++--
 clutter/cogl/cogl/cogl2-path.c          |  7 ++---
 6 files changed, 83 insertions(+), 10 deletions(-)

commit 77a486caf2c130341624ab56e588ab116c7e8e26
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Jan 13 14:12:10 2011 +0000

    cogl-context: Don't enable point sprites on GLES2
    
    On GLES2 there's no builtin mechanism to replace texture coordinates
    with point sprite coordinates so calling glEnable(GL_POINT_SPRITE)
    isn't valid. Instead the point sprite coords are implemented by using
    a special builtin varying variable in GLSL.

 clutter/cogl/cogl/cogl-context.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 88a085fdd86e3f1f285833f2f4df19af339c339c
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Jan 11 16:02:06 2011 +0000

    pipeline: differentiate texture target and data state
    
    There are several places where we need to compare the texture state of a
    pipeline and sometimes we need to take into consideration if the
    underlying texture has changed but other times we may only care to know
    if the texture target has changed.
    
    For example the fragends typically generate programs that they want to
    share with all pipelines with equivalent fragment processing state, and
    in this case when comparing pipelines we only care about the texture
    targets since changes to the underlying texture won't affect the
    programs generated.
    
    Prior to this we had tried to handle this by passing around some special
    flags to various functions that evaluate pipeline state to say when we
    do/don't care about the texture data, but this wasn't working in all
    cases and was more awkward to manage than the new approach.
    
    Now we simply have two state bits:
    COGL_PIPELINE_LAYER_STATE_TEXTURE_TARGET and
    COGL_PIPELINE_LAYER_STATE_TEXTURE_DATA and CoglPipelineLayer has an
    additional target member. Since all the appropriate code takes masks of
    these state bits to determine what to evaluate we don't need any extra
    magic flags.

 clutter/cogl/cogl/cogl-pipeline-fragend-arbfp.c |   9 +-
 clutter/cogl/cogl/cogl-pipeline-fragend-fixed.c |  25 +--
 clutter/cogl/cogl/cogl-pipeline-fragend-glsl.c  |   3 +-
 clutter/cogl/cogl/cogl-pipeline-opengl.c        |   9 +-
 clutter/cogl/cogl/cogl-pipeline-private.h       |  28 +--
 clutter/cogl/cogl/cogl-pipeline-progend-glsl.c  |   3 +-
 clutter/cogl/cogl/cogl-pipeline-vertend-glsl.c  |   3 +-
 clutter/cogl/cogl/cogl-pipeline.c               | 273 +++++++++++++++++-------
 8 files changed, 223 insertions(+), 130 deletions(-)

commit 8ab68d26a5c2e026bc422da13ab290ba3d432aa4
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Jan 12 17:11:48 2011 +0000

    pipeline: optimize state init if changing property
    
    When notifying that a pipeline property is going to change, then at
    times a pipeline will take over being the authority of the corresponding
    state group. Some state groups can contain multiple properties and so to
    maintain the integrity of all of the properties we have to initialize
    all the property values in the new authority. For state groups with only
    one property we don't have to initialize anything during the
    pre_change_notify() because we can assume the value will be initialized
    as part of the change being notified.
    
    This patch optimizes how we handle this initialization of state groups
    in a couple of ways; firstly we no longer do anything to initialize
    state-groups with only one property, secondly we no longer use
    _cogl_pipeline_copy_differences - (we have a new
    _cogl_pipeline_init_multi_property_sparse_state() func) so we can avoid
    lots calls to handle_automatic_blend_enable() which is sometimes seen
    high in sysprof profiles.

 clutter/cogl/cogl/cogl-pipeline-private.h | 161 ++++++++++++-------
 clutter/cogl/cogl/cogl-pipeline.c         | 255 +++++++++++++++++++-----------
 2 files changed, 266 insertions(+), 150 deletions(-)

commit 5fc3122dadf948c5594478a3eae7deef391c62fe
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Jan 12 16:59:37 2011 +0000

    test-cogl-shader-glsl: Disable the atlas for the hand texture
    
    Atlasing needs to be disabled for the hand texture so that it can work
    out the step value needed to fetch a neighbouring pixel in the blur
    shader. If the texture ends up in the atlas then the test can't know
    the actual size of the texture so it looks wrong.

 tests/interactive/test-cogl-shader-glsl.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 3c9f72abbfcc7967aa399506adba0bfee4952bbc
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Jan 12 16:56:52 2011 +0000

    cogl-atlas-texture: Don't disable atlas if can't read texture data
    
    Previously atlasing would be disabled if the GL driver does not
    support reading back texture data. This meant that atlasing would not
    happen on GLES. However we also require that the driver support FBOs
    and the texture data is only read back as a fallback if the FBO
    fails. Therefore the atlas should be ok on GLES 2 which has FBO
    support in core.

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

commit 12ceae548d441f0611542645a62f6c0cbf7a0c5f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Jan 11 21:34:37 2011 +0000

    Post-release version bump to 1.5.13

 configure.ac       |   2 +-
 po/clutter-1.0.pot | 200 ++++++++++++++++++++++++++++-------------------------
 po/de.po           | 198 +++++++++++++++++++++++++++-------------------------
 po/fr.po           | 199 +++++++++++++++++++++++++++-------------------------
 po/id.po           | 199 +++++++++++++++++++++++++++-------------------------
 po/it.po           | 200 ++++++++++++++++++++++++++++-------------------------
 po/pl.po           | 200 ++++++++++++++++++++++++++++-------------------------
 po/zh_CN.po        | 199 +++++++++++++++++++++++++++-------------------------
 8 files changed, 730 insertions(+), 667 deletions(-)

commit 09d5c309ca95f68425919fdd1a41a14f41e4053b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Jan 11 20:29:30 2011 +0000

    Release 1.5.12

 configure.ac | 23 ++++++++++++-----------
 1 file changed, 12 insertions(+), 11 deletions(-)

commit 676df42c6fefd28a6da2c1cefd885d6fa4d59da1
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Jan 11 14:10:11 2011 +0000

    pipeline: don't skip flush if skip_gl_color flag differs
    
    We try and bail out of flushing pipeline state asap if we can see the
    pipeline has already been flushed and hasn't changed but we weren't
    checking to see if the skip_gl_color flag is the same as when it was
    last flush too and so we'd sometimes bail out without updating the
    glColor correctly.

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

commit b922ac605962df6b1cf86a0e710294be114f62c4
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Tue Jan 11 14:15:46 2011 +0000

    test-shader: Fix the edge-detect shader
    
    cogl_text_coord_in in a array to access the texture units. In this case
    we want to sample texture unit 0, where the texture is.

 tests/interactive/test-shader.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 38e527a3cf2527a46461eb76c6598071daf95053
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Jan 10 20:13:41 2011 +0000

    cogl-vertex-attribute: Optionally avoid applying the legacy state
    
    When an item is added to the journal the current pipeline immediately
    gets the legacy state applied to it and the modified pipeline is
    logged instead of the original. However the actual drawing from the
    journal is done using the vertex attribute API which was also applying
    the legacy state. This meant that the legacy state used would be a
    combination of the state set when the journal entry was added as well
    as the state set when the journal is flushed. To fix this there is now
    an extra CoglDrawFlag to avoid applying the legacy state when setting
    up the GL state for the vertex attributes. The journal uses this flag
    when flushing.

 clutter/cogl/cogl/cogl-journal.c                  | 3 ++-
 clutter/cogl/cogl/cogl-vertex-attribute-private.h | 6 +++++-
 clutter/cogl/cogl/cogl-vertex-attribute.c         | 6 ++++--
 3 files changed, 11 insertions(+), 4 deletions(-)

commit cb49197d0101aa32fa3bb0f8948c1952f5ccae33
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Jan 11 12:38:52 2011 +0000

    Update the NEWS file

 NEWS | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit f4fc7284ebeaedfb60d9903b41177f59a4907b85
Author: Bastian Winkler <buz@netbuz.org>
Date:   Mon Jan 3 16:15:17 2011 +0100

    script-parser: Also honor properties of type GType
    
    The script parser should also handle GType properties.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2513

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

commit 8e3d9c21c643091bd537a2674eeaa86255167cc9
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Jan 11 11:49:11 2011 +0000

    Update NEWS file

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

commit f2080f099e2a05b05cd0adb2f204c1917adae0f2
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Tue Jan 11 10:23:59 2011 +0000

    shader: Don't notify properties when finalizing shaders
    
    clutter_shader_finalize() was calling clutter_shader_release() which in
    turn notifies "compiled". GObject was complaining that we were trying to
    _ref() an object that was in _finalize().
    
     #0  g_log (log_domain=0x3e15c4 "GLib-GObject", log_level=G_LOG_LEVEL_CRITICAL,
         format=0x76c938 "%s: assertion `%s' failed") at gmessages.h:97
     #1  0x0070777d in g_return_if_fail_warning (
         log_domain=0x3e15c4 "GLib-GObject",
         pretty_function=0x3e37a4 "g_object_ref",
         expression=0x3e2a00 "object->ref_count > 0") at gmessages.c:586
     #2  0x003b862b in g_object_ref (_object=0x8567af0) at gobject.c:2615
     #3  0x003bd238 in g_object_notify_by_pspec (object=0x8567af0, pspec=0x87ea2f0)
         at gobject.c:1075
     #4  0x00b6500b in clutter_shader_release (shader=0x8567af0)
         at ./clutter-shader.c:612
     #5  0x00b659b9 in clutter_shader_finalize (object=0x8567af0)
         at ./clutter-shader.c:107
    
    Then, let's split release in two, with an _internal() version that does
    not notify "compiled" and use it from dispose (as the object is still
    usable after a call to release_internal().
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2512

 clutter/clutter-shader.c | 61 +++++++++++++++++++++++++++++-------------------
 1 file changed, 37 insertions(+), 24 deletions(-)

commit 3625adb9d8188464b27ddf3e1203214ea2952092
Author: Tomeu Vizoso <tomeu.vizoso@collabora.co.uk>
Date:   Mon Jan 10 19:13:03 2011 +0100

    ClutterListModel: Implement get_n_rows for improved performance
    
    The default implementation in ClutterModel iterates through all
    the elements.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2511

 clutter/clutter-list-model.c | 13 ++++++++++
 clutter/clutter-model.c      | 56 ++++++++++++++++++++++----------------------
 2 files changed, 41 insertions(+), 28 deletions(-)

commit 850f956d4e2a811eb663575dcd6ae41f09b992de
Author: Adel Gadllah <adel.gadllah@gmail.com>
Date:   Wed Jan 5 10:24:26 2011 +0100

    ClutterAlignConstraint: Keep pixel aligment
    
    We have to round the values here otherwise we might end up with
    misaligned actors.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2508

 clutter/clutter-align-constraint.c | 4 ++++
 1 file changed, 4 insertions(+)

commit d648de7d1492b9ae69aac6702a99fccb8f92b165
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Dec 14 14:44:45 2010 +0000

    cogl-journal: Avoid enabling blending if possible
    
    The vertex attribute API assumes that if there is a color array
    enabled then we can't determine if the colors are opaque so we have to
    enable blending. The journal always uses a color array to avoid
    switching color state between rectangles. Since the journal switched
    to using vertex attributes this means we effectively always enable
    blending from the journal. To fix this there is now a new flag for
    _cogl_draw_vertex_attributes to specify that the color array is known
    to only contain opaque colors which causes the draw function not to
    copy the pipeline. If the pipeline has blending disabled then the
    journal passes this flag.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2481

 clutter/cogl/cogl/cogl-journal.c                  |  9 ++++++---
 clutter/cogl/cogl/cogl-vertex-attribute-private.h |  9 ++++++++-
 clutter/cogl/cogl/cogl-vertex-attribute.c         | 10 ++++++----
 3 files changed, 20 insertions(+), 8 deletions(-)

commit 159cd6ddc02b4a9a37fe7e0a61a104d3abab91a6
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Dec 14 14:24:17 2010 +0000

    cogl-vertex-attribute: Add flags to _cogl_draw_vertex_attributes_array
    
    There is an internal version of cogl_draw_vertex_attributes_array
    which previously just bypassed the framebuffer flushing, journal
    flushing and pipeline validation so that it could be used to draw the
    journal. This patch generalises the function so that it takes a set of
    flags to specify which parts to flush. The public version of the
    function now just calls the internal version with the flags set to
    0. The '_real' version of the function has now been merged into the
    internal version of the function because it was only called in one
    place. This simplifies the code somewhat. The common code which
    flushed the various state has been moved to a separate function. The
    indexed versions of the functions have had a similar treatment.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2481

 clutter/cogl/cogl/cogl-journal.c                  |  17 ++-
 clutter/cogl/cogl/cogl-primitives.c               |   6 +-
 clutter/cogl/cogl/cogl-vertex-attribute-private.h |  13 +-
 clutter/cogl/cogl/cogl-vertex-attribute.c         | 167 ++++++++--------------
 clutter/cogl/cogl/cogl2-path.c                    |  14 +-
 5 files changed, 100 insertions(+), 117 deletions(-)

commit 0201e5fa97549ffb2d20a1180e63e5a7a73fa7e2
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Dec 17 16:30:23 2010 +0000

    cogl: Don't assume that CoglBitmaps are allocated to height*rowstride
    
    Cogl no longer has any code that assumes the buffer in a CoglBitmap is
    allocated to the full size of height*rowstride. We should comment that
    this is the case so that we remember to keep it that way. This is
    important for cogl_texture_new_from_data because the application may
    have created the data from a sub-region of a larger image and in that
    case it's not safe to read the full rowstride of the last row when the
    sub region contains the last row of the larger image.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2491

 clutter/cogl/cogl/cogl-bitmap-pixbuf.c  | 60 +++++----------------------------
 clutter/cogl/cogl/cogl-bitmap-private.h |  8 +++++
 2 files changed, 17 insertions(+), 51 deletions(-)

commit e1cbef23f5118c748eb38c16ebb00de3f51686b7
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Dec 17 16:09:26 2010 +0000

    cogl-texture-driver-gles: Don't copy the bitmap if alignment matches
    
    When uploading data for GLES we need to deal with cases where the
    rowstride is too large to be described only by GL_UNPACK_ALIGNMENT
    because there is no GL_UNPACK_ROW_LENGTH. Previously for the
    sub-region uploading code it would always copy the bitmap and for the
    code to upload the whole image it would copy the bitmap unless the
    rowstride == bpp*width. Neither paths took into account that we don't
    need to copy if the rowstride is just an alignment of bpp*width. This
    moves the bitmap copying code to a separate function that is used by
    both upload methods. It only copies the bitmap if the rowstride is not
    just an alignment of bpp*width.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2491

 .../cogl/driver/gles/cogl-texture-driver-gles.c    | 103 +++++++++++----------
 1 file changed, 55 insertions(+), 48 deletions(-)

commit b3058c097dfb834018ab3598d002a7be595e78ff
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Dec 17 16:06:10 2010 +0000

    cogl-util: Add an internal wrapper for the ffs function
    
    The ffs function is defined in C99 so if we want to use it in Cogl we
    need to provide a fallback for MSVC. This adds a configure check for
    the function and then a fallback using a while loop if it is not
    available.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2491

 clutter/cogl/cogl/cogl-util.c | 21 +++++++++++++++++++++
 clutter/cogl/cogl/cogl-util.h |  8 ++++++++
 configure.ac                  |  4 ++++
 3 files changed, 33 insertions(+)

commit 91c16023066b3d71ed569e0dcb97bdd0fe8b4667
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Dec 17 14:52:25 2010 +0000

    cogl-texture: Don't use the source rowstride if we have to copy bitmap
    
    If we have to copy the bitmap to do the premultiplication then we were
    previously using the rowstride of the source image as the rowstride
    for the new image. This is wasteful if the source image is a subregion
    of a larger image which would make it use a large rowstride. If we
    have to copy the data anyway we might as well compact it to the
    smallest rowstride. This also prevents the copy from reading past the
    end of the last row of pixels.
    
    An internal function called _cogl_bitmap_copy has been added to do the
    copy. It creates a new bitmap with the smallest possible rowstride
    rounded up the nearest multiple of 4 bytes. There may be other places
    in Cogl that are currently assuming we can read height*rowstride of
    the source buffer so they may want to take advantage of this function
    too.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2491

 clutter/cogl/cogl/cogl-bitmap-private.h |  4 ++++
 clutter/cogl/cogl/cogl-bitmap.c         | 29 +++++++++++++++++++++++++++++
 clutter/cogl/cogl/cogl-texture.c        | 22 +---------------------
 3 files changed, 34 insertions(+), 21 deletions(-)

commit c6fbc8c567ebe7eb538e53c0a5964db4ff6aebf2
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Dec 22 01:45:09 2010 +0000

    cogl-vertex-attribute: Fix the name of the cogl_normal_in attribute
    
    The builtin vertex attribute for the normals was incorrectly checked
    for as 'cogl_normal' however it is defined as cogl_normal_in in the
    shader boilerplate and for the name generated by CoglVertexBuffer.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2499

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

commit 2c36b81996565f6128a55d5c12fee75a53c0a027
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Jan 10 14:03:35 2011 +0000

    container: Do not use Actor as prerequisite
    
    The prerequisite for ClutterContainer in 1.x is GObject, and we cannot
    restrict the prerequisites without an ABI break.

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

commit 6bb81a542fd2876c472c0287d368b1ba404324bf
Author: nobled <nobled@dreamwidth.org>
Date:   Tue Jan 4 13:56:05 2011 +0000

    egl: Fix build for --with-flavour=opengl-egl-xlib
    
    Make sure the EGL backend doesn't forget to include desktop OpenGL headers.

 clutter/egl/clutter-egl-headers.h | 20 +++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)

commit 530bc2aa70ca83c56f46342d337ce873614353a4
Author: nobled <nobled@dreamwidth.org>
Date:   Tue Jan 4 13:59:48 2011 +0000

    egl: Don't use obsolete API
    
    Fixes a GCC "implicit declaration of function" warning when compiling.

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

commit 8c23766da809701bc171fcb9b3650475b1d03a73
Author: Kristian Høgsberg <krh@bitplanet.net>
Date:   Thu Jan 6 07:57:26 2011 -0500

    x11: Create the list of all devices correctly
    
    Linked lists are tricky.

 clutter/x11/clutter-device-manager-x11.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit bf0dd2cbcc83d91ef46301aa18bd5f0158b88d22
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Dec 30 12:49:41 2010 +0000

    test-text-field: Grab key focus on the first entry
    
    So that you can start typing right away.

 tests/interactive/test-text-field.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit 2fe20ff3c505d3c1249b03ba7eaa1515f13a3c0a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Dec 28 22:21:09 2010 +0000

    osx: Implement the set_accept_focus() vfunc
    
    Like the x11 and win32 backends, the quartz backend should allow setting
    the key focus when showing the stage window.

 clutter/osx/clutter-stage-osx.c | 29 +++++++++++++++++++++++------
 clutter/osx/clutter-stage-osx.h |  2 ++
 2 files changed, 25 insertions(+), 6 deletions(-)

commit 9d6a33d0c835e8a91e42303886123e34e60576f5
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Dec 28 18:04:00 2010 +0000

    win32: Implement the set_accept_focus() vfunc
    
    Implement the ClutterStageWindow::set_accept_focus() virtual function in
    the win32 backend.
    
    If accept_focus is set to be TRUE then we call SetforegroundWindow()
    after calling ShowWindow(). This is similar to what GDK does when
    dealing with the same situation.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2500

 clutter/win32/clutter-stage-win32.c | 21 +++++++++++++++++++--
 clutter/win32/clutter-stage-win32.h |  8 +++++---
 2 files changed, 24 insertions(+), 5 deletions(-)

commit 497f39e2f40e816c1e7ceaa3bf2fb4e609436b35
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Dec 28 17:38:39 2010 +0000

    x11: Implement the set_accept_focus() vfunc
    
    Actually set the InputHint flag and set the input field of the WM_SPEC
    hints depending on the value of the accept-focus bitfield.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2500

 clutter/x11/clutter-stage-x11.c | 20 ++++++++++++++++----
 clutter/x11/clutter-stage-x11.h |  1 +
 2 files changed, 17 insertions(+), 4 deletions(-)

commit bbede9fef579000a48309bec017303bd8c46ccae
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Dec 28 17:37:18 2010 +0000

    stage: Add :accept-focus property and accessors
    
    Allow the developer to set whether the Stage should receive key focus
    when mapped. The implementation is fully backend-dependent. The default
    value is TRUE because that's what we've been expecting so far.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2500

 clutter/clutter-stage.c                    | 67 +++++++++++++++++++++++++++++-
 clutter/clutter-stage.h                    |  4 ++
 doc/reference/clutter/clutter-sections.txt |  2 +
 3 files changed, 72 insertions(+), 1 deletion(-)

commit e1cd6f49b2afcb1738ee2e95f03aa77b8c696e7b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Dec 28 17:36:27 2010 +0000

    stage-window: Add set_accept_focus() vfunc
    
    Allow Stage implementations to set whether or not they want to accept
    key focus when being shown.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2500

 clutter/clutter-stage-window.c | 12 ++++++++++++
 clutter/clutter-stage-window.h |  6 ++++++
 2 files changed, 18 insertions(+)

commit 601b958ab1b162176c7dde318a96f279be995e64
Author: Johan Bilien <jobi@via.ecp.fr>
Date:   Wed Dec 29 16:49:13 2010 -0500

    Fixed a crash when destroying the actor of a LEAVE event
    
    When processing a LEAVE event, one might destroy the actor, so the weak
    reference device->actor would be NULL.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2502
    
    Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>

 clutter/clutter-input-device.c | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

commit 2911d3db535db98f7c0352e3ea40f2a7e65d82ea
Author: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Date:   Thu Dec 30 08:16:10 2010 +0700

    autogen.sh: make autoreconf use automake-1.11 when available
    
    This patch exports $ACLOCAL and $AUTOMAKE, otherwise autoreconf
    may use an older version instead.
    
    Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2504

 autogen.sh | 1 +
 1 file changed, 1 insertion(+)

commit c95cc8d477ab26fd6231becdd062a81fa7ee6115
Author: Johan Bilien <jobi@via.ecp.fr>
Date:   Wed Dec 29 16:57:02 2010 -0500

    Only reset the relayout_pending flag when actually doing a relayout
    
    If an actor is (unfortunately) queuing a relayout in relayout, you would
    end up with (ClutterActor*)stage->needs_allocation set to TRUE and
    stage->relayout_pending set to TRUE. But if then in the same cycle, an
    actor calls clutter_actor_get_allocation_box, that will trigger another
    (recursive) _clutter_stage_maybe_relayout, which will wrongly reset the
    relayout pending to FALSE, while not actually performing a new relayout
    because of the re-entrancy protection.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2503

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

commit b6558c5a1848b306c26813bc5f5015eb95c541d1
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Dec 22 09:42:41 2010 +0000

    docs: Fixes for the Cogl API reference

 clutter/cogl/cogl/cogl-bitmap.h          |  4 ++--
 clutter/cogl/cogl/cogl-buffer.h          |  8 +++----
 clutter/cogl/cogl/cogl-index-array.h     |  2 +-
 clutter/cogl/cogl/cogl-material-compat.h | 11 +++++----
 clutter/cogl/cogl/cogl-object.h          | 19 ++++++++--------
 clutter/cogl/cogl/cogl-path.h            |  8 +++----
 clutter/cogl/cogl/cogl-pipeline.h        |  2 +-
 clutter/cogl/cogl/cogl-types.h           |  4 ++--
 clutter/cogl/cogl/cogl-vertex-array.h    |  2 +-
 clutter/cogl/cogl/cogl-vertex-buffer.h   |  2 +-
 doc/reference/cogl/cogl-sections.txt     | 39 ++++++++++++++++++++++++++++----
 11 files changed, 67 insertions(+), 34 deletions(-)

commit 533880a1a5140d507db0f1a11d211c74ee0260f6
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Dec 21 12:03:38 2010 +0000

    build: Ignore private headers when building the Cogl reference
    
    Otherwise gtk-doc will try to look up private symbols.

 doc/reference/cogl/Makefile.am | 22 +++++++++++++++++-----
 1 file changed, 17 insertions(+), 5 deletions(-)

commit 91cc8edba12c0e43ba69b055e5b46394b9d51917
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Dec 21 10:51:39 2010 +0000

    test-text-field: Do not expand the labels

 tests/interactive/test-text-field.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

commit 605e8d6fb50624b44b45f012b24cea7c302f78ea
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Dec 21 10:50:24 2010 +0000

    text: Only paint cursor if we have key focus
    
    If a Text actor does not have key focus then there's no point in showing
    the cursor at all.

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

commit ec5e910cd376050bdd184cf970fa565e10764525
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Dec 20 17:59:35 2010 +0000

    test-text-field: Clean up
    
    Use a Table layout manager, and clean up a bit this test case.

 tests/interactive/test-text-field.c | 96 +++++++++++++++++++++----------------
 1 file changed, 56 insertions(+), 40 deletions(-)

commit 21a12b966dbf72d2e83265399ac8d380b281df7f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Dec 20 12:41:07 2010 +0000

    interactive: Remove test-bind
    
    The BindConstraint is already exercised in the test-constraints and in
    other interactive tests.

 tests/interactive/Makefile.am |   1 -
 tests/interactive/test-bind.c | 112 ------------------------------------------
 2 files changed, 113 deletions(-)

commit b9f7ef11100f250767fd726b0ae9727a7e9a3f89
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sat Dec 18 21:33:37 2010 +0000

    build: Remove Cogl2 reference from the build scripts
    
    Keeping the Cogl 2.0 API reference in the build is getting far more
    troublesome than it's worth.
    
    It's breaking distcheck far too often, and it makes it impossible to
    rebuild the build environment from tarballs - which is something that
    some distributions (namely: the Debian-based ones, but not limited to
    them) do in order to change build scripts using their own rules.

 configure.ac              | 16 ----------------
 doc/reference/Makefile.am |  6 ------
 2 files changed, 22 deletions(-)

commit 491bbc226ee52546507406714030a9647dde4280
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sat Dec 18 13:24:54 2010 +0000

    constraints: Remove signal handlers on dispose
    
    Same as commit 2fa8b3a3abc7bb8e96a85d927edc0594f44f55df but done for
    AlignConstraint and SnapConstraint as well.

 clutter/clutter-align-constraint.c | 24 +++++++++++++++++++++---
 clutter/clutter-bind-constraint.c  |  4 ++--
 clutter/clutter-snap-constraint.c  | 29 +++++++++++++++++++++++------
 3 files changed, 46 insertions(+), 11 deletions(-)

commit 2fa8b3a3abc7bb8e96a85d927edc0594f44f55df
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sat Dec 18 13:16:23 2010 +0000

    bind-constraint: Remove handlers in dispose
    
    We should remove the signal handlers on the source actor when a
    BindConstraint is disposed, to avoid dangling pointers and wrong
    invocations.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2493

 clutter/clutter-bind-constraint.c | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

commit 45c884307e5946e316c839c03d94c5f5c92147d8
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Dec 17 16:04:25 2010 +0000

    Post-release version bump to 1.5.11

 configure.ac       |   2 +-
 po/clutter-1.0.pot | 104 ++++++++++++++++++++++++++---------------------------
 po/de.po           | 102 ++++++++++++++++++++++++++--------------------------
 po/fr.po           | 102 ++++++++++++++++++++++++++--------------------------
 po/id.po           | 102 ++++++++++++++++++++++++++--------------------------
 po/it.po           | 102 ++++++++++++++++++++++++++--------------------------
 po/pl.po           | 102 ++++++++++++++++++++++++++--------------------------
 po/zh_CN.po        | 102 ++++++++++++++++++++++++++--------------------------
 8 files changed, 359 insertions(+), 359 deletions(-)

commit 339a6805521c04fd9e0d43689b6f380a45404078
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Dec 17 14:40:17 2010 +0000

    Release Clutter 1.5.10 (snapshot)

 NEWS         | 11 +++++++++--
 configure.ac |  2 +-
 2 files changed, 10 insertions(+), 3 deletions(-)

commit 987a50be91f67a64cca32e7403b98c69b5aedb4c
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Dec 17 15:43:24 2010 +0000

    build: Fix release-check for cogl2 reference

 configure.ac              | 10 ++++++++--
 doc/reference/Makefile.am |  7 ++-----
 2 files changed, 10 insertions(+), 7 deletions(-)

commit cab4a5b4846d2e6e1800ac545020bce930a9132e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Dec 17 14:41:33 2010 +0000

    build: Remove stringify.sh from Makefile.am

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

commit 894c0527dffc4d0c01ef87880d33b02fcfab923e
Author: Elliot Smith <elliot.smith@intel.com>
Date:   Wed Dec 15 13:31:12 2010 +0000

    cookbook: Proofing for "box layout" recipe
    
    General improvements to readability, formatting, fixing
    typos etc.

 doc/cookbook/layouts.xml | 67 ++++++++++++++++++++++++++----------------------
 1 file changed, 36 insertions(+), 31 deletions(-)

commit accdd92110baffe886ab9bcc9dc263058d159ecc
Author: Elliot Smith <elliot.smith@intel.com>
Date:   Wed Dec 15 13:13:28 2010 +0000

    cookbook: Add examples and more text for "box layout" recipe
    
    Added 3 examples for the box layout recipe:
    1) Simple box layout demonstrating how to set actor properties
    2) Trivial menu implementation using box layout
    3) Demonstration app which enables tweaking and testing
       of layout property interactions
    
    Also inlined example 1 in the solution section and added
    more explanatory text in the discussion.

 doc/cookbook/examples/Makefile.am                  |   6 +
 doc/cookbook/examples/layouts-box-menu.c           | 151 +++++++
 .../examples/layouts-box-property-effects.c        | 465 +++++++++++++++++++++
 doc/cookbook/examples/layouts-box.c                |  95 +++++
 doc/cookbook/images/layouts-box.png                | Bin 0 -> 1515 bytes
 doc/cookbook/layouts.xml                           | 134 +++++-
 6 files changed, 841 insertions(+), 10 deletions(-)

commit 77aacd185dcdd1673e1c3fb058d93a5803febe6a
Author: Elliot Smith <elliot.smith@intel.com>
Date:   Tue Dec 14 18:08:28 2010 +0000

    cookbook: Add initial skeleton for box layout recipe
    
    Created recipe and first draft content for recipe
    about ClutterBoxLayout.

 doc/cookbook/layouts.xml | 264 +++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 264 insertions(+)

commit 6c244c05497237ee2640d3d4cf7cd3d00baf469f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Dec 17 13:53:28 2010 +0000

    geometry: Avoid sign issues when interpolating
    
    Width and height in ClutterGeometry are unsigned, and this might lead to
    overflow and wrap around issues.

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

commit c3313726f0c6911eee8709a15fe51ec0421d7422
Author: Alexandre Quessy <alexandre@quessy.net>
Date:   Tue Dec 14 17:45:45 2010 -0500

    Fixed a typo in a doc string
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2485

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

commit 140f818fb14181135891b06bde54649564f0bc07
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Dec 17 12:07:06 2010 +0000

    Update NEWS

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

commit c444447cd3712153127f4fdd2ac03262ec7689d2
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Dec 17 12:04:11 2010 +0000

    timeline: Rename the reverse property to auto-reverse
    
    Other frameworks expose the same functionality as "auto-reverse",
    probably to match the cassette tape player. It actually makes sense
    for Clutter to follow suit.

 clutter/clutter-timeline.c                         | 57 +++++++++++-----------
 clutter/clutter-timeline.h                         |  4 +-
 doc/cookbook/animations.xml                        |  4 +-
 .../examples/animations-looping-implicit.c         |  2 +-
 doc/reference/clutter/clutter-sections.txt         |  4 +-
 .../clutter/migrating-ClutterBehaviour.xml         |  2 +-
 tests/interactive/test-behave.c                    |  2 +-
 tests/interactive/test-layout.c                    |  2 +-
 tests/interactive/test-threads.c                   |  1 +
 9 files changed, 39 insertions(+), 39 deletions(-)

commit 397e0ddb166097ae9a281c70bbff49196e513c5b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Dec 16 15:30:53 2010 +0000

    interactive: Rename test-rotate
    
    The rotation test is now really testing the shader-based effects we ship
    with Clutter. The name should be changed to reflect that.

 tests/interactive/Makefile.am           |  2 +-
 tests/interactive/test-rotate.c         | 82 ---------------------------------
 tests/interactive/test-shader-effects.c | 82 +++++++++++++++++++++++++++++++++
 3 files changed, 83 insertions(+), 83 deletions(-)

commit c2365c63cfd2d9e0c6116a39c7a50defc193c482
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Dec 16 15:25:29 2010 +0000

    interactive: Remove test-viewport
    
    The test-viewport interactive test is exercising the clip code - a job
    better done by the conformance test suite and by the test-clip
    interactive test.

 tests/interactive/Makefile.am     |  1 -
 tests/interactive/test-viewport.c | 69 ---------------------------------------
 2 files changed, 70 deletions(-)

commit 1515a9f98971c813d50a4c0004eb49c597fc3144
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Dec 16 15:10:27 2010 +0000

    interactive: Remove test-project
    
    The test-project test case was an old test that was barely working after
    landing the size allocation API in Clutter 0.8. It has never been fixed,
    and it's been of relative use ever since.

 tests/interactive/Makefile.am    |   1 -
 tests/interactive/test-project.c | 229 ---------------------------------------
 2 files changed, 230 deletions(-)

commit 8ae47eb79c0c67faaf8c594aa7e8e2560abc358e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Dec 16 15:08:11 2010 +0000

    interactive: Remove test-offscreen
    
    The test-offscreen interactive test was a dummy test for the
    ClutterStage:offscreen property, which has been deprecated and
    not implemented since Clutter 1.0, and never really worked except
    briefly in Clutter 0.2 or something.

 tests/interactive/Makefile.am      |  1 -
 tests/interactive/test-offscreen.c | 32 --------------------------------
 2 files changed, 33 deletions(-)

commit faaff037306be31b69fa255b8d3dae91b341256b
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Dec 13 17:21:58 2010 +0000

    clutter-stage: Don't always set the projection and viewport matrix
    
    The stage has a dirty flag to record whenever the viewport and
    projection matrices need to be flushed. However after flushing these
    the flags were never cleared so it would always redundantly update the
    state.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2480

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

commit f5954339427f19e3c7332ec10d8cfd43c073d724
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Dec 14 13:02:47 2010 +0000

    cogl-pipeline-fragend-arbfp: Generate ARBfp if user vertex shader
    
    The ARBfp fragend was bypassing generating a shader if the pipeline
    contains a user program. However it shouldn't do this if the pipeline
    only contains a vertex shader. This was breaking
    test-cogl-just-vertex-shader.

 clutter/cogl/cogl/cogl-pipeline-fragend-arbfp.c | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

commit 52442414d953e90930d3928e81216e0f3ac194fe
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Dec 10 17:46:58 2010 +0000

    cally: Allow memory management for actions
    
    Adding an action should allow passing a user data pointer, and have a
    notification action that gets called when removing the action. This
    allows introspection and language bindings to attach custom data to the
    action - for instance, the real callable object that should be invoked.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2479

 clutter/cally/cally-actor.c | 94 ++++++++++++++++++++++++++++++---------------
 clutter/cally/cally-actor.h | 47 ++++++++++++++++-------
 2 files changed, 97 insertions(+), 44 deletions(-)

commit def14e80cbb898c6c198a5caf3a2a3ad15d5e8e1
Author: Mike Owens <mike@filespanker.com>
Date:   Thu Dec 9 09:39:23 2010 -0500

    ClutterText: Only grab keyboard focus if keyboard-interactive.
    
    Previously, ClutterText took keyboard focus on mouse-down, regardless
    if it were editable or selectable.  Now it checks these properties,
    and behaves like other actors if it can't do anything useful with
    the focus.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2462

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

commit 7b985f034fae95862f0c080a6311ccf0ac4f3966
Author: Neil Roberts <neil@linux.intel.com>
Date:   Sat Nov 27 13:15:02 2010 +0000

    Allow multiple CoglAtlases for textures
    
    Previously Cogl would only ever use one atlas for textures and if it
    reached the maximum texture size then all other new textures would get
    their own GL texture. This patch makes it so that we create as many
    atlases as needed. This should avoid breaking up some batches and it
    will be particularly good if we switch to always using multi-texturing
    with a default shader that selects between multiple atlases using a
    vertex attribute.
    
    Whenever a new atlas is created it is stored in a GSList on the
    context. A weak weference is taken on the atlas using
    cogl_object_set_user_data so that it can be removed from the list when
    the atlas is destroyed. The atlas textures themselves take a reference
    to the atlas and this is the only thing that keeps the atlas
    alive. This means that once the atlas becomes empty it will
    automatically be destroyed.
    
    All of the COGL_NOTEs pertaining to atlases are now prefixed with the
    atlas pointer to make it clearer which atlas is changing.

 clutter/cogl/cogl/cogl-atlas-texture-private.h |  10 +--
 clutter/cogl/cogl/cogl-atlas-texture.c         | 105 +++++++++++++++++--------
 clutter/cogl/cogl/cogl-atlas.c                 |  19 +++--
 clutter/cogl/cogl/cogl-atlas.h                 |   3 -
 clutter/cogl/cogl/cogl-context.c               |   5 +-
 clutter/cogl/cogl/cogl-context.h               |   2 +-
 clutter/cogl/pango/cogl-pango-glyph-cache.c    |   1 +
 7 files changed, 93 insertions(+), 52 deletions(-)

commit d01a70762395d7ff353df1fb77397b4dfab284cf
Author: Neil Roberts <neil@linux.intel.com>
Date:   Sat Nov 27 13:06:38 2010 +0000

    cogl-atlas: Convert to be a CoglObject subclass
    
    To implement multiple atlases it will be useful to have ref-counting
    on the CoglAtlas so it makes sense to convert it to be a CoglObject.

 clutter/cogl/cogl/cogl-atlas.c              | 10 ++++++++--
 clutter/cogl/cogl/cogl-atlas.h              |  8 +++++---
 clutter/cogl/cogl/cogl-context.c            |  2 +-
 clutter/cogl/pango/cogl-pango-glyph-cache.c |  4 ++--
 4 files changed, 16 insertions(+), 8 deletions(-)

commit d03c3a646ae4d26358ad5a48fe320845f7f099ed
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Dec 7 13:58:46 2010 +0000

    test-cogl-just-vertex-shader: Update to use the portable cogl_* names
    
    The vertex shader in this test now uses the cogl_* names for the GL
    builtin so that it will work on GLES2 as well.

 tests/conform/test-cogl-just-vertex-shader.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit d1ddca4eeecf26df9c5a707ef5f88175d90feb34
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Dec 7 13:44:45 2010 +0000

    cogl-shader-boilerplate: Add the 3D texture extension on GLES2
    
    To use the 3D texture extension on GLES2 it has to be enabled with the
    following line in GLSL:
    
    #extension GL_OES_texture_3D : enable

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

commit e0a02b2b5bc4ef88e8829d271380148a966e8494
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Dec 7 12:49:00 2010 +0000

    test-cogl-multitexture: Don't test the alpha component
    
    On EGL we don't request a context with any alpha bits so testing alpha
    component of cogl_read_pixels isn't reliable.

 tests/conform/test-cogl-multitexture.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit afe39296180e3839c42c5327f55ff8a773ba7000
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Dec 7 11:39:37 2010 +0000

    test-cogl-materials: Use GL_MAX_VERTEX_ATTRIBS on GLES2
    
    When determining the maximum number of layers we also need to take
    into account GL_MAX_VERTEX_ATTRIBS on GLES2. Cogl needs one vertex
    attrib for each texture unit plus two for the position and color.

 tests/conform/test-cogl-materials.c | 22 +++++++++++++++-------
 1 file changed, 15 insertions(+), 7 deletions(-)

commit bdeb555ae1e440de0453cd8fd4a024ba8381016f
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Dec 7 10:38:51 2010 +0000

    cogl2-path: Don't flush the enable flags
    
    All of the drawing needed in _cogl_add_path_to_stencil_buffer is done
    with the vertex attribute API so there should be no need to flush the
    enable flags to enable the vertex array. This was causing problems on
    GLES2 where the vertex array isn't available.

 clutter/cogl/cogl/cogl2-path.c | 5 -----
 1 file changed, 5 deletions(-)

commit 7dc4b3c8947de12ca111edba52a9387287f97a82
Author: Neil Roberts <neil@linux.intel.com>
Date:   Sun Dec 5 18:02:05 2010 +0000

    Remove the GLES2 wrapper
    
    The GLES2 wrapper is no longer needed because the shader generation is
    done within the GLSL fragend and vertend and any functions that are
    different for GLES2 are now guarded by #ifdefs.

 build/stringify.sh                                 |  94 --
 clutter/cogl/cogl/Makefile.am                      |  20 -
 clutter/cogl/cogl/cogl-atlas.c                     |   6 +-
 clutter/cogl/cogl/cogl-buffer.c                    |   4 -
 clutter/cogl/cogl/cogl-clip-stack.c                |  13 +-
 clutter/cogl/cogl/cogl-context.c                   |   6 +-
 clutter/cogl/cogl/cogl-framebuffer.c               |   6 +-
 clutter/cogl/cogl/cogl-pipeline-fragend-arbfp.c    |   4 -
 clutter/cogl/cogl/cogl-pipeline-fragend-glsl.c     |   4 -
 clutter/cogl/cogl/cogl-pipeline-opengl.c           |  16 +-
 clutter/cogl/cogl/cogl-pipeline-progend-glsl.c     |  34 +-
 clutter/cogl/cogl/cogl-pipeline-vertend-glsl.c     |  24 +
 clutter/cogl/cogl/cogl-pixel-array.c               |   4 -
 clutter/cogl/cogl/cogl-texture-2d.c                |   2 +
 clutter/cogl/cogl/cogl-texture-3d.c                |   2 +
 clutter/cogl/cogl/cogl-vertex-attribute.c          |   1 -
 clutter/cogl/cogl/cogl.c                           |  16 +-
 .../cogl/driver/gles/cogl-context-driver-gles.c    |   6 -
 .../cogl/driver/gles/cogl-context-driver-gles.h    |   4 -
 .../cogl/driver/gles/cogl-fixed-vertex-shader.glsl |  73 --
 clutter/cogl/cogl/driver/gles/cogl-gles.c          |   4 +
 clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.c | 993 ---------------------
 clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.h | 388 --------
 .../cogl/driver/gles/cogl-texture-driver-gles.c    |   6 +-
 24 files changed, 81 insertions(+), 1649 deletions(-)

commit 1999bee5d2d5d14a97eacb84edb6ce364202b082
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Dec 6 21:29:56 2010 +0000

    cogl-pipeline: Use enums for the layer combine values
    
    Once the GLES2 wrapper is removed then we won't have the GLenums
    needed for setting up the layer combine state. This adds Cogl enums
    instead which have the same values as the corresponding GLenums. The
    enums are:
    
    CoglPipelineCombineFunc
    CoglPipelineCombineSource
     and
    CoglPipelineCombineOp

 clutter/cogl/cogl/cogl-pipeline-fragend-arbfp.c |  41 ++++-----
 clutter/cogl/cogl/cogl-pipeline-fragend-glsl.c  |  48 ++++++-----
 clutter/cogl/cogl/cogl-pipeline-private.h       |  46 ++++++++--
 clutter/cogl/cogl/cogl-pipeline.c               | 107 ++++++++++++++----------
 4 files changed, 148 insertions(+), 94 deletions(-)

commit 271acaaae5d9e698ed1eefb201b2fa49b7bb3d2d
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Dec 6 12:31:51 2010 +0000

    cogl: upload matrices with uniforms on GLES2
    
    Once the GLES2 wrapper is removed we won't be able to upload the
    matrices with the fixed function API any more. The fixed function API
    gives a global state for setting the matrix but if a custom shader
    uniform is used for the matrices then the state is per
    program. _cogl_matrix_stack_flush_to_gl is called in a few places and
    it is assumed the current pipeline doesn't need to be flushed before
    it is called. To allow these semantics to continue to work, on GLES2
    the matrix flush now just stores a reference to the matrix stack in
    the CoglContext. A pre_paint virtual is added to the progend which is
    called whenever a pipeline is flushed, even if the same pipeline was
    flushed already. This gives the GLSL progend a chance to upload the
    matrices to the uniforms. The combined modelview/projection matrix is
    only calculated if it is used. The generated programs end up never
    using the modelview or projection matrix so it usually only has to
    upload the combined matrix. When a matrix stack is flushed a reference
    is taked to it by the pipeline progend and the age is stored so that
    if the same state is used with the same program again then we don't
    need to reupload the uniform.

 clutter/cogl/cogl/cogl-context.c                   |  12 +
 clutter/cogl/cogl/cogl-context.h                   |  10 +
 clutter/cogl/cogl/cogl-matrix-stack.c              | 127 ++++++++---
 clutter/cogl/cogl/cogl-matrix-stack.h              |  10 +
 clutter/cogl/cogl/cogl-pipeline-opengl.c           |   7 +
 clutter/cogl/cogl/cogl-pipeline-private.h          |   4 +
 clutter/cogl/cogl/cogl-pipeline-progend-glsl.c     | 250 ++++++++++++++++++++-
 clutter/cogl/cogl/cogl-pipeline-vertend-glsl.c     |   4 +
 clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.c |   2 +
 9 files changed, 396 insertions(+), 30 deletions(-)

commit 67847260bca8ef313650497050e284a1971918aa
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Dec 10 17:42:39 2010 +0000

    cogl-matrix-stack: Add _cogl_matrix_stack_has_identity_flag
    
    This adds an internal function to quickly determine whether the top of
    the matrix stack is known to be the identity matrix.

 clutter/cogl/cogl/cogl-matrix-stack.c | 6 ++++++
 clutter/cogl/cogl/cogl-matrix-stack.h | 7 +++++++
 2 files changed, 13 insertions(+)

commit 016005591dfa765255b05d96f701497ed7a59d23
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Dec 10 16:06:16 2010 +0000

    cogl-matrix-stack: Convert to be a CoglObject
    
    We will want to use ref-counting on the CoglMatrixStack so it might as
    well be a CoglObject.

 clutter/cogl/cogl/cogl-framebuffer.c     |  4 ++--
 clutter/cogl/cogl/cogl-matrix-stack.c    | 13 ++++++++++---
 clutter/cogl/cogl/cogl-matrix-stack.h    |  3 ---
 clutter/cogl/cogl/cogl-pipeline-opengl.c |  2 +-
 4 files changed, 13 insertions(+), 9 deletions(-)

commit 58a22613877fc041549eddeafbc364d369c5e445
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Dec 10 11:34:02 2010 +0000

    matrix-stack: Make header style consistent
    
    Cogl doesn't follow the Clutter/GTK+ columnized function prototype style
    so this updates cogl-matrix-stack.h to match the other Cogl headers.

 clutter/cogl/cogl/cogl-matrix-stack.c |   2 +-
 clutter/cogl/cogl/cogl-matrix-stack.h | 126 ++++++++++++++++++++--------------
 2 files changed, 76 insertions(+), 52 deletions(-)

commit 4976d229405c7010a6ef1e621bcfb581b7eff99a
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Dec 10 11:13:09 2010 +0000

    matrix-stack: Adds a stack age counter
    
    Sometimes it would be useful if we could efficiently track when a matrix
    stack has been modified. For example on GLES2 we have to upload the
    modelview as a uniform to our glsl programs but because the modelview
    state is part of the framebuffer state it becomes a bit more tricky to
    know when to re-sync the value of the uniform with the framebuffer
    state. This adds an "age" counter to CoglMatrixStack which is
    incremented for any operation that effectively modifies the top of the
    stack so now we can save the age of the stack inside the pipeline
    whenever we update modelview uniform and later compare that with the
    stack to determine if it has changed.

 clutter/cogl/cogl/cogl-matrix-stack.c | 18 ++++++++++++++++++
 clutter/cogl/cogl/cogl-matrix-stack.h |  2 ++
 2 files changed, 20 insertions(+)

commit 856d43a27cd4090467de08cd5738f10ec7e06ebd
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Dec 6 12:31:16 2010 +0000

    cogl-pipeline: Add internal API to get the layer matrix
    
    This returns the layer matrix given a pipeline and a layer index. The
    API is kept as internal because it directly returns a pointer into the
    layer private data to avoid a copy into an out-param. We might also
    want to add a public function which does the copy.

 clutter/cogl/cogl/cogl-pipeline-private.h |  4 ++++
 clutter/cogl/cogl/cogl-pipeline.c         | 19 +++++++++++++++++++
 2 files changed, 23 insertions(+)

commit 4514d49dda70b9b5a1833c7809dc4d22b1bcd3cd
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Dec 3 17:46:16 2010 +0000

    cogl-vertex-attribute: Use glVertexAttribPointer on GLES2
    
    When the GLES2 wrapper is removed we can't use the fixed function API
    such as glColorPointer to set the builtin attributes. Instead the GLSL
    progend now maintains a cache of attribute locations that are queried
    with glGetAttribLocation. The code that previously maintained a cache
    of the enabled texture coord arrays has been modified to also cache
    the enabled vertex attributes under GLES2. The vertex attribute API is
    now the only place that is using this cache so it has been moved into
    cogl-vertex-attribute.c

 clutter/cogl/cogl/cogl-bitmask.c                   |  16 +-
 clutter/cogl/cogl/cogl-bitmask.h                   |  10 +-
 clutter/cogl/cogl/cogl-context.c                   |   8 +-
 clutter/cogl/cogl/cogl-context.h                   |   8 +-
 clutter/cogl/cogl/cogl-internal.h                  |   6 -
 clutter/cogl/cogl/cogl-pipeline-opengl.c           |  30 +-
 .../cogl/cogl/cogl-pipeline-progend-glsl-private.h |  18 ++
 clutter/cogl/cogl/cogl-pipeline-progend-glsl.c     | 139 +++++++++
 clutter/cogl/cogl/cogl-vertex-attribute-private.h  |   3 +
 clutter/cogl/cogl/cogl-vertex-attribute.c          | 311 ++++++++++++++++-----
 clutter/cogl/cogl/cogl.c                           |  36 +--
 11 files changed, 451 insertions(+), 134 deletions(-)

commit 1515a8d73a0ea3ad6f6f8719e833bc17bb7c0001
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Dec 3 11:31:09 2010 +0000

    cogl-path: Stroke using the vertex attribute API
    
    Previously when stroking a path it was flushing a pipeline and then
    directly calling glDrawArrays to draw the line strip from the path
    nodes array. This patch changes it to build a CoglVertexArray and a
    series of attributes to paint with instead. The vertex array and
    attributes are attached to the CoglPath so it can be reused later. The
    old vertex array for filling has been renamed to fill_vbo.

 clutter/cogl/cogl/cogl-path-private.h |  12 +-
 clutter/cogl/cogl/cogl2-path.c        | 201 +++++++++++++++++++++++-----------
 2 files changed, 143 insertions(+), 70 deletions(-)

commit 3c5fa0cf9042827d205f90ac98c2eac9494707e9
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Dec 2 22:19:44 2010 +0000

    cogl: Move COGL_DEBUG=show-source into cogl-shader.c
    
    The code to display the source when the show-source debug option is
    given has been moved to _cogl_shader_set_source_with_boilerplate so
    that it will show both user shaders and generated shaders. It also
    shows the code with the full boilerplate. To make it the same for
    ARBfp, cogl_shader_compile_real now also dumps user ARBfp shaders.

 clutter/cogl/cogl/cogl-pipeline-fragend-glsl.c |  5 -----
 clutter/cogl/cogl/cogl-pipeline-vertend-glsl.c |  5 -----
 clutter/cogl/cogl/cogl-shader.c                | 23 +++++++++++++++++++++++
 3 files changed, 23 insertions(+), 10 deletions(-)

commit 8764a0d4874949c12d6c0e6af863d81a39bc4991
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Dec 2 20:48:45 2010 +0000

    cogl: Add a vertend to generate GLSL
    
    The GLSL vertend is mostly only useful for GLES2. The fixed function
    vertend is kept at higher priority than the GLSL vertend so it is
    unlikely to be used in any other circumstances.

 clutter/cogl/cogl/Makefile.am                      |   2 +
 clutter/cogl/cogl/cogl-context.c                   |   3 +-
 clutter/cogl/cogl/cogl-context.h                   |   3 +-
 clutter/cogl/cogl/cogl-pipeline-fragend-arbfp.c    |   3 +-
 clutter/cogl/cogl/cogl-pipeline-fragend-fixed.c    |  10 +-
 clutter/cogl/cogl/cogl-pipeline-fragend-glsl.c     |  13 +-
 clutter/cogl/cogl/cogl-pipeline-opengl.c           | 130 +++++--
 clutter/cogl/cogl/cogl-pipeline-private.h          |  30 +-
 clutter/cogl/cogl/cogl-pipeline-progend-glsl.c     |  83 +++--
 clutter/cogl/cogl/cogl-pipeline-vertend-fixed.c    |  28 ++
 .../cogl/cogl/cogl-pipeline-vertend-glsl-private.h |  39 ++
 clutter/cogl/cogl/cogl-pipeline-vertend-glsl.c     | 396 +++++++++++++++++++++
 clutter/cogl/cogl/cogl-pipeline.c                  |   7 +
 clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.c |  19 +-
 14 files changed, 679 insertions(+), 87 deletions(-)

commit 6c34fb7232f3d82a6f5720fc9e07a41d997e643b
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Dec 7 12:33:39 2010 +0000

    cogl-shader-boilerplate: Don't put the color attrib in location 0
    
    Due to Mesa bug 28585 calling glVertexAttrib with attrib location 0
    doesn't appear to work. This patch just reorders the vertex and color
    attributes in the shader in the hope that Mesa will assign the color
    attribute to a different location.

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

commit cf0ded1361bd639f7143aef02f37f17f01bdcf04
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Dec 2 22:08:51 2010 +0000

    cogl-shader-boilerplate: Add more builtins for GLES2
    
    Some builtin attributes such as the matrix uniforms and some varyings
    were missing from the boilerplate for GLES2. This also moves the
    texture matrix and texture coord attribute declarations to
    cogl-shader.c so that they can be dynamically defined depending on the
    number of texture coord arrays enabled.

 clutter/cogl/cogl/cogl-shader-boilerplate.h | 23 +++++++++++++++++++---
 clutter/cogl/cogl/cogl-shader.c             | 30 +++++++++++++++++++++++------
 2 files changed, 44 insertions(+), 9 deletions(-)

commit 17d689f79480f9d08c1ef8e62b990db0cdb6a36d
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Dec 2 18:05:22 2010 +0000

    cogl-pipeline: Rename the fragment_{source,header}_buffer to codegen
    
    We want to reuse the same buffers for vertends so calling them
    fragment_* doesn't make sense.

 clutter/cogl/cogl/cogl-context.c                |  4 ++--
 clutter/cogl/cogl/cogl-context.h                |  4 ++--
 clutter/cogl/cogl/cogl-pipeline-fragend-arbfp.c |  4 ++--
 clutter/cogl/cogl/cogl-pipeline-fragend-glsl.c  |  8 ++++----
 clutter/cogl/cogl/cogl-pipeline-progend-glsl.c  | 12 ++++++------
 5 files changed, 16 insertions(+), 16 deletions(-)

commit a3e53dd029632166a51333249baa49b5e97644c9
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Nov 29 18:32:21 2010 +0000

    cogl: Add a fixed function vertend
    
    The vertends are intended to flush state that would be represented in
    a vertex program. Code to handle the layer matrix, lighting and
    point size has now been moved from the common cogl-pipeline-opengl
    backend to the fixed vertend.

 clutter/cogl/cogl/Makefile.am                      |   2 +
 clutter/cogl/cogl/cogl-pipeline-opengl.c           | 109 +++++++++++++++-----
 clutter/cogl/cogl/cogl-pipeline-private.h          |  34 +++++-
 .../cogl/cogl-pipeline-vertend-fixed-private.h     |  36 +++++++
 clutter/cogl/cogl/cogl-pipeline-vertend-fixed.c    | 114 +++++++++++++++++++++
 clutter/cogl/cogl/cogl-pipeline.c                  |  80 ++++++++++++++-
 6 files changed, 342 insertions(+), 33 deletions(-)

commit 313adc7bdf9c8a0d61cedf7e34d1cd3e961a7ea2
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Dec 2 14:00:46 2010 +0000

    cogl: Add a GLSL 'progend'
    
    'progend' is short for 'program backend'. The progend is intended to
    operate on combined state from a fragment backend and a vertex
    backend. The progend has an 'end' function which is run whenever the
    pipeline is flushed and the two pipeline change notification
    functions. All of the progends are run whenever the pipeline is
    flushed instead of selecting a single one because it is possible that
    multiple progends may be in use for example if the vertends and
    fragends are different. The GLSL progend will take the shaders
    generated by the fragend and vertend and link them into a single
    program. The fragend code has been changed to only generate the shader
    and not the program. The idea is that pipelines can share fragment
    shader objects even if their vertex state is different. The authority
    for the progend needs to be the combined authority on the vertend and
    fragend state.

 clutter/cogl/cogl/Makefile.am                      |   2 +
 .../cogl/cogl/cogl-pipeline-fragend-glsl-private.h |   3 +
 clutter/cogl/cogl/cogl-pipeline-fragend-glsl.c     | 725 ++++++---------------
 clutter/cogl/cogl/cogl-pipeline-opengl.c           |   5 +
 clutter/cogl/cogl/cogl-pipeline-private.h          |  29 +
 .../cogl/cogl/cogl-pipeline-progend-glsl-private.h |  36 +
 clutter/cogl/cogl/cogl-pipeline-progend-glsl.c     | 542 +++++++++++++++
 clutter/cogl/cogl/cogl-pipeline.c                  |  39 +-
 8 files changed, 839 insertions(+), 542 deletions(-)

commit 1e3cdb60d6a6ad67c4e693687c5c9c64a25d7cec
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Dec 2 13:54:15 2010 +0000

    cogl-program: Add private functions to check if have each shader type
    
    This adds two internal functions:
    
    gboolean
    _cogl_program_has_fragment_shader (CoglHandle handle);
    
    gboolean
    _cogl_program_has_vertex_shader (CoglHandle handle);
    
    They just check whether any of the contained shaders are of that type.

 clutter/cogl/cogl/cogl-program-private.h |  6 ++++++
 clutter/cogl/cogl/cogl-program.c         | 29 +++++++++++++++++++++++++++++
 2 files changed, 35 insertions(+)

commit 31f0eb4f715a3622260965b0b0a3be132cde8d23
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Dec 1 17:06:18 2010 +0000

    cogl-pipeline: Make find codegen authority more general
    
    The pipeline function _cogl_pipeline_find_codegen_authority has been
    renamed to _cogl_pipeline_find_equivalent_parent and it now takes a
    set of flags for the pipeline and layer state that affects the
    authority. This is needed so that we can reuse the same code in the
    vertend and progends.

 clutter/cogl/cogl/cogl-pipeline-fragend-arbfp.c |  47 +++-----
 clutter/cogl/cogl/cogl-pipeline-fragend-glsl.c  |   9 +-
 clutter/cogl/cogl/cogl-pipeline-private.h       |  39 ++++++-
 clutter/cogl/cogl/cogl-pipeline.c               | 137 +++++++++++-------------
 4 files changed, 116 insertions(+), 116 deletions(-)

commit a1996706a293458221bce7a4126f82f64e4ca3c3
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Nov 30 12:48:27 2010 +0000

    cogl-pipeline: Move texture enabling/disabling to fixed fragend
    
    Previously enabling and disabling textures was done whatever the
    backend in cogl-pipeline-opengl. However enabling and disabling
    texture targets only has any meaning if no fragment shaders are being
    used so this patch moves the code to cogl-pipeline-fragend-fixed.
    
    The GLES2 wrapper has also been changed to ignore enabledness when
    deciding whether to update texture coordinate attribute pointers.

 clutter/cogl/cogl/cogl-pipeline-fragend-arbfp.c    |   7 --
 clutter/cogl/cogl/cogl-pipeline-fragend-fixed.c    | 107 ++++++++++++++++++++-
 clutter/cogl/cogl/cogl-pipeline-fragend-glsl.c     |   7 --
 clutter/cogl/cogl/cogl-pipeline-opengl-private.h   |  16 ++-
 clutter/cogl/cogl/cogl-pipeline-opengl.c           |  95 +++---------------
 clutter/cogl/cogl/cogl-pipeline-private.h          |   2 -
 clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.c |  67 ++++++-------
 7 files changed, 157 insertions(+), 144 deletions(-)

commit 952878aab1d0610b09d048495295fd84499b70e9
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Nov 29 16:56:41 2010 +0000

    Rename CoglPipelineBackend to CoglPipelineFragend
    
    The current Cogl pipeline backends are entirely concerned with the
    fragment processing state. We also want to eventually have separate
    backends to generate shaders for the vertex processing state so we
    need to rename the fragment backends. 'Fragend' is a somewhat weird
    name but we wanted to avoid ending up with illegible symbols like
    CoglPipelineFragmentBackendGlslPrivate.

 clutter/cogl/cogl/Makefile.am                      |   12 +-
 clutter/cogl/cogl/cogl-context.c                   |    6 +-
 clutter/cogl/cogl/cogl-pipeline-arbfp-private.h    |   42 -
 clutter/cogl/cogl/cogl-pipeline-arbfp.c            | 1133 ------------------
 clutter/cogl/cogl/cogl-pipeline-fixed-private.h    |   36 -
 clutter/cogl/cogl/cogl-pipeline-fixed.c            |  260 ----
 .../cogl/cogl-pipeline-fragend-arbfp-private.h     |   43 +
 clutter/cogl/cogl/cogl-pipeline-fragend-arbfp.c    | 1133 ++++++++++++++++++
 .../cogl/cogl-pipeline-fragend-fixed-private.h     |   36 +
 clutter/cogl/cogl/cogl-pipeline-fragend-fixed.c    |  260 ++++
 .../cogl/cogl/cogl-pipeline-fragend-glsl-private.h |   36 +
 clutter/cogl/cogl/cogl-pipeline-fragend-glsl.c     | 1263 ++++++++++++++++++++
 clutter/cogl/cogl/cogl-pipeline-glsl-private.h     |   36 -
 clutter/cogl/cogl/cogl-pipeline-glsl.c             | 1263 --------------------
 clutter/cogl/cogl/cogl-pipeline-opengl.c           |   66 +-
 clutter/cogl/cogl/cogl-pipeline-private.h          |   48 +-
 clutter/cogl/cogl/cogl-pipeline.c                  |  100 +-
 17 files changed, 2887 insertions(+), 2886 deletions(-)

commit dc61d58c0df9dde51472bae17b1997c82cfcddb1
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Dec 2 15:37:53 2010 +0000

    cogl-pipeline-opengl: Remove the includes for the various backends
    
    Nothing in cogl-pipeline-opengl needs to know about the actual backend
    implementations, instead it just accesses then through the vtables.

 clutter/cogl/cogl/cogl-pipeline-opengl.c | 10 ----------
 1 file changed, 10 deletions(-)

commit 54db48dfd1e1b151a3b92e160181f44305e21089
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sat Dec 11 17:40:52 2010 +0000

    animation: Allow transforming values in bind()
    
    While we do check for compatibility and transformability of a GValue
    with the GParamSpec value type, we are actually failing really badly
    at it.
    
    First of all, we bail out on the wrong conditions.
    
    Then we use the type of the value passed instead of using the type
    of the property itself.
    
    This makes it impossible to actually use transformation functions for
    GValue types - even those that have been registered by GLib itself -
    when using the Animation API directly, instead of going through the
    clutter_actor_animate() wrappers.

 clutter/clutter-animation.c | 28 +++++++++++++++++++++++-----
 1 file changed, 23 insertions(+), 5 deletions(-)

commit ae4e06d8c4ca2bd93a12e4ace38c0c888edcddf1
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Dec 10 17:15:39 2010 +0000

    introspection: Skip some C-only structures
    
    The ParamSpec sub-classes we define are meant to be used only from the C
    API, as high-level languages completely ignore them.
    
    The ClutterStageWindow interface is an internal type that escaped into
    the public headers; all its methods are private, but we cannot remove
    the type until we break for 2.0.

 clutter/clutter-color.h        | 16 ++++++++--------
 clutter/clutter-fixed.h        |  2 +-
 clutter/clutter-stage-window.h |  4 ++--
 clutter/clutter-units.h        |  2 +-
 4 files changed, 12 insertions(+), 12 deletions(-)

commit d5a418304712e38c7055114fa5b13a904fae9883
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Dec 10 17:15:23 2010 +0000

    introspection: Add cairo-1.0 to the dependencies

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

commit 49a43a0772d749d280a7fc6ceb561c6452dc859f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Dec 10 16:03:10 2010 +0000

    Remove unnecessary duplicate name for private enumerations

 clutter/clutter-actor-private.h | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

commit b91c1ec21c80e99949a19865be2c44c53063d09e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Dec 9 16:05:55 2010 +0000

    docs: Update NEWS

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

commit bc58de4658a206f07d51ddbb9b8c06f37c4cf841
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Dec 9 15:52:04 2010 +0000

    docs: Add 1.6 index to the API references

 doc/reference/cally/cally-docs.xml.in     | 5 +++++
 doc/reference/clutter/clutter-docs.xml.in | 5 +++++
 doc/reference/cogl/cogl-docs.xml.in       | 5 +++++
 3 files changed, 15 insertions(+)

commit 36c3fc82c5c3eee50878f964f09939b9b169fd82
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Dec 9 15:42:19 2010 +0000

    Use G_STRFUNC correctly
    
    It cannot be chained up via the pre-processor.

 clutter/egl/clutter-backend-egl.c       | 2 +-
 clutter/fruity/clutter-backend-fruity.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 24133ddadcd71af74f52b009b178e0ffa9e51374
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Dec 9 15:11:37 2010 +0000

    Rename the EGLDisplay accessors
    
    The accessor for the EGL display should be namespaced for the correct
    backend-specific API.

 clutter/egl/clutter-backend-egl.c          | 19 +++++++++++++-----
 clutter/egl/clutter-egl.h                  | 28 +++++++++++++++++++-------
 clutter/fruity/clutter-backend-fruity.c    | 32 ++++++++++++++++++++++++++++++
 clutter/fruity/clutter-fruity.h            |  9 +++++++--
 clutter/fruity/clutter-stage-fruity.c      |  3 ++-
 clutter/wayland/clutter-backend-wayland.c  | 24 ++++++++++------------
 clutter/wayland/clutter-stage-wayland.c    |  4 ++--
 clutter/wayland/clutter-wayland.h          |  7 ++++---
 doc/reference/clutter/clutter-sections.txt |  3 ++-
 9 files changed, 95 insertions(+), 34 deletions(-)

commit f5b51a2428cb3575ca4cfba98926f4906e6aba8e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Dec 9 15:06:12 2010 +0000

    docs: Documentation fixes

 clutter/clutter-actor-private.h   | 30 ++++++++++++++++--------------
 doc/reference/clutter/Makefile.am |  1 +
 2 files changed, 17 insertions(+), 14 deletions(-)

commit ab0eb0a12b9cc05c417b49832b50b88a7cdb0958
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Dec 9 13:59:08 2010 +0000

    docs: Documentation fixes

 clutter/cally/cally-group.c                          | 2 +-
 clutter/clutter-main.c                               | 2 +-
 clutter/clutter-units.c                              | 4 ++--
 doc/reference/clutter/clutter-animation-tutorial.xml | 2 +-
 4 files changed, 5 insertions(+), 5 deletions(-)

commit 8c7298b0c11df3690a8eb5afdd9226af87b4d76f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Dec 9 13:49:01 2010 +0000

    build: Check NEWS file during release, not distcheck
    
    The check-news option in configure.ac conflicts with the idea of using a
    buildbot to do a distcheck.
    
    Since we're doing some validation on the state of the build during the
    release-check phase we should add the NEWS file check there.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2468

 build/autotools/Makefile.am.release | 11 ++++++++++-
 configure.ac                        |  2 +-
 2 files changed, 11 insertions(+), 2 deletions(-)

commit 88f7579a9d4dd7b290216b5943d87c8143cceb04
Author: Elliot Smith <elliot.smith@intel.com>
Date:   Thu Dec 9 11:40:27 2010 +0000

    cookbook: Remove bold on emphasis inside programlisting
    
    If an <emphasis> element is placed inside a <programlisting> in a cookbook
    recipe, the result is bold italic text in the HTML output. This isn't
    particularly readable.
    
    Fix is to style emphasis elements inside programlistings
    so the font weight is not bold but is still italicised.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2475

 doc/common/style.css | 3 +++
 1 file changed, 3 insertions(+)

commit ca42ec1a7a3a7b219477d6c16a0aff30d64efb1a
Author: Jussi Kukkonen <jku@linux.intel.com>
Date:   Thu Dec 2 16:08:10 2010 +0200

    tests: Add test for clutter_model_get_iter_at_row()
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2460

 tests/conform/test-model.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

commit d8515bf4290bfece33fd41d356e86e74c0728067
Author: Jussi Kukkonen <jku@linux.intel.com>
Date:   Thu Dec 2 16:27:36 2010 +0200

    Fix clutter_list_model_get_iter_at_row() when filtered
    
    Currently clutter_list_model_get_iter_at_row() always returns an
    iterator to the last non-filtered row  when asking for row [1-N].
    
    Patch makes the function return an iterator to the Nth non-filtered
    row or NULL.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2460

 clutter/clutter-list-model.c | 58 +++++++++++++-------------------------------
 1 file changed, 17 insertions(+), 41 deletions(-)

commit e7f62bc936995c5d998f7c8dc4b2b1b7254ea97d
Author: nobled <nobled@dreamwidth.org>
Date:   Tue Dec 7 07:10:59 2010 +0000

    wayland: Update to current api
    
    Adapt to changes from these wayland commits:
    35fd2a8cc68c42d90756330535de04cbbb4d2613
    2bb3ebe1e437acf836449f0a63f3264ad29566f2
    f8fc08f77187f6a5723281dab66841e5f3c24320
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2474

 clutter/wayland/clutter-backend-wayland.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit d8a544c0f17f5d6550578a426c1ef1c4060ca411
Author: nobled <nobled@dreamwidth.org>
Date:   Tue Dec 7 07:07:40 2010 +0000

    wayland: fix typo
    
    Fixes the build error:
    
    clutter-input-device-wayland.c:154:69:
    error: too few arguments to function call
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2473

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

commit 3795c9b975d43305c64ed24306736f764ef165bc
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Dec 9 12:37:41 2010 +0000

    build: Do not hardcode --warn-all for g-ir-scanner
    
    It's possible to use --warn-all through the introspection scanner
    options from outside the build environment.

 clutter/Makefile.am | 3 ---
 1 file changed, 3 deletions(-)

commit d229036441b3f0a4f7ab5205de46b5dbc9d9d7a9
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Dec 9 12:36:50 2010 +0000

    Reduce the amount of g-ir-scanner warnings
    
    As much as we can; the remaining warnings are mostly valid things that
    the introspection scanner still flags as potential issues.

 clutter/clutter-actor.h            | 26 +++++++++++++-------------
 clutter/clutter-container.c        | 16 ++++++++++++----
 clutter/clutter-device-manager.h   | 10 +++++-----
 clutter/clutter-layout-manager.h   |  8 ++++----
 clutter/clutter-offscreen-effect.h |  6 +++---
 clutter/clutter-scriptable.h       |  2 +-
 clutter/x11/clutter-backend-x11.c  | 10 +++++-----
 clutter/x11/clutter-stage-x11.c    |  7 ++++---
 8 files changed, 47 insertions(+), 38 deletions(-)

commit e1f48b15ee92f60f2a84c808ba0d505f38a1bf61
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Dec 9 12:00:29 2010 +0000

    docs: Use :reverse in the Behaviour migration guide
    
    Instead of the ::completed signal flip.

 doc/reference/clutter/migrating-ClutterBehaviour.xml | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

commit b16ea099882accbb489d20ef1ea03dc3cb0d2846
Merge: b6318bd 50849ac
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Dec 9 11:58:10 2010 +0000

    Merge remote branch 'elliot/cookbook-animations-looping-new-api'
    
    * elliot/cookbook-animations-looping-new-api:
      cookbook: Use new API to reverse timeline

commit b6318bd8218c021270370d6e8093d38bdabe791d
Author: Tomeu Vizoso <tomeu.vizoso@collabora.co.uk>
Date:   Tue Dec 7 15:29:05 2010 +0100

    Make clutter_shader_effect_set_uniform_value accept G_TYPE_DOUBLE
    
    For users of gobject-introspection that cannot know which
    non-integer type to pass.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2471

 clutter/clutter-shader-effect.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

commit cf1fced88507e0ccc2fa704d14b3141168a48360
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Dec 8 18:57:42 2010 +0000

    pipeline: don't dereference NULL program state
    
    This avoid dereferencing a NULL arbfp program state in
    _cogl_pipeline_backend_arbfp_layer_pre_change_notify for
    _STATE_COMBINE_CONSTANT changes.

 clutter/cogl/cogl/cogl-pipeline-arbfp.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

commit 46295a0dd1c0dcbc130ed9dd3aed900e597c8d42
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Dec 8 16:29:37 2010 +0000

    arbfp: Copy pipelines used as cache keys
    
    We are currently using a pipeline as a key into our arbfp program cache
    but because we weren't making a copy of the pipelines used as keys there
    were times when doing a lookup in the cache would end up trying to
    compare a lookup key with an entry key that would point to invalid
    memory.
    
    Note: the current approach isn't ideal from the pov that that key
    pipeline may reference some arbitrarily large user textures will now be
    kept alive indefinitely. The plan to improve on this is that we will
    have a mechanism to create a special "key pipeline" which will derive
    from the default Cogl pipeline (to avoid affecting the lifetime of
    other pipelines) and only copy state from the original pipeline that
    affects the arbfp program and will reference small dummy textures
    instead of potentially large user textures.

 clutter/cogl/cogl/cogl-pipeline-arbfp.c | 34 ++++++++++++++++++++++++++++++++-
 1 file changed, 33 insertions(+), 1 deletion(-)

commit 87b2300f98727525267a6849c36c74849ea993fd
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Dec 8 16:27:57 2010 +0000

    arbfp: initialize arbfp_program_state->next_constant_id
    
    When allocating a new ArbfpProgramState struct when starting code
    generation we weren't initializing arbfp_program_state->next_constant_id
    to 0.

 clutter/cogl/cogl/cogl-pipeline-arbfp.c | 1 +
 1 file changed, 1 insertion(+)

commit bac600b21bcbe13d3259fb7cee9e2b378f807d74
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Dec 8 16:23:10 2010 +0000

    pipeline: Clarify stages for finding an arbfp program
    
    In the arbfp backend there is a seqential approach to finding a suitable
    arbfp program to use for a given pipeline; first we see if there's
    already a program associated with the pipeline, 2nd we try and find a
    program associated with the "arbfp-authority" 3rd we try and lookup a
    program in a cache and finally we resort to starting code-generation for
    a new program. This patch slightly reworks the code of these steps to
    hopefully make them a bit clearer.

 clutter/cogl/cogl/cogl-pipeline-arbfp.c | 102 +++++++++++++++++++-------------
 1 file changed, 60 insertions(+), 42 deletions(-)

commit 9606c42c559fefbf397047dad6da3f4f8958b459
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Dec 6 21:14:33 2010 +0000

    cogl-pipeline: Fix the layer_has_alpha_cb
    
    _cogl_pipeline_needs_blending_enabled tries to determine whether each
    layer is using the default combine state. However it was using
    argument 0 for both checks so the if-statement would never be true.

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

commit ab5f394e5aea5a79a0e5d6647e86402ca2ba5e4f
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Dec 8 11:38:56 2010 +0000

    pipeline: remove unused HashState member
    
    There was an unused pipeline_differences member as part of the HashState
    struct which this patch remove to avoid confusion.

 clutter/cogl/cogl/cogl-pipeline.c | 1 -
 1 file changed, 1 deletion(-)

commit 5fd8e9c6083ff17202ceb2cfd2d1c56df0d1da14
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Dec 8 11:35:16 2010 +0000

    pipeline: initialize HashState flags member
    
    There are a set of "EvalFlags" that get passed to _cogl_pipeline_hash
    that can tweak the semantics of what state is evaluated for hashing but
    these flags weren't getting passed via the HashState state structure
    so it would be undefined if you would get the correct semantics.

 clutter/cogl/cogl/cogl-pipeline.c | 1 +
 1 file changed, 1 insertion(+)

commit ea66156c83dded1536009bbdd02032e5e3114c3a
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Dec 8 11:30:00 2010 +0000

    pipeline: don't use near/far symbols
    
    According to 9cc90333473e3 the windows headers #define near as nothing,
    and presumable the same is true for 'far' too. Apparently this define is
    to improve compatibility with code written for Windows 3.1, so it's good
    that people will be able to incorporate such code into their Clutter
    applications.

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

commit acd3d615686f8b10589ac57b7fb16b4f968ae3fb
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Dec 8 14:26:27 2010 +0000

    docs: Fix listitem tag

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

commit c454526bbbd91224ab3fa580d80bf937b912d2cc
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Dec 8 13:59:53 2010 +0000

    docs: Clean up clutter_color_from_string()
    
    Add hsl() and hsla() formats, and clean up the wording.

 clutter/clutter-color.c | 54 +++++++++++++++++++++++++++++++++----------------
 1 file changed, 37 insertions(+), 17 deletions(-)

commit ca7dc2f951f1d5cc59c364a186aa065449c2b85f
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Dec 7 23:32:47 2010 +0000

    cogl-backend-egl: Chain up to the X11 backend init_events
    
    Since c6493885c3f18 when building the EGL backend for eglx there was
    no fallback in the init_events implementation so the X11 backend init
    function would never get called. This was stopping it from receiving
    any X events so a lot of things broke. It now just chains up.

 clutter/egl/clutter-backend-egl.c | 5 +++++
 1 file changed, 5 insertions(+)

commit b0751d234240aa5e7899dedba22c607e75f5ad81
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Tue Dec 7 22:06:07 2010 +0000

    input-device: Downgrade over-zealous warning to note
    
    This warning is really harmless, we just discard the event anyway, let's
    demote it to a CLUTTER_NOTE() so event backend implementers can see it.

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

commit f8fc194b3b3529bf4f3230cef00d5d0b042673bf
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Dec 7 11:02:21 2010 +0000

    clutter-score: Initialize ClutterScoreEntry::complete_id
    
    When clutter_score_append_at_marker is called instead of
    clutter_score_append the complete_id field of ClutterScoreEntry was
    being left uninitialised. When the entry is eventually freed it would
    sometimes try to disconnect an invalid signal id. This was causing
    conformance test failures for me on GLES2.

 clutter/clutter-score.c | 1 +
 1 file changed, 1 insertion(+)

commit 9d836d8ce5d95749e1b3562f1cab77d9ac27cb1e
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Dec 7 16:44:36 2010 +0000

    context: only declare arbfp cache for GL
    
    We were trying to declare and initializing an arbfp program cache for
    GLES but since the prototypes for the _hash and _equal functions were
    only available for GL this broke the GLES builds. By #ifdefing the code
    to conditionally declare/initialize for GL only this should hopefully
    fix GLES builds.

 clutter/cogl/cogl/cogl-context.c | 4 ++++
 clutter/cogl/cogl/cogl-context.h | 2 ++
 2 files changed, 6 insertions(+)

commit 67c2a1b29fa679f3a86b8ee4cae682de8391397b
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Dec 7 16:36:44 2010 +0000

    pipeline: remove spurious use of True instead of TRUE
    
    The constant 'True' is defined by Xlib which isn't used for all clutter
    builds so this replaces occurrences of True with TRUE which is defined
    by glib. This should hopefully fix the win32 builds.

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

commit 464ed7e6b7c35248c03fd0a03a8e8087e7b5e274
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Dec 3 12:01:18 2010 +0000

    arbfp: Adds an ARBfp program cache
    
    This adds a cache (A GHashTable) of ARBfp programs and before ever
    starting to code-generate a new program we will always first try and
    find an existing program in the cache. This uses _cogl_pipeline_hash and
    _cogl_pipeline_equal to hash and compare the keys for the cache.
    
    There is a new COGL_DEBUG=disable-program-caches option that can disable
    the cache for debugging purposes.

 clutter/cogl/cogl/cogl-context.c                |   6 ++
 clutter/cogl/cogl/cogl-context.h                |   2 +
 clutter/cogl/cogl/cogl-debug-options.h          |   5 ++
 clutter/cogl/cogl/cogl-debug.c                  |   8 +-
 clutter/cogl/cogl/cogl-debug.h                  |   3 +-
 clutter/cogl/cogl/cogl-pipeline-arbfp-private.h |   6 ++
 clutter/cogl/cogl/cogl-pipeline-arbfp.c         | 111 ++++++++++++++++++++----
 7 files changed, 118 insertions(+), 23 deletions(-)

commit e87c3820ee729930d4a7b84f4737b99eb26ad03d
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Nov 4 13:57:36 2010 +0000

    pipeline: Implements _cogl_pipeline_hash function
    
    This allows us to get a hash for a set of state groups for a given
    pipeline. This can be used for example to get a hash of the fragment
    processing state of a pipeline so we can implement a cache for compiled
    arbfp/glsl programs.

 clutter/cogl/cogl/cogl-color-private.h    |   5 +
 clutter/cogl/cogl/cogl-context.c          |   2 +
 clutter/cogl/cogl/cogl-pipeline-private.h |  18 +-
 clutter/cogl/cogl/cogl-pipeline.c         | 520 ++++++++++++++++++++++++++++++
 clutter/cogl/cogl/cogl-util.c             |   9 +
 clutter/cogl/cogl/cogl-util.h             |  27 ++
 6 files changed, 580 insertions(+), 1 deletion(-)

commit cc36e49ec5f06f608380fba24682a69e9b0d0a1a
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Dec 3 11:36:49 2010 +0000

    pipeline: generalize _cogl_pipeline_equal
    
    _cogl_pipeline_equal now accepts a mask of pipeline differences and layer
    differences to constrain what state will be compared. In addition a set
    of flags are passed that can tweak the comparison semantics for some
    state groups. For example when comparing layer textures we sometimes
    only need to compare the texture target and can ignore the data itself.
    
    In updating the code this patch also changes it so all required pipeline
    authorities are resolved in one step up-front instead of resolving the
    authority for each state group in turn and repeatedly having to traverse
    the pipeline's ancestry. This adds two new functions
    _cogl_pipeline_resolve_authorities and
    _cogl_pipeline_layer_resolve_authorities to handle resolving a set of
    authorities.

 clutter/cogl/cogl/cogl-journal.c          |   9 +-
 clutter/cogl/cogl/cogl-pipeline-private.h | 155 +++++++++++-----
 clutter/cogl/cogl/cogl-pipeline.c         | 287 ++++++++++++++++++++----------
 3 files changed, 312 insertions(+), 139 deletions(-)

commit 62b051951c80c31ee6874a1d156ce889350ce8be
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Dec 7 12:13:10 2010 +0000

    docs: don't dist cogl-2.0 manual if not built
    
    If not configured with --enable-cogl2-reference then don't try and dist
    the doc/references/cogl-2.0 manual. Although this means a tarball built
    this way will not be able to build the experimental cogl-2.0 manual this
    isn't considered a big problem since anyone interested in this would
    hopefully be tracking git for now or we can simply be careful to
    configure with --enable-cogl2-reference for our tarball releases.

 doc/reference/Makefile.am | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit ff646b7fc3e4528836f415e4087ee30c6547ad7d
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Dec 1 16:53:08 2010 +0000

    pipeline: remove layer->backend_priv[] array
    
    This removes the unused array of per-packend priv data pointers
    associated with every CoglPipelineLayer. This reduces the size of all
    layer allocations and avoids having to zero an array for each
    _cogl_pipeline_layer_copy.

 clutter/cogl/cogl/cogl-pipeline-arbfp.c   |  1 -
 clutter/cogl/cogl/cogl-pipeline-glsl.c    |  3 +--
 clutter/cogl/cogl/cogl-pipeline-private.h |  9 ---------
 clutter/cogl/cogl/cogl-pipeline.c         | 24 ------------------------
 4 files changed, 1 insertion(+), 36 deletions(-)

commit 1180fd159edea9b3907c186d45013348c041b216
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Dec 1 16:37:25 2010 +0000

    cogl-object: remove un-used cogl_object_get_type
    
    A non-static function named cogl_object_get_type was inadvertently added
    during the addition of the CoglObject base type, but there is no public
    prototype in the headers and it's only referenced inside cogl-object.c
    to implement cogl_handle_get_type() for compatibility. This removes the
    function since we don't want to commit to CoglObject always simply being
    a boxed type. In the future we may want to register hierarchical
    GTypeInstance based types.

 clutter/cogl/cogl/cogl-object.c | 8 +-------
 1 file changed, 1 insertion(+), 7 deletions(-)

commit ef02cb7ff203b12932697823fbcc59a7bd04ad4d
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Nov 29 21:42:06 2010 +0000

    matrix gtype: registers a boxed type for CoglMatrix
    
    To allow us to have gobject properties that accept a CoglMatrix value we
    need to register a GType. This adds a cogl_gtype_matrix_get_type function
    that will register a static boxed type called "CoglMatrix".
    
    This adds a new section to the reference manual for GType integration
    functions.

 clutter/cogl/cogl/Makefile.am            |  1 +
 clutter/cogl/cogl/cogl-gtype-private.h   | 48 ++++++++++++++++++++++++++++++++
 clutter/cogl/cogl/cogl-matrix.c          |  7 +++++
 clutter/cogl/cogl/cogl-matrix.h          | 16 +++++++++++
 clutter/cogl/cogl/cogl.h                 |  6 ++++
 doc/reference/cogl-2.0/cogl-docs.xml.in  |  6 ++++
 doc/reference/cogl-2.0/cogl-sections.txt |  6 +++-
 doc/reference/cogl/cogl-docs.xml.in      |  1 +
 doc/reference/cogl/cogl-sections.txt     |  6 ++++
 9 files changed, 96 insertions(+), 1 deletion(-)

commit c29a7526c040209a5ca0bb327f1df6a98c4d88aa
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Nov 29 18:47:10 2010 +0000

    matrix: Adds matrix_copy and _free functions
    
    As a pre-requisite for being able to register a boxed GType for
    CoglMatrix (enabling us to define gobject properties that accept a
    CoglMatrix) this adds cogl_matrix_copy and _free functions.

 clutter/cogl/cogl/cogl-matrix.c | 15 +++++++++++++++
 clutter/cogl/cogl/cogl-matrix.h | 27 +++++++++++++++++++++++++++
 2 files changed, 42 insertions(+)

commit 3edd02841b5748bbad0977ba9ccd91d65651f819
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Dec 3 16:59:52 2010 +0000

    pipeline simple optimization for _needs_blending_enabled
    
    In _cogl_pipeline_needs_blending_enabled after first checking whether
    the property most recently changed requires blending we would then
    resort to checking all other properties too in case some other state
    also requires blending. We now avoid checking all other properties in
    the case that blending was previously disabled and checking the property
    recently changed doesn't require blending.
    
    Note: the plan is to improve this further by explicitly keeping track
    of the properties that currently cause blending to be enabled so that we
    never have to resort to checking all other properties we can constrain
    the checks to those masked properties.

 clutter/cogl/cogl/cogl-pipeline.c | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

commit 9ff191bd3bfba0000547c3082e7fe6c57152bbe5
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Dec 3 16:56:54 2010 +0000

    pipeline: inline _get_parent and _get_authority
    
    This moves _cogl_pipeline_get_parent and _cogl_pipeline_get_authority
    into cogl-pipeline-private.h so they can be inlined since they have been
    seen to get quite high in profiles. Given that they both contain such
    small amounts of code the function call overhead is significant.

 clutter/cogl/cogl/cogl-pipeline-private.h | 17 +++++++++++++++++
 clutter/cogl/cogl/cogl-pipeline.c         | 17 -----------------
 2 files changed, 17 insertions(+), 17 deletions(-)

commit 3fa91efea84c2c442fcc92e8ed0df711d7e67988
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Nov 10 14:02:31 2010 +0000

    Add a COGL_DEBUG option to disable software clipping
    
    This adds a debug option called disable-software-clipping which causes
    the journal to always log the clip stack state rather than trying to
    manually clip rectangles.

 clutter/cogl/cogl/cogl-debug-options.h |  5 +++++
 clutter/cogl/cogl/cogl-debug.c         |  3 ++-
 clutter/cogl/cogl/cogl-debug.h         |  3 ++-
 clutter/cogl/cogl/cogl-journal.c       | 23 +++++++++++++----------
 4 files changed, 22 insertions(+), 12 deletions(-)

commit 62c893feee386223aebbab781171028db547d7f9
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Nov 9 19:18:37 2010 +0000

    cogl-journal: Attempt to clip manually to avoid breaking up batches
    
    Before flushing the journal there is now a separate iteration that
    will try to determine if the matrix of the clip stack and the matrix
    of the rectangle in each entry are on the same plane. If they are it
    can completely avoid the clip stack and instead manually modify the
    vertex and texture coordinates to implement the clip. The has the
    advantage that it won't break up batching if a single clipped
    rectangle is used in a scene.
    
    The software clip is only used if there is no user program and no
    texture matrices. There is a threshold to the size of the batch where
    it is assumed that it is worth the cost to break up a batch and
    program the GPU to do the clipping. Currently this is set to 8
    although this figure is plucked out of thin air.
    
    To check whether the two matrices are on the same plane it tries to
    determine if one of the matrices is just a simple translation of the
    other. In the process of this it also works out what the translation
    would be. These values can be used to translate the clip rectangle
    into the coordinate space of the rectangle to be logged. Then we can
    do the clip directly in the rectangle's coordinate space.

 clutter/cogl/cogl/cogl-context.c         |   3 +
 clutter/cogl/cogl/cogl-context.h         |   1 +
 clutter/cogl/cogl/cogl-journal-private.h |   2 +
 clutter/cogl/cogl/cogl-journal.c         | 363 ++++++++++++++++++++++++++++++-
 4 files changed, 363 insertions(+), 6 deletions(-)

commit be63fcee7ff2ef33d25efd873f9a9b79856e1577
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Nov 9 19:09:25 2010 +0000

    cogl-clip-stack: Move the struct definitions to the header
    
    It will be useful to be able to directly examine the contents of the
    clip stack within the journal code.

 clutter/cogl/cogl/cogl-clip-stack.c | 112 -----------------------------------
 clutter/cogl/cogl/cogl-clip-stack.h | 114 ++++++++++++++++++++++++++++++++++++
 2 files changed, 114 insertions(+), 112 deletions(-)

commit dc0506a1649bcea4997a68013927529451131712
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Nov 9 12:01:04 2010 +0000

    cogl-clip-stack: Don't convert rect clips to window clips
    
    Previously in cogl-clip-state.c when it detected that the current
    modelview matrix is screen-aligned it would convert the clip entry to
    a window clip. Instead of doing this cogl-clip-stack.c now contains
    the detection and keeps the entry as a rectangle clip but marks that
    it is entirely described by its scissor rect. When flusing the clip
    stack it doesn't do anything extra for entries that have this mark
    (because the clip will already been setup by the scissor). This is
    needed so that we can still track the original rectangle coordinates
    and modelview matrix to help detect when it would be faster to modify
    the rectangle when adding it to the journal rather than having to
    break up the batch to set the clip state.

 clutter/cogl/cogl/cogl-clip-stack.c | 109 +++++++++++++++++++++++++++---------
 clutter/cogl/cogl/cogl-clip-state.c |  55 ------------------
 2 files changed, 83 insertions(+), 81 deletions(-)

commit 22be07c3b5ec7d8d5e5e0447599425026cbb7bd8
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Nov 25 21:08:45 2010 +0000

    cogl-journal: Defer expanding the vertices until uploading
    
    When logging a quad we now only store the 2 vertices representing the
    top left and bottom right of the quad. The color is only stored once
    per entry. Once we come to upload the data we expand the 2 vertices
    into four and copy the color to each vertex. We do this by mapping the
    buffer and directly expanding into it. We have to copy the data before
    we can render it anyway so it doesn't make much sense to expand the
    vertices before uploading and this way should save some space in the
    size of the journal. It also makes it slightly easier if we later want
    to do pre-processing on the journal entries before uploading such as
    doing software clipping.
    
    The modelview matrix is now always copied to the journal entry whereas
    before it would only be copied if we aren't doing software
    transform. The journal entry struct always has the space for the
    modelview matrix so hopefully it's only a small cost to copy the
    matrix.
    
    The transform for the four entries is now done using
    cogl_matrix_transform_points which may be slightly faster than
    transforming them each individually with a call to
    cogl_matrix_transfom.

 clutter/cogl/cogl/cogl-context.h |   1 +
 clutter/cogl/cogl/cogl-journal.c | 273 ++++++++++++++++++++++++---------------
 2 files changed, 173 insertions(+), 101 deletions(-)

commit a7d88e15270e73025b19f745f21473b832fb1754
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Dec 2 21:08:30 2010 +0000

    Revert "cogl: Remove the generated array size for cogl_tex_coord_in"
    
    This reverts commit 4cfe90bde275dbb952645397aa2ba2d6f6e2f3ba.
    
    GLSL 1.00 on GLES doesn't support unsized arrays so the whole idea
    can't work.
    
    Conflicts:
    
    	clutter/cogl/cogl/cogl-pipeline-glsl.c

 clutter/cogl/cogl/cogl-context.c                 |   2 +-
 clutter/cogl/cogl/cogl-pipeline-arbfp.c          |   3 +-
 clutter/cogl/cogl/cogl-pipeline-fixed.c          |   3 +-
 clutter/cogl/cogl/cogl-pipeline-glsl.c           |  52 ++++-
 clutter/cogl/cogl/cogl-pipeline-opengl-private.h |   3 +-
 clutter/cogl/cogl/cogl-pipeline-opengl.c         |   6 +-
 clutter/cogl/cogl/cogl-pipeline-private.h        |   3 +-
 clutter/cogl/cogl/cogl-shader-boilerplate.h      |   1 -
 clutter/cogl/cogl/cogl-shader-private.h          |   6 +
 clutter/cogl/cogl/cogl-shader.c                  | 229 +++++++++++++++++------
 clutter/cogl/cogl/cogl-vertex-attribute.c        |   4 +-
 clutter/cogl/cogl/cogl.c                         |   9 +-
 clutter/cogl/cogl/cogl2-path.c                   |   4 +-
 13 files changed, 250 insertions(+), 75 deletions(-)

commit e0ce4cee8c6fb8d40d565cf3890942a0bc898bc0
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Thu Dec 2 15:46:40 2010 +0000

    win32: export TARGET and ROOT_DIR in env.sh
    
    So children of the shell sourcing it can use them (eg. buildbot slaves)

 build/mingw/mingw-cross-compile.sh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit c1878316e02dce0ff10c8e81ee3fa3b6ea9bb9cb
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Thu Dec 2 15:41:43 2010 +0000

    win32: Detect the mingw32 cross compiler on Fedora
    
    Fedora mingw32 cross compiler is prefix with i686-pc-mingw32-.

 build/mingw/mingw-cross-compile.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit e73d5b30bbb927eae5ae2cd270df9d79c821c109
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Thu Dec 2 14:03:01 2010 +0000

    win32: Update glib and cairo version in mingw-cross-compile.sh
    
    Clutter has moved on and now depends on glib 2.26 and cairo 1.10
    (for cairo-gobject).

 build/mingw/mingw-cross-compile.sh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit dd5431ef382a59337cfda04bc31cebc28085f17f
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Dec 2 16:30:55 2010 +0000

    cogl-pipeline-glsl: Fix reusing shaders for shared ancestors
    
    The check for whether we can reuse a program we've already generated
    was only being done if the pipeline already had a
    glsl_program_state. When there is no glsl_program_state it then looks
    for the nearest ancestor it can share the program with. It then
    wasn't checking whether that ancestor already had a GL program so it
    would start generating the source again. It wouldn't however compile
    that source again because _cogl_pipeline_backend_glsl_end does check
    whether there is already a program. This patch moves the check until
    after it has found the glsl_program_state, whether or not it was found
    from an ancestor or as its own state.

 clutter/cogl/cogl/cogl-pipeline-glsl.c | 32 +++++++++++++++-----------------
 1 file changed, 15 insertions(+), 17 deletions(-)

commit 4cfe90bde275dbb952645397aa2ba2d6f6e2f3ba
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Dec 2 12:27:29 2010 +0000

    cogl: Remove the generated array size for cogl_tex_coord_in
    
    Under GLES2 we were defining the cogl_tex_coord_in varying as an array
    with a size determined by the number of texture coordinate arrays
    enabled whenever the program is used. This meant that we may have to
    regenerate the shader with a different size if the shader is used with
    more texture coord arrays later. However in OpenGL the equivalent
    builtin varying gl_TexCoord is simply defined as:
    
    varying vec4 gl_TexCoord[]; /* <-- no size */
    
    GLSL is documented that if you declare an array with no size then you
    can only access it with a constant index and the size of the array
    will be determined by the highest index used. If you want to access it
    with a non-constant expression you need to redeclare the array
    yourself with a size.
    
    We can replicate the same behaviour in our Cogl shaders by instead
    declaring the cogl_tex_coord_in with no size. That way we don't have
    to pass around the number of tex coord attributes enabled when we
    flush a material. It also means that CoglShader can go back to
    directly uploading the source string to GL when cogl_shader_source is
    called so that we don't have to keep a copy of it around.
    
    If the user wants to access cogl_tex_coord_in with a non-constant
    index then they can simply redeclare the array themself. Hopefully
    developers will expect to have to do this if they are accustomed to
    the gl_TexCoord array.

 clutter/cogl/cogl/cogl-context.c                 |   2 +-
 clutter/cogl/cogl/cogl-pipeline-arbfp.c          |   3 +-
 clutter/cogl/cogl/cogl-pipeline-fixed.c          |   3 +-
 clutter/cogl/cogl/cogl-pipeline-glsl.c           |  46 +----
 clutter/cogl/cogl/cogl-pipeline-opengl-private.h |   3 +-
 clutter/cogl/cogl/cogl-pipeline-opengl.c         |   6 +-
 clutter/cogl/cogl/cogl-pipeline-private.h        |   3 +-
 clutter/cogl/cogl/cogl-shader-boilerplate.h      |   1 +
 clutter/cogl/cogl/cogl-shader-private.h          |   6 -
 clutter/cogl/cogl/cogl-shader.c                  | 229 ++++++-----------------
 clutter/cogl/cogl/cogl-vertex-attribute.c        |   4 +-
 clutter/cogl/cogl/cogl.c                         |   9 +-
 clutter/cogl/cogl/cogl2-path.c                   |   4 +-
 13 files changed, 73 insertions(+), 246 deletions(-)

commit 50849ac1fdc7840cced9aa1730b5d3f7fd4d5d02
Author: Elliot Smith <elliot.smith@intel.com>
Date:   Tue Nov 30 16:52:01 2010 +0000

    cookbook: Use new API to reverse timeline
    
    clutter_timeline_set_reverse() can be used to
    automatically reverse a timeline's direction each time
    it completes, so use that in looping animation recipe and
    examples.

 doc/cookbook/animations.xml                        | 25 ++++++++++++++++------
 .../examples/animations-looping-implicit.c         | 24 +--------------------
 2 files changed, 19 insertions(+), 30 deletions(-)

commit 4f17bf3bcc5c017ef14a876f172ba3b1c3590317
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Nov 30 18:55:38 2010 +0000

    keysyms: Update the list
    
    Add TouchpadOn and TouchpadOff from the X11 key symbols.

 clutter/clutter-keysyms-compat.h | 2 ++
 clutter/clutter-keysyms.h        | 2 ++
 2 files changed, 4 insertions(+)

commit 87a72d188e7d986686106859a4d4f229b20dfe7a
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Dec 1 15:48:37 2010 +0000

    cogl-pipeline: Fix comparing layer states for finding codgen authority
    
    When compiling for GLES2, the codegen is affected by state other than
    the layers. That means when we find an authority for the codegen state
    we can't directly look at authority->n_layers to determine the number
    of layers because it isn't necessarily the layer state authority. This
    patch changes it to use cogl_pipeline_get_n_layers instead. Once we
    have two authorities that differ in codegen state we then compare all
    of the layers to decide if they would affect codegen. However it was
    ignoring the fact that the authorities might also differ by the other
    codegen state. This path also adds an extra check for whether
    _cogl_pipeline_compare_differences contains any codegen bits other
    than COGL_PIPELINE_STATE_LAYERS.

 clutter/cogl/cogl/cogl-pipeline.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

commit f620d53054e50e4ddcf656794a38d13c21d0dbf6
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Dec 1 14:39:28 2010 +0000

    cogl-pipeline: Fix the codgen authority for texture target changes
    
    When determining if a layer would require a different shader to be
    generated it needs to check a certain set of state changes and it
    needs to check whether the texture target is different. However it was
    checking whether texture texture was different only if the other state
    was also different which doesn't make any sense. It also only checked
    the texture difference if that was the only state change which meant
    that effectively the code was impossible to reach. Now it does the
    texture target check indepent of the other state changes.

 clutter/cogl/cogl/cogl-pipeline.c | 29 ++++++++++++++---------------
 1 file changed, 14 insertions(+), 15 deletions(-)

commit a38fa7a2dfc3a169777ba172d145178b9b068d73
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Nov 30 22:28:38 2010 +0000

    cogl-pipeline-fixed: Use the correct state flag for combine constant
    
    The fixed pipeline backend wasn't correctly flushing the combine
    constant because it was using the wrong flag to determine if the
    combine constant has changed since the last flushed material.

 clutter/cogl/cogl/cogl-pipeline-fixed.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 499a370ee326ea24fd0fff55466877a6f286d9fd
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Nov 30 22:17:17 2010 +0000

    cogl-pipeline-opengl: Fix enabling previously disabled units
    
    When enabling a unit that was disabled from a previous flush pipeline
    it was forgetting to rebind the right texture unit so it wouldn't
    work. This was causing the redhand to disappear when using the fixed
    function backend in test-cogl-multitexture if anything else is added
    to the scene.

 clutter/cogl/cogl/cogl-pipeline-opengl.c | 1 +
 1 file changed, 1 insertion(+)

commit 17a98875d33c872800c04c26338427970b88b308
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Nov 30 22:15:40 2010 +0000

    cogl-pipeline: Add more ignored state changes for program generation
    
    For shader generation backends we don't need to worry about changes to
    the texture object and changing the user matrix. The missing user
    matrix flag was causing test-cogl-multitexture to regenerate the
    shader every frame.

 clutter/cogl/cogl/cogl-pipeline-arbfp.c | 5 ++++-
 clutter/cogl/cogl/cogl-pipeline-glsl.c  | 5 ++++-
 2 files changed, 8 insertions(+), 2 deletions(-)

commit 1564418b3feb9ab010c225129bc1b79b7c882318
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Tue Nov 30 16:36:56 2010 +0000

    cogl: Revert "build: Remove unused variable"
    
    Having ctx here produces a warning on GLES. However it's needed for Big
    GL as we have at the top of the file:
    
     #ifdef HAVE_COGL_GL
     #define glClientActiveTexture ctx->drv.pf_glClientActiveTexture
     #endif
    
    This reverts commit 27a3a2056a245aca64b8e3a7d82b7976c13e897a.

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

commit 8ee91794477c82171e0b165fb9e10655798682a0
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Tue Nov 30 16:22:49 2010 +0000

    egl: Fix compilation with EGLX
    
    That what happens when you test things only with 2 configure options
    instead of 3. The 2 tested compile, the third one breaks. Another good
    catch for the eglx bot!

 clutter/egl/clutter-backend-egl.c | 4 ++++
 1 file changed, 4 insertions(+)

commit bbbd91e581ca6d7408c1f6fa2f1b6d50d2c4db2b
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Tue Nov 30 16:03:26 2010 +0000

    cogl: Fix unused variable warning with GLES2
    
    This shader variable is only used with big GL.

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

commit 9ad55edf24f74353c095153e370d6f648f4e5593
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Tue Nov 30 10:06:12 2010 -0500

    egl: Don't try to use stage_x11 with non-X winsys
    
    The access to stage_x11 has to be protected by COGL_HAS_X11_SUPPORT.

 clutter/egl/clutter-stage-egl.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

commit 4ceb95d2ca5f5a52a77bfcada47d5befc6ab1fd1
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Tue Nov 30 14:50:13 2010 +0000

    evdev: Add a comment to revisit the GSource management with glib 2.28
    
    With glib 2.28, we'll be able to have one GSource per device manager
    with child sources for earch device. Make a note to update the code
    in a few months.

 clutter/evdev/clutter-device-manager-evdev.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit 27a3a2056a245aca64b8e3a7d82b7976c13e897a
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Fri Nov 19 14:51:39 2010 -0500

    build: Remove unused variable
    
    and be 100% warning free again.

 clutter/cogl/cogl/cogl.c | 2 --
 1 file changed, 2 deletions(-)

commit 9ba5447c9bbbd93808a56d9968b2e60f20bbd328
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Fri Nov 19 14:31:51 2010 -0500

    evdev: Enable the compilation of the evdev backend for eglnative
    
    Not tested (but checked that it compiles).
    
    There's no reason to only enable the check for the cex100. Hopefully
    should work.
    
    We make sure not to enable both the evdev and the tslib backend at the
    same time as the DeviceManager is a singleton and we can't have both
    subclasses at the same time for now.

 configure.ac | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

commit bce4c87232bea82560725fa44e079088d75a367f
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Fri Nov 19 14:19:52 2010 -0500

    evdev: Don't oveflow when translating buttons to masks
    
    An array is used to translate the button to its mask. Clutter defines
    the masks for button 1 to 5 but we report BTN_LEFT..BTN_TASK ie
    0x110..0x117. We need to pad the array for the translation not to access
    random data for buttons between 0x115 and 0x117.

 clutter/evdev/clutter-device-manager-evdev.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit ac431ac21db043d42fa5b0be604a155503846012
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Thu Nov 11 19:11:27 2010 -0500

    input-device: Warn if the device has no associated stage
    
    Discarding the event without any warning when the device has no
    associated stage makes it hard to find the bug for people implementing
    new event backends. We should really warn for that abnormal condition in
    _clutter_input_device_update().

 clutter/clutter-input-device.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

commit c20beabf93a97c3e0d58d8512aa5459ca670d3bf
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Thu Nov 11 19:07:35 2010 -0500

    evdev: Add mouse support
    
    We know support EV_REL events comming from evdev devices. This addition
    is pretty straigthforward, it adds a x,y per GSource listening to a
    evdev device, updates from EL_REL (relative) events and craft new
    ClutterMotionEvents. As for buttons, BTN_LEFT..BTN_TASK are translated
    to ClutterButtonEvents with 1..8 as button number.

 clutter/evdev/clutter-device-manager-evdev.c | 223 ++++++++++++++++++++++++---
 tests/interactive/test-events.c              |   8 +-
 2 files changed, 204 insertions(+), 27 deletions(-)

commit 94c2812d720bbdd3db3d779f1f96438b65ae383d
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Tue Nov 9 13:14:37 2010 -0500

    evdev: Only create a xkbcommon mapping for keyboard devices

 clutter/evdev/clutter-device-manager-evdev.c | 44 +++++++++++++++++-----------
 1 file changed, 27 insertions(+), 17 deletions(-)

commit 7cd6ba282865491d1e60e830676a363c72f21c25
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Tue Nov 9 13:02:53 2010 -0500

    evdev: Close the device gracefully in case of a read() error
    
    Even with udev, the read fails before udev has a chance to signal the
    change. Hence (and to handle errors gracefully anyway), let's remove the
    device from the device manager in case of a read() error.

 clutter/evdev/clutter-device-manager-evdev.c | 20 +++++++++++++++++++-
 1 file changed, 19 insertions(+), 1 deletion(-)

commit afd279dd7684bfd28b07cf668a1aaf213239cfd4
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Tue Nov 9 12:50:23 2010 -0500

    evdev: Merge clutter-event-evdev.[ch] into the device manager
    
    The device manager now fully owns the GSources corresponding to the
    devices it manages. This will allow not only to remove the source when
    udev signals a device removal but also handle read() errors gracefully
    by removing the faulty device from the manager.

 clutter/Makefile.am                          |   2 -
 clutter/egl/clutter-backend-egl.c            |   1 -
 clutter/evdev/clutter-device-manager-evdev.c | 320 ++++++++++++++++++++++-
 clutter/evdev/clutter-device-manager-evdev.h |   3 +
 clutter/evdev/clutter-event-evdev.c          | 367 ---------------------------
 clutter/evdev/clutter-event-evdev.h          |  36 ---
 6 files changed, 321 insertions(+), 408 deletions(-)

commit afee3b009cff5149a1a97aadb3d8009c7b4a26f8
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Tue Nov 9 11:56:26 2010 -0500

    evdev: Support hotplug (addition/removal) of evdev devices
    
    Just connect to the GUdevClient "uevent" signal and deals with
    "add"/"remove" commands. This drives the installation/removal of
    GSource to listen to the device.

 clutter/evdev/clutter-device-manager-evdev.c | 59 ++++++++++++++++++++++++++++
 clutter/evdev/clutter-event-evdev.c          | 49 +++++++++++++++++++++++
 2 files changed, 108 insertions(+)

commit b83a4813a4fbf6818bed9f15d8fcf1d7c3717c9a
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Mon Nov 8 11:38:16 2010 -0500

    evdev: Make sure we only add evdev devices
    
    Let's use the sysfs path of the device to make sure we only load evdev
    device, not legacy mousedev ones for instance. We rely on the sysfs
    API/ABI guarantees and look for devices finishing by /input%d/event%d.

 clutter/evdev/clutter-device-manager-evdev.c | 35 ++++++++++++++++++++++------
 1 file changed, 28 insertions(+), 7 deletions(-)

commit c6493885c3f18042f39273a2efa4fc3616d932b2
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Thu Nov 4 10:38:32 2010 -0400

    evdev: First stab at an evdev backend
    
    This backend is a event backend that can be enabled for EGL (for now).
    It uses udev (gudev) to query input devices on a linux system, listens to
    keyboard events from input devices and xkbcommon to translate raw key
    codes into key keysyms.
    
    This commit only supports key events, more to follow.

 clutter/Makefile.am                          |  20 ++
 clutter/clutter-device-manager-private.h     |   1 +
 clutter/clutter-input-device.h               |   8 +
 clutter/egl/clutter-backend-egl.c            |  49 ++++-
 clutter/egl/clutter-backend-egl.h            |   6 +
 clutter/evdev/clutter-device-manager-evdev.c | 276 +++++++++++++++++++++++
 clutter/evdev/clutter-device-manager-evdev.h |  58 +++++
 clutter/evdev/clutter-event-evdev.c          | 318 +++++++++++++++++++++++++++
 clutter/evdev/clutter-event-evdev.h          |  36 +++
 clutter/evdev/clutter-input-device-evdev.c   | 197 +++++++++++++++++
 clutter/evdev/clutter-input-device-evdev.h   |  66 ++++++
 configure.ac                                 |  12 +-
 12 files changed, 1034 insertions(+), 13 deletions(-)

commit 9f5f62b4b53da3354b35789a8c04b83272252b3b
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Thu Nov 4 10:09:28 2010 -0400

    evdev: Fix the unicode_value for new ClutterEvents
    
    Looking at what the X11 backend does: the unicode value is being
    translated to the unicode codepoint of the symbol if possible. Let's do
    the same then.
    
    Before that, key events for say KEY_Right (0xff53) had the unicode_value
    set to the keysym, which meant "This key event is actually printable and
    is Unicode codepoint is 0xff53", which lead to interesting results.

 clutter/evdev/clutter-xkb-utils.c | 71 ++++++++++++++++++++++++++++++++++++++-
 1 file changed, 70 insertions(+), 1 deletion(-)

commit ef5256ec25e6261947e107256ce36ead42fcab88
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Thu Nov 4 06:59:22 2010 -0400

    evdev: Factor out the xkbcommon code from the wayland client backend
    
    The wayland client code has support for translating raw linux input
    device key codes coming from the wayland compositor into key symbols
    thanks to libxkbcommon.
    
    A backend directly listening to linux input devices (called evdev, just
    like the Xorg one) could use exactly the same code for the translation,
    so abstract it a bit in a separate file.

 clutter/Makefile.am                            |  11 ++-
 clutter/evdev/clutter-xkb-utils.c              | 111 +++++++++++++++++++++++++
 clutter/evdev/clutter-xkb-utils.h              |  41 +++++++++
 clutter/wayland/clutter-input-device-wayland.c |  46 +++-------
 4 files changed, 169 insertions(+), 40 deletions(-)

commit b5a9de1a23a58c1d52f5a394696a8532dc42befe
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Nov 30 10:35:17 2010 +0000

    moduleset: Add gstreamer and gst-plugins-good

 build/clutter.modules | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

commit 1d153fa860850e4d24df16a64b499a5690fbfeab
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Nov 30 10:34:59 2010 +0000

    moduleset: Disable stand-alone Cally

 build/clutter.modules | 2 ++
 1 file changed, 2 insertions(+)

commit 085962a361d1150f3f59a1e4925e89814a86c931
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Nov 30 10:34:38 2010 +0000

    moduleset: Switch gtk2 to the 2.24 branch

 build/clutter.modules | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 5e085e8d7f26e5191d67657ae4eacf3dab2e9906
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Nov 29 14:21:21 2010 +0000

    Post-release version bump to 1.5.9

 configure.ac       |   2 +-
 po/clutter-1.0.pot | 408 ++++++++++++++++++++++++++---------------------------
 po/de.po           | 406 ++++++++++++++++++++++++++--------------------------
 po/fr.po           | 406 ++++++++++++++++++++++++++--------------------------
 po/id.po           | 406 ++++++++++++++++++++++++++--------------------------
 po/it.po           | 406 ++++++++++++++++++++++++++--------------------------
 po/pl.po           | 406 ++++++++++++++++++++++++++--------------------------
 po/zh_CN.po        | 406 ++++++++++++++++++++++++++--------------------------
 8 files changed, 1423 insertions(+), 1423 deletions(-)

commit 8cebec6bdcefe84c2c663fce380c24f5ac88cfa4
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Nov 29 14:09:09 2010 +0000

    Release Clutter 1.5.8 (snapshot)

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d046df8e6f1c1dfdf4144b1cbe2494d71ac3adc4
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Nov 29 10:55:49 2010 +0000

    cogl-shader.c: Don't add the common boilerplate twice
    
    In 6246c2bd6 I moved the code to add the boilerplate to a shader to a
    separate function and also made it so that the common boilerplate is
    added as a separate string to glShaderSource. However I didn't notice
    that the #define for the vertex and fragment shaders already includes
    the common part so it was being added twice. Mesa seems to accept this
    but it was causing problems on the IMG driver because COGL_VERSION was
    defined twice.

 clutter/cogl/cogl/cogl-shader.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

commit ae300dc8e08d28dad821f7c843fe2b01783efb5a
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Nov 29 10:51:40 2010 +0000

    cogl-pipeline-glsl: Use char* instead of GLchar*
    
    It appears that some GLES2 headers don't define GLchar and it works
    just as well to use a regular char.

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

commit 08308fd3978dff227b8e0c8e1388a590bde29f25
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Nov 29 12:23:14 2010 +0000

    docs: Close a tag

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

commit 556c938b4d6d3cb4743e00d95c0347e483d847a2
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Nov 29 12:01:20 2010 +0000

    Update NEWS

 NEWS | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 038fe708f86efda95237915f8bce7fd1afb3a262
Merge: 67143bd c9d0f8b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Nov 29 11:56:36 2010 +0000

    Merge remote branch 'elliot/cookbook-animations-scaling'
    
    * elliot/cookbook-animations-scaling:
      cookbook: Add recipe for animated scaling of an actor
      cookbook: Add example of scaling a texture
      cookbook: Added "animated scaling" recipe skeleton
      cookbook: Added animated scaling example

commit 67143bd846c2b39ce94779d7ab2b5bd48e58d1cd
Author: Chris Lord <chris@linux.intel.com>
Date:   Thu Nov 25 15:11:42 2010 +0000

    text: Optimise get_preferred_height for single-line-mode
    
    Don't calculate an extra layout in clutter_text_get_preferred_height for
    single-line strings, when it's unnecessary. There's no need to set the
    width of a layout when in single-line mode, as wrapping will not happen.

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

commit e1b58d9407845a249bc59cd270be50d43d34126b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Nov 29 11:19:16 2010 +0000

    Update NEWS file

 NEWS | 32 ++++++++++++++++++++++++++++++--
 1 file changed, 30 insertions(+), 2 deletions(-)

commit 850a35f069368b645ceb8e027b6b27863dba308b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Nov 29 10:59:16 2010 +0000

    shader-effect: Remove unused function
    
    The reset_uniforms() internal function is not used any more because the
    CoglProgram cannot be reset post-creation - hence the uniforms cannot
    change.

 clutter/clutter-shader-effect.c | 50 +++++++++++++----------------------------
 1 file changed, 16 insertions(+), 34 deletions(-)

commit 08087c965bf312513f98a53bf3220e92c372d131
Author: Neil Roberts <neil@linux.intel.com>
Date:   Sat Nov 27 16:26:20 2010 +0000

    ClutterShaderEffect: Don't throw away the program for a new actor
    
    Previously when the shader effect is used with a new actor it would
    end up throwing away the old program. I don't think this is neccessary
    and it means if you use an effect to temporarily bind to an actor then
    it will recompile the shader whenever it is applied.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2454

 clutter/clutter-shader-effect.c | 42 +++++++++++++++++++----------------------
 1 file changed, 19 insertions(+), 23 deletions(-)

commit 2dc9e0dc2941a1f805e71a656585037ced0ed721
Author: Neil Roberts <neil@linux.intel.com>
Date:   Sat Nov 27 16:27:59 2010 +0000

    ClutterOffscreenEffect: Don't throw away the material for a new actor
    
    When a new actor is set for ClutterOffscreenEffect it would throw away
    the old material. I don't think there is anything specifically tied to
    the actor in the material so throwing away just loses Cogl's cached
    state about the material. This ends up relinking the shader every time
    a new actor is set in ClutterShaderEffect.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2454

 clutter/clutter-offscreen-effect.c | 6 ------
 1 file changed, 6 deletions(-)

commit b63e9ee8f8717dbf73e15df1e9a9d115dcb45504
Author: Tomeu Vizoso <tomeu.vizoso@collabora.co.uk>
Date:   Sat Nov 27 16:07:01 2010 +0100

    Don't bail out from creating the FBO if we don't have it yet.
    
    This happens when reattaching an effect to another actor.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2453

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

commit 47d63c1c550776de52841f3d5508f20b48f5d722
Author: Tomeu Vizoso <tomeu.vizoso@collabora.co.uk>
Date:   Sat Nov 27 16:04:50 2010 +0100

    Set the signal handler to 0 when disconnecting it.
    
    Otherwise we'll try to disconnect it again later.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2452

 clutter/clutter-actor-meta.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 215d87abe9ccfe98cbf0e5e73f5c8edf4106a7ce
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Nov 29 08:55:13 2010 +0000

    shader-effect: Zero out ShaderUniform
    
    Do not use the compiler to zero the first field of the GValue member,
    since it's apparently non-portable. As we're allocating memory anyway we
    can let the slice allocator do the zero-ing for us.
    
    Mentioned in: http://bugzilla.clutter-project.org/show_bug.cgi?id=2455

 clutter/clutter-shader-effect.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit 21e47d4280e27393d7510e232a1b1ee19b426032
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Nov 26 15:23:15 2010 +0000

    cogl_pipeline_equal: Fix the comparison for layer texture equality
    
    Before commit 49898d43 CoglPipeline would compare whether a pipeline
    layer's texture is equal by fetching the underlying GL handle. I
    changed that so that it would only compare the CoglHandles because
    that commit removes the GL handle texture overrides and sliced
    textures instead log the underlying primitive texture. However I
    forgot that the primitives don't always use
    _cogl_texture_foreach_sub_texture_in_region when the quad fits within
    the single texture so it won't use a texture override. This meant that
    atlas textures and sub textures get logged with the atlas handle so
    the comparison still needs to be done using the GL handles. It might
    be nice to add a CoglTexture virtual to get the underlying primitive
    texture instead to avoid having the pipeline poke around with GL
    handles.

 clutter/cogl/cogl/cogl-pipeline.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

commit b424bd75124c4dc34510b056376a7f04f4620e53
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Nov 1 13:53:16 2010 +0000

    tests: Adds test-cogl-perf micro benchmark
    
    This is mostly a stub, starting point for a one-stop Cogl
    micro-benchmarking tool. The first test it adds is one that tries to
    hammer the Cogl journal, but no doubt there are lots of other things we
    should be regularly testing. Currently the aim is that the tool will be
    able to also generate reports which we can collect to keep track of
    performance changes over time.

 tests/micro-bench/Makefile.am      |   4 +-
 tests/micro-bench/test-cogl-perf.c | 161 +++++++++++++++++++++++++++++++++++++
 2 files changed, 164 insertions(+), 1 deletion(-)

commit 58a467c9270ec325431fc963aa8a862ae69fcabf
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Nov 25 20:12:36 2010 +0000

    primitives: avoid leaking polygon override materials
    
    If we have to make override changes to the user's source material to
    handle cogl_polygon then we need to make sure we unref the override
    material at the end.

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

commit 01b93537ab9743dfd6aa2f0c3d4499420ee860cd
Author: Alexandre Quessy <alexandre@quessy.net>
Date:   Thu Nov 25 13:13:51 2010 -0500

    Fixed "the the" repetitions in some doc strings
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2450

 clutter/clutter-actor.c                | 6 +++---
 clutter/clutter-stage.c                | 2 +-
 clutter/clutter-text.c                 | 2 +-
 clutter/cogl/cogl/cogl-fixed.c         | 2 +-
 clutter/cogl/cogl/cogl-vertex-buffer.c | 2 +-
 doc/cookbook/animations.xml            | 2 +-
 doc/cookbook/events.xml                | 2 +-
 7 files changed, 9 insertions(+), 9 deletions(-)

commit 3729e47ef68dd0f4257563985d784b687acce5d2
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Nov 25 13:19:59 2010 +0000

    pipeline: Simplify layer change notifications to backend
    
    Previously we used the layers->backend_priv[] members to determine when
    to notify backends about layer changes, but it entirely up to the
    backends if they want to associate private state with layers, even
    though they may still be interested in layer change notifications (they
    may associate layer related state with the owner pipeline).
    
    We now make the observation that in
    _cogl_pipeline_backend_layer_change_notify we should be able to assume
    there can only be one backend currently associated with the layer
    because we wouldn't allow changes to a layer with multiple dependants.
    This means we can determine the backend to notify by looking at the
    owner pipeline instead.

 clutter/cogl/cogl/cogl-pipeline.c | 22 ++++++++++------------
 1 file changed, 10 insertions(+), 12 deletions(-)

commit 6ddb8397110f6e6998e0262e5d3dd604cd93d670
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Nov 25 10:56:50 2010 +0000

    clutter-offscreen-effect: Don't recreate the material when FBO changes
    
    Previously whenever the size of the FBO changes it would create a new
    material and attach the texture to it. This is not good for Cogl
    because it throws away any cached state for the material. In
    test-rotate the size of the FBO changes constantly so it effectively
    uses a new material every paint. For shader effects this also ends up
    relinking the shader every paint because the linked programs are part
    of the material state.

 clutter/clutter-offscreen-effect.c | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

commit 1b2a748d6c180454f0501859b4b02dc8c94d75e0
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Nov 24 18:37:47 2010 +0000

    cogl-context: Get rid of the features_cached member
    
    The features_cached member of CoglContext is intended to mark when
    we've calculated the features so that we know if they are ready in
    cogl_get_features. However we always intialize the features while
    creating the context so features_cached will never be FALSE so it's
    not useful. We also had the odd behaviour that the COGL_DEBUG feature
    overrides were only applied in the first call to
    cogl_get_features. However there are other functions that use the
    feature flags such as cogl_features_available that don't use this
    function so in some cases the feature flags will be interpreted before
    the overrides are applied. This patch makes it always initialize the
    features and apply the overrides immediately while creating the
    context. This fixes a problem with COGL_DEBUG=disable-arbfp where the
    first material flushed is done before any call to cogl_get_features so
    it may still use ARBfp.

 clutter/cogl/cogl/cogl-context.c          | 24 +++++++++++++++++++++++-
 clutter/cogl/cogl/cogl-context.h          |  1 -
 clutter/cogl/cogl/cogl.c                  | 24 ------------------------
 clutter/cogl/cogl/driver/gl/cogl-gl.c     |  1 -
 clutter/cogl/cogl/driver/gles/cogl-gles.c |  1 -
 5 files changed, 23 insertions(+), 28 deletions(-)

commit b9176e8672fa56cf627b3d47e06598338d32e5ea
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Nov 24 17:42:34 2010 +0000

    Lower the priority of the GLSL pipeline backend
    
    Now that the GLSL backend can generate code it can effectively handle
    any pipeline unless there is an ARBfp program. However with current
    open source GL drivers the ARBfp compiler is more stable so it makes
    sense to prefer ARBfp when possible. The GLSL backend is also lower
    than the fixed function backend on the assumption that any driver that
    supports GLSL will also support ARBfp so it's quicker to try the fixed
    function backend next.

 clutter/cogl/cogl/cogl-pipeline-private.h | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit d19f6212ce84894a79554f183d001deb25464721
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Nov 24 17:29:00 2010 +0000

    Add a COGL_DEBUG option to disable the fixed function pipeline backend
    
    This adds COGL_DEBUG=disable-fixed to disable the fixed function
    pipeline backend. This is needed to test the GLSL shader generation
    because otherwise the fixed function backend would always override it.

 clutter/cogl/cogl/cogl-debug-options.h  |  5 +++++
 clutter/cogl/cogl/cogl-debug.c          |  1 +
 clutter/cogl/cogl/cogl-debug.h          | 15 ++++++++-------
 clutter/cogl/cogl/cogl-pipeline-fixed.c |  3 +++
 4 files changed, 17 insertions(+), 7 deletions(-)

commit 577d65c2c964aba9046aa07ef76aaf1a99c32b70
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Nov 24 17:33:07 2010 +0000

    Don't use the fixed function backend if there is a user program
    
    The fixed function pipeline backend can't handle a user program so it
    should bail out if one is given.

 clutter/cogl/cogl/cogl-pipeline-fixed.c | 6 ++++++
 1 file changed, 6 insertions(+)

commit aa498072e075cc1ef4a85a0d14fb7b78ba749e3a
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Nov 24 17:37:55 2010 +0000

    Add a warning message when no usable Cogl pipeline backend is found
    
    If none of the pipeline backends can handle the state then it now
    displays a warning so the developer has a chance to work out what's
    going on.

 clutter/cogl/cogl/cogl-pipeline-opengl.c | 3 +++
 1 file changed, 3 insertions(+)

commit 289e880efd4b7e2434619cbbe18ae444d4c52fd8
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Nov 24 15:30:56 2010 +0000

    cogl-pipeline-glsl: Don't use gl_PointCoord on OpenGL
    
    We don't want to use gl_PointCoord to implement point sprites on big
    GL because in that case we already use glTexEnv(GL_COORD_REPLACE) to
    replace the texture coords with the point sprite coords. Although GL
    also supports the gl_PointCoord variable, it requires GLSL 1.2 which
    would mean we would have to declare the GLSL version and check for
    it. We continue to use gl_PointCoord for GLES2 because it has no
    glTexEnv function.

 clutter/cogl/cogl/cogl-pipeline-glsl.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

commit 9c32d07453fbc06c44e8c0fca6ef6e85f23ebf0b
Author: Neil Roberts <neil@linux.intel.com>
Date:   Sat Jul 17 14:11:02 2010 +0100

    Add a conformance test that uses a vertex shader with no frag shader
    
    This creates a material which users a layer to override the color of
    the rectangle. A simple vertex shader is then created which just
    emulates the fixed function pipeline. No fragment shader is
    added. This demonstrates a bug where the layer state is getting
    ignored when a vertex shader is in use.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2221

 tests/conform/Makefile.am                    |   1 +
 tests/conform/test-cogl-just-vertex-shader.c | 135 +++++++++++++++++++++++++++
 tests/conform/test-conform-main.c            |   2 +
 3 files changed, 138 insertions(+)

commit a50010fb408294dce2d1205fe3a70aeead39c192
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Nov 23 14:47:17 2010 +0000

    Remove the fragment shader generation from the GLES2 wrapper
    
    The GLES2 wrapper no longer needs to generate any fragment shader
    state because the GLSL pipeline backend will always give the wrapper a
    custom fragment shader. This simplifies a lot of the state comparison
    done by the wrapper. The fog generation is also removed even though
    it's actually part of the vertex shader because only the fixed
    function pipeline backend actually calls the fog functions so it would
    be disabled when using any of the other backends anyway. We can fix
    this when the two shader backends also start generating vertex
    shaders.

 clutter/cogl/cogl/Makefile.am                      |   5 +-
 clutter/cogl/cogl/cogl-pipeline-opengl.c           |   8 +
 .../driver/gles/cogl-fixed-fragment-shader.glsl    |  64 --
 clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.c | 737 +--------------------
 clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.h |  69 +-
 5 files changed, 22 insertions(+), 861 deletions(-)

commit 987e3c32dc733b5f6942a10651750080730272e6
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Nov 23 14:51:49 2010 +0000

    Disable the fixed function backend for GLES2
    
    GLES2 doesn't really support fixed function so if we disable it we can
    remove the fixed function wrappers from the GLES2 Cogl backend.

 clutter/cogl/cogl/cogl-pipeline-fixed.c   | 11 -----------
 clutter/cogl/cogl/cogl-pipeline-private.h |  4 +---
 clutter/cogl/cogl/cogl-pipeline.c         |  2 ++
 3 files changed, 3 insertions(+), 14 deletions(-)

commit 3504491b46246ffe912939defa17d013f9a27b46
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Nov 22 18:33:49 2010 +0000

    cogl-pipeline-glsl: Generate the alpha test snippet under GLES2
    
    GLES2 has no glAlphaFunc function so we need to simulate the behaviour
    in the fragment shader. The alpha test function is simulated with an
    if-statement and a discard statement. The reference value is stored as
    a uniform.

 clutter/cogl/cogl/cogl-pipeline-glsl.c | 144 ++++++++++++++++++++++++++++++++-
 1 file changed, 140 insertions(+), 4 deletions(-)

commit c3582b77dfc553528e49a8f3a1373a787cf64648
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Nov 22 18:32:43 2010 +0000

    cogl-pipeline: Add getters for the alpha test state
    
    This adds two public functions:
    
     cogl_pipeline_get_alpha_test_function
       and
     cogl_pipeline_get_alpha_test_reference.

 clutter/cogl/cogl/cogl-pipeline.c | 25 +++++++++++++++++++++++++
 clutter/cogl/cogl/cogl-pipeline.h | 22 ++++++++++++++++++++++
 2 files changed, 47 insertions(+)

commit 959846326fa138d9611212f0e1c6626e187984b8
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Nov 22 18:29:50 2010 +0000

    cogl: Separate out state flags for the alpha test func and ref
    
    Previously the flag to mark the differences for the alpha test
    function and reference value were conflated into one. However this is
    awkward when generating shader code to simulate the alpha testing for
    GLES 2 because in that case changing the function would need a
    different program but changing the reference value just requires
    updating a uniform. This patch makes the function and reference have
    their own state flags.

 clutter/cogl/cogl/cogl-pipeline-opengl.c  |   3 +-
 clutter/cogl/cogl/cogl-pipeline-private.h |  25 ++++---
 clutter/cogl/cogl/cogl-pipeline.c         | 110 +++++++++++++++++++++++-------
 3 files changed, 102 insertions(+), 36 deletions(-)

commit 124441aade679834ce7e34f38f9e10bd829aa76b
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Nov 22 16:44:11 2010 +0000

    Remove the disabling of layer constants for GLES2
    
    The GLSL shader generation supports layer combine constants so there's
    no need to disable it for GLES2. It looks like there was also code for
    it in the GLES2 wrapper so I'm not sure why it was disabled in the
    first place.

 clutter/cogl/cogl/cogl-blend-string.c | 10 ----------
 1 file changed, 10 deletions(-)

commit 3fa73735c02e2e6471774f2a4253317e424564ee
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Nov 19 10:44:27 2010 +0000

    Generate GLSL in the CoglPipeline GLSL backend
    
    The GLSL pipeline backend can now generate code to represent the
    pipeline state in a similar way to the ARBfp backend. Most of the code
    for this is taken from the GLES 2 wrapper.

 clutter/cogl/cogl/cogl-context.c       |   1 +
 clutter/cogl/cogl/cogl-context.h       |   1 +
 clutter/cogl/cogl/cogl-pipeline-glsl.c | 772 ++++++++++++++++++++++++++++++---
 3 files changed, 702 insertions(+), 72 deletions(-)

commit 6246c2bd6cc5174529f5a6c5efb7daf44c131b6b
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Nov 22 12:15:35 2010 +0000

    Move the cogl shader boilerplate setting code to a separate function
    
    _cogl_shader_compile_real had some code to create a set of strings to
    combine the boilerplate code with a shader before calling
    glShaderSource. This has now been moved to its own internal function
    so that it could be used from the GLSL pipeline backend as well.

 clutter/cogl/cogl/cogl-shader-private.h |  8 +++
 clutter/cogl/cogl/cogl-shader.c         | 96 +++++++++++++++++++++++++--------
 2 files changed, 82 insertions(+), 22 deletions(-)

commit 339fc68bcbc15dbb212684be5cb4155cdaf4c836
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Nov 19 15:42:26 2010 +0000

    Move need_texture_combine_separate to cogl-pipeline
    
    need_texture_combine_separate is moved to cogl-pipeline.c and renamed
    to _cogl_pipeline_need_texture_combine_separate. The function is
    needed by both the ARBfp and GLSL codegen backends so it makes sense to
    share it.

 clutter/cogl/cogl/cogl-pipeline-arbfp.c   | 75 +------------------------------
 clutter/cogl/cogl/cogl-pipeline-private.h |  4 ++
 clutter/cogl/cogl/cogl-pipeline.c         | 74 ++++++++++++++++++++++++++++++
 3 files changed, 79 insertions(+), 74 deletions(-)

commit 9bbb088a2ad3e7758b65f83c181e0603350acfc1
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Nov 19 10:43:52 2010 +0000

    Move find_arbfp_authority to cogl-pipeline.c
    
    The code for finding the arbfp authority for a pipeline should be the
    same as finding the GLSL authority. So that the code can be shared the
    function has been moved to cogl-pipeline.c and renamed to
    _cogl_pipeline_find_codegen_authority.

 clutter/cogl/cogl/cogl-pipeline-arbfp.c   | 145 +-----------------------------
 clutter/cogl/cogl/cogl-pipeline-private.h |   4 +
 clutter/cogl/cogl/cogl-pipeline.c         | 142 +++++++++++++++++++++++++++++
 3 files changed, 147 insertions(+), 144 deletions(-)

commit e57a132f940d1b0f1c66720096c446e4f04bf4dc
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Nov 1 17:25:26 2010 +0000

    cogl: Rename arbfp_source_buffer to fragment_source_buffer
    
    Only one of the material backends can be generating code at the same
    time so it seems to make sense to share the same source buffer between
    arbfp and glsl. The new name is fragment_source_buffer in case we
    later want to create a new buffer for the vertex shader. That probably
    couldn't share the same buffer because it will likely need to be
    generated at the same time.

 clutter/cogl/cogl/cogl-context.c        | 2 +-
 clutter/cogl/cogl/cogl-context.h        | 2 +-
 clutter/cogl/cogl/cogl-pipeline-arbfp.c | 6 +++---
 3 files changed, 5 insertions(+), 5 deletions(-)

commit 9b5c90f441938c8044eecaf9c348c85708d45ce3
Author: Evan Nemerson <evan@coeus-group.com>
Date:   Fri Nov 19 23:27:46 2010 -0800

    cogl: Include exported pacakges information in GIR
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2438

 clutter/cogl/cogl/Makefile.am | 1 +
 1 file changed, 1 insertion(+)

commit f687ec6a226fa3914c6cf81fbad6b43786a2e1dc
Author: Chris Lord <chris@linux.intel.com>
Date:   Wed Nov 24 16:34:21 2010 +0000

    docs: Update documentation to reflect automatic map/unmap/etc.
    
    Update the ClutterActor documentation to reflect the new automatic
    map/unmap/realize/unrealize implementations.

 clutter/clutter-actor.h                            |  6 ++++--
 doc/reference/clutter/subclassing-ClutterActor.xml | 10 +---------
 2 files changed, 5 insertions(+), 11 deletions(-)

commit 186d5698ceb32e3b99d52390e29c5609fa3a8ae2
Author: Chris Lord <chris@linux.intel.com>
Date:   Tue Oct 26 17:09:24 2010 +0100

    actor: Use the internal child list for map/unmap
    
    Use the internal child list for the default map/unmap vfuncs. This removes
    the requirement for non-container composite actors to implement their own
    map/unmap functions.

 clutter/clutter-actor.c | 22 ++++++++++++++--------
 1 file changed, 14 insertions(+), 8 deletions(-)

commit 4752cc38b2000ba643fc9451769ebb2da9873280
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Oct 20 18:26:01 2010 +0100

    actor: re-work unrealize to work with composite actors
    
    Unrealizing an actor is a recursive process that needs to traverse the
    children of an actor to ensure they are also unrealized. This maintains
    the invariant that if any given actor is marked as unrealized then you
    know that all its children have also been unrealized.
    
    The previous implementation would use the container interface's
    foreach_with_internals vfunc to explicitly traverse the children of
    container actors but this didn't consider composite actors that aren't
    containers.
    
    Since clutter-actor now maintains an explicit list of children we can
    also handle composite actors that aren't containers using
    _clutter_actor_traverse.

 clutter/clutter-actor.c | 57 ++++++++++++++++++++++++++++---------------------
 1 file changed, 33 insertions(+), 24 deletions(-)

commit 4bda67473283b9b10a21b72df01d54447c7d557f
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Oct 20 15:40:30 2010 +0100

    actor: make _clutter_actor_traverse more flexible
    
    This makes it possible to choose the traversal order; either depth first
    or breadth first and when visiting actors in a depth first order there
    is now a callback called before children are traversed and one called
    after. Some tasks such as unrealizing actors need to explicitly control
    the traversal order to maintain the invariable that all children of an
    actor are unrealized before we actually mark the parent as unrealized.
    
    The callbacks are now passed the relative depth in the graph of the
    actor being visited and instead of only being able to return a boolean
    to bail out of further traversal it can now do one of: continue,
    skip_children or break. To implement something like unrealize it's
    desirable to skip children that you find have already been unrealized.

 clutter/clutter-actor-private.h |  47 ++++++++++++-
 clutter/clutter-actor.c         | 146 ++++++++++++++++++++++++++++++++--------
 2 files changed, 163 insertions(+), 30 deletions(-)

commit 9df6f0c52445ef9c3c5343c1f0aee63c67bffe06
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date:   Tue Oct 5 13:05:45 2010 -0400

    ClutterX11TexturePixmap: Optimize ConfigureEvent handling
    
    ClutterX11TexturePixmap watches for configure events to tell when it
    needs to name a new pixmap for the window. However, ConfigureEvents
    occur on moves in addition to resizes, and doing round trips and
    naming new pixmaps every time a window is moved is a real performance
    killer.
    
    Add clutter_x11_texture_pixmap_sync_window_internal() that takes the
    size/position of the window as arguments rather than always calling
    XGetWindowAttributes. This allows us to bypass all work other than
    notifying the window-x/window-y properties when we get a ConfigurEvent
    for a move.
    
    The last received width/height is saved to allow us to also omit
    XGetWindowAttributes on MapNotify events.
    
    The public clutter_x11_texture_pixmap_sync_window() becomes a bit less
    efficient since we no longer combine the roundtrips for
    XGetWindowAttributes() and XCompositeNameWindowPixmap(), but it appears
    to have no callers in current publicly available code.
    
    Several FIXME's are added for areas where there are still weird things
    going on in the code or improvements could be made.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2356

 clutter/x11/clutter-x11-texture-pixmap.c | 189 +++++++++++++++++++++----------
 1 file changed, 132 insertions(+), 57 deletions(-)

commit 1fdd82fcf1234a9b6c6fbcff05a62ce8f1eefcab
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Nov 17 17:31:23 2010 +0000

    test-cogl-texture-get-set-data: Test the alpha component
    
    Previously the alpha component of the test texture data was always set
    to 255 and the data was read back as RGB so that the alpha component
    is ignored. Now the alpha component is set to a generated value and
    the data is read back a second time as RGBA to verify that Cogl is not
    doing any premult conversions when the internal texture and target
    data is the same.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2414

 tests/conform/test-cogl-texture-get-set-data.c | 39 ++++++++++++++++++++++++--
 1 file changed, 36 insertions(+), 3 deletions(-)

commit 8b4034cd06035e49bbe709daf2977d828cb0f263
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date:   Fri Nov 12 11:02:13 2010 -0500

    Use FBOs and use cogl_read_pixels() to efficiently read partial textures
    
    * cogl_texture_get_data() is converted to use
       _cogl_texture_foreach_sub_texture_in_region() to iterate
      through the underlying textures.
    
     * When we need to read only a portion of the underlying
       texture, we set up a FBO and use _cogl_read_pixels()
       to read the portion we need. This is enormously more
       efficient for reading a small portion of a large atlas
       texture.
    
     * The CoglAtlasTexture, CoglSubTexture, and CoglTexture2dSliced
       implementation of get_texture() are removed.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2414

 clutter/cogl/cogl/cogl-atlas-texture.c     |  17 +--
 clutter/cogl/cogl/cogl-sub-texture.c       |  70 +----------
 clutter/cogl/cogl/cogl-texture-2d-sliced.c | 149 +---------------------
 clutter/cogl/cogl/cogl-texture.c           | 191 +++++++++++++++++++++++++++--
 4 files changed, 186 insertions(+), 241 deletions(-)

commit 519b6fe6f259762f05a638716691f626b3b54f12
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Nov 17 17:57:17 2010 +0000

    cogl-framebuffer: Try to track format of the framebuffer
    
    Previously in cogl_read_pixels we assume the format of the framebuffer
    is always premultiplied because that is the most likely format with
    the default Cogl blend mode. However when the framebuffer is bound to
    a texture we should be able to make a better guess at the format
    because we know the texture keeps track of the premult status. This
    patch adds an internal format member to CoglFramebuffer. For onscreen
    framebuffers we still assume it is RGBA_8888_PRE but for offscreen to
    textures we copy the texture format. cogl_read_pixels uses this to
    determine whether the data returned by glReadPixels will be
    premultiplied.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2414

 clutter/cogl/cogl/cogl-framebuffer-private.h |  3 +++
 clutter/cogl/cogl/cogl-framebuffer.c         | 15 +++++++++++++++
 clutter/cogl/cogl/cogl.c                     | 22 ++++++++++------------
 3 files changed, 28 insertions(+), 12 deletions(-)

commit 08e1d7f57438fc563253906de735412329366b45
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Nov 17 17:45:27 2010 +0000

    cogl_read_pixels: Fix the format used in GLES2
    
    When converting the data in cogl_read_pixels it was using bmp_format
    instead of the format passed in to the function. bmp_format is the
    same as the passed in format except that it always has the premult bit
    set. Therefore the conversion would not handle premultiply correctly.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2414

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

commit 2bd054f886a1ecd18837e6be9e48b379b8628754
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Nov 17 15:38:20 2010 +0000

    Add an internal _cogl_read_pixels_with_rowstride
    
    This is the same as _cogl_read_pixels except that it takes a rowstride
    parameter for the destination buffer. Under OpenGL setting the
    rowstride this will end up calling GL_ROW_LENGTH so that the buffer
    region can be directly written to. Under GLES GL_ROW_LENGTH is not
    supported so it will use an intermediate buffer as it does if the
    format is not GL_RGBA.
    
    cogl_read_pixels now just calls the full version of the function with
    the rowstride set to width*bpp.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2414

 clutter/cogl/cogl/cogl-private.h | 10 ++++++++++
 clutter/cogl/cogl/cogl.c         | 39 ++++++++++++++++++++++++++++-----------
 2 files changed, 38 insertions(+), 11 deletions(-)

commit b4016f64fa9c82266e4827fb06826319a418d9d9
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Nov 11 15:28:44 2010 +0000

    Add an internal _cogl_offscreen_new_to_texture_full function
    
    This function is the same as cogl_offscreen_new_to_texture but it
    takes a level parameter and a set of flags so that FBOs can be used to
    render to higher mipmap levels and to disable the depth and stencil
    buffers. cogl_offscreen_new_to_texture now just calls the new function
    with the level set to zero. This function could be useful in a few
    places in Cogl where we want to use FBOs as an implementation detail
    such as when copying between textures.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2414

 clutter/cogl/cogl/cogl-framebuffer-private.h |  24 +++++++
 clutter/cogl/cogl/cogl-framebuffer.c         | 100 ++++++++++++++++++++-------
 2 files changed, 100 insertions(+), 24 deletions(-)

commit d52bd995a6a5012fc363b607a9ac79b2748087db
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date:   Fri Nov 12 10:58:59 2010 -0500

    Test slicing when getting data in both directions
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2414

 tests/conform/test-cogl-texture-get-set-data.c | 2 ++
 1 file changed, 2 insertions(+)

commit a53b9febcdd60c322933e41e4ded6247da1f8bef
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Nov 23 16:48:59 2010 +0000

    stage: if backend _ignoring_redraw_clips queue full redraw
    
    In clutter_stage_real_queue_redraw we were checking to see if the
    backend will ignore any subsequent redraw_clip so we can avoid the cost
    of projecting the paint-volume of an actor into stage coordinates, but
    we weren't ensuring that a full redraw would be queued instead we just
    bailed out immediately. This makes sure to call
    _clutter_stage_window_add_redraw_clip (stage_window, NULL) in this case
    to make sure the backend will do an un-clipped redraw.

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

commit 5f181f7265fe043025583e3a7747e9ce55bd65ba
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Nov 23 16:05:44 2010 +0000

    stage-window: tweak has_redraw_clips semantics
    
    This tweaks the semantics of the has_redraw_clips vfunc so we can assume
    that at the start of a new frame there is an implied, initial,
    redraw_clip that clips everything (i.e. nothing would be redrawn) so in
    that case we would expect the has_redraw_clips vfunc to return True at
    the start of a new frame for backends that support clipping.
    
    Previously there was an ambiguity when this function returned False
    since it could either mean a full screen redraw had been queued or it
    could mean that the clip state wasn't yet initialized for that frame.
    This would result in _clutter_stage_has_full_redraw_queued() returning
    True at the start of a new frame even before any actors have been
    updated, which in turn meant we would incorrectly ignore queue_redraw
    requests for actors, believing them to be redundant.

 clutter/clutter-stage-window.c  | 16 ++++++++++++++++
 clutter/egl/clutter-stage-egl.c | 19 +++++++++++++------
 clutter/glx/clutter-stage-glx.c | 21 ++++++++++++++-------
 3 files changed, 43 insertions(+), 13 deletions(-)

commit c9d0f8b26e8ca6e67b52a1cc2a54d247919d09a9
Author: Elliot Smith <elliot.smith@intel.com>
Date:   Wed Nov 24 12:44:35 2010 +0000

    cookbook: Add recipe for animated scaling of an actor
    
    Recipe explains how to animate scaling a single actor.
    
    Also covers scaling vs. resizing, scale center, and
    scaling within layouts and containers.
    
    The first example shows how animations around each scale
    gravity look, as well as tracking the transformed position
    and size of the actor and displaying those.
    
    The second example is a simple image viewer with zoom in/out
    using scaling.

 doc/cookbook/animations.xml | 305 +++++++++++++++++++++++++++++++++++++-------
 1 file changed, 257 insertions(+), 48 deletions(-)

commit ee9a4d02bba8bb0cf6ea73c5cdcce49fb29f786e
Author: Elliot Smith <elliot.smith@intel.com>
Date:   Wed Nov 24 12:22:12 2010 +0000

    cookbook: Add example of scaling a texture
    
    Added a simple application for scaling a
    texture while keeping the mouse pointer over
    the same coordinates on its surface.

 doc/cookbook/examples/Makefile.am               |   2 +
 doc/cookbook/examples/animations-scaling-zoom.c | 155 ++++++++++++++++++++++++
 2 files changed, 157 insertions(+)

commit c8f112876e69ca2aeb9eb202c504bcf24ecab921
Author: Elliot Smith <elliot.smith@intel.com>
Date:   Fri Nov 19 14:52:44 2010 +0000

    cookbook: Added "animated scaling" recipe skeleton

 doc/cookbook/animations.xml | 132 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 132 insertions(+)

commit b47b2f474910ead5b72eae88ebc53c2f667b93d7
Author: Elliot Smith <elliot.smith@intel.com>
Date:   Fri Nov 19 14:29:39 2010 +0000

    cookbook: Added animated scaling example
    
    Added an example showing scaling of an actor on
    each of the scaling gravity settings (NORTH_WEST, NORTH etc.),
    with a mark indicating the center being used.
    
    Displays the transformed size and position, updated
    on each paint of the actor.

 doc/cookbook/examples/Makefile.am          |   2 +
 doc/cookbook/examples/animations-scaling.c | 183 +++++++++++++++++++++++++++++
 2 files changed, 185 insertions(+)

commit 446107f19d59ab95c918e566b5d8efdb8c0841c8
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Nov 24 12:02:38 2010 +0000

    x11: Check for initialized context when enabling ARGB visuals
    
    Instead of using the backend singleton. This allows lazy initialization
    of Clutter.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2435

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

commit 6a552e27abfa2e0f0705ac935872e5393cdf1fdc
Author: Tomeu Vizoso <tomeu.vizoso@collabora.co.uk>
Date:   Tue Nov 23 17:06:52 2010 +0100

    Fix API docs for ClutterShaderEffects
    
    It can implement now both fragment and vertex shaders.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2442

 clutter/clutter-shader-effect.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

commit 65d0ce607efe6cbc72e3f1f4518c8cf5d038ceee
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Nov 23 14:31:45 2010 +0000

    stage: Report an unknown paint volume.
    
    Previously we were leaving it up to the default implementation of
    get_paint_volume in ClutterGroup to handle the stage by determining the
    bounding box of all contained children. This isn't the true bounding box
    of the stage though since the stage is responsible for clearing the
    entire framebuffer at the start of the frame. This adds a
    get_paint_volume implementation for ClutterStage which simply returns
    False which means Clutter has to assume it covers everything.

 clutter/clutter-stage.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

commit 52bf38c38c4b1d0c787cccf5e1ea2518a67ac1bf
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Nov 23 14:30:08 2010 +0000

    x11: only queue clipped redraw for Expose
    
    When we handle Expose events we try and queue a clipped redraw of the
    stage, but for some reason we were also redundantly calling
    clutter_actor_queue_redraw for the stage which would negate the request
    to queue a clipped redraw.

 clutter/x11/clutter-event-x11.c | 2 --
 1 file changed, 2 deletions(-)

commit 1b7c895a2d041a36ad9279044e47542be8c0ba95
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Nov 23 14:07:16 2010 +0000

    cogl-texture-driver-gles: Fix image height for uploading 3D textures
    
    When uploading a 3D texture with an awkward rowstride, on GLES Cogl
    will copy the images to an intermediate buffer to pass to GL. However
    it was using the wrong height when copying the data so it would end up
    overflowing the buffer and crashing.

 clutter/cogl/cogl/driver/gles/cogl-texture-driver-gles.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 01c6ccfa1336216c74829386912806ca02e1ab12
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Nov 23 13:05:47 2010 +0000

    pipeline: Use WrapModeInternal in the Layer struct
    
    Since we're using CoglPipelineWrapModeInternal in the internal API
    anyway, and the compiler complains loudly when comparing two enumeration
    types without casting, the PipelineLayer struct should store the
    wrap modes using the internal enumeration.

 clutter/cogl/cogl/cogl-pipeline-private.h | 44 +++++++++++++++----------------
 1 file changed, 22 insertions(+), 22 deletions(-)

commit 8e6fac38fa73ec4c8a67835a1128e6b1a9889302
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date:   Sat Nov 13 11:29:49 2010 -0500

    Don't update or use last_paint_box when painting inside a clone
    
    The last_paint_box for an actor represents its "normal" position - we
    shouldn't update it or use it to cull drawing if we are painting
    a clone of the actor. Tracking whether we are painting a clone is
    done by adding  _clutter_actor_push/pop_clone_paint() and a global
    "clone paint level".
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2396

 clutter/clutter-actor-private.h |  3 +++
 clutter/clutter-actor.c         | 42 ++++++++++++++++++++++++++++++++++-------
 clutter/clutter-clone.c         |  2 ++
 3 files changed, 40 insertions(+), 7 deletions(-)

commit c68280556ee762c840bb8c73da16d505b6efe1ac
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Nov 22 15:51:15 2010 +0000

    clip-stack: combine modelview-projection in set_clip_planes
    
    When using clip planes and we we have to project some vertices into
    screen coordinates we used to transform those by the modelview and then
    the projection matrix separately. Now we combine the modelview and
    projection matrix and then use that to transform the vertices in one
    step instead.

 clutter/cogl/cogl/cogl-clip-stack.c | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

commit 99f4832c28512e8b670b3681eeb228b4c8c08d14
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Nov 22 12:44:36 2010 +0000

    journal: remove possability of fallback layers
    
    When logging quads in the journal it used to be possible to specify a
    mask of fallback layers (layers where a default white texture should be
    used in-place of the corresponding texture in the current source
    pipeline). Since we now handle fallbacks for cogl_rectangle* primitives
    when validating the pipeline up-front before logging in the journal we
    no longer need the ability for the journal to apply fallbacks too.

 clutter/cogl/cogl/cogl-journal-private.h | 1 -
 clutter/cogl/cogl/cogl-journal.c         | 6 ------
 clutter/cogl/cogl/cogl-primitives.c      | 2 --
 3 files changed, 9 deletions(-)

commit 305bb124b71b8fd531009f050cc83d89af1dfb93
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Nov 12 16:08:25 2010 +0000

    use cogl_matrix_transform_points in clutter
    
    When transforming a paint-volume or transforming allocation vertices we
    are transforming more than one point at a time so we can batch those
    together with cogl_matrix_transform_points instead of
    cogl_matrix_transform_point. Also in both of these cases we don't need
    to do a projective transform so using cogl_matrix_transform_points also
    lets us reduce the per-vertex computation.

 clutter/clutter-actor.c        | 23 ++++++++---------------
 clutter/clutter-paint-volume.c | 18 +++++++-----------
 2 files changed, 15 insertions(+), 26 deletions(-)

commit 2dba3e8cbf4d130701510768b5c766bb7ef070e8
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Nov 12 13:35:24 2010 +0000

    matrix: Adds experimental cogl_matrix_{transform,project}_points
    
    This add two new function that allows us to transform or project an
    array of points instead of only transforming one point at a time. Recent
    benchmarking has shown cogl_matrix_transform_point to be a bottleneck
    sometimes, so this should allow us to reduce the overhead when
    transforming lots of vertices at the same time, and also reduce the cost
    of 3 component, non-projective transforms.
    
    For now they are marked as experimental (you have to define
    COGL_ENABLE_EXPERIMENTAL_API) because there is some concern that it
    introduces some inconsistent naming. cogl_matrix_transform_point would
    have to be renamed cogl_matrix_project_point to be consistent, but that
    would be an API break.

 clutter/cogl/cogl/cogl-matrix.c      | 346 +++++++++++++++++++++++++++++++++++
 clutter/cogl/cogl/cogl-matrix.h      | 123 +++++++++++++
 doc/reference/cogl/cogl-sections.txt |   2 +-
 3 files changed, 470 insertions(+), 1 deletion(-)

commit 4307e65f937538a6251738a8450babce5ed9e8e6
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Nov 11 16:28:45 2010 +0000

    primitives: validate with _cogl_pipeline_foreach_layer
    
    Switch _cogl_rectangles_with_multitexture_coords to using
    _cogl_pipeline_foreach_layer to iterate the layers of a pipeline when
    validating instead of iterating the pipelines internal list, which is
    risky since any modifications to pipelines (even to an override pipeline
    derived from the original), could potentially corrupt the list as it is
    being iterated.

 clutter/cogl/cogl/cogl-pipeline-private.h |   3 +-
 clutter/cogl/cogl/cogl-pipeline.c         |   6 +-
 clutter/cogl/cogl/cogl-primitives.c       | 324 ++++++++++++++++--------------
 3 files changed, 180 insertions(+), 153 deletions(-)

commit fb564cc2ca9579c3b444f5fd5c59ee4da040b7da
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Nov 11 15:08:38 2010 +0000

    cogl: remove WrapModeOverrides from FlushOptions
    
    This removes the possibility to specify wrap mode overrides within a
    CoglPipelineFlushOptions struct since the right way to handle these
    overrides is by copying the user's material and making the changes to
    that copy before flushing. All primitives code has already switched away
    from using these wrap mode overrides so this patch just removes unused
    code and types. It also remove the wrap_mode_overrides argument for
    _cogl_journal_log_quad.

 clutter/cogl/cogl/cogl-journal-private.h  |  2 --
 clutter/cogl/cogl/cogl-journal.c          |  7 ----
 clutter/cogl/cogl/cogl-pipeline-private.h | 32 +-----------------
 clutter/cogl/cogl/cogl-pipeline.c         | 55 -------------------------------
 clutter/cogl/cogl/cogl-primitives.c       |  2 --
 5 files changed, 1 insertion(+), 97 deletions(-)

commit b8c9ee7e88ca6d1c2e9bc6380740dbf19096e71e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Nov 23 10:26:15 2010 +0000

    x11: Ignore NULL settings
    
    Prevent a segfault when dealing with XSETTINGS_ACTION_DELETE.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2441

 clutter/x11/clutter-backend-x11.c | 3 +++
 1 file changed, 3 insertions(+)

commit 1db8b8a70e9c198a04d7c3e3e6365513f5d6858d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Nov 22 17:01:17 2010 +0000

    color: Do not shadow a variable
    
    Avoid a warning.

 clutter/clutter-color.c | 2 --
 1 file changed, 2 deletions(-)

commit 88049013702032895a9cb7ed60f661d58443130d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Nov 22 15:20:55 2010 +0000

    Update NEWS

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

commit f4531aef4bea347f84b6ace38f6df7b34cdbe13c
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Nov 22 15:07:01 2010 +0000

    color: And finally, add hsla() support
    
    Missed it when reading the CSS spec.

 clutter/clutter-color.c | 35 ++++++++++++++++++++++++++++++++---
 1 file changed, 32 insertions(+), 3 deletions(-)

commit e86db85cd2f0bbdbb65924a8f9ae2575e1212d14
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Nov 22 15:02:47 2010 +0000

    color: Support the CSS hsl() notation
    
    Since we support the rgb() and rgba() notations we might as well also
    support the hsl() one.

 clutter/clutter-color.c    | 70 ++++++++++++++++++++++++++++++++++++++++++++++
 tests/conform/test-color.c | 14 ++++++++++
 2 files changed, 84 insertions(+)

commit ab6da347f61c0fb2249bbab9d03545121752d633
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Nov 22 14:22:56 2010 +0000

    color: Support CSS color definitions
    
    The CSS Color Module 3, available at:
    
      http://www.w3.org/TR/css3-color/
    
    allows defining colors as:
    
      rgb ( r, g, b )
      rgba ( r, g, b, a)
    
    along with the usual hexadecimal and named notations.
    
    The r, g, and b channels can be:
    
      • integers between 0 and 255
      • percentages, between 0% and 100%
    
    The alpha channel, if included using the rgba() modifier, can be a
    floating point value between 0.0 and 1.0.
    
    The ClutterColor parser should support this notation.

 clutter/clutter-color.c    | 135 +++++++++++++++++++++++++++++++++++++++++++--
 tests/conform/test-color.c |  54 ++++++++++++++++--
 2 files changed, 178 insertions(+), 11 deletions(-)

commit ee0b8c439e0211e1af8ad55d17d2695e17879f0a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Nov 22 10:16:45 2010 +0000

    docs: Update the release notes in the README
    
    Also updates the introductory blurb.

 README | 29 ++++++++++++++++++++++++-----
 1 file changed, 24 insertions(+), 5 deletions(-)

commit 3055cd1f4aec16a39e520da8d697d19c5beae711
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sat Nov 20 13:05:51 2010 +0000

    docs: Include the Behaviour migration guide
    
    I forgot to add the xinclude directive in the main document.

 doc/reference/clutter/clutter-docs.xml.in | 1 +
 1 file changed, 1 insertion(+)

commit 2fe8f864971f3fdfd27e1f2480aa48b0b9c4172e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sat Nov 20 11:07:45 2010 +0000

    po: Post-release update

 po/clutter-1.0.pot | 490 ++++++++++++++++++++++-----------------------
 po/de.po           | 488 ++++++++++++++++++++++-----------------------
 po/fr.po           | 488 ++++++++++++++++++++++-----------------------
 po/id.po           | 488 ++++++++++++++++++++++-----------------------
 po/it.po           | 573 ++++++++++++++++++++++++++++-------------------------
 po/pl.po           | 488 ++++++++++++++++++++++-----------------------
 po/zh_CN.po        | 488 ++++++++++++++++++++++-----------------------
 7 files changed, 1770 insertions(+), 1733 deletions(-)

commit ac6a378177c37712b13fb25d09b7c5e2ce4f626f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sat Nov 20 11:07:29 2010 +0000

    Post-release version bump to 1.5.7

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 7373cebd8d23fa88c74f680bca5d5c7445d46eb0
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sat Nov 20 10:17:51 2010 +0000

    Release Clutter 1.5.6 (snapshot)

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b674fcf3bb3acef61bb10a5726e020a4bc1310c7
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sat Nov 20 10:46:57 2010 +0000

    build: Add missing cogl-shader-boilerplate.h

 clutter/cogl/cogl/Makefile.am | 1 +
 1 file changed, 1 insertion(+)

commit be3040fd2bca29d3d415d4baf062480f20471947
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Nov 19 18:29:43 2010 +0000

    build: Add a missing file

 clutter/cogl/cogl/Makefile.am | 1 +
 1 file changed, 1 insertion(+)

commit e30b7b2d5a2f4468a9266085ce58b133734e3f9c
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Nov 19 18:15:29 2010 +0000

    build: Don't reference non-existing files

 clutter/cogl/cogl/Makefile.am | 1 -
 1 file changed, 1 deletion(-)

commit 60c6312b2d11f25c631cade6cc59b9680debc6c2
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Nov 19 18:07:27 2010 +0000

    Update the NEWS file

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

commit d39277d0cf96e2a4ac7b5cc3f587b5fba1f48610
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Nov 19 12:26:57 2010 +0000

    actor: Reset the last paint box on unmap
    
    This allows hiding + moving + showing an actor without repainting the
    wrong area.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2395

 clutter/clutter-actor.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

commit 346d3e40a37f2229b0a9314fd8a3c2b6c4313752
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date:   Mon Nov 15 01:32:42 2010 -0500

    Free state at the end of a journal flush
    
    At the end of flushing the journal, we need to free the vertex
    attributes and vertex array.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2423

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

commit 1299672b5a53e004bfbc92fd89d2707c732e3586
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date:   Sun Nov 14 22:59:24 2010 -0500

    Actually free buffer objects
    
    With the refactoring to centralize code into CoglBuffer,
    _cogl_buffer_fini() was never actually implemented, so all GL
    vertex and index buffer objects were leaked.
    
    The duplicate call to glDeleteBuffers() in CoglPixelArray is
    removed (it wasn't paying attention to whether the buffer had been
    allocated as a PBO or not.)
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2423

 clutter/cogl/cogl/cogl-buffer.c      | 7 +++++++
 clutter/cogl/cogl/cogl-pixel-array.c | 2 --
 2 files changed, 7 insertions(+), 2 deletions(-)

commit a5c30398df59f1aca8c0bf1e1f0a32ae51e990cd
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Nov 16 13:54:15 2010 +0000

    egl: Adds support for clipped redraws
    
    This adds egl backend support for handling clipped redraws. This uses
    the EGL_NOK_swap_region extension to enable the EGL backend to present a
    subregion from the back buffer to the front so we don't always have to
    redraw the entire stage for small updates.

 clutter/egl/clutter-backend-egl.c |  81 ++++++++++++++
 clutter/egl/clutter-backend-egl.h |  32 ++++++
 clutter/egl/clutter-stage-egl.c   | 215 +++++++++++++++++++++++++++++++++++++-
 clutter/egl/clutter-stage-egl.h   |   8 ++
 4 files changed, 333 insertions(+), 3 deletions(-)

commit a4d3208eb57ddb3cc7eea61534b5187663d7507c
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Nov 16 13:06:08 2010 +0000

    debug: Adds a COGL_DEBUG=wireframe option
    
    This adds a COGL_DEBUG=wireframe option to visualize the underlying
    geometry of the primitives being drawn via Cogl. This works for triangle
    list, triangle fan, triangle strip and quad (internal only) primitives.
    It also works for indexed vertex arrays.

 clutter/cogl/cogl/cogl-debug-options.h    |   5 +
 clutter/cogl/cogl/cogl-debug.c            |   3 +-
 clutter/cogl/cogl/cogl-debug.h            |   3 +-
 clutter/cogl/cogl/cogl-vertex-attribute.c | 243 ++++++++++++++++++++++++++++++
 4 files changed, 252 insertions(+), 2 deletions(-)

commit 78ac92f8e57acf8eccc20a1990bd7d619f5ebbdc
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Nov 16 08:52:49 2010 +0000

    vertex-buffer: don't unref NULL object
    
    In cogl_vertex_buffer_indices_get_for_quads() we sometimes have to
    extend the length of an existing array, but when we came to unref the
    previous array we didn't first check that it wasn't simply NULL.

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

commit f473c213fcc1b0095f32c909eb69a0c8172cba0e
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Nov 16 08:49:55 2010 +0000

    vertex-array: Adds data arg for _vertex_array_new()
    
    This adds an optional data argument for cogl_vertex_array_new() since it
    seems that mostly every case where we use this API we follow up with a
    cogl_buffer_set_data() matching the size of the new array. This
    simplifies all those cases and whenever we want to delay uploading of
    data then NULL can simply be passed.

 clutter/cogl/cogl/cogl-journal.c       |  2 +-
 clutter/cogl/cogl/cogl-primitive.c     | 40 +++++++---------------------------
 clutter/cogl/cogl/cogl-primitives.c    |  6 ++---
 clutter/cogl/cogl/cogl-vertex-array.c  | 11 ++++++++--
 clutter/cogl/cogl/cogl-vertex-array.h  |  9 ++++++--
 clutter/cogl/cogl/cogl-vertex-buffer.c |  3 ++-
 clutter/cogl/cogl/cogl2-path.c         | 12 ++++------
 7 files changed, 33 insertions(+), 50 deletions(-)

commit 804dd5d5fc2b68b64032cac30268372303be24bf
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Nov 16 08:41:29 2010 +0000

    indices: Makes cogl_indices_get_array public
    
    This makes the previously internal only _cogl_indices_get_array API
    public as cogl_indices_get_array (Though marked as experimental)

 clutter/cogl/cogl/cogl-indices-private.h  | 3 ---
 clutter/cogl/cogl/cogl-indices.c          | 2 +-
 clutter/cogl/cogl/cogl-indices.h          | 3 +++
 clutter/cogl/cogl/cogl-vertex-attribute.c | 2 +-
 4 files changed, 5 insertions(+), 5 deletions(-)

commit dfc671da5960fccf478131aa3136c25341979e61
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Nov 16 08:38:59 2010 +0000

    build: cogl-clip-state.h depends on cogl-clip-stack.h
    
    This adds a #include "cogl-clip-stack.h" to cogl-clip-state.h which
    depends on the CoglClipStack typedef.

 clutter/cogl/cogl/cogl-clip-state.h | 2 ++
 1 file changed, 2 insertions(+)

commit 6f68bb365694bfd82737f6d1c577af38280d099b
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Nov 10 18:27:00 2010 +0000

    debug: disable-culling was disabling clipped redraws
    
    there was a typo and the disable-culling option was actually disabling
    clipped redraws.

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

commit 694632ce95bfc2c14791214acc435743dba4df2e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Nov 18 18:23:49 2010 +0000

    build: Re-arrange headers
    
    Try to minimize the included headers, especially in clutter-actor.h.

 clutter/clutter-actor.c            |  1 +
 clutter/clutter-actor.h            |  6 ++----
 clutter/clutter-color.h            |  5 +----
 clutter/clutter-deform-effect.h    |  2 +-
 clutter/clutter-effect.h           |  1 -
 clutter/clutter-offscreen-effect.h |  1 +
 clutter/clutter-shader.h           |  1 -
 clutter/clutter-texture.c          | 15 +++++++--------
 clutter/clutter-texture.h          |  2 +-
 clutter/clutter-types.h            |  6 +++++-
 10 files changed, 19 insertions(+), 21 deletions(-)

commit 63cef64d17d3e5c22add99e8d736b6f69fac8f25
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Nov 18 14:14:37 2010 +0000

    docs: Fix some wrong function/signal/property names

 clutter/clutter-behaviour-scale.c               | 4 ++--
 clutter/clutter-behaviour.h                     | 2 +-
 clutter/clutter-constraint.c                    | 4 ++--
 clutter/clutter-drag-action.c                   | 2 +-
 clutter/clutter-script.c                        | 2 +-
 clutter/clutter-stage.c                         | 2 +-
 clutter/clutter-stage.h                         | 2 +-
 clutter/clutter-texture.c                       | 4 ++--
 clutter/clutter-units.c                         | 2 +-
 doc/cookbook/animations.xml                     | 2 +-
 doc/reference/clutter/clutter-overview.xml      | 2 +-
 doc/reference/clutter/migrating-ClutterPath.xml | 2 +-
 12 files changed, 15 insertions(+), 15 deletions(-)

commit b0f535037993a15e75525494c5dddecc96bbe0dd
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Nov 17 15:51:35 2010 +0000

    test-layout: Port away from Behaviour
    
    Use a simple animation with a looping+reversing timeline.

 tests/interactive/test-layout.c | 24 +++++++++++++++---------
 1 file changed, 15 insertions(+), 9 deletions(-)

commit eade1ab19e90b6955ead726132503f13ac346356
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Nov 10 11:51:42 2010 +0000

    test-rotate: Remove the behaviour code
    
    Use a looping animation with a shared timeline instead.

 tests/interactive/test-rotate.c | 57 ++++++++++++++++++-----------------------
 1 file changed, 25 insertions(+), 32 deletions(-)

commit 74a770a976250d1d3cb887d9536fac1e9fc7cdf4
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Nov 10 13:15:06 2010 +0000

    docs: Add Behaviour migration guide

 doc/reference/clutter/Makefile.am                  |   6 +-
 .../clutter/migrating-ClutterBehaviour.xml         | 122 +++++++++++++++++++++
 2 files changed, 126 insertions(+), 2 deletions(-)

commit a35708eb74dcc3ffd474e1c07725ece7b8a4fb1a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sat Nov 6 15:54:21 2010 +0000

    Deprecate ClutterBehaviour and sub-classes
    
    The Behaviour class and its implementations have been replaced by the
    new animation framework API and by the constraints for layout-related
    animations.
    
    Currently, we need to make tests build, so we undef DISABLE_DEPRECATED
    in specific test cases while they get ported.

 clutter/clutter-actor.c                  |  4 +++-
 clutter/clutter-behaviour-depth.c        | 15 +++++++++++++-
 clutter/clutter-behaviour-depth.h        |  9 +++++++++
 clutter/clutter-behaviour-ellipse.c      |  6 ++++--
 clutter/clutter-behaviour-ellipse.h      |  8 ++++++++
 clutter/clutter-behaviour-opacity.c      | 34 +++++++++++++++++---------------
 clutter/clutter-behaviour-opacity.h      | 10 +++++++++-
 clutter/clutter-behaviour-path.c         | 25 ++++++++++++++++++-----
 clutter/clutter-behaviour-path.h         |  9 +++++++++
 clutter/clutter-behaviour-rotate.c       | 13 ++++++------
 clutter/clutter-behaviour-rotate.h       |  8 ++++++++
 clutter/clutter-behaviour-scale.c        | 33 ++++++++++++++++++++++---------
 clutter/clutter-behaviour-scale.h        |  9 +++++++++
 clutter/clutter-behaviour.c              |  7 +++++--
 clutter/clutter-behaviour.h              | 12 ++++++++++-
 tests/conform/test-behaviours.c          |  2 ++
 tests/conform/test-script-parser.c       |  1 +
 tests/interactive/test-actor-clone.c     |  1 +
 tests/interactive/test-actors.c          |  1 +
 tests/interactive/test-behave.c          |  1 +
 tests/interactive/test-depth.c           |  2 ++
 tests/interactive/test-layout.c          |  2 ++
 tests/interactive/test-multistage.c      |  2 ++
 tests/interactive/test-paint-wrapper.c   |  2 ++
 tests/interactive/test-pixmap.c          |  4 +++-
 tests/interactive/test-rotate.c          |  1 +
 tests/interactive/test-scale.c           |  2 ++
 tests/interactive/test-script.c          |  1 +
 tests/interactive/test-texture-async.c   |  2 ++
 tests/interactive/test-texture-quality.c |  2 ++
 tests/interactive/test-threads.c         |  2 ++
 tests/interactive/test-viewport.c        |  1 +
 32 files changed, 185 insertions(+), 46 deletions(-)

commit 71a838815f4d3ea1d9e2054bbbaaf0449eae357e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Nov 17 15:27:42 2010 +0000

    timeline: Add :reverse property
    
    The :reverse property removes the pattern of connecting to the
    ::completed signal of a Timeline to change the direction.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2408

 clutter/clutter-timeline.c                 | 156 +++++++++++++++++++++++++----
 clutter/clutter-timeline.h                 |   3 +
 doc/reference/clutter/clutter-sections.txt |   2 +
 tests/interactive/test-behave.c            |  21 +---
 4 files changed, 144 insertions(+), 38 deletions(-)

commit 1ce47bb562a227f4c3bb267e2e10b54b4ded475c
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Nov 18 14:02:52 2010 +0000

    docs: Remove unnecessary '#'
    
    The hash is confusing gtk-doc.

 clutter/clutter-color.h | 90 ++++++++++++++++++++++++-------------------------
 1 file changed, 45 insertions(+), 45 deletions(-)

commit a94ea93bde8382691b8eea1f047b20c0c689c51f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Nov 18 10:53:01 2010 +0000

    paint-volume: Do not take a reference on the actor
    
    The paint volume structure is cached in the Actor it references, and
    this causes a reference cycle.
    
    The paint volume is going to be used when painting, so the actor must
    still be valid - otherwise Clutter will bail out far before than
    accessing the actor pointer in ClutterPaintVolume.
    
    Otherwise, we could have used dispose() to check for a valid actor and
    remove a reference if the actor field is !NULL; it feels less clean,
    though, since we're effectively managing an extra reference on
    ourselves.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2431

 clutter/clutter-actor.c        |  8 +++-----
 clutter/clutter-paint-volume.c | 18 +++---------------
 2 files changed, 6 insertions(+), 20 deletions(-)

commit 0371ba3976fafecc900123bb94822b95a1198d3a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Nov 18 11:00:08 2010 +0000

    actor: Group bitfields together

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

commit b55346151c3122d356d1e0af5f73bba184fbaa81
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Nov 17 19:13:55 2010 +0000

    build: Cogl-2.0 API reference should be conditionally built
    
    Building the API reference for Cogl 2.0 is fairly confusing: the API
    itself is experimental and for internal use only -- though we want
    feedback for it.
    
    Let's build the API reference only when Clutter is configured with a
    specific configure switch, so that people that wish to give feedback on
    the API and its documentation can do it.

 configure.ac              | 8 ++++++++
 doc/reference/Makefile.am | 8 +++++++-
 2 files changed, 15 insertions(+), 1 deletion(-)

commit 8f60d5a3a2d6650bb27ebe6488fe56bf67d3d09c
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sun Nov 7 16:20:51 2010 +0000

    Start using the monotonic API in GLib ≥ 2.27
    
    Starting from the 2.27 cycle, GLib is exposing a monotonic clock with
    microseconds granularity throughout the time-based API. We can start
    using it, given that the old, non-monotonic version is going to be
    deprecated by the same cycle.

 clutter/clutter-frame-source.c     | 12 +++++++++---
 clutter/clutter-master-clock.c     | 27 ++++++++++++++++++++-------
 clutter/clutter-timeout-interval.c | 15 ++++++++++-----
 clutter/clutter-timeout-pool.c     | 13 ++++++++++---
 4 files changed, 49 insertions(+), 18 deletions(-)

commit 68d7a5e84721966686fb066c8b62041f0889a07a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sun Nov 7 15:57:33 2010 +0000

    Move away from GTimeVal
    
    GLib 2.28 will deprecate GTimeVal and related API in favour of
    standardizing on microseconds granularity for all time-based API.
    
    Clutter should switch too.
    
    All of the current users of GTimeVal convert to milliseconds when
    doing time operations, and use GTimeVal only as storage. This can
    effectively be replaced by a gint64.
    
    The Master Clock uses a microsecond resolution, except when interacting
    with the main loop itself, since the main loop has a millisecond
    resolution - at least until Ryan Lortie manages to switch that too to
    microseconds on Linux.
    
    The clutter_timeline_do_tick() function was erroneously not privatized,
    but it was still assumed to be private; we should just remove it from
    the public symbols.

 clutter/clutter-frame-source.c     |  8 +++---
 clutter/clutter-master-clock.c     | 51 +++++++++++++++++---------------------
 clutter/clutter-timeline.c         | 17 ++++++-------
 clutter/clutter-timeline.h         |  4 +--
 clutter/clutter-timeout-interval.c | 33 ++++++++++++------------
 clutter/clutter-timeout-interval.h | 28 +++++++++++----------
 clutter/clutter-timeout-pool.c     | 16 ++++++------
 7 files changed, 79 insertions(+), 78 deletions(-)

commit 8b047d0bc963389109486388ce5051a6a06d0994
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Nov 17 12:49:10 2010 +0000

    docs: Move the constraints example picture about the source code

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

commit e5da5b0907264f822bf646ef7e1151bb69f1945a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Nov 17 12:47:46 2010 +0000

    shaders: Fix the usage of the Cogl GLSL variables

 clutter/clutter-blur-effect.c       | 4 ++--
 clutter/clutter-colorize-effect.c   | 2 +-
 clutter/clutter-desaturate-effect.c | 2 +-
 3 files changed, 4 insertions(+), 4 deletions(-)

commit f96113705d0154772e39a4782925d49b74d5ad09
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Nov 17 12:14:02 2010 +0000

    docs: Fix closing tag

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

commit a731682ac394d1b54b78dec1083d158a71e10f89
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Nov 15 16:30:12 2010 +0000

    actor: Simple show/hide optimizations
    
    Showing a visible (and hiding an invisible) actor is far less cheap than
    it should be.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2422

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

commit 66e7a38a3d9a8b2782969cf24db59909e0f99877
Author: muflone <webreg@vbsimple.net>
Date:   Mon Nov 15 17:54:01 2010 +0000

    po: Update Italian translation
    
    Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>

 po/it.po | 839 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 413 insertions(+), 426 deletions(-)

commit a32f7811447addd100bb5919ee5e0f3d1157097f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Nov 16 17:18:50 2010 +0000

    docs: Break down the constraints example

 clutter/clutter-constraint.c | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

commit 3777e0b38267fd21539c8ec5e7f04d6179379a3d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Nov 15 17:27:46 2010 +0000

    docs: Update the constraints example image

 doc/reference/clutter/constraints-example.png | Bin 2482 -> 5985 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)

commit 2950cb3e78626b269555bc3a4813f9bfe17ea7fc
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Nov 15 16:02:15 2010 +0000

    docs: Fix Since tags for PaintVolume-related API

 clutter/clutter-paint-volume.c | 28 ++++++++++++++--------------
 1 file changed, 14 insertions(+), 14 deletions(-)

commit b7fa13a52f6c7f13e81cefd774b7ac301261a673
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Nov 15 15:02:07 2010 +0000

    docs: Add introductory section on Constraints
    
    Use the snap-constraint code for the example code and screenshot.

 clutter/clutter-constraint.c                  |  59 +++++++++++++++++++++++++-
 doc/reference/clutter/Makefile.am             |   2 +
 doc/reference/clutter/constraints-example.png | Bin 0 -> 2482 bytes
 3 files changed, 60 insertions(+), 1 deletion(-)

commit 3c15c0c9bb6befff149b8be512d7342d820b591a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Nov 10 16:37:34 2010 +0000

    Add SnapConstraint
    
    A SnapConstraint is a constraint that "snaps" the edges of two actors
    together.

 clutter/Makefile.am                        |   2 +
 clutter/clutter-snap-constraint.c          | 589 +++++++++++++++++++++++++++++
 clutter/clutter-snap-constraint.h          |  90 +++++
 clutter/clutter.h                          |   1 +
 doc/reference/clutter/clutter-docs.xml.in  |  16 +-
 doc/reference/clutter/clutter-sections.txt |  19 +
 doc/reference/clutter/clutter.types        |   1 +
 tests/interactive/Makefile.am              |   6 +-
 tests/interactive/test-snap-constraint.c   |  90 +++++
 9 files changed, 808 insertions(+), 6 deletions(-)

commit b3f5a6e2ba29852f1f4a4d9b0f9efcdae1a61af0
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Nov 12 18:09:25 2010 +0000

    actor: Do not queue relayouts on actors being destroyed
    
    Simple optimization is simple.

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

commit 0523d6db0815ed55e5e76f5d0cd879e394d9a0f6
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Nov 12 18:07:44 2010 +0000

    actor: Add a get_debug_name() private Actor method
    
    For internal usage, writing:
    
      clutter_actor_get_name (actor) != NULL
        ? clutter_actor_get_name (actor)
        : G_OBJECT_TYPE_NAME (actor)
    
    is overly verbose and does two type checks. A simple, internal method
    for getting the same result without type checks would be much more
    appreciated.

 clutter/clutter-actor-private.h |  2 ++
 clutter/clutter-actor.c         | 63 +++++++++++++++++++++--------------------
 2 files changed, 34 insertions(+), 31 deletions(-)

commit f3295a3f36cb64e6976f3a1359e08ad680193665
Merge: 9f2c315 63721c5
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Nov 15 15:41:46 2010 +0000

    Merge remote branch 'elliot/cookbook-opacity-values-fix'
    
    * elliot/cookbook-opacity-values-fix:
      cookbook: Fix opacity examples in recipe
      cookbook: Fix incorrect value for opacity

commit 9f2c31547c7a3a36edbd5098eb51ce6c6b9b5ea1
Merge: 5f9df7e 8bdfa4d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Nov 15 15:37:42 2010 +0000

    Merge remote branch 'elliot/cookbook-animations-looping'
    
    * elliot/cookbook-animations-looping:
      cookbook: Recipe for "looping animations"
      cookbook: Clarify how signals are emitted during looped animation
      cookbook: First draft for looping animations recipe
      cookbook: Recipe skeleton for "looping animations"
      cookbook: Looping animation examples

commit 5f9df7e3a0a2646fe894987443869892de69c200
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Nov 15 15:36:41 2010 +0000

    Fix compilation warning by using the correct type

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

commit 92e21ae936a2bf796441db629cb1576b2ef8856d
Merge: e800353 f9d2310
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Nov 15 15:26:07 2010 +0000

    Merge remote branch 'elliot/c90-fix'

commit 8bdfa4ddee3aed333796ef76fc650405f3d17689
Author: Elliot Smith <elliot.smith@intel.com>
Date:   Mon Nov 15 11:18:26 2010 +0000

    cookbook: Recipe for "looping animations"
    
    Added a recipe giving examples of how to loop
    animations for each part of the animation API (implicit,
    animator, state).
    
    The discussion covers looping a fixed number of times
    and inverting a single implicit animation to create
    a loop which goes back to its start on each iteration.

 doc/cookbook/animations.xml | 328 ++++++++++++++++++++++++++++++++++++++++----
 1 file changed, 298 insertions(+), 30 deletions(-)

commit e205bd0fdc42832d97bf022cf63faa6d5302478c
Author: Elliot Smith <elliot.smith@intel.com>
Date:   Thu Nov 11 12:04:20 2010 +0000

    cookbook: Clarify how signals are emitted during looped animation
    
    Added a comment to the example code about how timeline
    emits "completed" during looped animation, while the
    animation itself doesn't.

 doc/cookbook/examples/animations-looping-implicit.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 7eb248b1f0ae05e2eb165a04f37bbf8eadaf77d6
Author: Elliot Smith <elliot.smith@intel.com>
Date:   Thu Nov 11 11:44:28 2010 +0000

    cookbook: First draft for looping animations recipe
    
    Includes video showing the looped animation and
    basic section headings, plus outline of content and notes.

 doc/cookbook/Makefile.am                   |   1 +
 doc/cookbook/animations.xml                |  87 +++++++++++++++++++++++++++--
 doc/cookbook/videos/animations-looping.ogv | Bin 0 -> 29011 bytes
 3 files changed, 82 insertions(+), 6 deletions(-)

commit 071029e373366b93a9f3b7c3b4ef5b8ec9eaf6a3
Author: Elliot Smith <elliot.smith@intel.com>
Date:   Wed Nov 10 17:43:28 2010 +0000

    cookbook: Recipe skeleton for "looping animations"

 doc/cookbook/animations.xml | 55 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 55 insertions(+)

commit 0d8c730558f2d4b4c04c3daa014cebd76b14c263
Author: Elliot Smith <elliot.smith@intel.com>
Date:   Wed Nov 10 16:11:27 2010 +0000

    cookbook: Looping animation examples
    
    Added code examples for creating a looped animation with
    each of the animation approaches (implicit, ClutterAnimation,
    ClutterState).

 doc/cookbook/examples/Makefile.am                  |  6 ++
 .../examples/animations-looping-animator.c         | 66 ++++++++++++++++
 .../examples/animations-looping-implicit.c         | 87 ++++++++++++++++++++++
 doc/cookbook/examples/animations-looping-state.c   | 83 +++++++++++++++++++++
 4 files changed, 242 insertions(+)

commit e80035331b8adf6eec2549bf16f1027210c4233f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sun Nov 14 23:06:53 2010 +0000

    Use the right string in the font settings debug blurb

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

commit e6bc65b5c37c38dbf5a82dea724e2f389e2b481e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sun Nov 14 15:23:36 2010 +0000

    text: Do not segfault with NULL :font-name
    
    Make sure that we have a fall back in place for the default font name
    string, and use g_strcmp0 to protect ourselves from NULL strings.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2417

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

commit 9249bd8411157c7610fd406e88ebc9ed9e089be4
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date:   Fri Nov 12 18:53:51 2010 -0500

    xsettings: don't use the xsettings watch function functionality
    
    The "watch" function functionality in xsettings-client.c is designed
    for setups like GDK where filters are per-window. If we are going
    to pass all events to _clutter_xsettings_client_process_event()
    anyways, we can just pass in NULL for watch.
    
    This avoids a nasty infinite loop where an event would get processed
    triggering removing a filter and adding a new filter, which would
    immediately run and remove a filter and add another and so on
    ad-infinitum.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2415

 clutter/x11/clutter-backend-x11.c | 37 ++++---------------------------------
 1 file changed, 4 insertions(+), 33 deletions(-)

commit f9d2310b724fbd6ff4e3d6b0d1bcdfc1dd8b4b7b
Author: Elliot Smith <elliot.smith@intel.com>
Date:   Fri Nov 12 09:32:04 2010 +0000

    cookbook: Make example code C90 compliant
    
    Modified all cookbook example code to prevent ISO C90 compliance
    warnings occurring during compilation.

 doc/cookbook/examples/animations-moving-animator.c | 11 ++++----
 doc/cookbook/examples/animations-moving-implicit.c |  4 ++-
 doc/cookbook/examples/events-buttons-lasso.c       |  6 ++---
 doc/cookbook/examples/events-mouse-scroll.c        | 13 +++++-----
 .../examples/events-pointer-motion-scribbler.c     |  4 +--
 .../examples/events-pointer-motion-stacked.c       |  5 ++--
 doc/cookbook/examples/events-pointer-motion.c      |  3 ++-
 .../examples/layouts-stacking-diff-sized-actors.c  |  6 +++--
 doc/cookbook/examples/layouts-stacking.c           | 10 ++++----
 doc/cookbook/examples/script-signals.c             | 13 ++++++----
 doc/cookbook/examples/script-ui.c                  | 11 ++++----
 doc/cookbook/examples/text-shadow.c                | 14 +++++------
 doc/cookbook/examples/textures-crossfade-cogl.c    | 29 +++++++++++++++-------
 .../examples/textures-crossfade-slideshow.c        | 29 ++++++++++++----------
 doc/cookbook/examples/textures-crossfade.c         | 18 +++++++-------
 doc/cookbook/examples/textures-reflection.c        | 14 +++++------
 16 files changed, 107 insertions(+), 83 deletions(-)

commit 63721c5db1bc1c4a53ee2af536ffbd19b015fdb9
Author: Elliot Smith <elliot.smith@intel.com>
Date:   Fri Nov 12 09:54:12 2010 +0000

    cookbook: Fix opacity examples in recipe
    
    The recipe had examples where opacity was set using
    fractional numbers. Fixed all examples to use
    integers only.

 doc/cookbook/actors.xml | 26 +++++++++++++-------------
 1 file changed, 13 insertions(+), 13 deletions(-)

commit f135f2e7d5b7c5304ae4ba91a26f4dc0d5b0c757
Author: Elliot Smith <elliot.smith@intel.com>
Date:   Fri Nov 12 09:49:07 2010 +0000

    cookbook: Fix incorrect value for opacity
    
    Opacity is a guint, so don't use floating point numbers
    to set its value.

 doc/cookbook/examples/events-pointer-motion-stacked.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 03a713e18e842d29a73f9cefb38e689ceefb35ed
Author: Lucas Rocha <lucasr@gnome.org>
Date:   Thu Nov 11 22:23:09 2010 +0000

    click-action: don't use pointer grabs
    
    The same behavior can be achieved by capturing events on stage while
    button is pressed. This fixes a problem when using click and drag
    actions on the same actor as there no grabs involved.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2409

 clutter/clutter-click-action.c | 85 +++++++++++++++++++++++++++++++++---------
 1 file changed, 67 insertions(+), 18 deletions(-)

commit dfdd5914142d6c6fd36b52c186d8bfa92c704168
Merge: 47a6cd9 6ed6b2a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Nov 11 17:53:42 2010 +0000

    Merge branch 'wip/static-colors'
    
    * wip/static-colors:
      Move tests to static colors where possible
      color: Add named, global colors

commit 47a6cd95e76ef75a6c117424056c5359c5479283
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Nov 11 14:05:36 2010 +0000

    Add cogl-2.0 reference in the ignore file

 .gitignore | 13 +++++++++++++
 1 file changed, 13 insertions(+)

commit 1bcf15e1b82a7f2842aa210f73dba5706d404484
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Nov 11 16:24:54 2010 +0000

    cogl-texture: Remove the gl_handle from CoglTextureSliceCallback
    
    There's no longer any need to use the GL handle in the callback for
    _cogl_texture_foreach_sub_texture_in_region because it can now work in
    terms of primitive cogl textures so it has now been removed. This
    would be helpful if we ever want to make the foreach function public
    so that apps could implement their own primitives using sliced
    textures.

 clutter/cogl/cogl/cogl-primitives.c        | 2 --
 clutter/cogl/cogl/cogl-sub-texture.c       | 4 +---
 clutter/cogl/cogl/cogl-texture-2d-sliced.c | 4 ----
 clutter/cogl/cogl/cogl-texture-2d.c        | 2 --
 clutter/cogl/cogl/cogl-texture-3d.c        | 2 --
 clutter/cogl/cogl/cogl-texture-private.h   | 2 --
 clutter/cogl/cogl/cogl-texture-rectangle.c | 2 --
 7 files changed, 1 insertion(+), 17 deletions(-)

commit 49898d43ddc7905a612dad0954d472fb00e8a9c1
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Nov 11 16:18:25 2010 +0000

    cogl-pipeline: Use layer overrides as CoglHandles instead of GLuint
    
    Since d5634e37 the sliced texture backend now works in terms of
    CoglTexture2Ds so there's no need to have special casing for
    overriding the texture of a pipeline layer with a GL handle. Instead
    we can just use cogl_pipeline_set_layer_texture with the
    CoglHandle. The special _cogl_pipeline_set_layer_gl_texture_slice
    function has now been removed and parts of the code for comparing
    materials have been simplified.

 clutter/cogl/cogl/cogl-journal-private.h  |   2 +-
 clutter/cogl/cogl/cogl-journal.c          |   2 +-
 clutter/cogl/cogl/cogl-pipeline-opengl.c  |  35 +++-------
 clutter/cogl/cogl/cogl-pipeline-private.h |   7 +-
 clutter/cogl/cogl/cogl-pipeline.c         | 105 ++++--------------------------
 clutter/cogl/cogl/cogl-primitives.c       |  15 ++++-
 6 files changed, 38 insertions(+), 128 deletions(-)

commit 1447ceb0deb081c85342fc3e74db3b278833cf76
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Nov 11 15:42:12 2010 +0000

    CoglTexture2DSliced: Pass slice tex to callback in foreach_sub_texture
    
    The cogl_texture_foreach_sub_texture_in_region virtual for the sliced
    texture backend was previously passing the CoglHandle of the sliced
    texture to the callback. Since d5634e37 the slice texture backend now
    works in terms of 2D textures so it's possible to pass the underlying
    slice texture as a handle too. This makes all of the foreach callbacks
    consistent in that they pass a CoglHandle of the primitive texture
    type that matches the GL handle.

 clutter/cogl/cogl/cogl-texture-2d-sliced.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 21c74030119e5f3a6414d3ce161178799af4cdc4
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Nov 4 00:43:48 2010 +0000

    docs: Adds an initial cogl-2.0 reference manual
    
    So we can keep track of the experimental progress of Cogl 2.0 features
    this adds a standalone Cogl 2.0 Reference Manual which doesn't cover
    the deprecated 1.x symbols and removes the need for a "Cogl
    experimental API" chapter since those sections now make up the main
    table of contents.

 configure.ac                                      |   2 +
 doc/reference/Makefile.am                         |   2 +-
 doc/reference/cogl-2.0/Makefile.am                | 142 +++++++
 doc/reference/cogl-2.0/blend-strings.xml          | 129 ++++++
 doc/reference/cogl-2.0/cogl-docs.xml.in           | 188 +++++++++
 doc/reference/cogl-2.0/cogl-sections.txt          | 480 ++++++++++++++++++++++
 doc/reference/cogl-2.0/cogl_ortho.png             | Bin 0 -> 12650 bytes
 doc/reference/cogl-2.0/fill-rule-even-odd.png     | Bin 0 -> 3121 bytes
 doc/reference/cogl-2.0/fill-rule-non-zero.png     | Bin 0 -> 3143 bytes
 doc/reference/cogl-2.0/quad-indices-order.png     | Bin 0 -> 2620 bytes
 doc/reference/cogl-2.0/quad-indices-triangles.png | Bin 0 -> 8018 bytes
 11 files changed, 942 insertions(+), 1 deletion(-)

commit fb9d3a835071f94f06ae54945bd8059f9c34df5c
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Nov 4 00:27:47 2010 +0000

    path 2.0: update path API for experimental 2.0 API
    
    When COGL_ENABLE_EXPERIMENTAL_2_0_API is defined cogl.h will now include
    cogl2-path.h which changes cogl_path_new() so it can directly return a
    CoglPath pointer; it no longer exposes a prototype for
    cogl_{get,set}_path and all the remaining cogl_path_ functions now take
    an explicit path as their first argument.
    
    The idea is that we want to encourage developers to retain path objects
    for as long as possible so they can take advantage of us uploading the
    path geometry to the GPU. Currently although it is possible to start a
    new path and query the current path, it is not convenient.
    
    The other thing is that we want to get Cogl to the point where nothing
    depends on a global, current context variable. This will allow us to one
    day define a sensible threading model if/when that is ever desired.

 clutter/cogl/cogl/Makefile.am                |   15 +-
 clutter/cogl/cogl/cogl-clip-state.c          |    8 +-
 clutter/cogl/cogl/cogl-context.c             |    4 +-
 clutter/cogl/cogl/cogl-context.h             |    2 +-
 clutter/cogl/cogl/cogl-path-private.h        |   14 +-
 clutter/cogl/cogl/cogl-path.c                | 1363 ++----------------------
 clutter/cogl/cogl/cogl-path.h                |    2 +
 clutter/cogl/cogl/cogl.h                     |    6 +
 clutter/cogl/cogl/cogl2-path.c               | 1466 ++++++++++++++++++++++++++
 clutter/cogl/cogl/cogl2-path.h               |  506 +++++++++
 clutter/cogl/pango/cogl-pango-display-list.c |    7 +-
 tests/interactive/test-cogl-primitives.c     |    1 +
 12 files changed, 2086 insertions(+), 1308 deletions(-)

commit 8efb48ecf4c322bd870f97dc88968b19807c2493
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Nov 4 14:22:24 2010 +0000

    config.h: define COGL_ENABLE_EXPERIMENTAL_2_0_API
    
    By defining COGL_ENABLE_EXPERIMENTAL_2_0_API in config.h we can ensure
    that all internal clutter and cogl code can use the Cogl 2.0 API and by
    not using AM_CPPFLAGS we avoid having other tools such as glib-mkenums
    and the gir-scanner from inadvertently using the define also.

 configure.ac | 8 ++++++++
 1 file changed, 8 insertions(+)

commit b993195dc8f6e274a565d357de603bb1c9351596
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Nov 3 20:26:20 2010 +0000

    cogl: Adds COGL_ENABLE_EXPERIMENTAL_2_0_API define
    
    For now this new define is simply an alias for
    COGL_ENABLE_EXPERIMENTAL_API but the intention is that we will also use
    it to start experimenting with changes that need to break the existing
    Cogl API in incompatible ways.

 clutter/cogl/cogl/cogl.h | 4 ++++
 1 file changed, 4 insertions(+)

commit 6ed6b2a54b5c8f44496399057ad5e58771bfc620
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Oct 11 17:45:30 2010 +0100

    Move tests to static colors where possible

 tests/interactive/test-actors.c       | 11 ++++++-----
 tests/interactive/test-behave.c       | 18 ++++++------------
 tests/interactive/test-binding-pool.c |  9 +++------
 tests/interactive/test-box-layout.c   |  8 ++++----
 tests/interactive/test-depth.c        | 26 ++++++++++++--------------
 tests/interactive/test-drag.c         | 11 ++++-------
 tests/interactive/test-layout.c       |  4 ----
 tests/interactive/test-multistage.c   | 11 +++--------
 tests/interactive/test-rotate.c       | 13 +++++--------
 tests/interactive/test-stage-sizing.c | 13 ++++---------
 tests/interactive/test-threads.c      | 14 +++++++-------
 11 files changed, 54 insertions(+), 84 deletions(-)

commit 985518c601c1a6e0d108d55fb0465a776ccae584
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Apr 6 10:54:20 2010 +0100

    color: Add named, global colors
    
    Since EGA colors are apparently all the rage in other toolkits, Clutter
    should not be left out. On top of the usual CGA/EGA palette the static
    colors also include the Tango Icon palette, which at least is more
    pleasant to the eye.
    
    Static colors are accessed through an enumeration by using
    clutter_color_get_static(), or using the short-hand pre-processor
    macros.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2066

 clutter/Makefile.am                        |   1 +
 clutter/clutter-color-static.h             |  77 +++++++++++++++++++++
 clutter/clutter-color.c                    |  77 +++++++++++++++++++++
 clutter/clutter-color.h                    | 107 +++++++++++++++++++++++++++++
 clutter/clutter.h                          |   1 +
 doc/reference/clutter/Makefile.am          |   1 +
 doc/reference/clutter/clutter-sections.txt |   2 +
 7 files changed, 266 insertions(+)

commit 6735f80b4b43b4c63dd0e3b982a5032509596a5d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Nov 11 12:03:24 2010 +0000

    build: Sanitize the hack for ACLOCAL_FLAGS
    
    Move the ACLOCAL_FLAGS hack we have to use with jhbuild and autoreconf
    inside the ACLOCAL_AMFLAGS declaration in Makefile.am, and leave
    autogen.sh alone.

 Makefile.am | 5 ++++-
 autogen.sh  | 2 +-
 2 files changed, 5 insertions(+), 2 deletions(-)

commit 6c53c9c84985aa8e83de1cf00e3feb9205e9f779
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Nov 10 16:37:44 2010 +0000

    build: Hack build/autotools into autoreconf
    
    Since we require a version of gettext that might not match the version
    installed we need to hack the order of includes for autoreconf.
    
    This hack should go away, and we should just use the installed copy of
    gettext.

 autogen.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 5f30835eae218c8e80153101018c53862c03c353
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Jul 23 17:46:41 2010 +0100

    cogl-shader: Prepend boilerplate for portable shaders
    
    We now prepend a set of defines to any given GLSL shader so that we can
    define builtin uniforms/attributes within the "cogl" namespace that we
    can use to provide compatibility across a range of the earlier versions
    of GLSL.
    
    This updates test-cogl-shader-glsl.c and test-shader.c so they no longer
    needs to special case GLES vs GL when splicing together its shaders as
    well as the blur, colorize and desaturate effects.
    
    To get a feel for the new, portable uniform/attribute names here are the
    defines for OpenGL vertex shaders:
    
     #define cogl_position_in gl_Vertex
     #define cogl_color_in gl_Color
     #define cogl_tex_coord_in  gl_MultiTexCoord0
     #define cogl_tex_coord0_in gl_MultiTexCoord0
     #define cogl_tex_coord1_in gl_MultiTexCoord1
     #define cogl_tex_coord2_in gl_MultiTexCoord2
     #define cogl_tex_coord3_in gl_MultiTexCoord3
     #define cogl_tex_coord4_in gl_MultiTexCoord4
     #define cogl_tex_coord5_in gl_MultiTexCoord5
     #define cogl_tex_coord6_in gl_MultiTexCoord6
     #define cogl_tex_coord7_in gl_MultiTexCoord7
     #define cogl_normal_in gl_Normal
    
     #define cogl_position_out gl_Position
     #define cogl_point_size_out gl_PointSize
     #define cogl_color_out gl_FrontColor
     #define cogl_tex_coord_out gl_TexCoord
    
     #define cogl_modelview_matrix gl_ModelViewMatrix
     #define cogl_modelview_projection_matrix gl_ModelViewProjectionMatrix
     #define cogl_projection_matrix gl_ProjectionMatrix
     #define cogl_texture_matrix gl_TextureMatrix
    
    And for fragment shaders we have:
    
     #define cogl_color_in gl_Color
     #define cogl_tex_coord_in gl_TexCoord
    
     #define cogl_color_out gl_FragColor
     #define cogl_depth_out gl_FragDepth
    
     #define cogl_front_facing gl_FrontFacing

 clutter/clutter-blur-effect.c                      |   7 +-
 clutter/clutter-colorize-effect.c                  |   5 +-
 clutter/clutter-desaturate-effect.c                |   5 +-
 clutter/cogl/cogl/cogl-context.c                   |   2 +-
 clutter/cogl/cogl/cogl-path.c                      |   4 +-
 clutter/cogl/cogl/cogl-pipeline-arbfp.c            |   3 +-
 clutter/cogl/cogl/cogl-pipeline-fixed.c            |   3 +-
 clutter/cogl/cogl/cogl-pipeline-glsl.c             |  44 ++++-
 clutter/cogl/cogl/cogl-pipeline-opengl-private.h   |   3 +-
 clutter/cogl/cogl/cogl-pipeline-opengl.c           |   6 +-
 clutter/cogl/cogl/cogl-pipeline-private.h          |   3 +-
 clutter/cogl/cogl/cogl-shader-boilerplate.h        | 107 +++++++++++
 clutter/cogl/cogl/cogl-shader-private.h            |   5 +
 clutter/cogl/cogl/cogl-shader.c                    | 206 ++++++++++++++++-----
 clutter/cogl/cogl/cogl-vertex-attribute.c          |   4 +-
 clutter/cogl/cogl/cogl-vertex-buffer.c             |  86 ++++++++-
 clutter/cogl/cogl/cogl.c                           |  16 +-
 .../driver/gles/cogl-fixed-fragment-shader.glsl    |  24 +--
 .../cogl/driver/gles/cogl-fixed-vertex-shader.glsl |  40 ++--
 clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.c |  62 ++++---
 tests/interactive/test-cogl-shader-glsl.c          |  38 +---
 tests/interactive/test-shader.c                    |  34 +---
 22 files changed, 517 insertions(+), 190 deletions(-)

commit a4b984186ccd81879822ab7fad1af8b545b28e35
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Nov 9 15:56:03 2010 +0000

    tests: test-cogl-shader-arbfp wasn't compiling shader
    
    test-cogl-shader-arbfp was never calling cogl_shader_compile so it was a
    fluke that it used to run before.

 tests/interactive/test-cogl-shader-arbfp.c | 1 +
 1 file changed, 1 insertion(+)

commit fd43786170937ff66eddadf9736124b33684405f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Nov 10 13:59:09 2010 +0000

    build: Honour ACLOCAL_FLAGS with autoreconf

 autogen.sh | 30 +++++++++++++++++++++++++++++-
 1 file changed, 29 insertions(+), 1 deletion(-)

commit 373140c830859f279c96d2605b6c4187a1fa7541
Author: Tomeu Vizoso <tomeu.vizoso@collabora.co.uk>
Date:   Wed Oct 27 19:02:47 2010 +0200

    Discard the current pick buffer...
    
    if we are asked to pick with a different mode.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2385

 clutter/clutter-main.c          |  8 +++++---
 clutter/clutter-stage-private.h |  8 +++++---
 clutter/clutter-stage.c         | 17 ++++++++++++-----
 tests/conform/test-pick.c       |  9 +++++++++
 4 files changed, 31 insertions(+), 11 deletions(-)

commit b4588b57dff691492d2d9fdd87c293ff95a278aa
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Nov 8 16:15:23 2010 +0000

    reference: Add a Wayland section

 doc/reference/clutter/Makefile.am          | 1 +
 doc/reference/clutter/clutter-docs.xml.in  | 1 +
 doc/reference/clutter/clutter-sections.txt | 6 ++++++
 3 files changed, 8 insertions(+)

commit b783d77e6a730470656a9122755d10b50ac76e23
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Nov 8 16:03:44 2010 +0000

    gtk-doc: Add PathConstraint to the Clutter API reference

 doc/reference/clutter/clutter-docs.xml.in | 9 +++++----
 doc/reference/clutter/clutter.types       | 1 +
 2 files changed, 6 insertions(+), 4 deletions(-)

commit 4909ecc71e1c7ac2b2aab6bb5a7c874f9d5b4697
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Nov 8 16:01:19 2010 +0000

    gtk-doc: Fixes for the API references

 clutter/clutter-cairo-texture.c            | 2 +-
 clutter/clutter-cairo-texture.h            | 2 ++
 clutter/cogl/cogl/cogl-vertex-attribute.h  | 2 +-
 doc/reference/clutter/Makefile.am          | 7 +++++++
 doc/reference/clutter/clutter-sections.txt | 1 +
 5 files changed, 12 insertions(+), 2 deletions(-)

commit 993d3b3fe196903d020f954f2ccce51458b3dd3a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Nov 8 15:52:17 2010 +0000

    timeout-pool: Deprecate the structure too
    
    Don't leave it lying around, since nothing can use it anyway.

 clutter/clutter-timeout-pool.c | 4 +++-
 clutter/clutter-timeout-pool.h | 4 ++--
 2 files changed, 5 insertions(+), 3 deletions(-)

commit 26a70707ab2286e188d9ccb63084acdd5cbeebc5
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sun Nov 7 21:35:40 2010 +0000

    path-constraint: Add a ::node-reached signal
    
    Emit a signal whenever a node in the path has been reached.

 clutter/clutter-marshal.list             |  1 +
 clutter/clutter-path-constraint.c        | 43 +++++++++++++++++++
 tests/interactive/test-path-constraint.c | 71 +++++++++++++++++++++++++++++++-
 3 files changed, 114 insertions(+), 1 deletion(-)

commit ef7f729c6881950623cbbd8b82b68b3a15e26318
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sun Nov 7 15:27:17 2010 +0000

    build: Re-instate profile builds
    
    The profiling support was broken - probably during the restructuring of
    the build environment, but I'm too lazy to bisect that.
    
    The fix is trivial, and everything works as it should.

 clutter/Makefile.am | 2 ++
 configure.ac        | 4 ++--
 2 files changed, 4 insertions(+), 2 deletions(-)

commit 38912ee4d9d7c74aa78a9dffcfc9e687232d8302
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sat Nov 6 20:00:39 2010 +0000

    Deprecate ClutterFrameSource
    
    The FrameSource API hasn't been used internally since 1.0; since it's
    not part of the paint clock, it is of limited use.

 clutter/clutter-frame-source.c |  89 +++++++++++++++++++++++++++++++++++
 clutter/clutter-frame-source.h |   4 ++
 clutter/clutter-main.c         | 103 ++++-------------------------------------
 clutter/clutter-main.h         |   3 ++
 clutter/clutter-private.h      |  11 +++++
 5 files changed, 115 insertions(+), 95 deletions(-)

commit 9ac2f5cba567114fd61446b9fa8991a663483fd5
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sat Nov 6 19:59:58 2010 +0000

    Deprecate ClutterTimeoutPool
    
    Timelines have stopped using the pool since 1.0; there is no real reason
    to expose it as part of the active API.

 clutter/clutter-timeout-pool.c | 6 ++++++
 clutter/clutter-timeout-pool.h | 6 ++++++
 2 files changed, 12 insertions(+)

commit a432d9973dc40658632eeb4060090b7c68aacf50
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sat Nov 6 18:12:41 2010 +0000

    Remove a compiler warning

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

commit 6ec9c3247c5267c6c4a93e20d55d16415e4c1c9d
Author: Maxim Ermilov <zaspire@rambler.ru>
Date:   Fri Nov 5 20:20:14 2010 +0300

    CoglContext: correct initialization order
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2401

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

commit ee59c83e176f78fa9ff95eaebbeb66e807b9ac0c
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Tue Nov 2 12:22:55 2010 +0000

    po: Update the Polish translation

 po/pl.po | 46 +++++++++++++---------------------------------
 1 file changed, 13 insertions(+), 33 deletions(-)

commit 57633520d48eca5539381e3507847008470f27ed
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Nov 5 18:33:37 2010 +0000

    Make test-cogl-npot-texture a bit more extensive
    
    The size of the texture used for test-cogl-npot-texture was only using
    1 pixel of waste and the texture was scaled down so it would be quite
    likely that the test would still pass if only the top left slice was
    rendered. It also didn't test using non-default texture
    coordinates. These problems made it fail to pick up bug 2398. The
    texture is now using the maximum amount of waste and rendered in four
    parts at 1:1 scale.

 tests/conform/test-cogl-npot-texture.c | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

commit cc63c7dd8ffcb5076e072d46b264cd7668e3d48f
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Nov 5 14:38:19 2010 +0000

    cogl-texture-2d-sliced: Fix the foreach callback for waste textures
    
    When converting the virtual coordinates of the underlying texture for
    a slice to virtual coordinates for the whole texture it was using the
    size and offset of the intersection as the size of the child
    texture. This would be incorrect if the texture contains waste or the
    texture coordinates are not the default. Instead the sliced foreach
    function now passes the CoglSpan to the callback instead of the
    intersection.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2398

 clutter/cogl/cogl/cogl-texture-2d-sliced.c | 56 ++++++++++++++----------------
 1 file changed, 26 insertions(+), 30 deletions(-)

commit 8112bfc49fbdf4aa64ab06e0c2971cd3566ac08c
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Nov 5 14:55:46 2010 +0000

    Replace the disable-npots tool with a COGL_DEBUG option
    
    Previously in the tests/tools directory we build a disable-npots
    library which was used as an LD_PRELOAD to trick Cogl in to thinking
    there is no NPOT texture extension. This is a little awkward to use so
    it seems much simpler to just define a COGL_DEBUG option to disable
    npot textures.

 clutter/cogl/cogl/cogl-debug-options.h |   6 ++
 clutter/cogl/cogl/cogl-debug.c         |   3 +-
 clutter/cogl/cogl/cogl-debug.h         |   3 +-
 clutter/cogl/cogl/cogl.c               |   6 ++
 configure.ac                           |   5 --
 tests/Makefile.am                      |   4 +-
 tests/conform/Makefile.am              |   2 +-
 tests/tools/Makefile.am                |  43 ---------
 tests/tools/README                     |   2 -
 tests/tools/disable-npots.c            | 156 ---------------------------------
 tests/tools/disable-npots.sh.in        |  15 ----
 11 files changed, 19 insertions(+), 226 deletions(-)

commit 632412c9c8e2d62797c4333259e3c8a645479c61
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Nov 2 12:20:32 2010 +0000

    actor: Check "paint" handlers in _get_paint_volume
    
    Instead of waiting until clutter_actor_paint to check if there are any
    handlers connected to the "paint" signal, we now do the check whenever
    the paint-volume is requested in _actor_get_paint_volume_mutable().
    
    Previously we checked in clutter_actor_paint(), but at that time we may
    already be using a stage clip that could be derived from an invalid
    paint-volume. We used to try and handle that by queuing a follow up,
    unclipped, redraw but anyway there was an additional problem with the
    previous approach because the checking wasn't enough to always catch
    invalid volumes involved in culling (considering that containers may
    derive their volume from children that haven't yet been painted)
    
    By moving the check to _get_paint_volume time not only do we now
    correctly check children in cases where a container derives its volume
    from its children's volumes but we no longer need to queue follow up
    redraws to cover up artefacts.
    
    Since we now never queue follow up redraws, this in turn means we should
    no longer clobber redraws queued with an explicit clip which was
    something affecting gnome-shell since it connects a handler to the paint
    signal of the stage.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2388

 clutter/clutter-actor.c | 78 +++++++++++++++++++++++--------------------------
 1 file changed, 37 insertions(+), 41 deletions(-)

commit b9dbeac2c3ac8ded52118270914328fd57eeee6e
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Thu Oct 14 16:37:25 2010 +0100

    gitignore: Update the path of generated GLES2 shaders
    
    The generation is not happening in the main Cogl directory, Update the
    .gitignore file accordingly.

 .gitignore | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 844b5781283560bb99e827c0cbc1d212f21be628
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Nov 1 22:07:11 2010 +0000

    matrix-stack: use GArray instead of GSList for stack
    
    In some micro-benchmarks testing journal throughput the list
    manipulation jumps pretty high in the profile. This replaces the GSList
    usage with a GArray instead which is effectively a grow only allocation
    that means we avoid ongoing allocations while manipulating the stack
    mid-scene.

 clutter/cogl/cogl/cogl-matrix-stack.c | 55 +++++++++++------------------------
 1 file changed, 17 insertions(+), 38 deletions(-)

commit a6000533dca20639ec94bd2b0afe8de71382dc65
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Nov 1 20:33:20 2010 +0000

    pipeline: Avoid costly checking of lighting properties
    
    During _cogl_pipeline_needs_blending_enabled we were always checking the
    current lighting properties (ambient,diffuse,specular,emission) which
    had a notable impact during micro-benchmarks that exercise journal
    throughput of simple colored rectangles. This #if 0's the offending code
    considering that Cogl doesn't actually support lighting currently and
    when it actually does then we will be able to optimize this by avoiding
    the checks when lighting is disabled.

 clutter/cogl/cogl/cogl-pipeline.c | 42 ++++++++++++++++++++++-----------------
 1 file changed, 24 insertions(+), 18 deletions(-)

commit eaee5dd604e94fd5b63e25be47b6300c12646aa6
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Nov 1 20:27:32 2010 +0000

    cogl: add separate material for blended source_colors
    
    When using cogl_set_source_color4ub there is a notable difference
    between colors that require blending and those that dont. When trying to
    modify the color of pipeline referenced by the journal we don't force a
    flush of the journal unless the color change will also change the
    blending state. By using two separate pipeline objects for handing
    opaque or transparent colors we can avoid ever flushing the journal when
    repeatedly using cogl_set_source_color and jumping between opaque and
    transparent colors.

 clutter/cogl/cogl/cogl-context.c | 13 ++++++++-----
 clutter/cogl/cogl/cogl-context.h |  5 +++--
 clutter/cogl/cogl/cogl.c         | 19 ++++++++++++++-----
 3 files changed, 25 insertions(+), 12 deletions(-)

commit d05ce7cd26253b94fb990b63e46b822febb616ab
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Nov 1 18:55:48 2010 +0000

    texture_quad_multiple_primitives: rework wrap mode overrides
    
    This reworks _cogl_texture_quad_multiple_primitives so instead of using
    the CoglPipelineWrapModeOverrides mechanism to force the clamp to edge
    repeat mode we now derive an override pipeline using cogl_pipeline_copy
    instead. This avoids a relatively large, unconditional, memset.

 clutter/cogl/cogl/cogl-primitives.c | 84 ++++++++++++++++++++++++-------------
 1 file changed, 55 insertions(+), 29 deletions(-)

commit 7bbe207b65f1684278470f95681e46d34a56fc18
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Nov 1 18:33:17 2010 +0000

    _multitexture_quad_single_primitive: avoid wrap overrides
    
    This avoids using the wrap mode overrides mechanism to implement
    _cogl_multitexture_quad_single_primitive which requires memsetting a
    fairly large array. This updates it to use cogl_pipeline_foreach_layer()
    and we now derive an override_material to handle changes to the wrap
    modes instead of using the CoglPipelineWrapModeOverrides.

 clutter/cogl/cogl/cogl-primitives.c | 265 ++++++++++++++++++++----------------
 1 file changed, 151 insertions(+), 114 deletions(-)

commit e73b67e59bac1ac9a8b03bd776cf309151d9a1b0
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Nov 3 16:02:27 2010 +0000

    cogl-path: Don't bother filling the path if less than 3 nodes
    
    Previously there was a check to avoid filling the path if there are
    zero nodes. However the tesselator also won't generate any triangles
    if there are less than 3 nodes so we might as well bail out in that
    case too. If we don't emit any triangles then we would end up trying
    to create an empty VBO. Although I don't think this should necessarily
    be a problem, this seems to cause Mesa to segfault in version 7.8.1
    when calling glBufferSubData (although not in
    master). test-cogl-primitives tries to fill a path with only two
    points so it's convenient to be able to avoid the crash in this case.

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

commit 25b48585d3cabac8040aa4cccd579a1952a93f6d
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Nov 2 17:35:17 2010 +0000

    cogl-journal: Log the clip state in the journal
    
    When adding a new entry to the journal a reference is now taken on the
    current clip stack. Modifying the current clip state no longer causes
    a journal flush. The journal flushing code now has an extra stage to
    compare the clip state of each entry. The comparison can simply be
    done by comparing the pointers. Although different clip states will
    still end up with multiple draw calls this at leasts allows a scene
    comprising of multiple different clips to be upload with one vbo. It
    also lays the groundwork to do certain tricks when drawing clipped
    rectangles such as modifying the geometry instead of setting a clip
    state.

 clutter/cogl/cogl/cogl-clip-state.c      |  24 -------
 clutter/cogl/cogl/cogl-journal-private.h |   2 +
 clutter/cogl/cogl/cogl-journal.c         | 106 +++++++++++++++++++++++--------
 3 files changed, 83 insertions(+), 49 deletions(-)

commit 4d5dc42dadac20da08e99340de9e828a805578ab
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Nov 2 17:34:51 2010 +0000

    cogl-framebuffer: Add a flag to skip flushing the clip state
    
    This adds a flag to avoid flushing the clip state when flushing the
    framebuffer state. This will be used by the journal to manage its own
    clip state flushing.

 clutter/cogl/cogl/cogl-framebuffer-private.h | 3 +++
 clutter/cogl/cogl/cogl-framebuffer.c         | 3 ++-
 2 files changed, 5 insertions(+), 1 deletion(-)

commit c5d909d0631dfeea5cd7f6beff900ed21762bf9d
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Nov 2 17:15:06 2010 +0000

    cogl: Don't flush the journal when flushing clip state
    
    Flushing the clip state no longer does anything that would cause the
    journal to flush. The clip state is only flushed when flushing the
    framebuffer state and in all cases this ends up flushing the journal
    in one way or another anyway. Avoiding flushing the journal will make
    it easier to log the clip state in the journal.
    
    Previously when trying to set up a rectangle clip that can't be
    scissored or when using a path clip the code would use cogl_rectangle
    as part of the process to fill the stencil buffer. This is now changed
    to use a new internal _cogl_rectangle_immediate function which
    directly uses the vertex array API to draw a triangle strip without
    affecting the journal. This should be just as efficient as the
    previous journalled code because these places would end up flushing
    the journal immediately before and after submitting the single
    rectangle anyway and flushing the journal always creates a new vbo so
    it would effectively do the same thing.
    
    Similarly there is also a new internal _cogl_clear function that does
    not flush the journal.

 clutter/cogl/cogl/Makefile.am               |  2 +
 clutter/cogl/cogl/cogl-clip-stack.c         | 47 ++++++++----------
 clutter/cogl/cogl/cogl-clip-state.c         |  5 ++
 clutter/cogl/cogl/cogl-path.c               | 76 ++++++++++++++---------------
 clutter/cogl/cogl/cogl-primitives-private.h | 43 ++++++++++++++++
 clutter/cogl/cogl/cogl-primitives.c         | 40 +++++++++++++++
 clutter/cogl/cogl/cogl-private.h            | 34 +++++++++++++
 clutter/cogl/cogl/cogl.c                    | 30 ++++++++----
 8 files changed, 203 insertions(+), 74 deletions(-)

commit a39b292d90c7511d0e7ab7ff484c9b75edc2880f
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Nov 3 15:48:56 2010 +0000

    cogl-path: Use the vertex array API instead of CoglVertexBuffer
    
    The new vertex array is now implemented in terms of the
    CoglVertexBuffer anyway so it should be slightly faster to use a
    vertex array directly.

 clutter/cogl/cogl/cogl-path-private.h | 26 +++++------
 clutter/cogl/cogl/cogl-path.c         | 81 ++++++++++++++++++++---------------
 2 files changed, 60 insertions(+), 47 deletions(-)

commit 60de7939ee8bf35d5b8b72564dcb342157716cb0
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Nov 2 14:28:12 2010 +0000

    cogl: Move the clip stack dirtiness to the context rather than the FB
    
    Previously we tracked whether the clip stack needs flushing as part of
    the CoglClipState which is part of the CoglFramebuffer state. This is
    a bit odd because most of the clipping state (such as the clip planes
    and the scissor) are part of the GL context's state rather than the
    framebuffer. We were marking the clip state on the framebuffer dirty
    every time we change the framebuffer anyway so it seems to make more
    sense to have the dirtiness be part of the global context.
    
    Instead of a just a single boolean to record whether the state needs
    flushing, the CoglContext now holds a reference to the clip stack that
    was flushed. That way we can flush arbitrary stack states and if it
    happens to be the same as the state already flushed then Cogl will do
    nothing. This will be useful if we log the clip stack in the journal
    because then we will need to flush unrelated clip stack states for
    each batch.

 clutter/cogl/cogl/cogl-clip-stack.c  | 44 +++++++++++++++++++++++++++++++-----
 clutter/cogl/cogl/cogl-clip-stack.h  |  6 +++--
 clutter/cogl/cogl/cogl-clip-state.c  | 40 +++-----------------------------
 clutter/cogl/cogl/cogl-clip-state.h  |  6 -----
 clutter/cogl/cogl/cogl-context.c     |  5 ++++
 clutter/cogl/cogl/cogl-context.h     | 22 ++++++++++++++++++
 clutter/cogl/cogl/cogl-framebuffer.c |  2 +-
 clutter/cogl/cogl/cogl-path.c        | 10 +++-----
 8 files changed, 76 insertions(+), 59 deletions(-)

commit 57574f399524c2eb46b095aa78b28ea5032a15ad
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Nov 1 19:52:45 2010 +0000

    cogl-clip-stack: Don't allocate a separate struct for CoglClipStack
    
    Instead of having a separate CoglHandle for CoglClipStack the code is
    now expected to directly hold a pointer to the top entry on the
    stack. The empty stack is then the NULL pointer. This saves an
    allocation when we want to copy the stack because we can just take a
    reference on a stack entry. The idea is that this will make it
    possible to store the clip stack in the journal without any extra
    allocations.
    
    The _cogl_get_clip_stack and set functions now take a CoglClipStack
    pointer instead of a handle so it would no longer make sense to make
    them public. However I think the only reason we would have wanted that
    in the first place would be to save the clip state between switching
    FBOs and that is no longer necessary.

 clutter/cogl/cogl/cogl-clip-stack.c | 193 ++++++++++++++----------------------
 clutter/cogl/cogl/cogl-clip-stack.h |  38 +++----
 clutter/cogl/cogl/cogl-clip-state.c |  55 ++++------
 clutter/cogl/cogl/cogl-clip-state.h |  20 ++--
 4 files changed, 116 insertions(+), 190 deletions(-)

commit 314e980a3b40f79f1cb96fa8a8fc53d24eecfa2a
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Nov 3 13:34:21 2010 +0000

    cogl: Don't flush the framebuffer state for the internal draw
    
    CoglVertexAttribute has an internal draw function that is used by the
    CoglJournal to avoid the call to cogl_journal_flush which would
    otherwise end up recursively flushing the journal forever. The
    enable_gl_state function called by this was previously also calling
    _cogl_flush_framebuffer_state. However the journal code tries to
    handle this function specially by calling it with a flag to disable
    flushing the modelview matrix. This is useful because the journal
    handles flushing the modelview itself. Without this patch the journal
    state ends up getting flushed twice. This isn't a particularly big
    problem currently because the matrix stack has caching to recognise
    when it would push the same state twice and bails out. However if we
    later want to use the framebuffer flush flags to override a particular
    state of the framebuffer (such as the clip state) then we need to make
    sure the flush isn't called twice.

 clutter/cogl/cogl/cogl-vertex-attribute.c | 29 +++++++++++++++++++----------
 1 file changed, 19 insertions(+), 10 deletions(-)

commit 738a669fc2987474d524e2f0e5d60a3a49832784
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Nov 4 16:01:23 2010 +0000

    cogl-buffer: Use void* instead of guint8* for map and set_data
    
    Unless the CoglBuffer is being used for texture data then it's
    relatively unlikely that the data will contain an array of bytes. For
    example if it's used as a vertex array then it's more likely to be
    floats or some vertex struct. In that case it's much more convenient
    if set_data and map use void* pointers so that we can avoid a cast.

 clutter/cogl/cogl/cogl-buffer-private.h |  8 ++++----
 clutter/cogl/cogl/cogl-buffer.c         | 12 ++++++------
 clutter/cogl/cogl/cogl-buffer.h         |  4 ++--
 clutter/cogl/cogl/cogl-journal.c        |  2 +-
 clutter/cogl/cogl/cogl-primitive.c      | 16 ++++++++--------
 clutter/cogl/cogl/cogl-primitives.c     |  2 +-
 6 files changed, 22 insertions(+), 22 deletions(-)

commit a53c9dafb5fcd18ecd868c350441759196d614fc
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Nov 4 17:31:59 2010 +0000

    Add a conformance test for the CoglPrimitive convenience constructors
    
    This adds a simple conformance test which calls all of the convenience
    constructors for CoglPrimitive.

 tests/conform/Makefile.am           |   1 +
 tests/conform/test-cogl-primitive.c | 230 ++++++++++++++++++++++++++++++++++++
 tests/conform/test-conform-main.c   |   2 +
 3 files changed, 233 insertions(+)

commit 390bdd2a275f9b3a242fc11725a92cca2c187797
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Nov 4 17:21:56 2010 +0000

    cogl-primitive: Fix the texture attribute offsets
    
    The offsets for the texture coordinate attributes in the convenience
    constructors were all wrong.

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

commit 17aaaac3362768b1b882c5772b3c6f81afa7ce01
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Nov 4 16:54:20 2010 +0000

    cogl-primitive: Fix a typo in new_with_attributes_array
    
    A typo in the g_return_val_if_fail was causing it to segfault.

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

commit b6eaab812be51ceeab023b4556f23e3b9e8a9ec5
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Nov 4 16:42:11 2010 +0000

    cogl-primitive: Add the missing cogl_primitive_new_p2 function
    
    There was a struct defined for CoglP2Vertex but there was no
    constructor function to use it.

 clutter/cogl/cogl/cogl-primitive.c | 27 +++++++++++++++++++++++
 clutter/cogl/cogl/cogl-primitive.h | 44 ++++++++++++++++++++++++++++++++++++++
 2 files changed, 71 insertions(+)

commit 1935855cdd4476c1f55dcff76706dc56653d33de
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Nov 4 16:13:01 2010 +0000

    cogl-primitive: Fix the ref-counting for the convenience constuctors
    
    The convenience constructors for the builtin vertex structs were
    creating the primitive and then immediately destroying it and
    returning the pointer. I think the intention was to unref the
    attributes instead. This adds an internal wrapper around the
    new_with_attributes_array constructor which unrefs the attributes
    instead of the primitive. The convenience constructors now use that.

 clutter/cogl/cogl/cogl-primitive.c | 89 +++++++++++++++++++++++---------------
 1 file changed, 55 insertions(+), 34 deletions(-)

commit 3c35b95a84d410fdd9a9912c7c0d76f6ac05b562
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Nov 4 13:23:23 2010 +0000

    primitive: fix prototypes and start adding docs
    
    This fixes the prototypes for the cogl_primitive_new_xyz functions and
    also adds documentation with examples for each one.

 clutter/cogl/cogl/cogl-primitive.h | 329 ++++++++++++++++++++++++++++++++++---
 1 file changed, 307 insertions(+), 22 deletions(-)

commit 00397a313c955ba567d003d88dc64fb57d8346fb
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Nov 4 14:56:44 2010 +0000

    cogl-gles2-wrapper: Fix a reference to the old name for CoglPipeline
    
    The GLES2 wrapper was referring to COGL_MATERIAL_PROGRAM_TYPE_GLSL but
    this has since been renamed to COGL_PIPELINE_PROGRAM_TYPE_GLSL so the
    GLES2 backend wouldn't compile.

 clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 5abdbd5f7a2b0c4884dfb8b9415eb7e6f3f15a3b
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Oct 29 15:49:25 2010 +0100

    gles2: disable vbos until while we rework backend
    
    The gles2 wrapper functions don't understand about the CoglBuffer API so
    they don't support attributes stored in a CoglVertexArray. Instead of
    teaching the backend about buffers we are going to wait until we have
    overhauled the GLES 2 backend. We are currently making progress
    consolidating the GLES 2 backend with a new GLSL backend for
    CoglMaterial. This will hugely simplify the GLES 2 support and share
    code with the OpenGL backend. In the end it's hoped that this problem
    will simply go away so it doesn't make much sense to solve it with the
    current design.

 clutter/cogl/cogl/driver/gles/cogl-gles.c | 5 +++++
 1 file changed, 5 insertions(+)

commit 8034dc87d43c7e24324bacf42948fe96d1636176
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Oct 27 18:54:57 2010 +0100

    cogl: rename CoglMaterial -> CoglPipeline
    
    This applies an API naming change that's been deliberated over for a
    while now which is to rename CoglMaterial to CoglPipeline.
    
    For now the new pipeline API is marked as experimental and public
    headers continue to talk about materials not pipelines. The CoglMaterial
    API is now maintained in terms of the cogl_pipeline API internally.
    Currently this API is targeting Cogl 2.0 so we will have time to
    integrate it properly with other upcoming Cogl 2.0 work.
    
    The basic reasons for the rename are:
    - That the term "material" implies to many people that they are
      constrained to fragment processing; perhaps as some kind of high-level
      texture abstraction.
        - In Clutter they get exposed by ClutterTexture actors which may be
          re-inforcing this misconception.
    - When comparing how other frameworks use the term material, a material
      sometimes describes a multi-pass fragment processing technique which
      isn't the case in Cogl.
    - In code, "CoglPipeline" will hopefully be a much more self documenting
      summary of what these objects represent; a full GPU pipeline
      configuration including, for example, vertex processing, fragment
      processing and blending.
    - When considering the API documentation story, at some point we need a
      document introducing developers to how the "GPU pipeline" works so it
      should become intuitive that CoglPipeline maps back to that
      description of the GPU pipeline.
    - This is consistent in terminology and concept to OpenGL 4's new
      pipeline object which is a container for program objects.
    
    Note: The cogl-material.[ch] files have been renamed to
    cogl-material-compat.[ch] because otherwise git doesn't seem to treat
    the change as a moving the old cogl-material.c->cogl-pipeline.c and so
    we loose all our git-blame history.

 clutter/cogl/cogl/Makefile.am                      |   24 +-
 clutter/cogl/cogl/cogl-atlas-texture.c             |   14 +-
 clutter/cogl/cogl/cogl-atlas.c                     |    2 +-
 clutter/cogl/cogl/cogl-buffer-private.h            |    2 +-
 clutter/cogl/cogl/cogl-clip-stack.c                |    6 +-
 clutter/cogl/cogl/cogl-context.c                   |   48 +-
 clutter/cogl/cogl/cogl-context.h                   |   28 +-
 clutter/cogl/cogl/cogl-framebuffer.c               |    2 +-
 clutter/cogl/cogl/cogl-journal-private.h           |    8 +-
 clutter/cogl/cogl/cogl-journal.c                   |  128 +-
 clutter/cogl/cogl/cogl-material-arbfp-private.h    |   36 -
 clutter/cogl/cogl/cogl-material-arbfp.c            | 1218 -----
 clutter/cogl/cogl/cogl-material-compat.c           |  495 ++
 clutter/cogl/cogl/cogl-material-compat.h           | 1396 +++++
 clutter/cogl/cogl/cogl-material-fixed-private.h    |   36 -
 clutter/cogl/cogl/cogl-material-fixed.c            |  261 -
 clutter/cogl/cogl/cogl-material-glsl-private.h     |   36 -
 clutter/cogl/cogl/cogl-material-glsl.c             |  452 --
 clutter/cogl/cogl/cogl-material-opengl-private.h   |  155 -
 clutter/cogl/cogl/cogl-material-opengl.c           | 1212 -----
 clutter/cogl/cogl/cogl-material-private.h          |  957 ----
 clutter/cogl/cogl/cogl-material.c                  | 5743 --------------------
 clutter/cogl/cogl/cogl-material.h                  | 1440 -----
 clutter/cogl/cogl/cogl-path.c                      |   42 +-
 clutter/cogl/cogl/cogl-pipeline-arbfp-private.h    |   36 +
 clutter/cogl/cogl/cogl-pipeline-arbfp.c            | 1218 +++++
 clutter/cogl/cogl/cogl-pipeline-fixed-private.h    |   36 +
 clutter/cogl/cogl/cogl-pipeline-fixed.c            |  261 +
 clutter/cogl/cogl/cogl-pipeline-glsl-private.h     |   36 +
 clutter/cogl/cogl/cogl-pipeline-glsl.c             |  452 ++
 clutter/cogl/cogl/cogl-pipeline-opengl-private.h   |  156 +
 clutter/cogl/cogl/cogl-pipeline-opengl.c           | 1212 +++++
 clutter/cogl/cogl/cogl-pipeline-private.h          |  993 ++++
 clutter/cogl/cogl/cogl-pipeline.c                  | 5725 +++++++++++++++++++
 clutter/cogl/cogl/cogl-pipeline.h                  | 1234 +++++
 clutter/cogl/cogl/cogl-primitives.c                |  212 +-
 clutter/cogl/cogl/cogl-texture-2d-private.h        |    2 +-
 clutter/cogl/cogl/cogl-texture-2d-sliced-private.h |    2 +-
 clutter/cogl/cogl/cogl-texture-2d-sliced.c         |    2 +-
 clutter/cogl/cogl/cogl-texture-2d.c                |    2 +-
 clutter/cogl/cogl/cogl-texture-3d-private.h        |    4 +-
 clutter/cogl/cogl/cogl-texture-3d.c                |    4 +-
 clutter/cogl/cogl/cogl-texture-private.h           |    4 +-
 clutter/cogl/cogl/cogl-texture-rectangle-private.h |    2 +-
 clutter/cogl/cogl/cogl-texture-rectangle.c         |    2 +-
 clutter/cogl/cogl/cogl-texture.c                   |   26 +-
 clutter/cogl/cogl/cogl-types.h                     |   52 +-
 clutter/cogl/cogl/cogl-util.c                      |    2 +-
 clutter/cogl/cogl/cogl-vertex-attribute.c          |   76 +-
 clutter/cogl/cogl/cogl-vertex-buffer.c             |   92 +-
 clutter/cogl/cogl/cogl.c                           |   68 +-
 clutter/cogl/cogl/cogl.h                           |    9 +-
 .../cogl/cogl/driver/gl/cogl-texture-driver-gl.c   |    4 +-
 .../cogl/driver/gles/cogl-texture-driver-gles.c    |    4 +-
 clutter/cogl/cogl/winsys/cogl-texture-pixmap-x11.c |    6 +-
 55 files changed, 13713 insertions(+), 11962 deletions(-)

commit 959af183b171f9ee9bdc2ecf6cec3b37e6703a5f
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Oct 27 12:43:36 2010 +0100

    pango: Use CoglMaterial type for materials
    
    Instead of using the CoglHandle type for material variables this updates
    the pango code to use CoglMaterial * instead. CoglHandle is the old
    typename which is being phased out of the API.

 clutter/cogl/pango/cogl-pango-display-list.c | 6 +++---
 clutter/cogl/pango/cogl-pango-display-list.h | 4 ++--
 clutter/cogl/pango/cogl-pango-render.c       | 4 ++--
 3 files changed, 7 insertions(+), 7 deletions(-)

commit 7ee99aaa838e5961c3ce15305679a6ea7a271113
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Oct 27 12:36:24 2010 +0100

    pango: push/pop source instead of trashing users source
    
    The pango-display-list code was calling cogl_set_source in numerous
    places and it didn't appear to be saving the users source to restore
    later. This could result in the user inadvertantly drawing a primitive
    with one of these internally managed materials instead of one that they
    chose. To rectify this the code now uses cogl_{push,pop}_source to save
    and restore the users source.

 clutter/cogl/pango/cogl-pango-display-list.c | 76 ++++++++++++++++------------
 1 file changed, 45 insertions(+), 31 deletions(-)

commit 4e69c730857835d0b2971b3fd6b00e285b82a66a
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Oct 18 17:17:22 2010 +0100

    primitives: implements cogl_polygon on vertex_attributes
    
    This updates the implementation of cogl_polygon so it sits on the new
    CoglVertexArray and CoglVertexAttribute apis. This lets us minimize the
    number of different drawing paths we have to maintain in Cogl.
    
    Since the sliced texture support for cogl_polygon has been broken for a
    long time now and no one has complained this patch also greatly
    simplifies the code by not doing any special material validation so
    cogl_polygon will be restricted in the same way as
    cogl_draw_vertex_attributes. (i.e. sliced textures not supported).

 clutter/cogl/cogl/cogl-context.c    |   5 +
 clutter/cogl/cogl/cogl-context.h    |   3 +-
 clutter/cogl/cogl/cogl-primitives.c | 579 ++++++++++--------------------------
 3 files changed, 167 insertions(+), 420 deletions(-)

commit f9d9b1b1578e05a51bbf087aa2626e11d8e2c185
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Oct 26 19:22:57 2010 +0100

    journal: port to the vertex_attributes API
    
    Instead of using raw OpenGL in the journal we now use the vertex
    attributes API instead. This is part of an ongoing effort to reduce the
    number of drawing paths we maintain in Cogl.

 clutter/cogl/cogl/cogl-context.c |   4 +
 clutter/cogl/cogl/cogl-context.h |   1 +
 clutter/cogl/cogl/cogl-journal.c | 262 +++++++++++++++++++++------------------
 3 files changed, 145 insertions(+), 122 deletions(-)

commit f82b32cb3b93001705a2581ff59293e1074de4bb
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Oct 26 18:56:57 2010 +0100

    vertex-buffer: use cogl_get_rectangle_indices
    
    The functionality of cogl_vertex_buffer_indices_get_for_quads is now
    provided by cogl_get_rectangle_indices so this reworks the former to now
    work in terms of the latter so we don't have duplicated logic.

 clutter/cogl/cogl/cogl-context.c       |   9 ---
 clutter/cogl/cogl/cogl-context.h       |   6 --
 clutter/cogl/cogl/cogl-vertex-buffer.c | 101 ++++++++++++---------------------
 3 files changed, 36 insertions(+), 80 deletions(-)

commit 670ea32dbdffea57008b5f5e315a879353cecdee
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Oct 12 12:55:23 2010 +0100

    vertex-buffer: port to CoglVertexAttributes + CoglPrimitive
    
    As part of an ongoing effort to reduce the number of draw paths we have
    in Cogl this re-works CoglVertexBuffer to use the CoglVertexAttribute
    and CoglPrimitive APIs instead of using raw GL.

 clutter/cogl/cogl/cogl-vertex-buffer-private.h |   42 +-
 clutter/cogl/cogl/cogl-vertex-buffer.c         | 1140 ++++++++----------------
 2 files changed, 371 insertions(+), 811 deletions(-)

commit 69b1f756d14237c60073f77ee048975a159148cb
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Oct 26 18:57:33 2010 +0100

    primitive: adds immutable ref/unref mechanism
    
    This adds a way to mark that a primitive is in use so that modifications
    will generate a warning. The plan is to use this mechanism when batching
    primitives in the journal to warn users that mid-scene modifications of
    primitives is not allowed.

 clutter/cogl/cogl/cogl-primitive-private.h |  8 ++++
 clutter/cogl/cogl/cogl-primitive.c         | 77 ++++++++++++++++++++++++++++++
 2 files changed, 85 insertions(+)

commit 2d58d3f1b6b728e3cca6e1bbeabd19fc03de05df
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Oct 12 15:48:31 2010 +0100

    primitive: Adds convenience constructors
    
    This adds convenience primitive constructors named like:
      cogl_primitive_new_p3 or
      cogl_primitive_new_p3c4 or
      cogl_primitive_new_p3t2c4
    where the letters correspond to the interleved vertex attributes layouts
    such as CoglP3Vertex which is a struct with 3 float x,y,z members for
    the [p]osition, or CoglP3T2C4Vertex which is a struct with 3 float x,y,z
    members for the [p]osition, 2 float s,t members for the [t]exture
    coordinates and 4 unsigned byte r,g,b,a members for the [c]olor.
    
    The hope is that people will find these convenient enough to replace
    cogl_polygon.

 clutter/cogl/cogl/cogl-primitive.c | 246 +++++++++++++++++++++++++++++++++++++
 clutter/cogl/cogl/cogl-primitive.h |  66 +++++++---
 2 files changed, 296 insertions(+), 16 deletions(-)

commit 0cd077dc7efc5ed3cb982ffa6c7f4f5276867338
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Oct 12 12:54:07 2010 +0100

    cogl: Adds experimental CoglPrimitive API
    
    A CoglPrimitive is a retainable object for drawing a single primitive,
    such as a triangle strip, fan or list.
    
    CoglPrimitives build on CoglVertexAttributes and CoglIndices which
    themselves build on CoglVertexArrays and CoglIndexArrays respectively.
    
    A CoglPrimitive encapsulates enough information such that it can be
    retained in a queue (e.g. the Cogl Journal, or renderlists in the
    future) and drawn at some later time.

 clutter/cogl/cogl/Makefile.am              |   3 +
 clutter/cogl/cogl/cogl-primitive-private.h |  46 +++++
 clutter/cogl/cogl/cogl-primitive.c         | 223 +++++++++++++++++++++
 clutter/cogl/cogl/cogl-primitive.h         | 311 +++++++++++++++++++++++++++++
 clutter/cogl/cogl/cogl.h                   |   1 +
 5 files changed, 584 insertions(+)

commit dd63078bd3e4fae8fced0a2c8801bee145f9c24b
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Oct 12 12:53:10 2010 +0100

    cogl: Adds experimental CoglVertexAttribute API
    
    A CoglVertexAttribute defines a single attribute contained in a
    CoglVertexArray. I.e. a CoglVertexArray is simply a buffer of N bytes
    intended for containing a collection of attributes (position, color,
    normals etc) and a CoglVertexAttribute defines one such attribute by
    specifying its start offset in the array, its type, the number of
    components and the stride etc.

 clutter/cogl/cogl/Makefile.am                     |   3 +
 clutter/cogl/cogl/cogl-vertex-attribute-private.h |  80 ++
 clutter/cogl/cogl/cogl-vertex-attribute.c         | 882 ++++++++++++++++++++++
 clutter/cogl/cogl/cogl-vertex-attribute.h         | 205 +++++
 clutter/cogl/cogl/cogl.h                          |   1 +
 5 files changed, 1171 insertions(+)

commit 3d14fbc30881e7068c6724aef4ec3efbb4467186
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Oct 12 12:48:58 2010 +0100

    cogl: Adds experimental CoglIndices API
    
    CoglIndices define a range of indices inside a CoglIndexArray. I.e. a
    CoglIndexArray is simply a buffer of N bytes and you can then
    instantiate multiple CoglIndices collections that define a sub-region of
    a CoglIndexArray by specifying a start offset and an index data type.

 clutter/cogl/cogl/Makefile.am            |   3 +
 clutter/cogl/cogl/cogl-context.c         |  18 +++
 clutter/cogl/cogl/cogl-context.h         |  10 ++
 clutter/cogl/cogl/cogl-indices-private.h |  57 +++++++
 clutter/cogl/cogl/cogl-indices.c         | 253 +++++++++++++++++++++++++++++++
 clutter/cogl/cogl/cogl-indices.h         |  74 +++++++++
 clutter/cogl/cogl/cogl.h                 |   1 +
 7 files changed, 416 insertions(+)

commit 8ca80e47c40422b69d1e7b70850c7033ec71b1b8
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Oct 12 12:34:27 2010 +0100

    cogl: Adds experimental CoglVertexArray type
    
    This adds a new CoglVertexArray object which is a subclass of CoglBuffer
    used to hold vertex attributes. A later commit will add a
    CoglVertexAttribute API which will be used to describe the attributes
    inside a CoglVertexArray.

 clutter/cogl/cogl/Makefile.am                 |  3 ++
 clutter/cogl/cogl/cogl-vertex-array-private.h | 39 ++++++++++++++
 clutter/cogl/cogl/cogl-vertex-array.c         | 70 ++++++++++++++++++++++++
 clutter/cogl/cogl/cogl-vertex-array.h         | 77 +++++++++++++++++++++++++++
 clutter/cogl/cogl/cogl.h                      |  1 +
 5 files changed, 190 insertions(+)

commit 3aba41e20209d597c6fc49a6163b86eb71a2ff3a
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Oct 12 12:36:22 2010 +0100

    cogl: Adds experimental CoglIndexArray type
    
    A CoglIndexArray is a subclass of CoglBuffer and will be used to hold
    vertex indices. A later commit will add a CoglIndices API which will
    allow describing a range of indices inside a CoglIndexArray.

 clutter/cogl/cogl/Makefile.am                |   3 +
 clutter/cogl/cogl/cogl-index-array-private.h |  39 ++++++++
 clutter/cogl/cogl/cogl-index-array.c         | 131 +++++++++++++++++++++++++++
 clutter/cogl/cogl/cogl-index-array.h         |  79 ++++++++++++++++
 clutter/cogl/cogl/cogl.h                     |   1 +
 5 files changed, 253 insertions(+)

commit eac167df1c6ce300d915249e696cc0dc2d6a8819
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Oct 26 19:08:51 2010 +0100

    buffer: adds immutable ref/unref mechanism
    
    This adds an internal mechanism to mark that a buffer is in-use so that
    a warning can be generated if the user attempts to modify the buffer.
    
    The plans is for the journal to use this mechanism so that we can warn
    users about mid-scene modifications of buffers.

 clutter/cogl/cogl/cogl-buffer-private.h |  8 +++++++
 clutter/cogl/cogl/cogl-buffer.c         | 42 +++++++++++++++++++++++++++++++--
 2 files changed, 48 insertions(+), 2 deletions(-)

commit efa11f8a8fd0400b3f6003d9f48292b0629d3698
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Oct 12 13:14:17 2010 +0100

    buffer: make _bind() return base pointer
    
    We now make _cogl_buffer_bind return a base pointer for the bound buffer
    which can be used with OpenGL. The pointer will be NULL for GPU based
    buffers or may point to an malloc'd buffer. Since OpenGL expects an
    offset instead of a pointer when dealing with buffer objects this means
    we can handle fallback malloc buffers and GPU buffers in a consistent
    way.

 clutter/cogl/cogl/cogl-bitmap.c         | 28 ++++++++--------------------
 clutter/cogl/cogl/cogl-buffer-private.h |  2 +-
 clutter/cogl/cogl/cogl-buffer.c         | 17 ++++++++++-------
 3 files changed, 19 insertions(+), 28 deletions(-)

commit 35ddc5407efe0e2877d64e75a5d2e252f9aee8b9
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Oct 26 19:02:04 2010 +0100

    material: Bail out faster if re-flushing unchanged material
    
    This allows _cogl_material_flush_gl_state to bail out faster if
    repeatedly asked to flush the same material and we can see the material
    hasn't changed.
    
    Since we can rely on the material age incrementing when any material
    property changes or any associated layer property changes then we can
    track the age of the material after flushing so it can be compared with
    the age of the material if it is subsequently re-flushed. If the age is
    the same we only have to re-assert the texture object state.

 clutter/cogl/cogl/cogl-context.h         |  1 +
 clutter/cogl/cogl/cogl-material-opengl.c | 16 ++++++++++++++--
 2 files changed, 15 insertions(+), 2 deletions(-)

commit bbf27e6b285afca1261eaa448096667415d81219
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Oct 26 17:43:16 2010 +0100

    material-node: track if node owns reference on parent
    
    MaterialNodes are used for the sparse graph of material state and layer
    state. In the case of materials there is the idea of weak materials that
    don't take a reference on their parent and in that case we need to be
    careful not to unref our parent during
    _cogl_material_node_unparent_real. This adds a has_parent_reference
    member to the CoglMaterialNode struct so we now know when to skip the
    unref.

 clutter/cogl/cogl/cogl-material-private.h | 4 ++++
 clutter/cogl/cogl/cogl-material.c         | 4 +++-
 2 files changed, 7 insertions(+), 1 deletion(-)

commit e5202d6a0da1d94f65ddbe381766d775e1047e26
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Oct 26 17:38:58 2010 +0100

    cogl-object: correctly free user_data_array in _unref
    
    If there is private data associated with a CoglObject then there may be
    a user_data_array that needs to be freed. The code was mistakenly
    freeing the array inside the loop that was actually iterating over the
    user data array notifying the objects destruction instead of waiting
    until all the data entries had been destroyed.

 clutter/cogl/cogl/cogl-object.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit 0b4b1ca1caad41785dadc7d2bd71af6c7b644ada
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date:   Sat Oct 30 18:11:03 2010 -0400

    Don't leave stale invalidated queued redraws around
    
    Once an actor had _clutter_stage_queue_redraw_entry_invalidate()
    called on it once, then priv->queue_redraw_entry would point to
    an entry with entry->actor NULL. _clutter_stage_queue_actor_redraw()
    doesn't handle this case and no further redraws would be queued.
    
    To fix this, NULL out priv->queue_redraw_entry() and then make sure
    we free the invalidated entry in
    _clutter_stage_maybe_finish_queue_redraws() just as we do for
    still valid entries.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2389

 clutter/clutter-actor.c |  5 ++++-
 clutter/clutter-stage.c | 12 +++++++-----
 2 files changed, 11 insertions(+), 6 deletions(-)

commit 02a3670e880333536f0fb53b1044317a9f46ee15
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Nov 1 15:21:04 2010 +0000

    win32: Fix a couple of build warnings
    
    * clutter-backend-win32 had an unused variable
    
    * clutter-event-win32 was using the abs function without including
      stdlib.h

 clutter/win32/clutter-backend-win32.c | 2 --
 clutter/win32/clutter-event-win32.c   | 1 +
 2 files changed, 1 insertion(+), 2 deletions(-)

commit f13f545aa9824ed53ea5a78878c7f96d40239e48
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Nov 1 15:13:12 2010 +0000

    clutter-backend-win32: Use g_object_unref on the stage manager
    
    Previously when trying to destroy all of the stages in the backend
    dispose function it would poke directly in the ClutterStageManager
    struct to get the list. In 8613013ab08 the defintion of
    ClutterStageManager moved to a different header which isn't included
    by the Win32 backend so it wouldn't compile. In that commit the X11
    backend was changed to unref the stage manager instead of poking in
    the internals so we should do the same for the win32 backend.

 clutter/win32/clutter-backend-win32.c | 7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)

commit 907490d795f4438e631679fce47cae7fc08830d6
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Sun Oct 31 18:34:23 2010 +0000

    clone: Remove checks in set_source_internal()
    
    One of the ideas behind _internal() functions is to be able to have a
    version of the original one without checks (among other things). As
    these functions are either static or private to the library, we control
    the arguments given to it, and thus no need for checking them again
    here.

 clutter/clutter-clone.c | 7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)

commit a318fe5ca50feca359abc15238c4ed0da3b41397
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Sun Oct 31 16:49:40 2010 +0000

    texture: Warn when the file loaded from a ClutterScript can't be found
    
    Telling the user about files not found when loading a ClutterScript with
    ClutterTextures in it is very useful and can save a few minutes (or
    hours) of frustation because it "does not work".

 clutter/clutter-texture.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 2ee0e40848a1c70c5b9891dea60d0f25d08e2a47
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Oct 15 18:00:29 2010 +0100

    Merge cogl-program-{gl,gles}.c into one cogl-program.c
    
    This merges the two implementations of CoglProgram for the GLES2 and
    GL backends into one. The implementation is more like the GLES2
    version which would track the uniform values and delay sending them to
    GL. CoglProgram is now effectively just a GList of CoglShaders along
    with an array of stored uniform values. CoglProgram never actually
    creates a GL program, instead this is left up to the GLSL material
    backend. This is necessary on GLES2 where we may need to relink the
    user's program with different generated shaders depending on the other
    emulated fixed function state. It will also be necessary in the future
    GLSL backends for regular OpenGL. The GLSL and ARBfp material backends
    are now the ones that create and link the GL program from the list of
    shaders. The linked program is attached to the private material state
    so that it can be reused if the CoglProgram is used again with the
    same material. This does mean the program will get relinked if the
    shader is used with multiple materials. This will be particularly bad
    if the legacy cogl_program_use function is used because that
    effectively always makes one-shot materials. This problem will
    hopefully be alleviated if we make a hash table with a cache of
    generated programs. The cogl program would then need to become part of
    the hash lookup.
    
    Each CoglProgram now has an age counter which is incremented every
    time a shader is added. This is used by the material backends to
    detect when we need to create a new GL program for the user program.
    
    The internal _cogl_use_program function now takes a GL program handle
    rather than a CoglProgram. It no longer needs any special differences
    for GLES2. The GLES2 wrapper function now also uses this function to
    bind its generated shaders.
    
    The ARBfp shaders no longer store a copy of the program source but
    instead just directly create a program object when cogl_shader_source
    is called. This avoids having to reupload the source if the same
    shader is used in multiple materials.
    
    There are currently a few gross hacks to get the GLES2 backend to work
    with this. The problem is that the GLSL material backend is now
    generating a complete GL program but the GLES2 wrapper still needs to
    add its fixed function emulation shaders if the program doesn't
    provide either a vertex or fragment shader. There is a new function in
    the GLES2 wrapper called _cogl_gles2_use_program which replaces the
    previous cogl_program_use implementation. It extracts the GL shaders
    from the GL program object and creates a new GL program containing all
    of the shaders plus its fixed function emulation. This new program is
    returned to the GLSL material backend so that it can still flush the
    custom uniforms using it. The user_program is attached to the GLES2
    settings struct as before but its stored using a GL program handle
    rather than a CoglProgram pointer. This hack will go away once the
    GLSL material backend replaces the GLES2 wrapper by generating the
    code itself.
    
    Under Mesa this currently generates some GL errors when glClear is
    called in test-cogl-shader-glsl. I think this is due to a bug in Mesa
    however. When the user program on the material is changed the GLSL
    backend gets notified and deletes the GL program that it linked from
    the user shaders. The program will still be bound in GL
    however. Leaving a deleted shader bound exposes a bug in Mesa's
    glClear implementation. More details are here:
    
    https://bugs.freedesktop.org/show_bug.cgi?id=31194

 clutter/cogl/cogl/Makefile.am                      |   6 +-
 clutter/cogl/cogl/cogl-internal.h                  |   4 +-
 clutter/cogl/cogl/cogl-material-arbfp.c            |  36 +-
 clutter/cogl/cogl/cogl-material-fixed.c            |  17 +-
 clutter/cogl/cogl/cogl-material-glsl.c             | 355 ++++++++++-
 clutter/cogl/cogl/cogl-material-opengl.c           | 156 ++---
 clutter/cogl/cogl/cogl-material-private.h          |   2 +-
 clutter/cogl/cogl/cogl-program-private.h           |  78 +++
 clutter/cogl/cogl/cogl-program.c                   | 683 +++++++++++++++++++++
 clutter/cogl/cogl/cogl-shader-private.h            |   1 -
 clutter/cogl/cogl/cogl-shader.c                    |  56 +-
 .../cogl/driver/gl/cogl-feature-functions-gl.h     |  11 +
 clutter/cogl/cogl/driver/gl/cogl-program-gl.c      | 488 ---------------
 clutter/cogl/cogl/driver/gl/cogl-program-gl.h      |  46 --
 clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.c | 194 ++----
 clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.h |   9 +-
 clutter/cogl/cogl/driver/gles/cogl-program-gles.c  | 437 -------------
 clutter/cogl/cogl/driver/gles/cogl-program-gles.h  |  52 --
 18 files changed, 1307 insertions(+), 1324 deletions(-)

commit 65d7a113eeb0de08ccb402fe4ade14fe82fcaff1
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Oct 27 15:07:03 2010 +0100

    cogl: Use separate materials for set_source_color and texture
    
    Previously cogl_set_source_color and cogl_set_source_texture modified
    a single global material. If an application then mixes using
    cogl_set_source_color and texture then the material will constantly
    need a new ARBfp program because the numbers of layers alternates
    between 0 and 1. This patch just adds a second global material that is
    only used for cogl_set_source_texture. I think it would still end up
    flushing the journal if cogl_set_source_texture is used with multiple
    different textures but at least it should avoid a recompile unless the
    texture target also changes. It might be nice to somehow attach a
    material to the CoglTexture for use with cogl_set_source_texture but
    it would be difficult to implement this without creating a circular
    reference.

 clutter/cogl/cogl/cogl-context.c |  3 +++
 clutter/cogl/cogl/cogl-context.h |  3 ++-
 clutter/cogl/cogl/cogl.c         | 11 ++---------
 3 files changed, 7 insertions(+), 10 deletions(-)

commit 89cedc78009cee86ffe025cd7c2343d69b199928
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Oct 12 12:53:44 2010 +0100

    Move IndicesType and VerticesMode typedefs to cogl-types.h
    
    This moves the CoglIndicesType and CoglVerticesMode typedefs from
    cogl-vertex-buffer.h to cogl-types.h so they can be shared with the
    anticipated cogl vertex attribute API.

 clutter/cogl/cogl/cogl-types.h         | 48 ++++++++++++++++++++++++++++++++++
 clutter/cogl/cogl/cogl-vertex-buffer.h | 47 ---------------------------------
 2 files changed, 48 insertions(+), 47 deletions(-)

commit e3bf83eab527d1dfbd697da1cc13dda2bb8b7d30
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Oct 26 16:05:00 2010 +0100

    buffer: BufferBindTarget + BufferUsageHint enum renaming
    
    This renames the BufferBindTarget + BufferUsageHint enums to match the
    anticipated new APIs for "index arrays" and "vertex arrays" as opposed
    to using the terms "vertices" or "indices".

 clutter/cogl/cogl/cogl-buffer-private.h | 5 +++--
 clutter/cogl/cogl/cogl-buffer.c         | 2 +-
 2 files changed, 4 insertions(+), 3 deletions(-)

commit 9efe7ca5bc66d2889c45ac998115d3df04bfebb4
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Oct 18 18:50:02 2010 +0100

    buffer: warn if (offset + size) > buffer->size
    
    previously we would silently bail out if the given offset + data size
    would overflow the buffer size. Now we use g_return_val_if_fail so we
    get a warning if we hit this case.

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

commit b2963b4eef2aba6b3b62983b1b23ff7abfa221e1
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Oct 12 13:25:05 2010 +0100

    pixel-array: Remove some benign variables
    
    There were some completely unused static global variables declared in
    cogl-pixel-array.c which this patch removes.

 clutter/cogl/cogl/cogl-pixel-array.c | 7 -------
 1 file changed, 7 deletions(-)

commit 902c18ad874694b2f3f5fffa67d8f5aa576d79a2
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Oct 12 13:23:44 2010 +0100

    pixel-array: Remove flags member and flag macros
    
    There are no flags associated with pixel-arrays so we don't need the
    flags member or flag macros.

 clutter/cogl/cogl/cogl-pixel-array-private.h | 18 ------------------
 clutter/cogl/cogl/cogl-pixel-array.c         |  2 --
 2 files changed, 20 deletions(-)

commit 1c8b355bbb6f1aa466a8ca0b2a4732135413661b
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Oct 26 16:06:46 2010 +0100

    buffer: Add a store_created bit field member
    
    This adds a store_created bit field to CoglBuffer so we know if the
    underlying buffer has been allocated yet. Previously the code was trying
    to do something really wrong by accidentally using the
    COGL_PIXEL_ARRAY_FLAG_IS_SET macro (note "PIXEL_ARRAY") and what is more
    odd was the declaration of a CoglPixelArray *pixel_array in
    cogl-buffer.c which the buffer was being cast too before calling using
    the macro. Probably this was the fall-out of some previous code
    re-factoring.

 clutter/cogl/cogl/cogl-buffer-private.h |  2 ++
 clutter/cogl/cogl/cogl-buffer.c         | 25 +++++++++++--------------
 2 files changed, 13 insertions(+), 14 deletions(-)

commit d5188c26b6dc928639d0779ba4910ad5f4fa7fcc
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Oct 12 11:46:29 2010 +0100

    buffer: remove flag macros
    
    All the macros get used for are to |= (a new flag bit), &= ~(a flag bit)
    or use the & operator to test if a flag bit is set. I haven't found the
    code more readable with these macros, but several times now I've felt
    the need to double check if these macros do anything else behind the
    hood or I've forgotten what flags are available so I've had to go to the
    macro definition to see what the full enum names are for the flags (the
    macros use symbol concatenation) so I can search for the definition of
    all the flags. It turns out they are defined next to the macro so you
    don't have to search far, but without the macro that wouldn't have been
    necessary.
    
    The more common use of the _IS_SET macro is actually more concise
    expanded and imho since it doesn't hide anything in a separate header
    file the code is more readable without the macro.

 clutter/cogl/cogl/cogl-bitmap.c         |  4 ++--
 clutter/cogl/cogl/cogl-buffer-private.h |  9 ---------
 clutter/cogl/cogl/cogl-buffer.c         | 20 ++++++++++----------
 3 files changed, 12 insertions(+), 21 deletions(-)

commit bc3a26d03552273ddb61004364a6897057415732
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Oct 12 12:35:47 2010 +0100

    material: Adds _cogl_material_get_layer_texture
    
    This is a counter part for _cogl_material_layer_get_texture which takes
    a layer index instead of a direct CoglMaterialLayer pointer. The aim is
    to phase out code that directly iterates the internal layer pointers of
    a material since the layer pointers can change if any property of any
    layer is changed making direct layer pointers very fragile.

 clutter/cogl/cogl/cogl-material-private.h | 4 ++++
 clutter/cogl/cogl/cogl-material.c         | 9 +++++++++
 2 files changed, 13 insertions(+)

commit 0288ba39110b46a51be7d1efc2de0a5a64e0d1e0
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Oct 18 19:00:50 2010 +0100

    material: add internal layer filter getters
    
    This adds internal _cogl_material_get_layer_filters and
    _cogl_material_get_layer_{min,mag}_filter functions which can be used to
    query the filters associated with a layer using a layer_index, as
    opposed to a layer pointer. Accessing layer pointers is considered
    deprecated so we need to provide layer_index based replacements.

 clutter/cogl/cogl/cogl-material-private.h | 14 ++++++++++
 clutter/cogl/cogl/cogl-material.c         | 45 +++++++++++++++++++++++++++++++
 2 files changed, 59 insertions(+)

commit 6fd26630bae6a30f97e523f4c2e6f21889111930
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sun Aug 1 23:05:28 2010 +0100

    material: Adds missing get_layer_wrap_mode_xyz prototypes
    
    This adds missing getter function prototypes for
    cogl_material_get_layer_wrap_mode_{s,t,p}

 clutter/cogl/cogl/cogl-material.h | 52 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 52 insertions(+)

commit 32ae904d81684c1affd919fd1ccb024d18636bc8
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sun Aug 1 16:07:38 2010 +0100

    vertex-buffer: remove the unstrided CBO type
    
    When we come to submitting the users given attributes we sort them into
    different types of buffers. Previously we had three types; strided,
    unstrided and multi-pack. Really though unstrided was just a limited
    form of multi-pack buffer and didn't imply any hind of special
    optimization so this patch consolidates some code by reducing to just
    two types; strided and multi-pack.

 clutter/cogl/cogl/cogl-vertex-buffer-private.h |  5 ++--
 clutter/cogl/cogl/cogl-vertex-buffer.c         | 33 +++++---------------------
 2 files changed, 8 insertions(+), 30 deletions(-)

commit 94e06197856c9959580c837985eb114150d402a3
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Jul 28 13:59:34 2010 +0100

    material: Adds _cogl_material_pre_paint_for_layer
    
    This is a counter part for _cogl_material_layer_pre_paint which takes a
    layer index instead of a direct CoglMaterialLayer pointer. The aim is to
    phase out code that directly iterates the internal layer pointers of a
    material since the layer pointers can change if any property of any
    layer is changed making direct layer pointers very fragile.

 clutter/cogl/cogl/cogl-material-private.h | 9 +++++++++
 clutter/cogl/cogl/cogl-material.c         | 8 ++++++++
 2 files changed, 17 insertions(+)

commit 701a69366142f5c2389110daa0426abdb8691f6d
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Oct 25 13:25:21 2010 +0100

    cogl: Adds {push,pop,get}_source functions
    
    This exposes the idea of a stack of source materials instead of just
    having a single current material. This allows the writing of orthogonal
    code that can change the current source material and restore it to its
    previous state. It also allows the implementation of new composite
    primitives that may want to validate the current source material and
    possibly make override changes in a derived material.

 clutter/cogl/cogl/cogl-clip-stack.c       |   7 +-
 clutter/cogl/cogl/cogl-context.c          |   6 +-
 clutter/cogl/cogl/cogl-context.h          |   2 +-
 clutter/cogl/cogl/cogl-material-private.h |   3 +
 clutter/cogl/cogl/cogl-path.c             |  41 ++++++-----
 clutter/cogl/cogl/cogl-primitives.c       |  99 +++++++++++++--------------
 clutter/cogl/cogl/cogl-texture.c          |   7 +-
 clutter/cogl/cogl/cogl-vertex-buffer.c    |  38 +++++++----
 clutter/cogl/cogl/cogl.c                  | 109 +++++++++++++++++++++++++++---
 clutter/cogl/cogl/cogl.h                  |  58 +++++++++++++---
 doc/reference/cogl/cogl-sections.txt      |   3 +
 11 files changed, 252 insertions(+), 121 deletions(-)

commit bf6c635e9dfa28470fa31b6459c6636afe70c95e
Merge: b16ff03 cf46c81
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Oct 25 23:44:53 2010 +0100

    Merge branch 'private-cleanup'
    
    * private-cleanup:
      Add copyright notices
      Clean up clutter-private.h/6
      Clean up clutter-private.h/5
      Clean up clutter-private.h/4
      Clean up clutter-private.h/3
      Clean up clutter-private.h/2
      Clean up clutter-private.h/1

commit b16ff0359ac53bfd6650256c874677e44b93a746
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Oct 25 17:44:27 2010 +0100

    Post-release version bump to 1.5.5

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit cba230400a4d92f6c97f029326d68fa5798b1214
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Oct 25 17:30:52 2010 +0100

    Release Clutter 1.5.4

 configure.ac       |   2 +-
 po/clutter-1.0.pot | 792 ++++++++++++++++++++++++------------------------
 po/de.po           | 822 +++++++++++++++++++++++++-------------------------
 po/fr.po           | 860 +++++++++++++++++++++++++++--------------------------
 po/id.po           | 799 ++++++++++++++++++++++++-------------------------
 po/it.po           | 790 ++++++++++++++++++++++++------------------------
 po/pl.po           | 812 ++++++++++++++++++++++++++------------------------
 po/zh_CN.po        | 800 ++++++++++++++++++++++++-------------------------
 8 files changed, 2867 insertions(+), 2810 deletions(-)

commit cb7d2943eafd65a2526f7da0f9e5d8bf1a176f32
Author: Chris Lord <chris@linux.intel.com>
Date:   Fri Oct 22 17:41:06 2010 +0100

    state: Correct the documentation
    
    Correct the argument order and replace all occurrences of
    clutter_state_change() with the appropriate clutter_state_set_state() or
    clutter_state_warp_to_state().

 clutter/clutter-state.c | 21 +++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)

commit bfc1583d76548f9882a4d77df39d32733883814d
Author: Chris Lord <chris@linux.intel.com>
Date:   Fri Oct 22 16:32:05 2010 +0100

    state: Fix warping to the current state during transitions
    
    If you warp to a state, it should be immediately set. Check if the
    animation is in progress when warping to a state and don't short-circuit
    in the already-set check if we're not animating.

 clutter/clutter-state.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

commit 35c35de55c27ff212d819e202b6081859510ee3d
Author: Chris Lord <chris@linux.intel.com>
Date:   Fri Oct 22 16:13:16 2010 +0100

    state: Handle setting keys for the current target state
    
    Add special behaviour when you set the key of the current target state:
    - If the state is transitioning, add/modify the interval so that the new
      key transitions from the current time (taking into account pre-delay) to
      its target final property
    - If the state is set but has already finished animating/was warped to,
      set the property immediately

 clutter/clutter-state.c | 73 ++++++++++++++++++++++++++++++++++++++++++++++---
 1 file changed, 69 insertions(+), 4 deletions(-)

commit 73dcbedc8067fac25e43d833036f8c76f7c01282
Author: Chris Lord <chris@linux.intel.com>
Date:   Fri Oct 22 15:24:49 2010 +0100

    state: Fix crasher when removing the last key of a transitioning state
    
    If ClutterState is in the middle of a transition and you remove all the
    keys from the target state, the target state will be destroyed without
    stopping the animation/unsetting the target state. This caused an invalid
    memory access.

 clutter/clutter-state.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 5700b34b9cd894e6847dc8973e358104b47fdae5
Author: Chris Lord <chris@linux.intel.com>
Date:   Thu Oct 21 16:51:45 2010 +0100

    state: Allow setting a NULL state
    
    Allow setting a %NULL state. This has the effect of unsetting the current
    state and stopping all animation. This allows you to, for example, start
    a state transition, set the state to NULL, alter the state transition
    and then resume it again, by just setting it.

 clutter/clutter-state.c | 22 ++++++++++++++++++----
 1 file changed, 18 insertions(+), 4 deletions(-)

commit 9c5f09f32d291aac58fa7e7456302272e4c2a49e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Oct 25 17:16:24 2010 +0100

    Update NEWS

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

commit ef6b46d8262cb9910dc70afa3cff2c2443f65d69
Merge: 0cb2ef4 f6ab7ec
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Oct 25 17:09:46 2010 +0100

    Merge branch 'wip/path-constraint'
    
    * wip/path-constraint:
      docs: Add PathConstraint
      tests: Add a PathConstraint interactive test
      Add ClutterPathConstraint
      actor-box: Add setters for origin and size

commit f6ab7eccd9c946c75b5b4f4eba0c4a834f31804a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Oct 25 16:09:40 2010 +0100

    docs: Add PathConstraint

 clutter/clutter-path-constraint.c          | 68 ++++++++++++++++++++++++++++++
 clutter/clutter-path-constraint.h          |  2 +-
 doc/reference/clutter/clutter-sections.txt | 16 +++++++
 3 files changed, 85 insertions(+), 1 deletion(-)

commit 6f8e46e0b356ab5f367a1042be04392fe0775cba
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Oct 25 15:47:15 2010 +0100

    tests: Add a PathConstraint interactive test

 tests/interactive/Makefile.am            |  3 +-
 tests/interactive/test-path-constraint.c | 63 ++++++++++++++++++++++++++++++++
 2 files changed, 65 insertions(+), 1 deletion(-)

commit 6b2cbb990835f366060e59344db9019d271b2a89
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Oct 25 15:46:04 2010 +0100

    Add ClutterPathConstraint
    
    ClutterPathConstraint is a simple Constraint implementation that
    modifies the allocation of the Actor to which is has been applied using
    a progress value and a ClutterPath.

 clutter/Makefile.am               |   2 +
 clutter/clutter-path-constraint.c | 287 ++++++++++++++++++++++++++++++++++++++
 clutter/clutter-path-constraint.h |  65 +++++++++
 clutter/clutter.h                 |   1 +
 4 files changed, 355 insertions(+)

commit 3f6ec0ba5a153f8185db8e481f823b49030bd8bc
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Oct 25 15:45:35 2010 +0100

    actor-box: Add setters for origin and size

 clutter/clutter-actor-box.c                | 49 ++++++++++++++++++++++++++++++
 clutter/clutter-types.h                    |  7 +++++
 doc/reference/clutter/clutter-sections.txt |  2 ++
 3 files changed, 58 insertions(+)

commit 0cb2ef434b371d5d372040e03ec6705f2991ad39
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Thu Oct 14 11:48:00 2010 -0400

    eglnative: Fix the type of stage for eglnative
    
    CLUTTER_TYPE_STAGE_EGLNATIVE does not exist any more, use
    CUTTER_TYPE_STAGE_EGL instead.

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 6da18b6e4f93bb1430698959d6280cb53f9e2ff2
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Oct 21 17:20:44 2010 +0100

    win32: Fix clutter_win32_disable_event_retrieval
    
    There was previously a flag that gets set when this function was
    called but nothing checked it so the function effectively did
    nothing. Also the flag was a member of the backend struct but this
    can't be used because the function should be called before
    clutter_init so the backend is not ready yet. This patch makes the
    event disabling work more like the X11 backend and set a global
    variable instead.

 clutter/win32/clutter-backend-win32.c | 30 ++++++++++++++++++++++++++++--
 clutter/win32/clutter-backend-win32.h |  1 -
 clutter/win32/clutter-event-win32.c   | 20 --------------------
 3 files changed, 28 insertions(+), 23 deletions(-)

commit e6099cdd4bd08d81cab51ff4fc291c839d7f37e3
Author: Ole André Vadla Ravnås <oravnas@cisco.com>
Date:   Thu Oct 14 15:30:54 2010 +0200

    win32: Use _clutter_actor_rerealize() like X11 backend does
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=1654

 clutter/win32/clutter-stage-win32.c | 90 +++++++++++++++++++++++++++----------
 1 file changed, 66 insertions(+), 24 deletions(-)

commit e66c679e84fd604d714828dceba1a50105790181
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Aug 27 15:54:21 2010 +0100

    win32: Add a public clutter_win32_handle_event function
    
    This function handles a single windows message. The idea is that it
    could be used by clutter-gtk to forward on events from a
    GdkEventFilter. The function replaces the old message_translate()
    function. That function didn't translate the event anymore anyway and
    instead it could generate multiple events so
    clutter_win32_handle_event seems like a more appropriate name. The
    function returns TRUE or FALSE depending on whether the event was
    completely handled instead of setting call_window_proc.

 clutter/win32/clutter-event-win32.c        | 70 +++++++++++++++++++-----------
 clutter/win32/clutter-win32.h              |  2 +
 doc/reference/clutter/clutter-sections.txt |  1 +
 3 files changed, 47 insertions(+), 26 deletions(-)

commit 52744c0d9db6d7f9738d31b6d9f774c0912fcad0
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Oct 21 16:27:17 2010 +0100

    clutter-stage: Set the Cogl framebuffer size after allocating
    
    When handling an allocation on the stage, Clutter uses the oppurtunity
    to inform Cogl of the new size of the framebuffer so that it can
    handle the viewport correctly. It queries the size of the window
    implementation using a backend virtual function. However it was doing
    this before letting the backend handle the allocation so on Win32 it
    would end up using the previous framebuffer size. This wasn't
    affecting the X11 backend because in that case the resizes are
    asynchronous so setting the stage size causes one allocation which
    ends up sending a window size request. Eventually a ConfigureNotify is
    received which causes the size of the stage to be set again and
    another allocation is fired meaning the framebuffer size will be set
    again this time with the correct size. In Win32 the resizes are
    synchronous so we don't have this second allocation.

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

commit cc7977988c92ad7fa96f0a1dd0a8581432f090ca
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Oct 25 13:15:01 2010 +0100

    cogl-context-winsys: Avoid zero-length arrays
    
    When compiling for non-glx platforms the winsys feature data array
    ends up empty. Empty arrays cause problems for MSVC so this patch adds
    a stub entry so that the array always has at least one entry.
    
    Based on a patch by Ole André Vadla Ravnås

 clutter/cogl/cogl/winsys/cogl-context-winsys.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

commit f1752ff3ba1828873f7f97f3842eadcc389e87a1
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Oct 25 13:08:52 2010 +0100

    Avoid mixing declarations and code
    
    Mixing declarations and code causes problems for MSVC as it is a C99
    feature so we should try to avoid it.

 clutter/cally/cally-actor.c              | 66 +++++++++++++++++---------------
 clutter/clutter-stage.c                  |  3 +-
 clutter/cogl/cogl/cogl-material-opengl.c |  9 ++++-
 clutter/cogl/cogl/cogl-material.c        |  4 +-
 clutter/x11/clutter-event-x11.c          |  5 ++-
 tests/conform/test-cogl-blend-strings.c  |  8 ++--
 tests/conform/test-cogl-depth-test.c     |  8 ++--
 tests/conform/test-cogl-materials.c      |  8 ++--
 tests/conform/test-cogl-premult.c        |  8 ++--
 9 files changed, 68 insertions(+), 51 deletions(-)

commit 8e3674dcc12654e48e9c85e5aff2d56642512321
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Oct 25 13:07:50 2010 +0100

    Avoid variable length arrays in clutter-backend-x11
    
    There was an array whose length was define by a static const int
    variable. GCC seems to consider this a variable-length array so it
    will cause warnings now that -Wvla is enabled. We might as well make
    this constant a #define instead to avoid the warning.

 clutter/x11/clutter-backend-x11.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit c3f47fa7d03ec3e7a5f963ced0457f27c3ec41ee
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Oct 25 13:03:39 2010 +0100

    Add -Wdeclaration-after-statement and -Wvla to maintainer CFLAGS
    
    These warnings pick up C99 extensions that are commonly accidentally
    used and which cause problems when compiling with MSVC.

 configure.ac | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 164af55a6e52075afbc335a3ff15fe9b48ac9f31
Author: Giovanni Campagna <gcampagna@src.gnome.org>
Date:   Sun Oct 24 14:45:16 2010 +0200

    Avoid warnings on ClutterClone with a NULL source
    
    clutter_clone_apply_transform should check the source before calling
    methods on it, else criticals will be emitted.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2381

 clutter/clutter-clone.c | 4 ++++
 1 file changed, 4 insertions(+)

commit c7bfe27e96ccc6295d0e774dacf3597ec7df146c
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Oct 25 12:31:50 2010 +0100

    Update NEWS

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

commit 276acf5854c0e589eae9a76c78ef1faa50c46caa
Author: Ole André Vadla Ravnås <oravnas@cisco.com>
Date:   Sat Oct 9 23:07:26 2010 +0200

    binding-pool: Use the correct marshaller

 clutter/clutter-binding-pool.c | 8 ++++----
 clutter/clutter-marshal.list   | 2 +-
 2 files changed, 5 insertions(+), 5 deletions(-)

commit c792431538e02c05f90f12bd4c36c72cf3f3eab4
Author: Ole André Vadla Ravnås <oravnas@cisco.com>
Date:   Thu Oct 14 13:11:46 2010 +0200

    interval: Remember to chain up to parent in finalize()

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

commit d5634e37a262012f66022071d862ad9e5a8fbe53
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Oct 4 14:34:24 2010 +0100

    cogl-texture-2d-sliced: Use the other backends for the slices
    
    Instead of directly manipulating GL textures itself,
    CoglTexture2DSliced now works in terms of CoglHandles. It creates the
    texture slices using cogl_texture_new_with_size which should always
    end up creating a CoglTexture2D because the size should fit. This
    allows us to avoid replicating some code such as the first pixel
    mipmap tracking and it better enforces the separation that each
    texture backend is the only place that contains code dealing with each
    texture target.

 clutter/cogl/cogl/cogl-texture-2d-sliced-private.h |   20 +-
 clutter/cogl/cogl/cogl-texture-2d-sliced.c         | 1103 ++++++++------------
 2 files changed, 462 insertions(+), 661 deletions(-)

commit 61f2f1c024a01368ff99e6639518463b175ff2c0
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Oct 4 15:27:38 2010 +0100

    Support foreign textures in the texture-2d and rectangle backends
    
    This adds two new internal functions to create a foreign texture for
    the texture 2d and rectangle backends. cogl_texture_new_from_foreign
    will now use one of these backends directly if there is no waste
    instead of always using the sliced texture backend.

 clutter/cogl/cogl/cogl-texture-2d-private.h        |   7 ++
 clutter/cogl/cogl/cogl-texture-2d.c                | 135 +++++++++++++++++++--
 clutter/cogl/cogl/cogl-texture-rectangle-private.h |   7 ++
 clutter/cogl/cogl/cogl-texture-rectangle.c         | 118 +++++++++++++++++-
 clutter/cogl/cogl/cogl-texture.c                   |  42 +++++--
 5 files changed, 287 insertions(+), 22 deletions(-)

commit 7b7b655e6ef45e5bdda25fe7b416ea632a0da25f
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Fri Oct 22 06:52:27 2010 +0100

    build: Dist cookbook.xsl
    
    cookbook.xsl was not in EXTRA_DIST, so the cookbook was not buildable
    with released tarballs.

 doc/common/Makefile.am | 1 +
 1 file changed, 1 insertion(+)

commit cf46c8197e678bd53d3592307b326fa984c93eb9
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Oct 21 13:13:00 2010 +0100

    Add copyright notices

 clutter/clutter-actor-meta-private.h     | 24 ++++++++++++++++++++++++
 clutter/clutter-actor-meta.c             | 24 ++++++++++++++++++++++++
 clutter/clutter-actor-meta.h             | 24 ++++++++++++++++++++++++
 clutter/clutter-actor-private.h          | 21 +++++++++++++++++++++
 clutter/clutter-backend-private.h        | 21 +++++++++++++++++++++
 clutter/clutter-device-manager-private.h | 24 ++++++++++++++++++++++++
 clutter/clutter-paint-volume-private.h   | 21 +++++++++++++++++++++
 clutter/clutter-stage-manager-private.h  | 24 ++++++++++++++++++++++++
 clutter/clutter-stage-private.h          | 21 +++++++++++++++++++++
 9 files changed, 204 insertions(+)

commit 46c597a1f674394d94ac9bdd61b3521d8bb0905a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Oct 21 12:16:05 2010 +0100

    Clean up clutter-private.h/6
    
    Move all Actor private API to a separate file.

 clutter/Makefile.am                      |   1 +
 clutter/clutter-actor-box.c              |   2 +
 clutter/clutter-actor-private.h          |  97 +++++++++++++++++++++++++++++
 clutter/clutter-actor.c                  |   2 +-
 clutter/clutter-animator.c               |   2 +
 clutter/clutter-behaviour-ellipse.c      |   6 +-
 clutter/clutter-bind-constraint.c        |   2 +
 clutter/clutter-cairo-texture.c          |   1 +
 clutter/clutter-clone.c                  |   1 +
 clutter/clutter-desaturate-effect.c      |   2 +
 clutter/clutter-input-device.c           |   1 +
 clutter/clutter-master-clock.c           |   1 +
 clutter/clutter-offscreen-effect.c       |   1 +
 clutter/clutter-page-turn-effect.c       |   2 +
 clutter/clutter-paint-volume.c           |   1 +
 clutter/clutter-path.c                   |   3 +-
 clutter/clutter-private.h                | 102 +------------------------------
 clutter/clutter-rectangle.c              |   1 +
 clutter/clutter-stage.c                  |   1 +
 clutter/clutter-text.c                   |   2 +
 clutter/clutter-texture.c                |   1 +
 clutter/clutter-units.c                  |   2 +
 clutter/glx/clutter-stage-glx.c          |   1 +
 clutter/wayland/clutter-stage-wayland.c  |   7 ++-
 clutter/win32/clutter-stage-win32.c      |   1 +
 clutter/x11/clutter-event-x11.c          |   3 +-
 clutter/x11/clutter-stage-x11.c          |   1 +
 clutter/x11/clutter-x11-texture-pixmap.c |   1 +
 28 files changed, 138 insertions(+), 110 deletions(-)

commit cf3a29f224644b718458576191a6246883ba6485
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Oct 21 11:59:50 2010 +0100

    Clean up clutter-private.h/5
    
    Move PaintVolume private API to a separate header.

 clutter/Makefile.am                      |   1 +
 clutter/clutter-actor.c                  |   1 +
 clutter/clutter-clone.c                  |   2 +-
 clutter/clutter-paint-volume-private.h   | 104 +++++++++++++++++++++++++++++++
 clutter/clutter-paint-volume.c           |   3 +
 clutter/clutter-private.h                |  93 ---------------------------
 clutter/clutter-stage.c                  |  19 +++---
 clutter/x11/clutter-event-x11.c          |   1 +
 clutter/x11/clutter-x11-texture-pixmap.c |   4 +-
 9 files changed, 124 insertions(+), 104 deletions(-)

commit 43edfc940038f9582902d83e798b9985f8790f57
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Oct 21 11:49:37 2010 +0100

    Clean up clutter-private.h/4
    
    Move the private Backend API to a separate header.
    
    This also allows us to finally move the class vtable and instance
    structure to a separate file and plug the visibility hole that left
    the Backend class bare for everyone to poke into.

 clutter/Makefile.am                       |  1 +
 clutter/clutter-backend-private.h         | 99 +++++++++++++++++++++++++++++++
 clutter/clutter-backend.c                 |  2 +-
 clutter/clutter-backend.h                 | 50 ----------------
 clutter/clutter-device-manager.c          |  1 +
 clutter/clutter-event.c                   |  5 +-
 clutter/clutter-feature.c                 |  1 +
 clutter/clutter-main.c                    | 16 ++---
 clutter/clutter-private.h                 | 37 ------------
 clutter/clutter-stage.c                   |  2 +-
 clutter/clutter-units.c                   |  5 +-
 clutter/egl/clutter-backend-egl.h         |  3 +-
 clutter/fruity/clutter-backend-fruity.h   |  5 +-
 clutter/osx/clutter-backend-osx.h         |  2 +-
 clutter/wayland/clutter-backend-wayland.h |  3 +-
 clutter/win32/clutter-backend-win32.h     |  3 +-
 clutter/x11/clutter-backend-x11.h         |  3 +-
 17 files changed, 129 insertions(+), 109 deletions(-)

commit 8613013ab086668360d4ce625fe7b896ca5ae0e0
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Oct 21 11:29:09 2010 +0100

    Clean up clutter-private.h/3
    
    Move Stage private API to a separate header.

 clutter/Makefile.am                       |  1 +
 clutter/clutter-actor.c                   |  2 +-
 clutter/clutter-backend.c                 |  2 +
 clutter/clutter-input-device.c            |  1 +
 clutter/clutter-main.c                    |  2 +-
 clutter/clutter-master-clock.c            |  1 +
 clutter/clutter-offscreen-effect.c        |  1 +
 clutter/clutter-private.h                 | 69 -------------------------------
 clutter/clutter-stage-manager-private.h   |  7 ++++
 clutter/clutter-stage-private.h           | 64 ++++++++++++++++++++++++++++
 clutter/clutter-stage.c                   |  2 +-
 clutter/clutter-texture.c                 |  1 +
 clutter/egl/clutter-backend-egl.c         |  9 ++--
 clutter/egl/clutter-stage-egl.c           | 19 ++++-----
 clutter/fruity/clutter-backend-fruity.c   |  8 ++--
 clutter/glx/clutter-backend-glx.c         | 11 ++---
 clutter/glx/clutter-event-glx.c           |  2 +
 clutter/glx/clutter-stage-glx.c           | 21 ++++------
 clutter/osx/clutter-backend-osx.c         |  7 +++-
 clutter/osx/clutter-stage-osx.c           |  8 ++--
 clutter/wayland/clutter-backend-wayland.c | 11 ++---
 clutter/wayland/clutter-stage-wayland.c   | 20 ++++-----
 clutter/win32/clutter-backend-win32.c     | 13 +++---
 clutter/win32/clutter-event-win32.c       |  1 +
 clutter/win32/clutter-stage-win32.c       | 19 ++++-----
 clutter/x11/clutter-backend-x11.c         |  6 +--
 clutter/x11/clutter-event-x11.c           |  1 +
 clutter/x11/clutter-stage-x11.c           | 17 ++++----
 28 files changed, 162 insertions(+), 164 deletions(-)

commit 999c0637848bc36b2a668f52ff58125a1f298dd8
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Oct 21 10:59:49 2010 +0100

    Clean up clutter-private.h/2
    
    Move StageManager private API to a different header.

 clutter/Makefile.am                     |  1 +
 clutter/clutter-private.h               |  8 --------
 clutter/clutter-stage-manager-private.h | 18 ++++++++++++++++++
 clutter/clutter-stage-manager.c         | 13 ++-----------
 clutter/clutter-stage.c                 |  2 +-
 5 files changed, 22 insertions(+), 20 deletions(-)

commit c1771d152eaaa54017e80f370b2163eadc8c2fdc
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Oct 21 10:54:14 2010 +0100

    Clean up clutter-private.h/1
    
    Move DeviceManager/InputDevice private API to a different header.

 clutter/Makefile.am                            | 23 ++++-----
 clutter/clutter-device-manager-private.h       | 68 ++++++++++++++++++++++++++
 clutter/clutter-device-manager.c               |  2 +-
 clutter/clutter-event.c                        |  4 +-
 clutter/clutter-input-device.c                 |  1 +
 clutter/clutter-main.c                         |  1 +
 clutter/clutter-private.h                      | 58 ----------------------
 clutter/clutter-stage.c                        |  2 +-
 clutter/wayland/clutter-input-device-wayland.c |  7 +--
 clutter/win32/clutter-device-manager-win32.c   |  2 +-
 clutter/win32/clutter-event-win32.c            | 13 ++---
 clutter/x11/clutter-device-manager-x11.c       |  2 +-
 clutter/x11/clutter-event-x11.c                | 11 +++--
 clutter/x11/clutter-input-device-x11.c         |  6 ++-
 14 files changed, 109 insertions(+), 91 deletions(-)

commit f709664f2338302f3ad09427d97847c21518cc1d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Oct 20 09:42:34 2010 +0100

    build: Go back to autoreconf
    
    After testing and distchecking, I verified that autoreconf can still be
    used to rebuild the autotools setup.
    
    Thanks to Javier Jardón for the second pair of eyes.

 autogen.sh | 91 ++++++--------------------------------------------------------
 1 file changed, 8 insertions(+), 83 deletions(-)

commit 68156c24c1e951f06a12feca4f13b9cd1627df61
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Oct 19 17:48:15 2010 +0100

    build: Remove unused Makefile.am
    
    We switched to a non-recursive layout, hence we don't need Makefile.am
    in the osx/ and fruity/ sub-directories.

 clutter/fruity/Makefile.am | 24 ------------------------
 clutter/osx/Makefile.am    | 25 -------------------------
 2 files changed, 49 deletions(-)

commit ce3311df2683dae46b3b63a760ae87353f9f59b6
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Oct 19 12:32:02 2010 +0100

    conform: Remove unnecessary destroy() calls
    
    Unparented actors are owned by the Script instance, and if that goes
    away then the actors go away with it. The fact that we needed an
    explicit destroy() before was a hint of a memory management issue that I
    blissfully - and regretfully - ignored for the sake of a passing test
    suite.

 tests/conform/test-script-parser.c | 5 -----
 1 file changed, 5 deletions(-)

commit b5bbdd6cecc47beb0d299fdcf92aa58f71aabb1e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Oct 19 11:03:13 2010 +0100

    build: Add test wrappers to the main ignore file
    
    They are generated at configure time, so it's a good idea to have them
    in the main ignore file instead of adding them to the built ignore files
    under tests.

 .gitignore                    | 2 ++
 tests/conform/Makefile.am     | 1 -
 tests/interactive/Makefile.am | 1 -
 3 files changed, 2 insertions(+), 2 deletions(-)

commit e80825535adf57db6d7faa16b81eddb7b5d6b065
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Oct 19 10:48:39 2010 +0100

    build: Show whether we have XComposite
    
    Since we're doing it for other optional X11 extensions as well.

 configure.ac | 1 +
 1 file changed, 1 insertion(+)

commit dd2f55c6f6bbc2f0a12b70ccf90cf7840b6e2212
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Oct 19 10:40:57 2010 +0100

    x11: Protect XComposite API calls
    
    Since we allow compiling Clutter without the XComposite extension
    available, we need to protect the calls to the XComposite API with
    the guards provided by the configure script.

 clutter/x11/clutter-backend-x11.c        |  8 +++++++-
 clutter/x11/clutter-x11-texture-pixmap.c | 16 ++++++++++++----
 2 files changed, 19 insertions(+), 5 deletions(-)

commit 21eb49098a7e90007b9043917a8dcf816db765b7
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Sep 13 23:29:52 2010 +0300

    script: Fix the memory management
    
    Currently, the memory management in ClutterScript is overly complicated.
    The basic design tenet should be:
    
      - ClutterScript owns a reference on every object it creates
    
    This allows the Script instance to reliably handle the lifetime of the
    instances from creation to disposal.
    
    In case of unmerge, the Script instance should destroy any Actor
    instance, except for the Stage, and release the reference it owns. The
    Stage is special because it's really owned by Clutter itself, and it
    should be destroyed explicitly.
    
    When disposing the Script itself, it should just release the reference;
    any parented actor, or any InitiallyUnowned instance, will then be
    managed by the parent object, as they should, while every GObject
    instance will go away, as documented.
    
    This commit is based on a patch by:
    
      Henrik Hedberg <hhedberg@innologies.fi>
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2316

 clutter/clutter-script-parser.c  | 30 ++++++++++++++++++++++--------
 clutter/clutter-script-private.h |  3 ++-
 clutter/clutter-script.c         | 20 +++++---------------
 3 files changed, 29 insertions(+), 24 deletions(-)

commit 20a359cc530bac6a27bfa46839b49a88e1bec3d6
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Oct 19 01:41:05 2010 +0100

    debug: Do not use '&' in the messages
    
    Use ':' as a separator between G_STRLOC and the debug message, like we
    do for warnings.

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

commit 78d4073f8ebb115d4e02f5ffea11260ed286719f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Oct 19 01:40:44 2010 +0100

    Remove unused variables

 clutter/clutter-script.c        | 1 -
 clutter/clutter-shader-effect.c | 1 -
 2 files changed, 2 deletions(-)

commit 1c9dcdaeb295867d86a447cfc3df44d4e74d3ae0
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Thu Oct 14 15:33:17 2010 +0100

    build: Fix CLUTTER_EGL_BACKEND definition for eglnative and cex100
    
    CLUTTER_EGL_BACKEND is used to define a special EGL native backend to
    use and was introduced for the CEX100 EGL backend. Unfortunately
    CLUTTER_EGL_BACKEND was defined to "cex100" for eglnative, which is
    obviously wrong.
    
    The paches defines the right values for CLUTTER_EGL_BACKEND for the
    eglnative and cex100 flavours.

 configure.ac | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 32270730bdcc20d9ac19c5b66cfda08e8e839937
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Thu Oct 14 16:32:13 2010 +0100

    build: Fix EGL/CEX100 build with GLES2
    
    Some headers files have been renamed or removed and the gles(2) did not
    compile anymore, fix that.

 clutter/cogl/cogl/driver/gles/cogl-gles.c          | 2 +-
 clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 0f613ea134b7369a214e1bb0056e3a21233982f9
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Oct 15 17:35:41 2010 +0100

    cairo-texture: Allow overriding the surface creation
    
    By using a new signal, ::create-surface (width, height), it should be
    possible for third party code and sub-classes to override the default
    surface creation code in CairoSurface.
    
    This commit takes a bit of the patch from:
    
      http://bugzilla.clutter-project.org/show_bug.cgi?id=1878
    
    which cleans up CairoTexture; the idea, mutuated from that bug, is that
    the CairoTexture actor checks whether the surface it has it's an image
    one, and in that case it uses a Cogl texture as the backing store. In
    case the surface is not an image one we assume that the surface itself
    has some way of updating the GL state and flush the surface.

 clutter/clutter-cairo-texture.c                | 303 ++++++++++++++-----------
 clutter/clutter-cairo-texture.h                |   7 +-
 clutter/clutter-marshal.list                   |   1 +
 tests/interactive/Makefile.am                  |   2 +-
 tests/interactive/test-cairo-flowers.c         | 223 ++++++++++++++++++
 tests/interactive/test-clutter-cairo-flowers.c | 224 ------------------
 6 files changed, 404 insertions(+), 356 deletions(-)

commit 63e314b07e8212089c2c50aab015790fe8908e6a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Oct 15 16:09:19 2010 +0100

    build: Depend on cairo-gobject
    
    Starting from version 1.10, Cairo ships GTypes for its data types.

 README       | 2 +-
 configure.ac | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 8729c01377d11874107bdee5d53dbcb23874db20
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Oct 15 16:09:12 2010 +0100

    build: Remove unnecessary g-i version check

 configure.ac | 7 -------
 1 file changed, 7 deletions(-)

commit 050e775da27209c5720d5ba8bffde786add562cd
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Oct 15 15:24:27 2010 +0100

    Move more classes to install_properties()

 clutter/clutter-actor-meta.c        |  51 ++++++-----
 clutter/clutter-align-constraint.c  |  56 ++++++------
 clutter/clutter-alpha.c             |  20 ++---
 clutter/clutter-animation.c         |  86 +++++++++----------
 clutter/clutter-animator.c          |  33 ++++----
 clutter/clutter-behaviour.c         |  18 ++--
 clutter/clutter-bin-layout.c        | 104 +++++++++++------------
 clutter/clutter-bind-constraint.c   |  51 ++++++-----
 clutter/clutter-binding-pool.c      |  20 +++--
 clutter/clutter-cairo-texture.c     |  39 ++++-----
 clutter/clutter-child-meta.c        |  35 ++++----
 clutter/clutter-click-action.c      |  31 +++----
 clutter/clutter-clone.c             |  20 +++--
 clutter/clutter-colorize-effect.c   |  18 ++--
 clutter/clutter-deform-effect.c     |  55 ++++++------
 clutter/clutter-desaturate-effect.c |  28 +++---
 clutter/clutter-device-manager.c    |  20 ++---
 clutter/clutter-flow-layout.c       | 165 ++++++++++++++++++------------------
 clutter/clutter-script.c            |  36 ++++----
 clutter/clutter-shader-effect.c     |  25 +++---
 clutter/clutter-timeline.c          |  72 ++++++++--------
 21 files changed, 492 insertions(+), 491 deletions(-)

commit 8429aa8d755b268975c2870978f8d8484f584542
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Oct 8 15:47:00 2010 +0100

    Remove unnecessary GLib version checks
    
    We now depend on a newer version of GLib than those checks tested for.

 clutter/clutter-animation.c      |  6 ------
 clutter/clutter-animator.c       |  5 -----
 clutter/clutter-box.c            |  5 -----
 clutter/clutter-container.c      |  5 -----
 clutter/clutter-frame-source.c   |  3 ---
 clutter/clutter-interval.c       | 10 ----------
 clutter/clutter-layout-manager.c |  5 -----
 clutter/clutter-master-clock.c   |  2 --
 clutter/clutter-state.c          |  5 -----
 clutter/clutter-timeout-pool.c   |  2 --
 clutter/x11/clutter-event-x11.c  |  3 ---
 11 files changed, 51 deletions(-)

commit 7dd09e21861bd1b7ceaea112b6e4fb69aeebbf1e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Oct 8 15:21:57 2010 +0100

    Use G_DEFINE_BOXED_TYPE for all boxed types
    
    We actually need a couple more macros for registering GValue
    transformation functions. Those should be added to upstream
    GLib.

 clutter/clutter-actor-box.c    | 60 +++++++++++-----------------
 clutter/clutter-actor.c        | 88 ++++++++++++++----------------------------
 clutter/clutter-animator.c     | 16 ++------
 clutter/clutter-behaviour.c    | 18 ++-------
 clutter/clutter-color.c        | 29 +++-----------
 clutter/clutter-event.c        | 16 ++------
 clutter/clutter-paint-volume.c | 16 ++------
 clutter/clutter-path.c         | 48 +++++++----------------
 clutter/clutter-private.h      | 24 +++++++++---
 clutter/clutter-stage.c        | 27 ++-----------
 clutter/clutter-state.c        | 15 ++-----
 clutter/clutter-state.h        |  1 +
 clutter/clutter-units.c        | 45 +++++----------------
 13 files changed, 123 insertions(+), 280 deletions(-)

commit 09a830d2945456d882cbf8b326264041b172fea9
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Oct 8 14:49:47 2010 +0100

    Remove conditional wrappers for property installation/notification
    
    For the time being, just keep the #define's.

 clutter/clutter-drag-action.c | 11 ++++++-----
 clutter/clutter-private.h     | 27 ++-------------------------
 2 files changed, 8 insertions(+), 30 deletions(-)

commit 9caf11f2d8f7120830da9f10a694ccc8f30ebee1
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Oct 8 14:47:46 2010 +0100

    Use G_DEFINE_INTERFACE
    
    GObject provides us with a nice, safe macro for defining interface
    types.

 clutter/clutter-animatable.c   |  16 +-
 clutter/clutter-container.c    | 178 +++++++++-----------
 clutter/clutter-media.c        | 368 +++++++++++++++++++----------------------
 clutter/clutter-scriptable.c   |  20 +--
 clutter/clutter-stage-window.c |  25 +--
 5 files changed, 263 insertions(+), 344 deletions(-)

commit 8f5d6cb790a426536b462297e76be9159109e245
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Oct 8 14:47:13 2010 +0100

    build: Depend on GLib ≥ 2.26.0
    
    We are going to need some new macros and API.

 README       | 2 +-
 configure.ac | 3 ++-
 2 files changed, 3 insertions(+), 2 deletions(-)

commit 2b4ee9ab548a58784da7ccc710cbbd213a6c45c9
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Oct 15 16:05:44 2010 +0100

    actor: Add more checks to the redraw queue

 clutter/clutter-actor.c |  4 ++--
 clutter/clutter-stage.c | 14 ++++++++++----
 2 files changed, 12 insertions(+), 6 deletions(-)

commit ad0e7a9e15a18f26b1002056427ded9a9f011e86
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Oct 15 15:24:58 2010 +0100

    moduleset: Add Atk as a Clutter dependency

 build/clutter.modules | 1 +
 1 file changed, 1 insertion(+)

commit 56c89bd86b61f3c2ecba04d8a3afd4aa6250cf09
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Oct 15 12:40:43 2010 +0100

    osx: Fix glib.h include path
    
    The fix for removing glib/gmain.h introduced the wrong path for glib.h.

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

commit d8426197554f4745bc2489c81435b9510b62d21a
Author: Roland Peffer <gdevel@clixxun.com>
Date:   Thu Oct 14 18:23:02 2010 +0100

    osx: Add button mask to the modifier state translation
    
    The modifier state translation is missing the CLUTTER_BUTTON*_MASK.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2365
    
    Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>

 clutter/osx/clutter-event-osx.c | 8 ++++++++
 1 file changed, 8 insertions(+)

commit 134ce072e793834c7fe08a270c03ee5b2efbe998
Author: Kristian Høgsberg <krh@bitplanet.net>
Date:   Wed Sep 29 17:10:44 2010 -0400

    The amazing lazy-copy-back-repaint-page-flip
    
    Always use pageflipping, but avoid full repaint by copying back dirty
    regions from front to back.  Additionally, we dealy copying back until
    we're ready to paint the new frame, so we can avoid copying areas that
    will be repainted anyway.
    
    This is the least amount of copying per frame we can get away with at all
    and at the same time we don't have to worry about stalling the GPU on
    synchronized blits since we always pageflip.

 clutter/wayland/clutter-backend-wayland.c |   8 +
 clutter/wayland/clutter-stage-wayland.c   | 295 +++++++++++++++++++++++-------
 clutter/wayland/clutter-stage-wayland.h   |   4 +-
 3 files changed, 241 insertions(+), 66 deletions(-)

commit cb5582c4ab1207738a2b5dc4c94fb4551e696c20
Author: Kristian Høgsberg <krh@bitplanet.net>
Date:   Tue Sep 28 10:17:46 2010 -0400

    Add wayland backend
    
    This adds a clutter backend for running under the wayland window system.
    Initial cogl framebuffer integration by Robert Bragg.

 clutter/Makefile.am                            |  19 +
 clutter/cogl/cogl/Makefile.am                  |   4 +
 clutter/cogl/cogl/winsys/cogl-egl.c            |  10 +-
 clutter/wayland/clutter-backend-wayland.c      | 552 +++++++++++++++++++++++++
 clutter/wayland/clutter-backend-wayland.h      |  94 +++++
 clutter/wayland/clutter-event-wayland.c        | 148 +++++++
 clutter/wayland/clutter-input-device-wayland.c | 340 +++++++++++++++
 clutter/wayland/clutter-stage-wayland.c        | 368 +++++++++++++++++
 clutter/wayland/clutter-stage-wayland.h        |  94 +++++
 clutter/wayland/clutter-wayland.h              |  60 +++
 configure.ac                                   |  61 ++-
 11 files changed, 1738 insertions(+), 12 deletions(-)

commit a7cf98ebfc9ca13e3f84bbe33171a2218cfe039b
Author: Kristian Høgsberg <krh@bitplanet.net>
Date:   Mon Sep 27 13:25:50 2010 -0400

    Initialize color masks lazily
    
    When we don't use a window system drawable, we can't query the color
    masks at context initialization time.  Do it lazily so we're sure to have
    a current context with a valid framebuffer.

 clutter/clutter-main.c | 35 ++++++++++++++++++++---------------
 1 file changed, 20 insertions(+), 15 deletions(-)

commit f456116c18dac24454f9c46b02677a51f79e4052
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Oct 14 16:19:55 2010 +0100

    When unparenting an actor, remove queued redraws for all descendants
    
    We need to make sure that redraws queued for actors on a stage are for
    actors actually in the stage. So in clutter_actor_unparent() descend
    through the children and remove redraws. Just removing the actor itself
    isn't good enough since an entire hierarchy can be removed from the
    stage without breaking it up into individual actors.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2359
    
    This is based on an original patch from Owen Taylor who debugged the
    root cause of this bug; thanks.

 clutter/clutter-actor.c | 24 +++++++++++++++++++-----
 1 file changed, 19 insertions(+), 5 deletions(-)

commit 07f2dba7e24abd7b25327cf6b6b3f60dc17091d2
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Sep 30 18:42:40 2010 +0100

    stage: handle unclipped redraw following clipped
    
    In the case that an unclipped redraw of an actor is queued after a
    clipped we should update any existing ClutterStageQueueRedrawEntry
    so entry->has_clip = FALSE and free the previous clip.

 clutter/clutter-stage.c | 5 +++++
 1 file changed, 5 insertions(+)

commit d032b9b2bf21c9c7c02f1a1b11d4e4a1bc7472b6
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Oct 12 17:31:15 2010 +0100

    conform: Start cleaning up the conformance test suite
    
    Re-order the units into a sensible list, with basic tests at the
    beginning, and per-class tests at the end - with Cogl last.
    
    Also, start renaming the unit functions from test_<foo> to <foo>,
    so that the executable wrappers and the reports have sensible names.

 tests/conform/test-actor-destroy.c        | 18 ++++++-
 tests/conform/test-actor-invariants.c     |  7 ---
 tests/conform/test-actor-size.c           |  6 +--
 tests/conform/test-anchors.c              |  6 +--
 tests/conform/test-clutter-text.c         | 46 +++++-------------
 tests/conform/test-conform-main.c         | 80 ++++++++++++++++---------------
 tests/conform/test-pick.c                 |  4 +-
 tests/conform/test-text-cache.c           |  3 +-
 tests/conform/test-timeline-interpolate.c |  3 +-
 tests/conform/test-timeline-rewind.c      |  3 +-
 10 files changed, 77 insertions(+), 99 deletions(-)

commit b5d5b9628ed8f683231134ac36b75efe80022f06
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Oct 12 17:11:52 2010 +0100

    conform: Implement TEST_CONFORM_TODO() correctly
    
    The TODO() macro for adding new tests to the test suite has always meant
    to be implemented like the TODO block in Test::More, i.e. a test that is
    assumed to fail, and which warns if it unexpectedly succeeds.
    
    Since GTest lacks the expressivity of Test::More, the implementation
    just verifies that the tests marked as TODO actually fail, and will fail
    if they happen to succeed - at which point the developer will have to
    change the macro to SIMPLE or SKIP.

 tests/conform/ADDING_NEW_TESTS        | 70 ++++++++++++++++++++++++++---------
 tests/conform/Makefile.am             |  6 ++-
 tests/conform/test-actor-invariants.c |  7 ++++
 tests/conform/test-conform-common.h   |  6 +++
 tests/conform/test-conform-main.c     | 30 +++++++++++++--
 5 files changed, 96 insertions(+), 23 deletions(-)

commit 2a23bab8191678f33f10f0bd15fc05c7b05c89d3
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Oct 12 15:43:42 2010 +0100

    conform: Save the revision and date inside the test report
    
    Even if gtester-report doesn't use that information (yet), we should
    store the revision of Clutter that generated the report, and the date in
    which the test suite was ran.

 tests/conform/Makefile.am | 41 +++++++++++++++++++++++++++++------------
 1 file changed, 29 insertions(+), 12 deletions(-)

commit e6418a9dec874b55d51afede7b039d3fd31908d4
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Oct 12 15:43:27 2010 +0100

    constraints: Remove unused variable

 clutter/clutter-align-constraint.c | 1 -
 clutter/clutter-bind-constraint.c  | 1 -
 2 files changed, 2 deletions(-)

commit 7fd6273c25569fe4f37ad371532d93e5170e51f7
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Oct 11 16:16:45 2010 +0100

    tests: Generate the stub scripts using sed
    
    Instead of trying to run ./test-conformance with the -l option to
    generate a list of available tests it now runs sed on the
    test-conform-main.c file instead. Running the generated executable is
    a pain for cross-compiling so it would be nice to avoid it unless it's
    absolutely necessary. Although you could tell people who are cross
    compiling to just disable the conformance tests, this seems a shame
    because they could still be useful along with the wrappers for example
    if the cross compile is built to a shared network folder where the
    tests can be run on the actual device.
    
    The sed script is a little more ugly than it could be because it tries
    to avoid using the GNU extensions '\+' and '\|'.
    
    The script ends up placing restrictions on the format of the C file
    because the tests must all be listed on one line each. There is now a
    comment to explain this. Hopefully the trade off is worth it.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2363

 tests/conform/Makefile.am         | 6 ++++--
 tests/conform/test-conform-main.c | 5 +++++
 2 files changed, 9 insertions(+), 2 deletions(-)

commit 100d541f479d070660905fa763b625853f17bfee
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Oct 12 14:43:10 2010 +0100

    tests: Re-enable the test-anchors conformance test
    
    This test was disabled in b5d58213. The commit message doesn't mention
    this so I'm guessing it was a mistake. In any case the test appears to
    work now anyway so it should be re-enabled.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2363

 tests/conform/test-conform-main.c | 2 --
 1 file changed, 2 deletions(-)

commit 2831addcf5ef1e4070fd2fabbe1ce71385b53062
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Oct 12 14:53:20 2010 +0100

    test-flow-layout: Track stage size by default
    
    Instead of requiring a special command line switch.

 tests/interactive/test-flow-layout.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit 4e724aed46cd7ad0ad7718b584a0f1691b12a09f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Oct 12 14:09:47 2010 +0100

    bind-constraint: Use ::queue-relayout
    
    Instead of using the allocation-changed signal, use the queue-relayout
    signal on the source to queue a relayout on the actor to which the
    BindConstraint has been attached to.
    
    The ::allocation-changed signal is not always enough, given that a
    BindConstraint can use the position as well as the size of an actor to
    drive the allocation of another; in this regard, it's much similar
    to a ClutterClone, which requires a notification on every change, even
    potential, and not just real ones, given the short-circuiting done
    inside ClutterActor.

 clutter/clutter-bind-constraint.c | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

commit 5c82b2551c2053f76bfb09b6d36a5ea4c4e93104
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Oct 12 14:09:17 2010 +0100

    constraints: Do not check for :enabled
    
    ClutterActor will do it for us.

 clutter/clutter-align-constraint.c | 3 ---
 clutter/clutter-bind-constraint.c  | 3 ---
 2 files changed, 6 deletions(-)

commit 3f27afde2484a01c71e0b484d2f485e5ce15f5d7
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Oct 12 14:08:07 2010 +0100

    actor: Use an explicit check for NULL
    
    Follow the coding style, and don't use the implicit C boolean
    equivalence for NULL pointers.

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

commit 3b72fdb20cca143f386d9a81dc42fc5ac64c48e7
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Oct 12 14:07:27 2010 +0100

    actor: Queue a relayout when adding/removing constraints
    
    Constraints change the way an actor is allocated; this warrants a
    relayout.

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

commit 91a9a355c32e86e597c57f3fd8b4deaecad0b9a4
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Oct 12 14:04:21 2010 +0100

    actor: Check CluterActorMeta:enabled
    
    Instead of delegating the check for the ActorMeta:enabled property to
    the sub-classes of ClutterActorMeta, ClutterActor can do the check prior
    to using the ClutterActorMeta instances.

 clutter/clutter-actor.c | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

commit 3f6b82c9c9e75be6ba174f5964c85809ab0746cc
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Oct 12 14:04:05 2010 +0100

    actor: Add debugging note for allocation changes

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

commit 89a389cd2bdfa78768b5901a8a2865cb7d1a8c83
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Oct 11 15:57:22 2010 +0100

    actor-box: Split out ActorBox into its own file
    
    clutter-actor.c is getting way too large, so splitting it up wherever
    possible makes sense.

 clutter/Makefile.am         |   1 +
 clutter/clutter-actor-box.c | 440 ++++++++++++++++++++++++++++++++++++++++++++
 clutter/clutter-actor.c     | 438 -------------------------------------------
 3 files changed, 441 insertions(+), 438 deletions(-)

commit 7a54bdc65dcb9eb3d4d30020f65c255ef6f86f29
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Oct 11 15:52:50 2010 +0100

    vertex: Register progress function
    
    This allows animating properties storing a ClutterVertex.

 clutter/clutter-actor.c | 32 ++++++++++++++++++++++++++++----
 1 file changed, 28 insertions(+), 4 deletions(-)

commit 4931802feea47c2fd89aa171a8fd05ebbfa087b4
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Oct 11 15:44:09 2010 +0100

    geometry: Register a progress function
    
    This allows animating properties storing a ClutterGeometry.

 clutter/clutter-actor.c | 34 ++++++++++++++++++++++++++++++----
 1 file changed, 30 insertions(+), 4 deletions(-)

commit a5fc90d4d99cf904abd60ed0be0356ecb1efb40a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Oct 11 15:20:25 2010 +0100

    actor-box: Register a progress function
    
    So that we can animate properties storing ClutterActorBox.

 clutter/clutter-actor.c | 32 ++++++++++++++++++++++++++++----
 1 file changed, 28 insertions(+), 4 deletions(-)

commit 2f21c851eafbe217661c3010ad6388414e27a56b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Oct 11 15:07:06 2010 +0100

    script: Fix annotation for get_object()'s return value

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

commit dcf266261645fd2deda5c68ded438160bccd7235
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Oct 11 15:06:11 2010 +0100

    interval: Remove special casing for ClutterColor
    
    ClutterColor registers a progress function on type initialization, so we
    don't need to special case it any more.

 clutter/clutter-interval.c | 17 -----------------
 1 file changed, 17 deletions(-)

commit d5376bf317b5b682d85e64f1815f7c308da2ffda
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Oct 11 15:04:54 2010 +0100

    color: Add Color.interpolate() method
    
    The interpolate() method does what it says on the tin: it interpolates
    between two colors using the given factor.
    
    ClutterColor uses it to register a progress function for Intervals.

 clutter/clutter-color.c                    | 48 ++++++++++++++++++++++++++++++
 clutter/clutter-color.h                    |  5 ++++
 doc/reference/clutter/clutter-sections.txt |  1 +
 3 files changed, 54 insertions(+)

commit 7e112472b5ad9deea9b0ad1fda47aa16199a780a
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Oct 5 17:17:53 2010 +0100

    cogl-texture-2d-sliced: Use the smallest possible waste
    
    When picking a size for the last slice in a texture, Cogl would always
    pick the biggest power of two size that doesn't create too much
    waste and is less than or equal to the previous slice size. However
    this can end up creating a texture that is bigger than needed if there
    is a smaller power of two.
    
    For example, if the maximum waste is 127 (the current default) and we
    try to create a texture that is 257 pixels wide it will decide that
    the next power of two (512) is too much waste (255) so it will create
    the first slice at 256 pixels wide. Then we only have 1 pixel left to
    allocate but Cogl would pick the next smaller size that has a small
    enough waste which is 128. But of course 1 is already a power of two
    so that's redundantly oversized by 127.
    
    This patch fixes it so that whenever it finds a size that would be big
    enough, instead of using exactly that it picks the next power of two
    up from the size we need to fill.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2355

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

commit 1f106b35a99e3784e441feca2df983efafa9fbd9
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Oct 11 13:52:09 2010 +0100

    Whitespace alignment fixes

 clutter/clutter-paint-volume.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 68d656c61badd7a88d7271600a59f24b05fbc36e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Oct 11 13:51:12 2010 +0100

    paint-volume: Add arguments checks
    
    In some cases we access the arguments in public functions without, or
    prior to checking the arguments.

 clutter/clutter-paint-volume.c | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

commit 8089af3c1b0e9d9501ee5fad4249a3af1bfdb5dc
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date:   Thu Oct 7 16:00:47 2010 -0400

    ClutterClone: Handle clone_source == NULL for get_paint_volume()
    
    It's valid to have a ClutterClone without a clone source; in this
    case the paint volume is empty.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2360

 clutter/clutter-clone.c | 4 ++++
 1 file changed, 4 insertions(+)

commit e0058925349046e315e45e14747879e05bdab262
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Oct 11 13:32:26 2010 +0100

    clone: Remove unnecessary G_UNLIKELY macros
    
    A Clone:source property might be NULL, and we should not penalize
    performance when we can just bail out early, because that would kind of
    defeat the point.

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

commit 12f80db8b8e826db245880c28f05facd0189c0f8
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Oct 11 12:00:18 2010 +0100

    docs: Update the README
    
    Add a minimal building reference, and point to git-bz for filing
    patches to Bugzilla.

 README | 28 ++++++++++++++++++++++++++--
 1 file changed, 26 insertions(+), 2 deletions(-)

commit f8af2da4c8b2e428baba750fac18a38904f55c35
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sun Oct 10 09:31:55 2010 +0100

    osx: Compilation fixes
    
    Replace deprecated symbols with the correct ones.

 clutter/osx/clutter-backend-osx.c |   8 ++-
 clutter/osx/clutter-event-osx.c   | 104 +++++++++++++++++++++++++-------------
 clutter/osx/clutter-stage-osx.c   |   2 +-
 3 files changed, 77 insertions(+), 37 deletions(-)

commit 981fed1f63ecd1cc077c50869e9814c439ccf407
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Oct 8 13:29:49 2010 +0100

    box-layout: Plug a memory leak
    
    Similar to commit 4724be167f19fe58cb38179e6f3b34b6797ff639 for
    TableLayout.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2358

 clutter/clutter-box-layout.c | 39 +++++++++++++--------------------------
 1 file changed, 13 insertions(+), 26 deletions(-)

commit 4724be167f19fe58cb38179e6f3b34b6797ff639
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Oct 6 16:01:03 2010 +0100

    Plug a memory leak in clutter-table-layout
    
    Whenever the allocation is changed on a child of a ClutterTableLayout
    and animations are not in effect then it would store a copy of the
    allocation in the child meta data. However it was not freeing the old
    copy of the allocation so it would end up with a small leak.
    
    Instead of just changing it to free the old value this patch makes it
    store the allocation inline in the meta data struct because it seems
    that the size of an actor box is already quite small compared to the
    size of the meta data struct so it is probably not worth having a
    separate allocation for it. To detect the case when there has not yet
    been an allocation a separate boolean is used instead of storing NULL.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2358

 clutter/clutter-table-layout.c | 39 ++++++++++++++++-----------------------
 1 file changed, 16 insertions(+), 23 deletions(-)

commit 42dac6c9971fc33acae95f02d6e3605324a8d7f3
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Oct 7 18:01:53 2010 +0100

    autogen.sh: libtool 2.4 has been released

 autogen.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit eec1a5fb7ad0c5d5f6169abbd1825bd083a940c0
Author: Damien Lespiau <damien.lespiau@gmail.com>
Date:   Thu Oct 7 12:17:33 2010 +0100

    po: Update French localization
    
    Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>

 po/fr.po | 264 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 132 insertions(+), 132 deletions(-)

commit 7bdbbe6a8c372e902753151cfacb2a6d7505b96c
Author: Andika Triwidada <andika@gmail.com>
Date:   Tue Oct 5 17:23:37 2010 +0100

    po: Update Indonesian localization
    
    Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>

 po/id.po | 223 ++++++++++++++++++++++++---------------------------------------
 1 file changed, 84 insertions(+), 139 deletions(-)

commit 12119ff063f0a7d71c2d7431697004a620d154ab
Author: Damien Lespiau <damien.lespiau@gmail.com>
Date:   Tue Oct 5 17:22:56 2010 +0100

    po: Add French localization
    
    Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>

 po/fr.po | 1836 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 1836 insertions(+)

commit 3cb0436c42ca9369e3d804b8519d2dd40dac86e5
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Oct 5 14:30:01 2010 +0100

    clutter.modules: Update Cairo and Pixman

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

commit 155bde24650eb613824319f7186bd0a0d690932d
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Tue Oct 5 08:35:19 2010 +0100

    texture: Fix the typos in the blurbs and make them not end with '.'
    
    All the nifty things you discover when translating strings not exposed
    to anyone. First the clutter-wide record of the number of typos in one
    string. Second, ClutterTexture happened to have the only property blurbs
    ending with a '.', remove them.

 clutter/clutter-texture.c | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

commit 2d56ed637c3c71516498c5a9dc11bf521db37f6f
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Tue Oct 5 08:25:06 2010 +0100

    text: Rename the nick of the position property "Cursor Position"
    
    the "position" property of ClutterText is really the position of the
    cursor. Rename the nick accordingly not to confuse it with the position
    of the actor itself and be consistent with all the other cursor-related
    properties.

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

commit a13182c740c9d61e897c8f41d958ca31ebbe6797
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Tue Oct 5 08:03:19 2010 +0100

    cogl: Use Cogl (not COGL) consistently
    
    If I remember correctly, Robert wants to name Cogl, Cogl (not COGL) so
    start by having a consistent naming in the code.

 clutter/clutter-texture.c      | 16 ++++++++--------
 clutter/cogl/cogl/cogl-debug.c |  8 ++++----
 configure.ac                   |  4 ++--
 3 files changed, 14 insertions(+), 14 deletions(-)

commit 24577a053868bfa39c7758dea2173cf090230de2
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Tue Oct 5 07:44:49 2010 +0100

    bin-layer: Fix the property blurbs
    
    The descriptions for the 'y-align' and 'x-align' properties talk about a
    layer and a layer manager. It seems that these properties are the
    alignement factors relative to the BinLayout, so document them
    accordingly.

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

commit 9ae1729f37fde328b738972c39db52673a28999e
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Mon Oct 4 18:35:13 2010 +0100

    box-layout: Fix missing spaces in the blurbs of vertical and homogeneous

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

commit 9258f9bebb33bd7677f11872fa2c928296399832
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Mon Oct 4 17:20:30 2010 +0100

    deform-effect: Fix Horiontal/Horizontal typo

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

commit cd7df1b42133cef69de123986f336767f7a14978
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Oct 4 15:47:53 2010 +0100

    build: Fix the release-message target
    
    Generate the SHA256 checksum file during release-upload and then copy it
    to the build directory.

 build/autotools/Makefile.am.release | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

commit 75e016ac20528c9fded515a620962cae1d96e5f6
Author: Andika Triwidada <andika@gmail.com>
Date:   Mon Oct 4 15:43:54 2010 +0100

    po: Add Indonesian localization

 po/id.po | 2041 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 2041 insertions(+)

commit c32c25e4576ef125d83ad74d3ac6c3ae90d098ab
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Mon Oct 4 15:43:16 2010 +0100

    po: Update Polish localization

 po/pl.po | 708 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 365 insertions(+), 343 deletions(-)

commit 55121d0f35a8f713973254a4a56ef6cdf79f0ea9
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Oct 4 15:20:44 2010 +0100

    Post-release version bump to 1.5.3

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ca5188edbf962e065dd80726a4a4e92ccc8cfacf
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Oct 4 14:53:55 2010 +0100

    Release Clutter 1.5.2 (snapshot)

 NEWS         | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 configure.ac |  2 +-
 2 files changed, 53 insertions(+), 1 deletion(-)

commit 6af0ee2cbe2d6584b523809f160f56daf16eb583
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Oct 4 14:12:21 2010 +0100

    cogl-x11: Trap glXDestroyPixmap()
    
    There are ordering issues in the pixmap destruction with current and
    past X11 server, Mesa and dri2. Under some circumstances, an X pixmap
    might be destroyed with the GLX pixmap still referencing it, and thus
    the X server will decide to destroy the GLX pixmap as well; then, when
    Cogl tries to destroy the GLX pixmap, it gets BadDrawable errors.
    
    Clutter 1.2 used to trap + sync all calls to glXDestroyPixmap(), but
    then we assumed that the ordering issue had been solved. So, we're back
    to square 1.
    
    I left a Big Fat Comment™ right above the glXDestroyPixmap() call
    referencing the bug and the reasoning behind the trap, so that we don't
    go and remove it in the future without checking that the issue has been
    in fact solved.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2324

 clutter/cogl/cogl/winsys/cogl-texture-pixmap-x11.c | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

commit f5aeabadd5faf699ab04ec24d6db12297ee6ee30
Author: Alejandro Piñeiro <apinheiro@igalia.com>
Date:   Mon Oct 4 02:17:40 2010 +0200

    Fixing cally.pc.in and moving include headers to previous directory
    
    After commit 8dd8fbdb some errors appear if you try work directly
    against cally:
    
     * cally.pc.in removed some elements. After install clutter, doing
       pkg-config --cflags cally-1.0
       fails due missing winsys
    
     * cally headers were moved from clutter-1.0/cally to
       clutter-1.0/clutter/cally.  Applications using it (yes I know,
       nobody is officially using it) would require to:
        * Change their include.
        * Add directly a dependency to cally, in order to use the cally.pc
          file with the correct directory include.
    
    Note: Take into account that accessibility support still works (ie:
    clutter_get_accessibility_enabled). This bug only prevents
    applications to work directly against cally (ie: create a CallyActor
    subclass)
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2353
    
    Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>

 clutter/Makefile.am       | 5 +++--
 clutter/cally/cally.pc.in | 6 ++++++
 2 files changed, 9 insertions(+), 2 deletions(-)

commit d3b6dd5ec7dda1557b2f5e5f14d3a73c02781683
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Oct 4 11:30:32 2010 +0100

    effect: Fix up the class ABI
    
    Landing the paint-box branch accidentally added two slots to the
    ClutterEffectClass vtable, plus the get_paint_volume() function
    pointer. This is an ABI break from 1.4.

 clutter/clutter-effect.h | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

commit e1a1050a39a607aee4c97c4558c0a637136f6b52
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Oct 4 11:27:16 2010 +0100

    actor-box: Constify arguments for union
    
    The input arguments for clutter_actor_box_union() should be constified,
    since they will not be modified by the function.

 clutter/clutter-actor.c | 14 +++++++-------
 clutter/clutter-types.h |  4 ++--
 2 files changed, 9 insertions(+), 9 deletions(-)

commit 45b6d7d47a943faad8d82e0b196be058a1c45193
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Oct 4 11:26:46 2010 +0100

    docs: Fix the annotations of ActorClass

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

commit bdb24701f04cec42d388fe415aba16b29c2678e5
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Oct 4 10:52:36 2010 +0100

    build: Add -xobjective-c to the fruity backend section
    
    Like we do for the Quartz backend, we should turn on the -xobjective-c
    compiler flag for the Fruity backend.
    
    This does not mean that the backend actually works.

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

commit db5e33d4a547862c772e93efbfd041baaebd6423
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Oct 4 10:44:00 2010 +0100

    docs: Remove TODO
    
    Clutter has long since moved all the RFE and roadmap tracking to
    Bugzilla. The TODO is just a relic of an ancient past, where men
    were real men, women were real women, and fuzzy little creatures
    from Alpha Centauri were fuzzy little creatures from Alpha Centauri.

 TODO | 7 -------
 1 file changed, 7 deletions(-)

commit 0cf2f50ba60d9268f162da89a19f2387b1d6e9cb
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Oct 4 09:09:13 2010 +0100

    build: Remove redundant EXTRA_DISTs
    
    The files for the backend that we conditionally compile are
    automatically added to the dist process by automake.

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

commit 7728ea951b0675ef3f97c160f212eb9ae72ce45e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Oct 4 09:08:07 2010 +0100

    docs: Add unused symbols to the Clutter API reference

 doc/reference/clutter/clutter-sections.txt | 5 +++++
 1 file changed, 5 insertions(+)

commit a29623e8388c949b0c18853ce8c9f0e494a4317d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Oct 4 08:57:29 2010 +0100

    build: Unconditionally add GLES2 shaders to EXTRA_DIST

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

commit ba09e9c6df28bbd57a400de3d6acbe14fd53b7f6
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sun Oct 3 17:21:10 2010 +0100

    build: Generate a stub announcement email when releasing

 build/autotools/Makefile.am.release | 42 +++++++++++++++++++++++++++++++++----
 1 file changed, 38 insertions(+), 4 deletions(-)

commit df5702e463769c53a8badf725d158fe4ed94c76e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sun Oct 3 16:37:41 2010 +0100

    docs: Update the RELEASING checklist

 doc/RELEASING | 60 ++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 33 insertions(+), 27 deletions(-)

commit 2ed2b7eb83aeb813a8d3d734dd870bf739ef345a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sun Oct 3 16:13:02 2010 +0100

    build: Only generate bzip2 tarballs
    
    Don't generate both bz2 and gz tarballs: we only use the former anyway,
    and the latter just adds time for distcheck to complete.
    
    The gz tarball will be generated by the remote installation scripts when
    publishing the release.

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 939333b4f2dcd5fd7045af7c57db4e21de06d57b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sun Oct 3 16:10:44 2010 +0100

    build: Dist every backend file
    
    All backend files should be present in the tarball generated by `make
    dist`, to allow building Clutter on different platforms.

 clutter/Makefile.am | 150 +++++++++++++++++++++++++++++++++++++++++-----------
 1 file changed, 118 insertions(+), 32 deletions(-)

commit 6df136ae7cadea1df48d531af0730bf3867f3463
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sun Oct 3 15:28:14 2010 +0100

    container: Do not emit a signal in the class handler
    
    Yes, I am that stupid.

 clutter/clutter-container.c | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

commit e8d3ab4fd3d85b31230be4a59463338438c5621a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sun Oct 3 15:16:41 2010 +0100

    introspection: Skip Script.connect_signals_full()
    
    It's meant to be used by language bindings, not by applications.

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

commit 19b93a94aef1700c83edb9e555f1507fcee2f249
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sun Oct 3 15:12:01 2010 +0100

    container: Fix the marshaller for ::child-notify
    
    The marshaller was defined as OBJECT,OBJECT,PARAM but the signal
    definition used only two arguments. Since the signal never worked
    and we never got any report about it, nobody could be possibly
    using the ::child-notify signal.

 clutter/clutter-container.c  | 2 +-
 clutter/clutter-marshal.list | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 96db215ed3bb79915bfb5b9e037d116c83876a8d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sun Oct 3 14:53:14 2010 +0100

    build: Automate the release process

 Makefile.am                         | 12 ++++---
 build/autotools/Makefile.am         |  1 +
 build/autotools/Makefile.am.release | 68 +++++++++++++++++++++++++++++++++++++
 3 files changed, 77 insertions(+), 4 deletions(-)

commit 87bb089b572071632f3b8c2a63756a07e5d5a73a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sun Oct 3 11:02:56 2010 +0100

    docs: Update the coding style
    
    Resynchronize with gtk+'s coding style document, since they switched to
    ours.

 doc/CODING_STYLE | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 88 insertions(+)

commit c4668f04f745f30657379727424137b62d44248d
Author: Aron Xu <aronxu@gnome.org>
Date:   Thu Sep 30 15:20:05 2010 +0800

    Update zh_CN translation.
    
    Signed-off-by: Aron Xu <aronxu@gnome.org>
    Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>

 po/zh_CN.po | 290 ++++++++++++++++++++++++++++++------------------------------
 1 file changed, 143 insertions(+), 147 deletions(-)

commit 7ac84cf7a3695aa495ca28dbf172c8f4f6e48780
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Sep 30 14:58:23 2010 +0100

    container: Add child_notify() wrapper
    
    The child_notify() virtual function on ClutterContainer does not have a
    wrapper for implementations to call.

 clutter/clutter-container.c                | 28 ++++++++++++++++++++++++++++
 clutter/clutter-container.h                |  3 +++
 doc/reference/clutter/clutter-sections.txt |  1 +
 3 files changed, 32 insertions(+)

commit fc344fb93a153f91ea4bafd9fe25dd88d27e8082
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Sep 30 13:11:05 2010 +0100

    container: Implement ::child-notify
    
    Since we added child properties to the Container interface we made a
    guarantee that the ::child-notify signal would be emitted whenever a
    property was set using clutter_container_child_set*().
    
    We were lying.
    
    The child_notify virtual function was not implemented, and the signal
    was never emitted.
    
    We also used a G_LIKELY() macro while checking for non-NULL on a
    function pointer that was by default set to NULL, thus making the
    setting of child properties far less efficient than needed.

 clutter/clutter-container.c | 21 ++++++++++++++++++---
 1 file changed, 18 insertions(+), 3 deletions(-)

commit 18ff73c24471694eb951c7192f15528b594f09b5
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Sep 30 12:43:10 2010 +0100

    build: Add more metadata to the introspection files

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

commit 6a95457b3f0927ec0adaebc9c91499f28ef804a0
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Sep 30 12:32:08 2010 +0100

    cookbook: Remove unused variable from the animator example

 doc/cookbook/examples/animations-moving-animator.c | 1 -
 1 file changed, 1 deletion(-)

commit fde6efc690e6378eb1999267e5b15dc7c8accd43
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Sep 30 12:31:28 2010 +0100

    build: Make Cally.gir depend on Cogl.gir
    
    Since Cally's introspection data depends on it.

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

commit c202156794289d210ed4bdf9c9fe6d522685fafd
Merge: 077a5b4 cb191ff
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Sep 30 12:24:32 2010 +0100

    Merge remote branch 'elliot/events-buttons'
    
    * elliot/events-buttons:
      cookbook: Add recipe about handling button events
      cookbook: Example of using button press and release events
      cookbook: Example of ClutterClickAction
      cookbook: Example of simple handling of button events

commit 077a5b4c34d7b52d8831ccce4c572c7dcae04a6e
Author: Colin Walters <walters@verbum.org>
Date:   Wed Sep 29 13:18:03 2010 -0400

    introspection: Update to changed variables for header file names
    
    Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>

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

commit 32d647ddd15ebddf91aa15b092fdcdf14d31ec4f
Author: Ray Strode <rstrode@redhat.com>
Date:   Wed Sep 29 18:43:30 2010 -0400

    actor: sync entry has_clip member to clip state
    
    The clutter stage has a list of entries of actors waiting to be redrawn.
    Each entry has a "clip" ClutterPaintVolume member which represents which
    how much of the actor needs to get redrawn.  It's possible for there to
    be no clip associated with the entry.  In this case, the clip member is
    invalid, the has_clip member should be set to false.
    
    This commit fixes a bug where the has_clip member was not being
    initially, explicitly set to false for new entries, and not being
    explicitly set to false in the event the clip associated with the entry
    is freed.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2350
    
    Signed-off-by: Robert Bragg <robert@linux.intel.com>

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

commit fba633529148e65b9e136ea082fa7f853b789d96
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Sep 30 11:18:23 2010 +0100

    actor: don't ignore clip for clipped redraws
    
    In all the changes made recently to how we handle redraws and adding
    support for paint-volumes we stopped looking at explicit clip regions
    passed to _clutter_actor_queue_redraw_with_clip.
    
    In _clutter_actor_finish_queue_redraw we had started always trying to
    clip the redraw to the paint-volume of the actor, but forgot to consider
    that the user may have already determined the clip region for us!
    
    Now we first check if the given clip != NUll and if so we don't need to
    calculate the paint-volume of the actor.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2349

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

commit 471659ed4b2f16749c050701bcdc911405e9e018
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Sep 30 02:37:24 2010 +0100

    test-pixmap: add timeout to draw arcs on pixmap
    
    As a convenient test that clipped redraws are working correctly in
    response to X pixmap damage this updates test-pixmap to have a repeating
    1 second timeout that draws arcs on the pixmap.

 tests/interactive/test-pixmap.c | 26 +++++++++++++++++---------
 1 file changed, 17 insertions(+), 9 deletions(-)

commit 18e3273fb1e3ba231d370294f13f180b5df68158
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Sep 30 02:00:24 2010 +0100

    x11-tfp: Implement get_paint_volume virtual
    
    One of the later changes made on the paint volume branch before merging
    with master was to make paint volumes opt in only since we couldn't make
    any safe assumptions about how custom actors may constrain their
    painting. We added very conservative implementations for the existing
    Clutter actors - including for ClutterTexture which
    ClutterX11TexturePixmap is a sub-class of - but we were conservative to
    the extent of explicitly checking the GType of the actor so we would
    avoid making any assumptions about sub-classes. The upshot was that we
    neglected to implement the get_paint_volume vfunc for
    ClutterX11TexturePixmap.
    
    This patch provides an implementation that simply reports the actor's
    allocation as its paint volume. Also unlike for other core actors it
    doesn't explicitly check the GType so we are assuming that all existing
    sub-classes of ClutterX11TexturePixmap constrain their drawing to the
    actor's transformed allocation. If anyone does want to draw outside the
    allocation in future sub-classes, then they should also provide an
    updated get_paint_volume implementation.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2349

 clutter/x11/clutter-x11-texture-pixmap.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

commit 83eb5ab88cb31fc85016975055d28165300b9867
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Sep 24 01:01:33 2010 +0100

    material: tweak dot file debug code
    
    When using the debug function _cogl_debug_dump_materials_dot_file to
    write a dot file representing the sparse graph of material state we now
    only show a link between materials and layers when the material directly
    owns that layer reference (i.e. just those referenced in
    material->layer_differences) This makes it possible to see when
    ancestors of a material are being deferred too for layer state.
    
    For example when looking at the graph if you see that a material has an
    n_layers of 3 but there is only a link to 2 layers, then you know you
    need to look at it's ancestors to find the last layer.

 clutter/cogl/cogl/cogl-material.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit cb191ff6f18e291810077271f853658c8d679e3d
Author: Elliot Smith <elliot.smith@intel.com>
Date:   Thu Sep 30 11:12:14 2010 +0100

    cookbook: Add recipe about handling button events
    
    Recipe covers adding handlers for button-press-event and
    button-release-event signals on actors, and how to
    examine the content of a ClutterButtonEvent via API functions.
    
    The discussion section explains about click count
    (the criteria for how clicks get counted, including
    distance and time settings); how button numbers are reported;
    and how to use ClutterClickAction as an alternative
    for press + release in certain scenarios.

 doc/cookbook/events.xml | 388 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 388 insertions(+)

commit d8a9026b842655d23d839a639540bb134f734d84
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Sep 29 17:04:25 2010 +0100

    win32: Fix the CLUTTER_* keysym macros
    
    In 4ee05f8e21d the namespace for the clutter keysym macros were
    changed to CLUTTER_KEY_* but the win32 events backend was still
    referring to the old names.

 clutter/win32/clutter-event-win32.c | 110 ++++++++++++++++++------------------
 1 file changed, 55 insertions(+), 55 deletions(-)

commit 94439e55265d91e0c5419306115d2af02378e75e
Author: Elliot Smith <elliot.smith@intel.com>
Date:   Tue Sep 28 16:53:30 2010 +0100

    cookbook: Example of using button press and release events
    
    A longer example of using button press and release events
    to draw rectangles with random colors.

 doc/cookbook/examples/Makefile.am            |   2 +
 doc/cookbook/examples/events-buttons-lasso.c | 154 +++++++++++++++++++++++++++
 2 files changed, 156 insertions(+)

commit 0cda6c006b5909da5919c4e3a1492a32895c596c
Author: Elliot Smith <elliot.smith@intel.com>
Date:   Tue Sep 28 16:37:26 2010 +0100

    cookbook: Example of ClutterClickAction
    
    Example of handling clicks on an actor; part of the recipe on
    handling button events.

 doc/cookbook/examples/Makefile.am            |  2 +
 doc/cookbook/examples/events-buttons-click.c | 66 ++++++++++++++++++++++++++++
 2 files changed, 68 insertions(+)

commit fc9ecdf82ed13cf14be9e8fd5fda9787f8972205
Author: Elliot Smith <elliot.smith@intel.com>
Date:   Mon Sep 27 16:36:16 2010 +0100

    cookbook: Example of simple handling of button events
    
    Added an example showing how to examine the content
    of a ClutterButtonEvent in a signal handler.

 doc/cookbook/examples/Makefile.am      |   2 +
 doc/cookbook/examples/events-buttons.c | 107 +++++++++++++++++++++++++++++++++
 2 files changed, 109 insertions(+)

commit f753b0c4a15421e984cf3b2fcb1ccce7f0e6a61d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Sep 30 10:29:00 2010 +0100

    Wrap g_object_class_install_properties()
    
    GObject ≥ 2.26.0 added a nice convenience call for installing properties
    from an array of GParamSpec. Since we're already storing all GParamSpec
    in an array in order to use them with g_object_notify_by_pspec(), this
    turns out nicely for us.
    
    Since we do not depend on GLib 2.26 (yet), we need to provide a simple
    private wrapper that implements the fall back to the default
    g_object_class_install_property() call.
    
    ClutterDragAction has been converted as a proof of concept.

 clutter/clutter-drag-action.c | 71 +++++++++++++++++++++----------------------
 clutter/clutter-private.h     | 17 +++++++++++
 2 files changed, 51 insertions(+), 37 deletions(-)

commit f090c3ea496b2bf79b2fb0c7ab6a80299c59aed1
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Sep 30 10:27:10 2010 +0100

    stage: Add more checks on the stage window retrieval
    
    During destruction, the StageWindow implementation associated to a Stage
    might be NULL. We need to add more checks for a) the IN_DESTRUCTION flag
    being set and b) the StageWindow pointer being NULL. Otherwise, we will
    get warnings during the destruction of the Stage.

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

commit 52c4d6fa0c5f5260de5093967cdd1036e351050c
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Sep 29 17:32:57 2010 +0100

    build: Use platform detection to add -no-undefined
    
    Instead of relying on the flavour passed to the configure script.

 configure.ac | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

commit 7aaef8abeed4d3903465ac9d8fd0a916d17aab79
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Sep 29 16:46:06 2010 +0100

    modules: Use the stable branch of json-glib

 build/clutter.modules | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a278a1f94053372d49fb31f82cac551f186a28f4
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Sep 29 15:40:22 2010 +0100

    cogl-texture-2d-sliced: Don't create the slice textures twice
    
    Both of the cogl_texture_2d_sliced_new functions called the
    slices_create function which creates the underlying GL
    textures. However this was also called by init_base so the textures
    would end up being created twice. This would make it leak the GL
    textures and the arrays which point to them.

 clutter/cogl/cogl/cogl-texture-2d-sliced.c | 18 ------------------
 1 file changed, 18 deletions(-)

commit 54f5e168ecd67838d9fae08912e37f47d786f45e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Sep 29 16:05:55 2010 +0100

    Bump up dependency of json-glib to 0.12.0
    
    New stable release.

 README       | 2 +-
 configure.ac | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 66b0c1969c72ad49482befb3136b3e8478b07c58
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Sep 22 12:56:33 2010 +0100

    Remove the internal copy of JSON-GLib
    
    The internal copy of JSON-GLib was meant to go away right after the 1.0
    release, given that JSON-GLib was still young and relatively unknown.
    
    Nowadays, many projects started depending on this little library, and
    distributions ship it and keep it up to date.
    
    Keeping a copy of JSON-GLib means keeping it up to date; unfortunately,
    this would also imply updating the code not just for the API but for the
    internal implementations.
    
    Starting with the 1.2 release, Clutter preferably dependend on the
    system copy; with the 1.4 release we stopped falling back automatically.
    The 1.6 cycle finally removes the internal copy and requires a copy of
    JSON-GLib installed on the target system in order to compile Clutter.

 README                            |   15 +-
 clutter/Makefile.am               |   66 +--
 clutter/clutter-json.h.in         |   11 -
 clutter/clutter-script-private.h  |    3 +-
 clutter/clutter-script.c          |    2 -
 clutter/clutter-scriptable.h      |    2 +-
 clutter/json/json-array.c         |  725 ------------------------
 clutter/json/json-generator.c     |  646 ---------------------
 clutter/json/json-generator.h     |   83 ---
 clutter/json/json-glib.h          |   12 -
 clutter/json/json-marshal.c       |  130 -----
 clutter/json/json-marshal.h       |   37 --
 clutter/json/json-node.c          |  770 -------------------------
 clutter/json/json-object.c        |  888 -----------------------------
 clutter/json/json-parser.c        | 1124 -------------------------------------
 clutter/json/json-parser.h        |  147 -----
 clutter/json/json-types-private.h |   61 --
 clutter/json/json-types.h         |  288 ----------
 configure.ac                      |   90 +--
 doc/reference/clutter/Makefile.am |    2 -
 20 files changed, 13 insertions(+), 5089 deletions(-)

commit e36cc40a49a9f0c2e200a0326451333dbb68b4ac
Merge: 0f22e92 8dd8fbd
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Sep 29 15:55:58 2010 +0100

    Merge branch 'wip/non-recursive'
    
    * wip/non-recursive:
      build: Start moving to a non-recursive layout

commit 0f22e922e3d03bfa9e7272aa6d2819748c3913c7
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Sep 29 15:44:51 2010 +0100

    modules: Fix up mesa module

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

commit e072d797b1b5cbdc3c448f1e1acdd6adac0c833b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Sep 29 15:23:53 2010 +0100

    modules: Add mesa and wayland to the moduleset

 build/clutter.modules | 13 +++++++++++++
 1 file changed, 13 insertions(+)

commit 42f6364cac945e451725fc4aeeccf28ee5019ff3
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Sep 24 02:24:36 2010 +0100

    actor: don't dirty pick buffer in _real_queue_redraw
    
    Since re-working how redraws are queued it is no longer necessary to
    dirty the pick buffer in _clutter_actor_real_queue_redraw since this
    should now reliably be handled in _clutter_stage_queue_actor_redraw.

 clutter/clutter-actor.c | 9 +--------
 1 file changed, 1 insertion(+), 8 deletions(-)

commit 51fca9d96807b227d00b0bc58e6e5f216024cf91
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Sep 13 00:33:23 2010 +0100

    actor: Adds private _clutter_actor_traverse API
    
    This adds two internal functions relating to explicit traversal of the
    scenegraph:
    _clutter_actor_foreach_child
    _clutter_actor_traverse
    
    _clutter_actor_foreach_child just iterates the immediate children of an
    actor, and with a new ClutterForeachCallback type it allows the
    callbacks to break iteration early.
    
    _clutter_actor_traverse traverses the given actor and all of its
    decendants. Again traversal can be stopped early if a callback returns
    FALSE.
    
    The first intended use for _clutter_actor_traverse is to maintain a
    cache pointer to the stage for all actors. In this case we will need to
    update the pointer for all descendants of an actor when an actor is
    reparented in any way.

 clutter/clutter-actor.c   | 64 +++++++++++++++++++++++++++++++++++++++++++++++
 clutter/clutter-private.h | 32 ++++++++++++++++++++++++
 2 files changed, 96 insertions(+)

commit 9a1abbc713537b3ef381e8e9ea1a5e910613567e
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sun Sep 12 23:49:02 2010 +0100

    actor: Adds private _clutter_actor_get_n_children
    
    This adds a private getter to query the number of children an actor has.
    One use planned for this API is to avoid calling get_paint_volume on
    such actors. (It's not clear what the best semantics for
    get_paint_volume are for actors with children, so we are considering
    leaving the semantics undefined for the initial clutter 1.4 release)

 clutter/clutter-actor.c   | 7 +++++++
 clutter/clutter-private.h | 1 +
 2 files changed, 8 insertions(+)

commit 239d83f952aa077622ca79c390842be271baddcd
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sun Sep 12 23:31:39 2010 +0100

    actor: explicitly track children in clutter-actor.c
    
    We now explicitly track the list of children each actor has in a private
    GList. This gives us a reliable way to know how many children an actor
    has - even for composite actors that don't implement the container
    interface. This also will allow us to directly traverse the scenegraph
    in a more generalized fashion. Previously the scenegraph was
    more-or-less represented implicitly according the implementation of
    paint methods.

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

commit b3edd3e922e3a3a2dafc5a7a1c02bb22a5ffec94
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sat Sep 11 02:48:18 2010 +0100

    debug: fix blue outlines for paint-volumes debug opt
    
    When using the CLUTTER_PAINT=paint-volumes debug option we try and show
    when a paint volume couldn't be determined by drawing a blue outline of
    the allocation instead. There was a typo though and instead we were
    drawing an outline the size of the stage instead of for the given actor.
    This fixes that and removes a FIXME comment relating to the blue outline
    that is now implemented.

 clutter/clutter-actor.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

commit 1a8d577168ef48a9fcef21415b44b2b8c2f9a26c
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sat Sep 11 02:39:23 2010 +0100

    clone: Implement get_paint_volume virtual
    
    To allow Clutter to queue clipped redraws when a clone actor changes we
    need to be able to report a paint volume for clone actors. This patch
    makes ClutterClones query the paint volume of their source actor and
    masquerade it as their own volume.

 clutter/clutter-clone.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

commit f6ba69f82dba0fdb46998c93929f3c68ebf11cb1
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Sep 10 02:18:16 2010 +0100

    Revert "actor: don't immediately queue redraw when queuing relayout"
    
    This reverts commit ca44c6a7d8abe9f2c548bee817559ea8adaa7a80.
    
    In reality there are probably lots of actors that depend on the exact
    semantics as they are documented so this change isn't really acceptable.
    For example when the font changes in ClutterText we only queue a
    relayout, and since it's possible that the font will have the same size
    and the actor won't get a new allocation it wouldn't otherwise queue a
    redraw.
    
    Since queue_redraw requests now get deferred until just before a paint
    run it is actually no longer a problem to queue the redraw here.

 clutter/clutter-actor.c | 20 --------------------
 1 file changed, 20 deletions(-)

commit 3b789490d2cee54652d65950a71fe55736c6a433
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Sep 10 01:33:02 2010 +0100

    actor: defer queue-redraw signaling
    
    Instead of immediately, recursively emitting the "queue-redraw" signal
    when clutter_actor_queue_redraw is called we now defer this process
    until all stage updates are complete. This allows us to aggregate
    repeated _queue_redraw requests for the same actor avoiding redundant
    paint volume transformations. By deferring we also increase the
    likelihood that the actor will have a valid paint volume since it will
    have an up to date allocation; this in turn means we will more often be
    able to automatically queue clipped redraws which can have a big impact
    on performance.
    
    Here's an outline of the actor queue redraw mechanism:
    
    The process starts in clutter_actor_queue_redraw or
    _clutter_actor_queue_redraw_with_clip.
    
    These functions queue an entry in a list associated with the stage which
    is a list of actors that queued a redraw while updating the timelines,
    performing layouting and processing other mainloop sources before the
    next paint starts.
    
    We aim to minimize the processing done at this point because there is a
    good chance other events will happen while updating the scenegraph that
    would invalidate any expensive work we might otherwise try to do here.
    For example we don't try and resolve the screen space bounding box of an
    actor at this stage so as to minimize how much of the screen redraw
    because it's possible something else will happen which will force a full
    redraw anyway.
    
    When all updates are complete and we come to paint the stage (see
    _clutter_stage_do_update) then we iterate this list and actually emit
    the "queue-redraw" signals for each of the listed actors which will
    bubble up to the stage for each actor and at that point we will
    transform the actors paint volume into screen coordinates to determine
    the clip region for what needs to be redrawn in the next paint.
    
    Note: actors are allowed to queue a redraw in reseponse to a
    queue-redraw signal so we repeat the processing of the list until it
    remains empty. An example of when this happens is for Clone actors or
    clutter_texture_new_from_actor actors which need to queue a redraw if
    their source queues a redraw.

 clutter/clutter-actor.c   | 223 ++++++++++++++++++++++++++++++++--------------
 clutter/clutter-private.h |  21 +++--
 clutter/clutter-stage.c   | 173 +++++++++++++++++++++++++++++------
 3 files changed, 320 insertions(+), 97 deletions(-)

commit 7d8effd5e26495dc3e01ba741a0389364183fc5f
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Sep 9 18:51:17 2010 +0100

    paint_volume: add private api to change reference actor
    
    For Clone actors we will need a way to report the volume of the source
    actor as the volume of the clone actor. To make this work though we need
    to be able to replace the reference to the source actor with a reference
    to the clone actor instead. This adds a private
    _clutter_paint_volume_set_reference_actor function to do that.

 clutter/clutter-paint-volume.c | 15 +++++++++++++++
 clutter/clutter-private.h      | 38 ++++++++++++++++++++------------------
 2 files changed, 35 insertions(+), 18 deletions(-)

commit 2d895816be659a86d999748ecf631422b9e9176f
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Sep 9 17:53:29 2010 +0100

    paint_volume: Adds _clutter_paint_volume_set_from_volume
    
    This adds a way to initialize a paint volume from another source paint
    volume. This lets us for instance pass the contents of one paint volume
    back through the out param of a get_paint_volume implementation.

 clutter/clutter-paint-volume.c | 12 ++++++++++++
 clutter/clutter-private.h      |  3 +++
 2 files changed, 15 insertions(+)

commit bfacca30119ed51517bac39c362a927ef39291ec
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Sep 9 14:30:38 2010 +0100

    actor: don't queue_redraw actors not descended from stage
    
    This makes clutter_actor_queue_redraw simply bail out early if the actor
    isn't a descendant of a ClutterStage since the request isn't meaningful
    and it avoids a crash when trying to queue a clipped redraw against the
    stage to clear the actors old location.

 clutter/clutter-actor.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit b77d9a6d2c0cc02519c79efe9dd4c8c184f73b36
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Sep 9 13:11:11 2010 +0100

    paint-volume: Add convenience function for using an allocation
    
    Classes overriding ClutterActor::get_paint_volume() that wish to use
    their allocation as the paint volume should have an idiomatic way of
    doing so.

 clutter/clutter-paint-volume.c | 37 +++++++++++++++++++++++++++++++++++++
 clutter/clutter-types.h        | 39 +++++++++++++++++++++------------------
 2 files changed, 58 insertions(+), 18 deletions(-)

commit 5640a65046e5fbf5b7283315b457e39331fa028b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Sep 9 12:38:25 2010 +0100

    text: Update get_paint_volume() implementation
    
    In commit 9818eee4646e49e99beb5a43f1dafcbdcca41f94 I forgot to update
    ClutterText as well as the other actors.

 clutter/clutter-text.c | 24 ++++--------------------
 1 file changed, 4 insertions(+), 20 deletions(-)

commit 16f7ee13f2efb545d7cfd33774f42bab92f0e1e6
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Sep 9 12:30:29 2010 +0100

    Move default paint volume computation into a function
    
    This should reduce the amount of copy and paste for actor sub-classes
    that use the default paint volume from the allocation.

 clutter/clutter-cairo-texture.c | 24 ++++-----------------
 clutter/clutter-paint-volume.c  | 46 +++++++++++++++++++++++++++++++++++++++++
 clutter/clutter-private.h       |  4 ++++
 clutter/clutter-rectangle.c     | 24 ++++-----------------
 clutter/clutter-texture.c       | 24 ++++-----------------
 5 files changed, 62 insertions(+), 60 deletions(-)

commit fd41024d29f093afe2fe1f0292c7ec5965ba5801
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Sep 8 21:01:37 2010 +0100

    paint_volume: assert non-NULL pv in _volume_copy
    
    Instead of carefully checking if the user passes NULL to
    clutter_paint_volume_copy we now simply use g_return_val_if_fail.

 clutter/clutter-paint-volume.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

commit 3040b140bce59ac2e70de325e0afa98ec8fa7ce7
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Sep 8 20:39:15 2010 +0100

    paint_volume: Splits out clutter_paint_volume code
    
    This splits out all the clutter_paint_volume code from clutter-actor.c
    into clutter-paint-volume.c. Since clutter-actor.c and
    clutter-paint-volume.c both needed the functionality of
    _fully_transform_vertices, this function has now been moved to
    clutter-utils.c as _clutter_util_fully_transform_vertices.

 clutter/Makefile.am            |   1 +
 clutter/clutter-actor.c        | 838 +----------------------------------------
 clutter/clutter-paint-volume.c | 817 +++++++++++++++++++++++++++++++++++++++
 clutter/clutter-private.h      |  14 +-
 clutter/clutter-util.c         |  45 +++
 5 files changed, 882 insertions(+), 833 deletions(-)

commit 72eeb8e809492524dc146cb92e0b4e3a5347f628
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Sep 8 19:47:11 2010 +0100

    actor: make default get_paint_volume more conservative
    
    There are too many examples where the default assumption that an actor
    paints inside its allocation isn't true, so we now return FALSE in the
    base implementation instead. This means that by default we are saying
    "we don't know the paint volume of the actor", so developers need to
    implement the get_paint_volume virtual to take advantage of culling and
    clipped redraws with their actors.
    
    This patch provides very conservative get_paint_volume implementations
    for ClutterTexture, ClutterCairoTexture, ClutterRectangle and
    ClutterText which all explicitly check the actor's object type to avoid
    making any assumptions about subclasses.

 clutter/clutter-actor.c         | 14 +-------------
 clutter/clutter-cairo-texture.c | 28 ++++++++++++++++++++++++++++
 clutter/clutter-rectangle.c     | 28 +++++++++++++++++++++++++++-
 clutter/clutter-text.c          | 26 ++++++++++++++++++++++++++
 clutter/clutter-texture.c       | 34 ++++++++++++++++++++++++++++++----
 5 files changed, 112 insertions(+), 18 deletions(-)

commit d9a7f1b03b8527becd0251e51b8abacd710a1f8d
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Sep 8 18:20:54 2010 +0100

    actor: don't always check needs_allocation for clipped redraw
    
    We were always explicitly checking priv->needs_allocation in
    _clutter_actor_queue_redraw_with_clip, but we only need to do that if
    the CLUTTER_REDRAW_CLIPPED_TO_ALLOCATION flag is used.

 clutter/clutter-actor.c | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

commit 072595a1bfe084e00e7bc6f7cc074c89a9914ce6
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Sep 8 18:17:27 2010 +0100

    actor: new actors should start with an empty paint box
    
    This initializes priv->last_paint_box with a degenerate box, so a newly
    allocated actor added to the scenegraph and made visible only needs to
    trigger a redraw of its initial position. If we don't have a valid
    last_paint_box though we would instead trigger a full stage redraw.

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

commit c2ea35b5cab98a5c2eca305b5199c7d3b44be70c
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Sep 8 18:14:04 2010 +0100

    actor: when culling/clipped redraws disable ignore paint box
    
    To make comparing the performance with culling/clipped redraws
    enabled/disabled fairer we now avoid querying the paint box when they
    are disabled, so that results should reflect how the cost of
    transforming paint volumes into screen space etc gets offset against the
    benefit of culling.

 clutter/clutter-actor.c | 76 ++++++++++++++++++++++++++++---------------------
 1 file changed, 44 insertions(+), 32 deletions(-)

commit 5d1600d6036941885a6ad2a4372f35678696d549
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Sep 8 11:32:29 2010 +0100

    stage: only update viewport when allocation changes
    
    In clutter_stage_allocate at the end we were always querying the latest
    allocation set and using the geometry to assert the viewport and then
    kicking a full redraw. These only need to be done when the allocation
    really changes, so we now read the previous allocation at the start of
    the function and compare at the end. This was stopping clipped redraws
    from being used in a lot of cases.

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

commit 1e7f22db3b7cdf9c8154ec7c3ae7cb9b83ac0655
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Sep 8 01:18:30 2010 +0100

    glx: queue full redraws for the first 2 frames
    
    To consider that we've see a number of drivers that can struggle to get
    going and may produce a bad first frame we now force the first 2 frames
    to be full redraws. This became a serious issue after we started using
    clipped redraws more aggressively because we assumed that after the
    first frame the full framebuffer was valid and we only redraw the
    content that changes. With buggy drivers though, applications would be
    left with junk covering a lot of the stage until some event triggered a
    full redraw.

 clutter/glx/clutter-stage-glx.c | 5 +++++
 clutter/glx/clutter-stage-glx.h | 5 +++++
 2 files changed, 10 insertions(+)

commit 771348b3696b9f9a0f7de41d9b71abee6309f07b
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Sep 8 01:15:00 2010 +0100

    x11: minimize nasty artefacts when resizing windows
    
    This is a workaround for a race condition when resizing windows while
    there are in-flight glXCopySubBuffer blits happening.
    
    The problem stems from the fact that rectangles for the blits are
    described relative to the bottom left of the window and because we can't
    guarantee control over the X window gravity used when resizing so the
    gravity is typically NorthWest not SouthWest.
    
    This means if you grow a window vertically the server will make sure to
    place the old contents of the window at the top-left/north-west of your
    new larger window, but that may happen asynchronous to GLX preparing to
    do a blit specified relative to the bottom-left/south-west of the window
    (based on the old smaller window geometry).
    
    When the GLX issued blit finally happens relative to the new bottom of
    your window, the destination will have shifted relative to the top-left
    where all the pixels you care about are so it will result in a nasty
    artefact making resizing look very ugly!
    
    We can't currently fix this completely, in-part because the window
    manager tends to trample any gravity we might set.  This workaround
    instead simply disables blits for a while if we are notified of any
    resizes happening so if the user is resizing a window via the window
    manager then they may see an artefact for one frame but then we will
    fallback to redrawing the full stage until the cooling off period is
    over.

 clutter/glx/clutter-stage-glx.c |  6 +++++-
 clutter/x11/clutter-event-x11.c | 47 +++++++++++++++++++++++++++++++++++++++++
 clutter/x11/clutter-stage-x11.h |  2 ++
 3 files changed, 54 insertions(+), 1 deletion(-)

commit 012e4ab153337cb973a623d6b03c274231ef68b5
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Sep 8 01:03:15 2010 +0100

    x11: Queue clipped redraws for Expose events
    
    Instead of triggering a full stage redraw for Expose events we use the
    geometry of the exposed region given in the event to queue a clipped
    redraw of the stage.

 clutter/x11/clutter-event-x11.c | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

commit 105451d1bea329edff85a5727f0bc4fd3b8e5504
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Sep 7 23:35:26 2010 +0100

    cogl: removes unused _cogl_setup_viewport
    
    Clutter has now taken responsibility for managing its viewport,
    projection matrix and view transform as part of ClutterStage so
    _cogl_setup_viewport is no longer used by anything, and since it's quite
    an obscure API anyway it's we've taken the opportunity to remove the
    function.

 clutter/cogl/cogl/cogl.c | 74 ------------------------------------------------
 clutter/cogl/cogl/cogl.h | 26 -----------------
 2 files changed, 100 deletions(-)

commit 95ff71d01c44b1d93fdecadb8f233cd05d051d9f
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Sep 7 23:25:18 2010 +0100

    stage: Sometimes really force a full redraw
    
    Since clutter_actor_queue_redraw now automatically clips redraws
    according to the paint volume of the actor we have to be careful to
    ensure we really force a full redraw when the stage is allocated a new
    size or the stage viewport changes.

 clutter/clutter-stage.c | 20 ++++++++++++++++++--
 1 file changed, 18 insertions(+), 2 deletions(-)

commit 2235e705859a880415da4d57c76596cef0b9026f
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Sep 7 23:09:06 2010 +0100

    actor: don't immediately queue redraw when queuing relayout
    
    We have bent the originally documented semantics a bit so now where we
    say "Queueing a new layout automatically queues a redraw as well" it
    might be clearer to say "Queuing a new layout implicitly queues a redraw
    as well if anything in the layout changes".
    
    This should be close enough to the original semantics to not cause any
    problems.
    
    Without this change then we we fail to take advantage of clipped redraws
    in a lot of cases because queuing a redraw with priv->needs_allocation
    == TRUE will automatically be promoted to a full stage redraw since it's
    not possible to determine a valid paint-volume.
    
    Also queuing a redraw here will end up registering a redundant clipped
    redraw for the current location, doing quite a lot of redundant
    transforms, and then later when re-allocated during layouting another
    queue redraw would happen with the correct paint-volume.

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

commit b499696d83c4f37b1513929ea62323abbaaa5940
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Sep 7 22:21:28 2010 +0100

    Use paint volumes to do automatic culling
    
    This uses actor paint volumes to perform culling during
    clutter_actor_paint.
    
    When performing a clipped redraw (because only a few localized actors
    changed) then as we traverse the scenegraph painting the actors we can
    now ignore actors that don't intersect the clip region. Early testing
    shows this can have a big performance benefit; e.g. 100% fps improvement
    for test-state with culling enabled and we hope that there are even much
    more compelling examples than that in the real world,
    
    Most Clutter applications are 2Dish interfaces and have quite a lot of
    actors that get continuously painted when anything is animated. The
    dynamic actors are often localized to an area of user focus though so
    with culling we can completely avoid painting any of the static actors
    outside the current clip region.
    
    Obviously the cost of culling has to be offset against the cost of
    painting to determine if it's a win, but our (limited) testing suggests
    it should be a win for most applications.
    
    Note: we hope we will be able to also bring another performance bump
    from culling with another iteration - hopefully in the 1.6 cycle - to
    avoid doing the culling in screen space and instead do it in the stage's
    model space. This will hopefully let us minimize the cost of
    transforming the actor volumes for culling.

 clutter/clutter-actor.c                 | 53 ++++++++++++++++++++++++++++++++-
 clutter/clutter-debug.h                 |  3 +-
 clutter/clutter-main.c                  |  3 +-
 clutter/clutter-private.h               |  6 +++-
 clutter/clutter-stage.c                 | 20 ++++++++++++-
 clutter/egl/clutter-stage-egl.c         |  2 +-
 clutter/fruity/clutter-backend-fruity.c |  2 +-
 clutter/glx/clutter-stage-glx.c         |  4 +--
 clutter/osx/clutter-stage-osx.c         |  2 +-
 clutter/win32/clutter-backend-win32.c   |  2 +-
 10 files changed, 86 insertions(+), 11 deletions(-)

commit ef8be9e25ebe77fc63055191cc48af53d731c108
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Sep 7 22:11:28 2010 +0100

    actor: Use paint volumes to always queue clipped redraws
    
    This makes clutter_actor_queue_redraw transparently use an actor's paint
    volume to queue a clipped redraw.
    
    We save the actors paint box each time it is painted so that when
    clutter_actor_queue_redraw is called we can determine the old and new
    location of the actor so we know the full bounds of what must be redrawn
    to clear its old view and show the new.

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

commit 13c4d7b95d4a9068322cf1d2b292d4bc98bbecfd
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Sep 7 21:43:50 2010 +0100

    actor: make _transform_and_project_box static
    
    This makes _clutter_actor_transform_and_project_box a static function
    and removes the prototype from clutter-private.h since it is no longer
    used outside clutter-actor.c

 clutter/clutter-actor.c   | 2 +-
 clutter/clutter-private.h | 4 ----
 2 files changed, 1 insertion(+), 5 deletions(-)

commit 120d7595e3128a233c1fdffd762327b5b74a54d1
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Sep 7 21:47:01 2010 +0100

    actor: _real_queue_relayout shouldn't queue redraw
    
    The base implementation for the actor queue_relayout method was queuing
    an implicit redraw, but there shouldn't be anything implied from the
    mere process of queuing a redraw that should force us to queue a redraw.
    If actors are moved as a part of relayouting later then they will queue
    a redraw.  Also clutter_actor_queue_relayout() still also explicitly
    queues a redraw so I think this may have been doubly redundant.

 clutter/clutter-actor.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

commit dc976922714ab74f37c69a9ea109ad4e145fce92
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Sep 7 21:56:33 2010 +0100

    actor: re-allocation implies need to redraw
    
    If clutter_actor_allocate finds it necessary to update an actors
    allocation then it now also queue a redraw of that actor. Currently we
    queue redraws for actors very early on when queuing a relayout instead
    of waiting to determine the final outcome of relayouting to determine if
    a redraw is really required. With this in place we can move away from
    preemptive queuing of redraws.

 clutter/clutter-actor.c | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)

commit 267e458a433b819f98ca47557c0a899d8c4dd357
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Sep 7 20:29:01 2010 +0100

    actor: separate the queue redraw code
    
    clutter_actor_queue_relayout currently queues a relayout and a redraw,
    but the plan is to change it to only queue a relayout and honour the
    documentation by assuming that the process of relayouting will
    result queuing redraws for any actors whos allocation changes.
    
    This doesn't make that change it just adds an internal
    _clutter_actor_queue_only_relayout function which
    clutter_actor_queue_relayout now uses as well as calling
    clutter_actor_queue_redraw.

 clutter/clutter-actor.c | 38 ++++++++++++++++++++++++--------------
 1 file changed, 24 insertions(+), 14 deletions(-)

commit 6d5f6449ddeb47a9bb814f675843d12ae9f7882e
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Sep 7 20:08:00 2010 +0100

    stage: make it possible to queue a relayout only
    
    This adds a private ->relayout_pending boolean similar in spirit to
    redraw_pending. This will allow us to queue a relayout without
    implicitly queueing a redraw; instead we can depend on the actions
    of a relayout to queue any necessary redraw.

 clutter/clutter-main.c  | 44 --------------------------
 clutter/clutter-stage.c | 82 +++++++++++++++++++++++++++++++++++++++++++------
 2 files changed, 73 insertions(+), 53 deletions(-)

commit f8a6e36f1bd1989eaabca81db14dd8bad879fba7
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Sep 7 19:40:28 2010 +0100

    texture: Forward queue redraw/relayout for fbos
    
    When clutter_texture_new_from_actor is use we need to track when the
    source actor queues a redraw or a relayout so we can also queue a redraw
    or relayout for the texture actor.

 clutter/clutter-texture.c | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

commit 1ea7145efc46e246610a0db70cb71c57cdf55e2b
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Sep 7 19:31:27 2010 +0100

    Queue clipped redraws work in terms of paint volumes
    
    There is an internal _clutter_actor_queue_redraw_with_clip API that gets
    used for texture-from-pixmap to minimize what we redraw in response to
    Damage events. It was previously working in terms of a ClutterActorBox
    but it has now been changed so an actor can queue a redraw of volume
    instead.
    
    The plan is that clutter_actor_queue_redraw will start to transparently
    use _clutter_actor_queue_redraw_with_clip when it can determine a paint
    volume for the actor.

 clutter/clutter-actor.c                  | 78 ++++++++++++++++++++++----------
 clutter/clutter-actor.h                  | 19 --------
 clutter/clutter-private.h                | 23 ++++++++--
 clutter/clutter-stage.c                  | 57 ++++++++++++-----------
 clutter/x11/clutter-x11-texture-pixmap.c | 20 ++++----
 5 files changed, 115 insertions(+), 82 deletions(-)

commit f3bffe5cab61efceaaadc5ba81129860b7b5c1a6
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Sep 7 19:07:19 2010 +0100

    blur-effect: fix paint volume padding
    
    For the blur effect we use a BLUR_PADDING constant to pad out the volume
    of the source actor on the x and y axis. Previously we were offsetting
    the origin negatively using BLUR_PADDING and then adding BLUR_PADDING
    to the width and height, but we should have been adding 2*BLUR_PADDING
    instead.

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

commit f60703cb1da1158c7d263210ca198203293b9576
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Sep 7 23:07:52 2010 +0100

    debug: CLUTTER_DEBUG_REDRAWS: disable clipped redraws
    
    This ensures that clipped redraws are disabled when using
    CLUTTER_PAINT=redraws. This may seem unintuitive given that this option
    is for debugging clipped redraws, but we can't draw an outline outside
    the clip region and anything we draw inside the clip region is liable to
    leave a trailing mess on the screen since it won't be cleared up by
    later clipped redraws.

 clutter/clutter-main.c          |   7 +++
 clutter/glx/clutter-stage-glx.c | 105 +++++++++++++++++++++++-----------------
 2 files changed, 68 insertions(+), 44 deletions(-)

commit 066220f983d4e27020c9b5340aa7d7bfaace9928
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Sep 7 18:50:29 2010 +0100

    paint volumes: CLUTTER_PAINT=paint-volumes debug option
    
    This adds a debug option to visualize the paint volumes of all actors.
    When CLUTTER_PAINT=paint-volumes is exported in the environment before
    running a Clutter application then all actors will have their bounding
    volume drawn in green with a label corresponding to the actors type.

 clutter/clutter-actor.c | 96 +++++++++++++++++++++++++++++++++++++++++++++++++
 clutter/clutter-debug.h |  3 +-
 clutter/clutter-main.c  |  7 +++-
 3 files changed, 104 insertions(+), 2 deletions(-)

commit 3540d222e1ebba80bbe6cdfe32e97af052304d77
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Sep 7 18:04:19 2010 +0100

    paint volumes: another pass at the design
    
    This is a fairly extensive second pass at exposing paint volumes for
    actors.
    
    The API has changed to allow clutter_actor_get_paint_volume to fail
    since there are times - such as when an actor isn't a descendent of the
    stage - when the volume can't be determined. Another example is when
    something has connected to the "paint" signal of the actor and we simply
    have no way of knowing what might be drawn in that handler.
    
    The API has also be changed to return a const ClutterPaintVolume pointer
    (transfer none) so we can avoid having to dynamically allocate the
    volumes in the most common/performance critical code paths. Profiling was
    showing the slice allocation of volumes taking about 1% of an apps time,
    for some fairly basic tests. Most volumes can now simply be allocated on
    the stack; for clutter_actor_get_paint_volume we return a pointer to
    &priv->paint_volume and if we need a more dynamic allocation there is
    now a _clutter_stage_paint_volume_stack_allocate() mechanism which lets
    us allocate data which expires at the start of the next frame.
    
    The API has been extended to make it easier to implement
    get_paint_volume for containers by using
    clutter_actor_get_transformed_paint_volume and
    clutter_paint_volume_union. The first allows you to query the paint
    volume of a child but transformed into parent actor coordinates. The
    second lets you combine volumes together so you can union all the
    volumes for a container's children and report that as the container's
    own volume.
    
    The representation of paint volumes has been updated to consider that
    2D actors are the most common.
    
    The effect apis, clutter-texture and clutter-group have been update
    accordingly.

 clutter/clutter-actor.c                 | 920 ++++++++++++++++++++++++++------
 clutter/clutter-actor.h                 |  10 +-
 clutter/clutter-blur-effect.c           |   4 +-
 clutter/clutter-effect.c                |  11 +-
 clutter/clutter-effect.h                |   2 +-
 clutter/clutter-group.c                 |  25 +
 clutter/clutter-main.c                  |   2 +-
 clutter/clutter-offscreen-effect.c      |  94 ++--
 clutter/clutter-private.h               |  94 +++-
 clutter/clutter-stage.c                 |  47 ++
 clutter/clutter-texture.c               | 109 +++-
 clutter/clutter-types.h                 |  18 +
 clutter/egl/clutter-stage-egl.c         |   2 +-
 clutter/fruity/clutter-backend-fruity.c |   2 +-
 clutter/glx/clutter-stage-glx.c         |   4 +-
 clutter/osx/clutter-stage-osx.c         |   2 +-
 clutter/win32/clutter-backend-win32.c   |   2 +-
 17 files changed, 1089 insertions(+), 259 deletions(-)

commit 48a24a2e08d5978e538e31c8480fa3d7b9b0b291
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Aug 19 15:38:15 2010 +0100

    actor-box: Adds clutter_actor_box_union utility
    
    When using ClutterActorBoxs for representing clip regions it can be
    convenient to be able to union multiple boxes together.

 clutter/clutter-actor.c | 28 ++++++++++++++++++++++++++++
 clutter/clutter-types.h |  3 +++
 2 files changed, 31 insertions(+)

commit 2da127dcff2c272e4d3b4ed5fc06919700fbc036
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Aug 19 15:26:19 2010 +0100

    texture: size fbos using clutter_actor_get_paint_box
    
    Previously we used the transformed allocation but that doesn't take
    into account actors with depth which may be projected outside the
    area covered by the transformed allocation.

 clutter/clutter-texture.c | 48 +++++++++++++++--------------------------------
 1 file changed, 15 insertions(+), 33 deletions(-)

commit 044809edb89a736f2aa5ecba54972cdea6d724c4
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Aug 19 15:27:51 2010 +0100

    docs: Add PaintVolume to the API reference
    
    And document the various related functions.

 clutter/clutter-actor.c                    | 166 +++++++++++++++++++++++++++++
 doc/reference/clutter/clutter-sections.txt |  16 +++
 2 files changed, 182 insertions(+)

commit a6e5ecebe3c7e593257a5c3d4dc052561d4147f9
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Aug 19 14:06:52 2010 +0100

    blur-effect: Add padding to account for the blur
    
    The blur effect will sample pixels on the edges of the offscreen buffer,
    so we want to add a padding to avoid clamping the blur.
    
    We do this by creating a larger target texture, and updating the paint
    volume of the actor during paint to take that padding into account.

 clutter/clutter-blur-effect.c | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

commit 5d97ca5f87a621b33129a675b5a4342c2b7a1dc7
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Aug 19 14:05:45 2010 +0100

    offscreen-effect: Use the paint box to size the FBO
    
    We should be using the real, on-screen, transformed size of the actor to
    size and position the offscreen buffer we use to paint the actor for an
    effect.

 clutter/clutter-offscreen-effect.c | 45 ++++++++++++++++----------------------
 1 file changed, 19 insertions(+), 26 deletions(-)

commit 25abdf09b76fb594f8e64295a93aad241bcc3941
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Aug 16 17:02:15 2010 +0100

    effect: Allow any effect to override the paint volume
    
    An Effect implementation might override the paint volume of the actor to
    which it is applied to. The get_paint_volume() virtual function should
    be added to the Effect class vtable so that any effect can get the
    current paint volume and update it.
    
    The clutter_actor_get_paint_volume() function becomes context aware, and
    does the right thing if called from within a ClutterEffect pre_paint()
    or post_paint() implementation, by allowing all effects in the chain up
    to the caller to modify the paint volume.

 clutter/clutter-actor.c   | 54 +++++++++++++++++++++++++++++++++++++++++++++--
 clutter/clutter-effect.c  | 17 +++++++++++++++
 clutter/clutter-effect.h  |  9 ++++++--
 clutter/clutter-private.h |  6 ++++--
 4 files changed, 80 insertions(+), 6 deletions(-)

commit 94ce747f83b09c93351a06db233742f3b9255380
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Aug 16 15:53:28 2010 +0100

    actor: Allow querying the paint volume
    
    An actor has an implicit "paint volume", that is the volume in 3D space
    occupied when painting itself.
    
    The paint volume is defined as a cuboid with the origin placed at the
    top-left corner of the actor; the size of the cuboid is given by three
    vectors: width, height and depth.
    
    ClutterActor provides API to convert the paint volume into a 2D box in
    screen coordinates, to compute the on-screen area that an actor will
    occupy when painted.
    
    Actors can override the default implementation of the get_paint_volume()
    virtual function to provide a different volume.

 clutter/clutter-actor.c   | 269 ++++++++++++++++++++++++++++++++++++++++++++++
 clutter/clutter-actor.h   |   8 +-
 clutter/clutter-private.h |   4 +
 clutter/clutter-types.h   |  29 ++++-
 4 files changed, 305 insertions(+), 5 deletions(-)

commit 8dd8fbdbdf940258ff6b5ce616534bf8f8fd356a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Sep 13 11:30:30 2010 +0100

    build: Start moving to a non-recursive layout
    
            *** WARNING: THIS COMMIT CHANGES THE BUILD ***
    
    Do not recurse into the backend directories to build private, internal
    libraries.
    
    We only recurse from clutter/ into the cogl sub-directory; from there,
    we don't recurse any further. All the backend-specific code in Cogl and
    Clutter is compiled conditionally depending on the macros defined by the
    configure script.
    
    We still recurse from the top-level directory into doc, clutter and
    tests, because gtk-doc and tests do not deal nicely with non-recursive
    layouts.
    
    This change makes Clutter compile slightly faster, and cleans up the
    build system, especially when dealing with introspection data.
    
    Ideally, we also want to make Cogl part of the top-level build, so that
    we can finally drop the sed trick to change the shared library from the
    GIR before compiling it.
    
    Currently disabled:
    
      ‣ OSX backend
      ‣ Fruity backend
    
    Currently enabled but untested:
    
      ‣ EGL backend
      ‣ Windows backend

 .gitignore                                         |   7 +-
 Makefile.am                                        |  19 +-
 autogen.sh                                         |   1 -
 build/Makefile.am                                  |   2 +-
 build/stringify.sh                                 |  94 ++++
 clutter.pc.in                                      |  21 -
 clutter/Makefile.am                                | 521 ++++++++++++++------
 clutter/cally/Makefile.am                          |  80 ----
 clutter/cally/cally.pc.in                          |   9 +-
 clutter/clutter.pc.in                              |  21 +
 clutter/cogl/cogl/Makefile.am                      | 136 ++++--
 clutter/cogl/cogl/cogl-context.h                   |  10 +-
 clutter/cogl/cogl/cogl-material-arbfp.c            |   9 +-
 clutter/cogl/cogl/cogl-material-fixed.c            |   9 +-
 clutter/cogl/cogl/cogl-material-glsl.c             |   8 +-
 clutter/cogl/cogl/cogl-material-opengl.c           |   9 +-
 clutter/cogl/cogl/driver/gl/Makefile.am            |  34 --
 .../cogl/cogl/driver/gl/cogl-context-driver-gl.c   |  39 ++
 .../cogl/cogl/driver/gl/cogl-context-driver-gl.h   |  53 +++
 clutter/cogl/cogl/driver/gl/cogl-context-driver.c  |  39 --
 clutter/cogl/cogl/driver/gl/cogl-context-driver.h  |  53 ---
 .../cogl/driver/gl/cogl-feature-functions-gl.h     | 410 ++++++++++++++++
 .../cogl/cogl/driver/gl/cogl-feature-functions.h   | 410 ----------------
 clutter/cogl/cogl/driver/gl/cogl-gl.c              | 237 ++++++++++
 clutter/cogl/cogl/driver/gl/cogl-program-gl.c      | 488 +++++++++++++++++++
 clutter/cogl/cogl/driver/gl/cogl-program-gl.h      |  46 ++
 clutter/cogl/cogl/driver/gl/cogl-program.c         | 488 -------------------
 clutter/cogl/cogl/driver/gl/cogl-program.h         |  46 --
 .../cogl/cogl/driver/gl/cogl-texture-driver-gl.c   | 522 +++++++++++++++++++++
 clutter/cogl/cogl/driver/gl/cogl-texture-driver.c  | 522 ---------------------
 clutter/cogl/cogl/driver/gl/cogl.c                 | 237 ----------
 clutter/cogl/cogl/driver/gles/Makefile.am          |  57 ---
 .../cogl/driver/gles/cogl-context-driver-gles.c    |  46 ++
 .../cogl/driver/gles/cogl-context-driver-gles.h    |  56 +++
 .../cogl/cogl/driver/gles/cogl-context-driver.c    |  46 --
 .../cogl/cogl/driver/gles/cogl-context-driver.h    |  56 ---
 .../cogl/driver/gles/cogl-feature-functions-gles.h | 111 +++++
 .../cogl/cogl/driver/gles/cogl-feature-functions.h | 111 -----
 clutter/cogl/cogl/driver/gles/cogl-gles.c          | 117 +++++
 clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.c |   1 -
 clutter/cogl/cogl/driver/gles/cogl-gles2-wrapper.h |   2 +-
 clutter/cogl/cogl/driver/gles/cogl-program-gles.c  | 437 +++++++++++++++++
 clutter/cogl/cogl/driver/gles/cogl-program-gles.h  |  52 ++
 clutter/cogl/cogl/driver/gles/cogl-program.c       | 437 -----------------
 clutter/cogl/cogl/driver/gles/cogl-program.h       |  52 --
 .../cogl/driver/gles/cogl-texture-driver-gles.c    | 504 ++++++++++++++++++++
 .../cogl/cogl/driver/gles/cogl-texture-driver.c    | 504 --------------------
 clutter/cogl/cogl/driver/gles/cogl.c               | 117 -----
 clutter/cogl/cogl/driver/gles/stringify.sh         |  94 ----
 clutter/egl/Makefile.am                            |  46 --
 clutter/glx/Makefile.am                            |  36 --
 clutter/json/Makefile.am                           |  39 --
 clutter/win32/Makefile.am                          |  38 --
 clutter/win32/clutter-win32.pc.in                  |  16 -
 clutter/x11/Makefile.am                            |  74 ---
 clutter/x11/clutter-backend-x11.c                  |  16 +-
 clutter/x11/clutter-x11-enum-types.c.in            |  31 --
 clutter/x11/clutter-x11-enum-types.h.in            |  26 -
 clutter/x11/clutter-x11.h                          |   1 -
 clutter/x11/clutter-x11.pc.in                      |  16 -
 configure.ac                                       | 102 ++--
 61 files changed, 3798 insertions(+), 4023 deletions(-)

commit 27aebb5c9d4a39e3f8e252b40cbf664d9981bbeb
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Sep 29 14:10:38 2010 +0100

    cally: Do not use deprecated functions
    
    The function g_strcasecmp() has been deprecated since GLib 2.2.

 clutter/cally/cally-actor.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit e798047ca043fea204851ab22faf67a3222fa6d0
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Sep 29 11:44:46 2010 +0100

    animator: Code style fixes

 clutter/clutter-animator.c | 30 +++++++++++++++---------------
 1 file changed, 15 insertions(+), 15 deletions(-)

commit 3fe10e0bb1a7d6d9ad1f28ab50d609d2a0af55fb
Author: Stephen Kennedy <sk4425@googlemail.com>
Date:   Wed Sep 29 10:56:48 2010 +0100

    ClutterAnimator doesn't ref timeline properly
    
    ClutterAnimator currently has a number of bugs related to its
    referencing of its internal timeline.
    
    1) The default timeline created in _init is not unreffed (it appears the
    programmer has wrongly thought ClutterTimeline has a floating reference
    based on the use of g_object_ref_sink in _set_timeline)
    
    2) The timeline and slave_timeline vars are unreffed in finalize instead
    of dispose
    
    3) The signal handlers set up in _set_timeline are not disconnected when
    the animator is disposed
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2347
    
    Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>

 clutter/clutter-animator.c | 23 ++++++++++++++++++-----
 1 file changed, 18 insertions(+), 5 deletions(-)

commit d0cab85673a885b9aba317d282dd1bd5518fa241
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Sep 27 22:17:12 2010 +0100

    Add a conformance test for clutter_actor_contains
    
    This adds a conformance test for clutter_actor_contains to assert that
    it gets the expected results for the given tree of actors.

 tests/conform/test-actor-invariants.c | 66 +++++++++++++++++++++++++++++++++++
 tests/conform/test-conform-main.c     |  1 +
 2 files changed, 67 insertions(+)

commit 306852075256906d268d5e0cb49957963f2e6a87
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Sep 27 17:51:01 2010 +0100

    Simplify the loop for clutter_actor_contains
    
    This reorganizes the loop for clutter_actor_contains so that it is a
    for loop rather than a while loop. Although this is mostly just
    nitpicking, I think this change could make the loop slightly faster if
    not optimized because it doesn't perform the self == descendant check
    twice and it is clearer.

 clutter/clutter-actor.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

commit 99adb88e9b2cddd65b4fd960444f26a5b52ce3c1
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Sep 27 17:47:38 2010 +0100

    Document what happens when self==descendant in clutter_actor_contains
    
    The documentation for clutter_actor_contains didn't specify what
    happens when self==descendant. A strict reading of it might lead you
    to think that it would return FALSE because in that case the
    descendant isn't an immediate child or a deeper descendant. The code
    actually would return TRUE. I think this is more useful so this patch
    fixes the docs rather than the code.

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

commit bba1424a444816f61865c5caffb17e56e0eb478b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Sep 27 16:46:26 2010 +0100

    Post-branch version bump to 1.5.1

 configure.ac | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 1971581dfa4c4ec1c37ed85f4087800fb28a2e20
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sun Sep 26 18:48:04 2010 +0100

    doap: Remove mallum from the maintainers list

 clutter.doap | 7 -------
 1 file changed, 7 deletions(-)

commit 43e85836b48636fe1a5217cb5fce6517e07ed3d0
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sun Sep 26 16:52:58 2010 +0100

    actor: Dispose all constrains
    
    We are leaking the ClutterMetaGroup with all the constraints when
    disposing an Actor.

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

commit fda1f3a8ba053aaa98882788b6098acbf7875bd3
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sat Sep 25 20:23:41 2010 +0100

    json: Allow NULL as a value for strings, arrays and objects
    
    We should not warn when asking for a string, array or object if the
    contents were 'null'.
    
    Patch from JSON-GLib.

 clutter/json/json-array.c  | 42 +++++++++++++++++++++++++++++++++---------
 clutter/json/json-object.c | 45 ++++++++++++++++++++++++++++++++++++---------
 2 files changed, 69 insertions(+), 18 deletions(-)

commit 8fe9f3a37db72dcb1dfdf0589135310a78b0174e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Sep 24 16:21:06 2010 +0100

    test-clutter-units: Force a known resolution to avoid fuzzyness
    
    Instead of taking the current resolution, whatever it may be, use a
    known DPI. This should alleviate fuzzyness and create consistent
    results.

 tests/conform/test-clutter-units.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

commit 51a4af92628287b491cd2539ce7bda0811976527
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Sep 24 15:25:15 2010 +0100

    Post-release version bump to 1.4.1

 configure.ac | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
