spec=1.2.0..1.4.0
commit 14dbe81deb8c9d583c8c56e4ede45a46880c2a76
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Sep 23 22:18:42 2010 +0100

    material: Don't prune ancestry if it owns some layers
    
    Each time a material property changes we look to see if any of its
    ancestry has become redundant and if so we prune that redundant
    ancestry.
    
    There was a problem with the logic that handles this though because we
    weren't considering that a material which is a layer state authority may
    still defer to ancestors to define the state of individual layers.
    
    For example a material that derives from a parent with 5 layers can
    become a STATE_LAYERS authority by simply changing it's ->n_layers count
    to 4 and in that case it can still defer to its ancestors to define the
    state of those 4 layers.
    
    This patch checks first if a material is a layer state authority and if
    so only tries to prune its ancestry if it also *owns* all the individual
    layers it depends on. (I.e. if g_list_length
    (material->layer_differences) != material->n_layers then it's not safe
    to try pruning its ancestry!)
    
    http://bugzilla-attachments.gnome.org/attachment.cgi?id=170907

 cogl/cogl-material.c |   21 +++++++++++++++++++++
 1 files changed, 21 insertions(+), 0 deletions(-)

commit 256f83973c836bf68ae54a4ed4a8967f4fede5ca
Author: Jammy Zhou <jammy.zhou@linaro.org>
Date:   Tue Sep 21 11:37:52 2010 +0800

    cogl-framebuffer.c: GL_DEPTH_STENCIL not supported in gles
    
    There is GL_INVALID_ENUM error for GL_DEPTH_STENCIL when call
    glRenderbufferStorage() with OpenGL ES backend. So enable this
    only for OpenGL backend.
    
    Signed-off-by: Robert Bragg <robert@linux.intel.com>

 cogl/cogl-framebuffer.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

commit 8150292879625eacc3d36273eeaa56fadbb3a43d
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Sep 23 15:45:27 2010 +0100

    docs: Put deprecated Cogl symbols into new section
    
    This adds a "Cogl deprecated API" chapter to the Cogl reference manual
    so we can group all the documentation for deprecated symbols together
    instead of having them clutter up the documentation of symbols we would
    rather developers used.

 doc/reference/cogl/cogl-docs.xml.in  |   28 ++++++++++
 doc/reference/cogl/cogl-sections.txt |   99 +++++++++++++++++++++++-----------
 2 files changed, 96 insertions(+), 31 deletions(-)

commit d9d0b7881172dbe16d4c0703cdb2e9ae9f94a16d
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Aug 25 22:31:30 2010 +0100

    docs: update the overview paragraph for Cogl
    
    Instead of describing OpenGL as "a low level OpenGL abstraction
    library" it is now summarised as "modern 3D graphics API".

 doc/reference/cogl/cogl-docs.xml.in |   12 +++++++-----
 1 files changed, 7 insertions(+), 5 deletions(-)

commit fb05fe795808fac47c0ba35a8c1fe0706f359d7e
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Aug 25 20:36:20 2010 +0100

    docs: cogl-texture-3d wasn't listed as experimental
    
    The CoglTexture3D API is only available when defining
    COGL_ENABLE_EXPERIMENTAL_API so it should be listed in the experimental
    section of the API reference.

 doc/reference/cogl/cogl-docs.xml.in |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit e5e892fe47ee727df10330d32d9bd4569068e70a
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Aug 25 20:33:27 2010 +0100

    docs: Use "Cogl" not "COGL" in Cogl API reference
    
    Cogl isn't an acronym so we should use "Cogl" instead of "COGL" in
    our documentation.

 doc/reference/cogl/cogl-docs.xml.in |   14 +++++++-------
 1 files changed, 7 insertions(+), 7 deletions(-)

commit 6f0f964e12f61e1afd34330988a7decee20e2e17
Merge: ab78575 c8f8352
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Sep 20 14:33:26 2010 +0100

    Merge branch 'cookbook-layouts-bind-constraint'
    
    * cookbook-layouts-bind-constraint:
      cookbook: Add recipe about sync'ing actor sizes
      cookbook: Example using allocation-changed to sync actor size
      cookbook: Simple example to demonstrate bind constraint
      cookbook: Example of using a bind constraint for an overlay

commit ab78575823dbac0c1f9783425f7f08ada7aa5292
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Sep 20 13:15:44 2010 +0100

    docs: API reference fixes

 cogl/cogl-path.h                      |    2 ++
 cogl/winsys/cogl-texture-pixmap-x11.h |   18 +++++++++++-------
 2 files changed, 13 insertions(+), 7 deletions(-)

commit 0b2985ad66f7a5a3f7db2b7fc7f3b554ee1037a4
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Sep 17 17:18:09 2010 +0100

    cogl-object-private.h: Include cogl-debug.h
    
    If COGL_OBJECT_DEBUG is defined then cogl-object-private.h will call
    COGL_NOTE in the ref and unref macros. For this to work the debug
    header needs to also be included or COGL_NOTE won't necessarily be
    defined.

 cogl/cogl-object-private.h |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

commit c8f83525ce204e7006ea2d8fa1e9d6530ea5077d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Sep 15 15:56:42 2010 +0100

    build: Add cogl-debug-options.h

 cogl/Makefile.am |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

commit 583d5cc79f2a00ac6e9ac93253f9cfdb528830a2
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Sep 15 14:39:05 2010 +0100

    cogl: Make cogl_util_next_p2 internal and fix the documentation
    
    cogl_util_next_p2 is declared in cogl-util.h which is a private header
    so it shouldn't be possible for an application to use it. It's
    probably not a function we'd like to export from Cogl so it seems
    better to keep it private. This patch renames it to _cogl_util_next_p2
    so that it won't be exported from the shared library.
    
    The documentation for the function is also slightly wrong because it
    stated that the function returned the next power greater than
    'a'. However the code would actually return 'a' if it's already a
    power of two. I think the actual behaviour is more useful so this
    patch changes the documentation rather than the code.

 cogl/cogl-texture-2d-sliced.c |    4 ++--
 cogl/cogl-util.c              |   11 ++++++-----
 cogl/cogl-util.h              |    2 +-
 3 files changed, 9 insertions(+), 8 deletions(-)

commit a433bd8e9e732016e03ced0bc7ab57ee44c54620
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Sep 15 14:07:30 2010 +0100

    cogl-vertex-buffer: Don't always set COGL_MATERIAL_FLUSH_FALLBACK_MASK
    
    Previously CoglVertexBuffer would always set the flush options flags
    to at least contain COGL_MATERIAL_FLUSH_FALLBACK_MASK. The code then
    later checks whether any flags are set before deciding whether to copy
    the material to implement the overrides. This means that it would
    always end up copying the material even if there are no fallback
    layers. This patch changes it so that it only sets
    COGL_MATERIAL_FLUSH_FALLBACK_MASK if fallback_layers != 0.

 cogl/cogl-vertex-buffer.c |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)

commit 91b46890f776171afcfa6187b3dcfbe13d353214
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Sep 14 20:25:23 2010 +0100

    material-arbfp: fix updating params if sharing progs
    
    If a single arbfp program is being shared between multiple CoglMaterials
    then we need to make sure we update all program.local params when
    switching between materials. Previously we had a dirty flag to track
    when combine_constant params were changed but didn't take in to account
    that different materials sharing the same program may have different
    combine constants.

 cogl/cogl-material-arbfp.c |   12 +++++++++++-
 1 files changed, 11 insertions(+), 1 deletions(-)

commit cad5624a2a236242ad4b038346ad36b2f2af8e4b
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Sep 14 18:50:50 2010 +0100

    material-arbfp: Another pass at simplifying the code
    
    Previously the backend private state was used to either link to an
    authority material or provide authoritative program state. The mechanism
    seemed overly complex and felt very fragile. I made a recent comment
    which added a lot of documentation to make it easier to understand but
    still it didn't feel very elegant.
    
    This patch takes a slightly different approach; we now have a
    ref-counted ArbfpProgramState object which encapsulates a single ARBfp
    program and the backend private state now just has a single member which
    is a pointer to one of these arbfp_program_state objects. We no longer
    need to cache pointers to our arbfp-authority and so we can get rid of
    a lot of awkward code that ensured these pointers were
    updated/invalidated at the right times. The program state objects are
    not tightly bound to a material so it will also allow us to later
    implement a cache mechanism that lets us share state outside a materials
    ancestry. This may help to optimize code not following the
    recommendations of deriving materials from templates, avoiding one-shot
    materials and not repeatedly modifying materials because even if a
    material's ancestry doesn't naturally lead us to shareable state we can
    fallback to searching for shareable state using central hash tables.

 cogl/cogl-material-arbfp.c |  600 +++++++++++++++++++-------------------------
 1 files changed, 256 insertions(+), 344 deletions(-)

commit 16c64054b941b1508d0f904ff61582e01912a06b
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Jul 5 21:33:26 2010 +0100

    material: Adds experimental cogl_material_foreach_layer API
    
    This adds a way to iterate the layer indices of the given material since
    cogl_material_get_layers has been deprecated. The user provides a
    callback to be called once for each layer.
    
    Because modification of layers in the callback may potentially
    invalidate any number of the internal CoglMaterialLayer structures and
    invalidate the material's layer cache this should be more robust than
    cogl_material_get_layers() which used to return a const GList *
    pointing directly to internal state.

 cogl/cogl-material-arbfp.c   |   12 ++--
 cogl/cogl-material-opengl.c  |   18 ++++----
 cogl/cogl-material-private.h |   10 ++--
 cogl/cogl-material.c         |  108 +++++++++++++++++++++++++++++------------
 cogl/cogl-material.h         |   33 +++++++++++++
 5 files changed, 129 insertions(+), 52 deletions(-)

commit 7eff623b96a3bec083b9355d4e66217ec0fc9de7
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Sep 14 12:13:30 2010 +0100

    material: don't declare backend vtables in headers
    
    This fixes the material backends to declare their constant vtable in the
    c file with a corresponding extern declaration in the header. This
    should fix complaints about duplicate symbols seen on OSX.

 cogl/cogl-material-arbfp-private.h |    2 +-
 cogl/cogl-material-arbfp.c         |    2 ++
 cogl/cogl-material-fixed-private.h |    2 +-
 cogl/cogl-material-fixed.c         |    2 ++
 cogl/cogl-material-glsl-private.h  |    2 +-
 cogl/cogl-material-glsl.c          |    2 ++
 6 files changed, 9 insertions(+), 3 deletions(-)

commit 56a382a50724f47b1a2cd9bcd7fbad4b8ae69623
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Sep 14 00:33:46 2010 +0100

    material-arbfp: don't recompile for constant changes
    
    Instead of lazily incorporating combine constants as arbfp PARAM
    constants in the source directly we now use program.local parameters
    instead so we can avoid repeating codegen if a material's combine
    constant is updated. This should be a big win for applications animating
    a constant used for example in an animated interpolation, such as
    gnome-shell.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2280

 cogl/cogl-material-arbfp.c |   68 +++++++++++++++++++++++++++++---------------
 1 files changed, 45 insertions(+), 23 deletions(-)

commit 17538cf5e622fd8dd134883d3aa344770e0720ff
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Sep 14 00:27:57 2010 +0100

    material-arbfp: don't redo codegen for texture changes
    
    This makes it so we don't consider LAYER_STATE_TEXTURE changes to affect
    the arbfp code. This should avoid a lot of unneeded passes of
    code generation for applications modifying the texture for a layer.

 cogl/cogl-material-arbfp.c |   12 +++++++++---
 1 files changed, 9 insertions(+), 3 deletions(-)

commit 0717eb9f6b0acae8a7914f71ceeb1b5789d831f6
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Sep 14 00:18:02 2010 +0100

    material: make layer/material_pre_changes mutually exclusive
    
    This makes it so we only notify backends of either a single material
    change or a single layer change. Previously all material STATE_LAYERS
    changes would be followed by a more detailed layer change.
    
    For backends that perform code generation for fragment processing they
    typically need to understand the details of how layers get changed to
    determine if they need to repeat codegen. It doesn't help them to report
    a material STATE_LAYERS change for all layer changes since it's so
    broad, they really need to wait for the layer change to be notified.
    
    What does help though is to report a STATE_LAYERS change for a change in
    material->n_layers because they typically do need to repeat codegen in
    that case.

 cogl/cogl-material-arbfp.c |    7 +++++++
 cogl/cogl-material.c       |   22 +++++++++++++++++++++-
 2 files changed, 28 insertions(+), 1 deletions(-)

commit 95fbe5fb0d243029f4cfd820386a8c0d7b9889ff
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Sep 13 23:52:18 2010 +0100

    material-arbfp: fixes for how we track private state
    
    This fixes a number of issues relating to how we track the arbfp private
    state associated with CoglMaterials. At the same time it adds much more
    extensive code documentation to try and make it a bit more approachable.

 cogl/cogl-material-arbfp.c |  175 ++++++++++++++++++++++++++++++++++++--------
 1 files changed, 143 insertions(+), 32 deletions(-)

commit 0e99fa7a1e0191328b0616b5a901fb1ab14dd1fb
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Sep 13 23:05:49 2010 +0100

    material: pass material owner for layer pre changes
    
    When notifying a backend about a layer being modified we now pass the
    layers current owner for reference. NB: Although a layer can indirectly
    be referenced by multiple layers, a layer is considered immutable once
    it has dependants, so there is only ever one material associated with a
    layer being modified. Passing the material pointer to the backends
    layer_pre_change callback can be useful for backends that associate
    their private state with materials and may need to update that state in
    response to layer changes.

 cogl/cogl-material-arbfp.c   |   11 ++++++++++-
 cogl/cogl-material-private.h |    3 ++-
 cogl/cogl-material.c         |    7 ++++---
 3 files changed, 16 insertions(+), 5 deletions(-)

commit 8f63ca6ffc95a8b4e3f5190114301d06fecea857
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Sep 13 22:56:44 2010 +0100

    arbfp: rename get_arbfp_authority clarifying semantics
    
    This renames the get_arbfp_authority function to
    get_arbfp_authority_no_check to clarify that the function doesn't
    validate that the authority cache is still valid by looking at the age
    of the referenced material. The function should only be used when we
    *know* the cache has already been checked.

 cogl/cogl-material-arbfp.c |   16 ++++++++++------
 1 files changed, 10 insertions(+), 6 deletions(-)

commit 3a2a10d2e8edddb2324e60fa5fefac5a1c2fa07e
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Sep 13 21:26:31 2010 +0100

    material: track if material change is layer change
    
    We now pass a boolean to _cogl_material_pre_change_notify to know when
    a material change is as a result of a layer change. We plan to use this
    information to avoid notifying the backends about material changes if
    they are as a result of layer changes. This will simplify the handling
    of state changes in the backends because they can assume that layer and
    material changes are mutually exclusive.

 cogl/cogl-material.c |   52 +++++++++++++++++++++++++++----------------------
 1 files changed, 29 insertions(+), 23 deletions(-)

commit bc187dc31e18c008103b20deaf7283d07c1711bb
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Sep 13 21:21:09 2010 +0100

    material: Adds _get_layer_combine_constant API
    
    This adds an internal _cogl_material_get_layer_combine_constant function
    so we can query the current layer combine constant back. We should
    probably make this a public property getter, but for now we just need
    this so we can read the constant in the arbfp backend.

 cogl/cogl-material-private.h |    5 +++++
 cogl/cogl-material.c         |   26 ++++++++++++++++++++++++++
 2 files changed, 31 insertions(+), 0 deletions(-)

commit c9ac838fad48040c3d37e3bcebeedb608109f5fd
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Sep 13 21:17:30 2010 +0100

    material: track unit state with arbfp private state
    
    We are going to start tracking more per-texture unit state with arbfp
    private state so this adds an internal UnitState type and we allocate an
    array of these when setting up a new private state structure. The first
    thing that has been moved into this is the sampled boolean to know when
    a particular texture unit gets sampled from in the generated arbfp code.

 cogl/cogl-material-arbfp.c |   36 +++++++++++++++++++++++++++---------
 1 files changed, 27 insertions(+), 9 deletions(-)

commit 71f62ca5000064d22944ff2d8f4398489dc75842
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Sep 15 11:56:59 2010 +0100

    Enumeration value should be on the same line
    
    The glib-mkenums script is not clever enough to deal with
    
      FLAGS_VALUE = FLAGS_A |
                    FLAGS_B
    
    And since this breaks the enumeration GType and the introspection data,
    we cannot really wait for it to be fixed.
    
    See: https://bugzilla.gnome.org/show_bug.cgi?id=629741
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2238

 cogl/cogl-buffer.h |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

commit 33a64408121d1030d7dfdd5515f9d786ff858dae
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Sep 1 15:15:20 2010 +0100

    cogl-framebuffer: fix leak when popping framebuffer
    
    We were using g_slist_remove_link instead of g_slist_delete_link
    resulting in a memory leak. Thanks to Simon Lanzmich for
    reporting this bug.

 cogl/cogl-framebuffer.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit eabce897dc05e227e7039cc4ce6bc4938f58852b
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Aug 16 21:11:42 2010 +0100

    Initialize the cogl uprof state in cogl_create_context
    
    This avoids the use of of gcc constructor and destructor attributes to
    initialize the cogl uprof context and optionally print a cogl uprof
    report at app exit. We now initialize the uprof context in
    cogl_context_create instead.

 cogl/cogl-context.c |   17 +++++++++++++++++
 cogl/cogl-profile.c |   30 ++++++++++++++++--------------
 cogl/cogl-profile.h |    3 +++
 3 files changed, 36 insertions(+), 14 deletions(-)

commit d1ac02594f7985bdb7f4b215a59f54c51f2624bc
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Jul 26 15:21:18 2010 +0100

    journal: provide more detailed uprof instrumentation
    
    This adds more timing around key stages of the journal flushing process.

 cogl/cogl-journal.c  |   39 +++++++++++++++++++++++++++++++++++++++
 cogl/cogl-material.c |   40 ++++++++++++++++++++++++++++------------
 2 files changed, 67 insertions(+), 12 deletions(-)

commit 9d4ad1584d32a61ec6879601bc320fd79e2efb1e
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Jun 21 15:36:46 2010 +0100

    profile: Update to uprof-0.3 dep for --enable-profile
    
    When building with --enable-profile we now depend on the uprof-0.3
    developer release which brings a few improvements:
    
    » It lets us "fix" how we initialize uprof so that instead of using a shared
    object constructor/destructor (which was a hack used when first adding
    uprof support to Clutter) we can now initialize as part of clutter's
    normal initialization code. As a side note though, I found that the way
    Clutter initializes has some quite serious problems whenever it
    involves GOptionGroups. It is not able to guarantee the initialization
    of dependencies like uprof and Cogl. For this reason we still use the
    contructor/destructor approach to initialize uprof in Cogl.
    
    » uprof-0.3 provides a better API for adding custom columns when reporting
    timer and counter statistics which lets us remove quite a lot of manual
    report generation code in clutter-profile.c.
    
    » uprof-0.3 provides a shared context for tracking mainloop timer
    statistics. This means any mainloop based library following the same
    "Mainloop" timer naming convention can use the shared context and no
    matter who ends up owning the final mainloop the statistics will always
    be in the same place. This allows profiling of Clutter with an
    external mainloop such as with the Mutter compositor.
    
    » uprof-0.3 can export statistics over dbus and comes with an ncurses
    based ui to vizualize timer and counter stats live.
    
    The latest version of uprof can be cloned from:
    git://github.com/rib/UProf.git

 cogl/cogl-debug-options.h |  145 +++++++++++++++++++++++++++++++++++++++++++++
 cogl/cogl-debug.c         |   37 ++---------
 cogl/cogl-debug.h         |   18 +++---
 cogl/cogl-profile.c       |   48 +++++++++++++++
 cogl/cogl-profile.h       |    4 +
 cogl/cogl-texture-3d.c    |    1 +
 6 files changed, 215 insertions(+), 38 deletions(-)

commit 4628d28172b2ec1cb6ef160d11f05863bcd5bd50
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Sep 6 17:18:11 2010 +0100

    cogl-framebuffer: Clear the renderbuffer list on failure
    
    When try_creating_fbo fails it deletes any intermediate render buffers
    that were created. However it doesn't clear the list so I think if it
    failed a second time it would try to delete the render buffers
    again. This could potentially cause problems if a subsequent fbo is
    created because the destructor for the original might delete the
    renderbuffers of the new fbo.

 cogl/cogl-framebuffer.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

commit e333a3645ce5ae5eacf395fea03ab300c89d9fae
Merge: 6a48065 bc4be1c
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Sep 13 15:51:18 2010 +0100

    Merge remote branch 'elliot/cookbook-animations-reuse'
    
    * elliot/cookbook-animations-reuse:
      cookbook: Added a recipe for reusing a complex animation
      cookbook: Added id for section in "rotating an actor" recipe
      cookbook: Simplified and clarified example code
      cookbook: Cleaned up the "animations reuse" example
      cookbook: Refactored reusable animation example
      cookbook: Added example for animation reuse recipe

commit 6a48065761c7448d71a05973610ce3a3d31fa166
Author: Murray Cumming <murrayc@murrayc.com>
Date:   Mon Sep 13 16:16:25 2010 +0200

    Remove trailin enum commas, avoiding C++ warnings.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2314

 cogl/cogl-types.h         |    2 +-
 cogl/cogl-vertex-buffer.h |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit bc4be1c673f345e5c9c8b81ead89d2b4fe0b6351
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Sep 13 11:31:46 2010 +0100

    build: Add tesselator to the include paths

 cogl/Makefile.am |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

commit a8560037917550fdce83f2ae3b6f15c03812266c
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Sep 13 02:01:21 2010 +0100

    build: Remove gir files from dist
    
    The introspection data is going to be generated, so it should never be
    in the dist.

 cogl/Makefile.am |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 8f049b360ad78f84688d76fd3ae04922ae5c4df3
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sun Sep 12 19:25:47 2010 +0100

    build: Do not build a noinst library for the tesselator
    
    Let's try to keep Cogl's build as non-recursive as possible, in the hope
    that one day we'll be able to make it fully non-recursive along with the
    rest of Clutter.

 cogl/Makefile.am            |   59 ++++++++++++++++++++++++++++++++++++------
 cogl/tesselator/Makefile.am |   41 -----------------------------
 2 files changed, 50 insertions(+), 50 deletions(-)

commit ecbdbb666bd8c161d4ac0e576ed3f875fa99409f
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Sep 9 12:15:59 2010 +0100

    cogl-vertex-buffer: Flush the framebuffer state first
    
    Flushing the framebuffer state can cause some drawing to occur if the
    framebuffer has a clip stack which needs the stencil buffer. This was
    causing the array pointers set up by enable_state_for_drawing_buffer
    to get mangled so it would crash when it hits glDrawArrays. This patch
    moves the framebuffer state flush to before it sets up the array
    pointers.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2297

 cogl/cogl-vertex-buffer.c |   13 ++++++++-----
 1 files changed, 8 insertions(+), 5 deletions(-)

commit 58827bb54c02f4f913ac131ceeab72d6a1bb0415
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Sep 6 18:07:07 2010 +0100

    material: Check before unreferencing a texture
    
    When disposing a material layer of type 'texture' we should check that
    the texture handle is still valid before calling cogl_handle_unref().
    This avoids an assertion failure when disposing a ClutterTexture.

 cogl/cogl-material.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

commit 6b5934a18e76d6f33002586500bfb08a8ef78431
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Sep 6 16:11:46 2010 +0100

    Add some more introspection annotations

 cogl/cogl-material.h  |    2 +-
 cogl/cogl-offscreen.h |   11 ++++++-----
 cogl/cogl-types.h     |    2 +-
 3 files changed, 8 insertions(+), 7 deletions(-)

commit fd0cd2e55cbf9eabf7dea23d2bac0a388369b5ca
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Sep 3 17:15:22 2010 +0100

    docs: Fix up the Cogl API reference build

 doc/reference/cogl/Makefile.am      |   41 ++++++++++++++++++++--------------
 doc/reference/cogl/cogl-docs.xml.in |    2 +-
 2 files changed, 25 insertions(+), 18 deletions(-)

commit ec3068f2268a26dc537bfc040dbd7f60438ab565
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Sep 3 16:56:12 2010 +0100

    cogl-shader: Add deprecation guards for cogl_program_uniform_*

 cogl/cogl-shader.h |   14 +++++++++-----
 1 files changed, 9 insertions(+), 5 deletions(-)

commit 73a94a7a79292c5d900832f9b4068c20995278c7
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Sep 3 16:55:12 2010 +0100

    Replace cogl_color_set_from_* with cogl_color_init_from_*
    
    The former is not yet "officially" deprecated by the latter, but it's
    confusing to have them both in the code base.

 cogl/cogl-material.c            |    4 ++--
 cogl/cogl.c                     |    6 +++---
 pango/cogl-pango-display-list.c |   10 +++++-----
 pango/cogl-pango-render.c       |   10 +++++-----
 4 files changed, 15 insertions(+), 15 deletions(-)

commit e950d2feec2d9c3830ffa8b0465b32739c9c6ce4
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Sep 3 16:52:06 2010 +0100

    docs: Add annotation glossary to the Cogl API reference
    
    It's the only way to let gtk-doc know that we're using annotations in
    the comments.

 doc/reference/cogl/cogl-docs.xml.in |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

commit b12f688415d5f8854abfc676db604585825034d3
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Sep 3 16:10:44 2010 +0100

    docs: Fixes for gtk-doc

 cogl/cogl-matrix.h |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

commit 08eb738c9387f524c50a84004618f6dfb01c4487
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Sep 3 11:09:57 2010 +0100

    build: Use Makefile.introspection
    
    Whenever possible, instead of writing our own rules for generating GIR
    files and typelibs.

 cogl/Makefile.am |   36 ++++++++++++++++++------------------
 1 files changed, 18 insertions(+), 18 deletions(-)

commit d4d899fa278efff9e7d4730527d12703f9d39dc5
Author: Colin Walters <walters@verbum.org>
Date:   Thu Sep 2 11:45:42 2010 -0400

    introspection: Build fixes
    
    This patch merges in substantial work from
    Emmanuele Bassi <ebassi@linux.intel.com>
    
    * Use new introspection --include-uninstalled API since we don't want
      to try to find the clutter-1.0.pc file before it's installed.
    * Use --pkg-export for Clutter-1.0.gir, since we want the .gir file to
      contain the associated pkg-config file.
    * Drop the use of --pkg for dependencies; those come from the associated
      .gir files.  (Actually, --pkg is almost never needed)
    * Add --quiet
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2292

 cogl/Makefile.am |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 7e158c6bc5dc611417a9db4e005fcd80b0deeb45
Author: Damien Lespiau <damien.lespiau@gmail.com>
Date:   Thu Aug 12 09:25:17 2010 -0400

    cex100: Add a Clutter EGL backend for CE3100/CE4100 SoCs
    
    Intel CE3100 and CE4100 SoCs are designed for TVs. They have separate
    framebuffers that are blended together by a piece of hardware to make
    the final output. The library that allows you to initialize and
    configure those planes is called GDL. A EGL GDL winsys can then be
    use with those planes as NativeWindowType to select which plane to use.
    
    This patch adds a new ClutterBackendCex100 backend that can be
    selected at compile time with the new --with-flavour=cex100 option.

 cogl/Makefile.am |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

commit 7367188ab5f6c7f3824443f83646985444df2d00
Author: Damien Lespiau <damien.lespiau@gmail.com>
Date:   Thu Aug 12 09:05:01 2010 -0400

    egl: Fix compilation for EGL native
    
    Some minor fixes here and there: missing include, wrongly placed #endif,
    unused variable warning fixes, missing #ifdef.
    
    Make ClutterStageEGL a subclass of either ClutterStageX11 or GObject
    depending if you compile with X11 support (EGLX) or not (native).

 cogl/cogl-material-glsl.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

commit a77e14c96935663cc065fdf4b4a82c6078e2d8d4
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sat Aug 28 21:21:08 2010 +0100

    docs: Pass -DCOGL_ENABLE_EXPERIMENTAL_API when scanning

 doc/reference/cogl/Makefile.am |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit bed08767493672552e6d1a47e6866a26994edc78
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Aug 20 15:24:42 2010 +0100

    Merge remote branch 'elliot/cookbook-textures-crossfade'
    
    * elliot/cookbook-textures-crossfade:
      cookbook: Use GdkPixbuf instead of getting data from a texture
      cookbook: Added a recipe for cross-fading between two images
      cookbook: Modified COGL example for consistency
      cookbook: Added video of two texture cross-fade
      cookbook: Removed unused constant
      cookbook: Renamed front/back to top/bottom in cross-fade example
      cookbook: Don't need to set keep-aspect-ratio for simple example
      cookbook: Modified ordering of statements in cross-fade example
      cookbook: Added a longer slideshow example
      cookbook: Made code examples more consistent
      cookbook: Added example code for texture cross-fading
      Post-release version bump to 1.3.13
      Release Clutter 1.3.12 (developers snapshot)
    
    Conflicts:
    	doc/cookbook/examples/Makefile.am

commit 90f633dd8d9d5b1e357e513b8e53affd0c0d993b
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Aug 9 16:01:17 2010 +0100

    material: Implements weak materials
    
    Weak materials are ones that don't take a reference on their parent and
    they are associated with a callback that notifies when the material is
    destroyed, because its parent was freed or modified.
    
    More details can be found at:
    http://wiki.clutter-project.org/wiki/CoglDesign/CoglMaterial
    
    For now the concept is internal only but the plan is to make this public
    at some point once we have tested the design internally.

 cogl/cogl-material-private.h |  142 +++++++++++++++++++++++++++++++
 cogl/cogl-material.c         |  191 ++++++++++++++++++++++++++++++++++--------
 2 files changed, 297 insertions(+), 36 deletions(-)

commit 65c2caea65ed79b41c8f8965d6bf6c47252742a4
Merge: 63fd426 8b8dd92
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Aug 12 18:29:08 2010 +0100

    Merge remote branch 'elliot/cookbook-events-mouse-scroll'
    
    * elliot/cookbook-events-mouse-scroll:
      cookbook: Cleaning up grammar and wording in mouse scroll recipe
      cookbook: Added more explanation about setting y coord on scrollable
      cookbook: Mentioned the animation in the sample code
      cookbook: Included video of the scroll example running
      cookbook: Made stage slightly smaller for scroll event example
      cookbook: Added video showing scrollable actor
      cookbook: Added walk through of code example for mouse scroll
      cookbook: Fixed link to example in mouse scroll recipe
      cookbook: Simplified full scroll example
      cookbook: Improved wording and formatting in mouse scroll intro.
      cookbook: Handle all possible mouse scroll directions
      cookbook: Build mouse scroll example with cookbook
      cookbook: Cleaned up redundant comments in code example
      cookbook: Added xmlns for XInclude to events docbook file
      cookbook: Added basic mouse scroll recipe

commit 63fd426b4b4751810895b5343e8aaa36f92e2a98
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Aug 12 10:43:22 2010 +0100

    cogl-shader: get_info_log should always use strdup
    
    In the case where there is no error log for arbfp we were returning a
    "" string literal. The other paths were using g_strdup to return a
    string that could be freed with g_free. This makes the arbfp path return
    g_strdup ("") instead.

 cogl/cogl-shader.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

commit a0247f294ddcc02ba589f7ea9afe6d1f4f7b0c1a
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Aug 12 10:40:39 2010 +0100

    cogl-shader: correctly #ifdef guard an if else block
    
    There are quite a few if {} else {} blocks for dealing with arbfp else
    glsl and the first block is guarded with #ifdef HAVE_COGL_GL. In this
    case though the #endif was before the else so it wouldn't compile for
    gles.

 cogl/cogl-shader.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 13e72608682b2632b0cb0c523d001a2c643064f6
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Aug 12 10:37:55 2010 +0100

    material-glsl: #include "cogl-shader-private.h"
    
    We need to include cogl-shader-private.h to have the
    COGL_SHADER_TYPE_GLSL define. When building for opengl this wasn't
    noticed probably because some other header indirectly includes this
    file. It was a problem when building for gles2 though.

 cogl/cogl-material-glsl.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

commit 8d80a88e148419c0b2be9a7cdea6c6638d3f921e
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Aug 11 19:18:14 2010 +0100

    cogl-program: Adds use_uniform_xyz methods
    
    Instead of exposing an API that provides an OpenGL state machine style
    where you first have to bind the program to the context using
    cogl_program_use() followed by updating uniforms using
    cogl_program_uniform_xyz we now have uniform setter methods that take an
    explicit CoglHandle for the program.
    
    This deprecates cogl_program_use and all the cogl_program_uniform
    variants and provides the following replacements:
        cogl_program_set_uniform_1i
        cogl_program_set_uniform_1f
        cogl_program_set_uniform_int
        cogl_program_set_uniform_float
        cogl_program_set_uniform_matrix

 cogl/cogl-shader.h                   |  119 +++++++++++++++++++++++++-
 cogl/driver/gl/cogl-program.c        |  157 ++++++++++++++++++++++------------
 cogl/driver/gles/cogl-program.c      |  127 ++++++++++++++++++++-------
 doc/reference/cogl/cogl-sections.txt |    5 +
 4 files changed, 316 insertions(+), 92 deletions(-)

commit 64b5308d7fe2d80ae4d6ae4e04b7150ae76dec7e
Author: Damien Lespiau <damien.lespiau@gmail.com>
Date:   Thu Aug 12 10:36:04 2010 -0400

    introspection: Use the --quiet flag conditionally
    
    --quiet has been added to g-ir-scanner in the 0.9.1 cycle. We really
    want to be able to compile clutter with 0.6.14 to be able to reuse
    gir files that are distributed in current distributions.
    
    Use the INTROSPECTION_SCANNER_ARGS (previously unused) variable to
    convey --quiet when necessary.
    
    Fixes: http://bugzilla.clutter-project.org/show_bug.cgi?id=2265

 cogl/Makefile.am |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

commit 717cb2c47f6ad511c0b374975e66d5cb171d558c
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Aug 12 09:59:58 2010 +0100

    cogl-atlas: Verify that the chosen initial size is supported
    
    CoglAtlas chooses a fairly large default initial size of either
    512x512 or 1024x1024 depending on the texture format. There is a
    chance that this size will not be supported on some platforms which
    would be catastrophic for the glyph cache because it would mean that
    it would always fail to put any glyphs in the cache so text wouldn't
    work. To fix this the atlas code now checks whether the chosen initial
    size is supported by the texture driver and if not it will get halved
    until it is supported.

 cogl/cogl-atlas.c |   56 ++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 39 insertions(+), 17 deletions(-)

commit b4240cba29e63652bc9d43138e554672e1b50e5a
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Aug 12 09:08:30 2010 +0100

    cogl-atlas: Use _cogl_texture_driver_size_supported
    
    Previously when creating a new rectangle map it would try increasingly
    larger texture sizes until GL_MAX_TEXTURE_SIZE is reached. This is bad
    because it queries state which should really be owned by the texture
    driver. Also GL_MAX_TEXTURE_SIZE is often a conservative estimate so
    larger texture sizes can be used if the proxy texture is queried
    instead.

 cogl/cogl-atlas.c |   25 +++++++++++++++----------
 1 files changed, 15 insertions(+), 10 deletions(-)

commit 1e72ba49326f3388077a8a6a5fd02aa5b9f1f4eb
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Aug 11 15:08:00 2010 +0100

    cogl-rectangle-map: Record largest gap rather than the remaining space
    
    Previously each node in the rectangle map tree would store the total
    remaining space in all of its children to use as an optimization when
    adding nodes. With this it could skip an entire branch of the tree if
    it knew there could never be enough space for the new node in the
    branch. This modifies that slightly to instead store the largest
    single gap. This allows it to skip a branch earlier because often
    there would be a lot of small gaps which would add up to enough a
    space for the new rectangle, but the space can't be used unless it is
    in a single node.
    
    The rectangle map still needs to keep track of the total remaining
    space for the whole map for the debugging output so this has been
    added back in to the CoglRectangleMap struct. There is a separate
    debugging function to verify this value.

 cogl/cogl-rectangle-map.c |   94 ++++++++++++++++++++++++++++++++------------
 1 files changed, 68 insertions(+), 26 deletions(-)

commit 0aaea4a93aac5eab6be13c277c17b414de092a68
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Aug 6 18:42:43 2010 +0100

    cogl-atlas: Try the next size when there would be less than 6% waste
    
    Previously when the atlas needs to be migrated it would start by
    trying with the same size as the existing atlas if there is enough
    space for the new texture. However even if the atlas is completely
    sorted there will always be some amount of waste so when the atlas
    needs to grow it would usually end up redundantly trying the same size
    when it is very unlikely to fit. This patch changes it so that there
    must be at least 6% waste available after the new texture is added
    otherwise it will start with the next atlas size.

 cogl/cogl-atlas.c |   12 +++++++-----
 1 files changed, 7 insertions(+), 5 deletions(-)

commit c6b6f619a92da88b42547bafb283b5a087e05d0c
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Aug 6 18:42:01 2010 +0100

    cogl-atlas: Add some more debugging notes
    
    This adds some debugging notes which report when the atlas is trying
    various sizes.

 cogl/cogl-atlas.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

commit 74b64848125f2a027f044b7387eb9c1b451d4708
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Aug 6 17:40:52 2010 +0100

    cogl-rectangle-map: Use a GArray for the stack
    
    When iterating over the rectangle map a stack is used to implement a
    recursive algorithm. Previously this was slice allocating a linked
    list. Now it uses a GArray which is retained with the rectangle map to
    avoid frequent allocations which is a little bit faster.

 cogl/cogl-rectangle-map.c |  120 +++++++++++++++++++++++++--------------------
 1 files changed, 67 insertions(+), 53 deletions(-)

commit 9a62c069aa4d748c94ea9d364738dad26466671b
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Aug 6 16:13:20 2010 +0100

    cogl-rectangle-map: Store the remaining space per node
    
    Previously the remaining space was managed as part of the
    CoglRectangleMap struct. Now it is stored per node so that at any
    point in the hierarchy we can quickly determine how much space is
    remaining in all of the node's children. That way when adding a
    rectangle we can miss out entire branches more quickly if we know that
    there is no way the new rectangle would fit in that branch.
    
    This also adds a function to recursively verify the cached state in
    the nodes such as the remaining space and the number of
    rectangles. This function is only called when the dump-atlas-image
    debug flag is set because it is potentially quite slow.

 cogl/cogl-rectangle-map.c |  108 ++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 96 insertions(+), 12 deletions(-)

commit 92b712f6e478a20d4ef7b853c4d162574dedcf83
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Aug 6 11:44:39 2010 +0100

    cogl-atlas: Increase the default minimum texture size
    
    When initially creating a texture it would start with a minimum size
    of 256x256. This increases the size so that it would try to match 1MB
    of memory.

 cogl/cogl-atlas.c |   18 +++++++++++++++---
 1 files changed, 15 insertions(+), 3 deletions(-)

commit 8123330061319d75291dd55df28e0c7c6a01bedc
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Aug 4 18:05:21 2010 +0100

    cogl-pango: Use a CoglAtlas to maintain the glyph cache
    
    The glyph cache is now stored in a CoglAtlas structure instead of the
    custom atlasing code. This has the advantage that it can share code
    with the main texture atlas and that it supports reorganizing the
    atlas when it becomes full. Unlike the texture atlas, the glyph cache
    can use multiple atlases which would be neccessary if the maximum
    texture size is reached and we need to create a second
    texture. Whenever a display list is created it now has to register a
    callback with the glyph cache so that the display list can be
    recreated whenever any of the atlases are reorganized. This is needed
    because the display list directly stores texture coordinates within
    the atlas texture and they would become invalid when the texture is
    moved.
    
    The ensure_glyphs_for_layout now works in two steps. First it reserves
    space in the atlas for all of the glyphs. The atlas is created with
    the DISABLE_MIGRATION flag so that it won't actually copy any textures
    if any rearranging is needed. Whenever the position is updated for a
    glyph then it is marked as dirty. After space for all of the glyphs
    has been reserved it will iterate over all dirty glyphs and redraw
    them using Cairo. The rendered glyph is then stored in the texture
    with a sub texture update.
    
    The glyphs need to all be set at the right location before starting to
    create the display list because the display list stores the texture
    coordinates of the glyph. If any of the glyphs were moved around then
    the parts of the display list that was created already would become
    invalid. To make this work, ensure_glyphs_for_layout is now always
    called before rendering a layout or a layout line.

 pango/cogl-pango-glyph-cache.c |  371 ++++++++++++++++++----------------------
 pango/cogl-pango-glyph-cache.h |   46 ++++--
 pango/cogl-pango-render.c      |  226 ++++++++++++++++---------
 3 files changed, 343 insertions(+), 300 deletions(-)

commit bbac3243567e89f2468182731fb32480650e56b7
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Aug 5 13:24:02 2010 +0100

    cogl-atlas: Support multiple formats and clearing the texture
    
    _cogl_atlas_new now has two extra parameters to specify the format of
    the textures it creates as well as a set of flags to modify the
    behavious of the atlas. One of the flags causes the new textures to be
    cleared and the other causes migration to avoid actually copying the
    textures. This is needed to use CoglAtlas from the pango glyph cache
    because it needs to use COGL_PIXEL_A_8 and to clear the textures as it
    does not fill in the gaps between glyphs. It needs to avoid copying
    the textures so that it can work on GL implementations without FBO
    support.

 cogl/cogl-atlas-texture.c |    4 +-
 cogl/cogl-atlas.c         |   96 +++++++++++++++++++++++++++++++++-----------
 cogl/cogl-atlas.h         |   12 +++++-
 3 files changed, 86 insertions(+), 26 deletions(-)

commit b2f2e6926448473508c829bb270ac43d66005d5d
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Aug 2 16:29:10 2010 +0100

    cogl-atlas-texture: Split out the atlas data structure
    
    Instead of storing a pointer to the CoglRectangleMap and a handle to
    the atlas texture in the context, there is a now a separate data
    structure called a CoglAtlas to manage these two. The context just
    contains a pointer to this. The code to reorganise the atlas has been
    moved from cogl-atlas-texture.c to cogl-atlas.c

 cogl/Makefile.am                  |    2 +
 cogl/cogl-atlas-texture-private.h |    4 +
 cogl/cogl-atlas-texture.c         |  585 +++++-------------------------------
 cogl/cogl-atlas.c                 |  596 +++++++++++++++++++++++++++++++++++++
 cogl/cogl-atlas.h                 |   86 ++++++
 cogl/cogl-context.c               |   10 +-
 cogl/cogl-context.h               |    5 +-
 7 files changed, 774 insertions(+), 514 deletions(-)

commit cb114f43ab42087537a7036ef7bd411668eb8065
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Aug 4 17:59:06 2010 +0100

    cogl: Add an internal utility to maintain a list of callback functions
    
    This adds an internal CoglCallbackList type which is just a GSList of
    of function pointers along with a data pointer to form a
    closure. There are functions to add and remove items and to invoke the
    list of functions. This could be used in a number of places in Cogl.

 cogl/Makefile.am          |    2 +
 cogl/cogl-callback-list.c |  107 +++++++++++++++++++++++++++++++++++++++++++++
 cogl/cogl-callback-list.h |   58 ++++++++++++++++++++++++
 3 files changed, 167 insertions(+), 0 deletions(-)

commit bc200105821a7e2d50a9f9bc34edfe354fc5ebfe
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Aug 2 15:24:03 2010 +0100

    cogl-atlas: Rename to CoglRectangleMap
    
    This simply renames CoglAtlas to CoglRectangleMap without making any
    functional changes. The old 'CoglAtlas' is just a data structure for
    managing unused areas of a rectangle and it doesn't neccessarily have
    to be used for an atlas so it wasn't a very good name.

 cogl/Makefile.am                  |    4 +-
 cogl/cogl-atlas-texture-private.h |   12 +-
 cogl/cogl-atlas-texture.c         |  169 ++++++-----
 cogl/cogl-atlas.c                 |  598 ------------------------------------
 cogl/cogl-atlas.h                 |   78 -----
 cogl/cogl-context.c               |    7 +-
 cogl/cogl-context.h               |    4 +-
 cogl/cogl-rectangle-map.c         |  612 +++++++++++++++++++++++++++++++++++++
 cogl/cogl-rectangle-map.h         |   78 +++++
 9 files changed, 792 insertions(+), 770 deletions(-)

commit bb17fd70e25f9f1b42ce3ca17592c9670d441236
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Aug 12 09:11:28 2010 +0100

    cogl-material: Compare whether textures are equal by their GL handle
    
    Textures within a layer were compared for equality by comparing their
    texture handle. However this means that sub textures and atlas
    textures which may be internally using the same GL handle would not be
    batched together. Instead it now tries to determine the underlying GL
    handle using either the slice override or _cogl_texture_get_gl_texture
    and then compares those.

 cogl/cogl-material.c |   35 ++++++++++++++++++++++++++---------
 1 files changed, 26 insertions(+), 9 deletions(-)

commit b7807d99957e568422743a6b7355c9bf52afc950
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed May 5 16:45:21 2010 +0100

    cogl-atlas-texture: Accept formats with different component orders
    
    When filtering on allowed formats for atlas textures, it now masks out
    the BGR and AFIRST bits in addition to the premult bit. That way it
    will accept RGB and RGBA formats in any component order.
    
    In theory it could also accept luminance and alpha-only textures but I
    haven't added this because presumably if the application has requested
    these formats then it has some reason not to use a full RGB or RGBA
    texture and we should respect that.

 cogl/cogl-atlas-texture.c |   19 ++++++++++++++++---
 1 files changed, 16 insertions(+), 3 deletions(-)

commit 4be7310fb168b128f6fe796f44349525730ac558
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Aug 12 09:03:58 2010 +0100

    build: Make the introspection generation quiet (again)

 cogl/Makefile.am |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

commit 8b8dd92be367263bb57b2e9891d1f30e95223d73
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Aug 11 11:32:44 2010 +0100

    Merge branch 'wip/table-layout'
    
    * wip/table-layout:
      Add ClutterTableLayout, a layout showing children in rows and columns
      box-layout: Use allocate_align_fill()
      bin-layout: Migrate to allocate_align_fill()
      actor: Add allocate_align_fill()
      test-flow-layout: Use BindConstraints

commit d8e521af0a98d55a2505598995ba2eabf3495f16
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date:   Mon Aug 9 15:06:35 2010 -0400

    Always bind a new texture to unit 1 when necessary
    
    The special handling for texture unit 1 caught the case where unit
    1 was changed for transient purposes, but didn't properly handle
    the case where the actual non-transient texture was different between
    two materials with no transient binding in between.
    
    If the actual texture has changed when flushing, mark unit 1 as dirty
    and needing a rebind.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2261

 cogl/cogl-material-opengl.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

commit 242afd96ebd11b430f6c95118883b484f6f73ca8
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Aug 9 19:38:23 2010 +0100

    Silence a compiler warning

 cogl/cogl-shader.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

commit 786e292671753421daf103a8140eb06532ebeb8d
Merge: 65196a4 abea3d7
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Aug 9 17:44:42 2010 +0100

    Merge remote branch 'elliot/cookbook-layouts-introduction'
    
    * elliot/cookbook-layouts-introduction:
      cookbook: Added layout introduction and "stacking actors" recipe
      cookbook: Added layouts.xml to the list of XML files
      cookbook: Added layouts section and introduction

commit 65196a4a9b58ae417588c5721b7ece3c92342999
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Aug 4 17:53:51 2010 +0100

    cogl: Allow setting ARBfp source on a CoglShader
    
    This makes CoglProgram/Shader automatically detect when the user has
    given an ARBfp program by checking for "!!ARBfp1.0" at the beginning of
    the user's source.
    
    ARBfp local parameters can be set with cogl_program_uniform_float
    assuming you pass a @size of 4 (all ARBfp program.local parameters
    are vectors of 4 floats).
    
    This doesn't expose ARBfp environment parameters or double precision
    local parameters.

 cogl/cogl-material-arbfp.c      |   72 +++++++++++---
 cogl/cogl-material-glsl.c       |   24 ++---
 cogl/cogl-shader-private.h      |   13 +++
 cogl/cogl-shader.c              |  116 ++++++++++++++++++----
 cogl/cogl.c                     |    6 +-
 cogl/driver/gl/cogl-program.c   |  204 +++++++++++++++++++++++++++++++++------
 cogl/driver/gl/cogl-program.h   |   11 ++-
 cogl/driver/gles/cogl-program.c |    7 ++
 8 files changed, 371 insertions(+), 82 deletions(-)

commit 11045c724c9344f2f3146054c9ed533d0d6e29ff
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Aug 5 10:59:03 2010 +0100

    cogl: Adds a COGL_FEATURE_SHADERS_ARBFP feature flag
    
    This adds a public feature flag for ARBfp so developers can determine if
    the cogl API supports ARBfp or not.

 cogl/cogl-internal.h                    |    2 +-
 cogl/cogl-material-arbfp.c              |    2 +-
 cogl/cogl-types.h                       |    4 +++-
 cogl/cogl.c                             |    2 +-
 cogl/driver/gl/cogl-feature-functions.h |    4 ++--
 5 files changed, 8 insertions(+), 6 deletions(-)

commit b025a4a020a39a86070da362d02977e107514295
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Aug 5 10:46:54 2010 +0100

    material: Add cogl_material_{get,set}_user_program
    
    Previously we had an internal only _cogl_material_set_user_program to
    redirect legacy usage of cogl_program_use() through CoglMaterial. This
    instead makes the API public because until we implement our planned
    "snippet" framework we need a stop-gap solution for using shaders in
    Cogl.
    
    The plan is to also support ARBfp with the cogl_program/shader API so
    this API will also allow clutter-gst to stop using direct OpenGL calls
    that conflict with Cogl's state tracking.

 cogl/cogl-material-private.h |    4 --
 cogl/cogl-material.c         |   24 +++++++++++++--
 cogl/cogl-material.h         |   64 ++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 84 insertions(+), 8 deletions(-)

commit 937fc0dbec965a4aed55d310da9590fb0dde6b7e
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sun Aug 8 13:54:07 2010 +0100

    material: chain up in layer_pre_change_notify
    
    A change to a layer is also going to be a change to its owning material
    so we have to chain up in _cogl_material_layer_pre_change_notify and
    call _cogl_material_pre_change_notify. Previously we were only
    considering if the owning material was referenced in the journal but
    that ignores that it might also have dependants. We no longer need to
    flush the journal directly in layer_pre_change_notify.

 cogl/cogl-material.c |   16 ++++++++++++----
 1 files changed, 12 insertions(+), 4 deletions(-)

commit b493b3025783c3141bc989c5a89723da889eac04
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sun Aug 8 14:26:45 2010 +0100

    material: unlink old layer from owner when replacing
    
    In _cogl_material_layer_pre_change_notify when we see that a layer has
    dependants and it can't be modified directly then we allocate a new
    layer. In this case we also have to link the new layer to its required
    owner. If the immutable layer we copied had the same owner though we
    weren't unlinking that old layer.

 cogl/cogl-material.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

commit 021265e634d4b6ee5fa279693e02d3976ef43feb
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sun Aug 8 13:41:15 2010 +0100

    material: fix initialization of sparse properties
    
    In _cogl_material_pre_change_notify we need to identify if it's a sparse
    property being changed and if so initialize the state group if the given
    material isn't currently the authority for it.
    
    Previously we were unconditionally calling
    _cogl_material_initialize_state which would e.g. NULL the layer
    differences list of a material each time a layer change was notified.
    
    It would also call _cogl_material_initialize_state for non-sparse
    properties which should always be valid at this point so the function
    has been renamed to _cogl_material_initialize_sparse_state to make this
    clearer with a corresponding g_return_if_fail check.

 cogl/cogl-material.c |   25 ++++++++++++++-----------
 1 files changed, 14 insertions(+), 11 deletions(-)

commit 02ce77dc08705eb6aa1260fdfb234e7af670672a
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sun Aug 8 13:09:27 2010 +0100

    material: fix copying of material layer differences
    
    This fixes how we copy layer differences in
    _cogl_material_copy_layer_differences.
    
    We were making a redundant g_list_copy of the src differences and then
    iterating the src list calling _cogl_material_add_layer_difference for
    each entry which would double the list length, but the initial copy
    directly referenced the original layers which wasn't correct.
    
    Also we were initializing dest->n_layers before copying the layer
    differences but the act of copying the differences will re-initialize
    n_layers to 0 when adding the first layer_difference since it will
    trigger a layer_pre_change_notify and since the dest material isn't yet
    a STATE_LAYERS authority the state group is initialized before allowing
    the change.

 cogl/cogl-material.c |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)

commit a75a7fadabf40eb08f2c0a051e723732f7eb84c2
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sun Aug 8 13:05:40 2010 +0100

    material: don't dereference layer->texture directly
    
    In _cogl_material_texture_storage_change_notify we were potentially
    dereferencing layer->texture without checking first that it is the
    authority of texture state. We now use
    _cogl_material_layer_get_texture() instead.

 cogl/cogl-material-opengl.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

commit 8caaf5a8b233f138f354028fdd6f8fd4e1014cf9
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sun Aug 8 14:09:26 2010 +0100

    material: Improve the dot file debugging code
    
    This improve the dot file output available when calling
    _cogl_debug_dump_materials_dot_file. The material graph now directly
    points into the layer graph and the layers now show the texture unit
    index.

 cogl/cogl-material.c |   30 ++++++++++++++++--------------
 1 files changed, 16 insertions(+), 14 deletions(-)

commit abea3d7ead5b2d91a82d6ac9504ee28986f6c8bb
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Aug 6 16:41:41 2010 +0100

    cogl-material: Unref the texture when reverting authority
    
    When the texture is set on a layer so that it is back to the parent's
    texture it would clear the texture change flag but it wouldn't unref
    the texture. The free function for a material layer does not unref the
    texture if the change flag is cleared so the texture would end up
    leaking. This happens for ClutterTexture because it disposes the
    texture by setting layer 0 of the material to COGL_INVALID_HANDLE
    which ends up the same as the default material.

 cogl/cogl-material.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

commit eda852e78cb4037322bb9c4190f9a702bf74883e
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Aug 6 14:12:22 2010 +0100

    material: only deference layer->texture for authority
    
    In _cogl_material_layer_pre_paint we were mistakenly dereferencing the
    layer->texture member for the passed layer instead of dereferencing the
    texture state authority which was causing crashes in some cases.

 cogl/cogl-material.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 3aca1462150be07a78f3e581a34cffb6462e1aa8
Merge: 99ae7b1 a2c2797
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Aug 3 15:44:46 2010 +0100

    Merge remote branch 'elliot/cookbook-animations-rotating'
    
    * elliot/cookbook-animations-rotating:
      cookbook: Added recipe for animated rotation of an actor
      cookbook: Add explanation about including code samples
      cookbook: Make filename used in video example consistent
      cookbook: Add example code for animated rotation

commit 99ae7b15f5dc462ef2f31f9fd5207e868bcbd65e
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Jul 23 10:12:39 2010 +0100

    cogl-program: gles2: bind programs lazily as for GL
    
    This makes the gles2 cogl_program_use consistent with the GL version by
    not binding the program immediately and instead leaving it to
    cogl-material.c to bind the program when actually drawing something.

 cogl/cogl-material-glsl.c           |    3 ---
 cogl/cogl-material-opengl-private.h |    2 +-
 cogl/cogl-material-opengl.c         |   34 ++++++++++++++++++++--------------
 cogl/driver/gl/cogl-program.c       |   10 +++++-----
 cogl/driver/gles/cogl-program.c     |    3 ---
 5 files changed, 26 insertions(+), 26 deletions(-)

commit 650df3f2eb3bb187bb7313ab9d5071a00a6ce4a4
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Jun 8 23:06:50 2010 +0100

    gles2: Have CoglProgram track uniforms per program
    
    Previously custom uniforms were tracked in _CoglGles2Wrapper but as part
    of a process to consolidate the gl/gles2 shader code it seems to make
    sense for this state to be tracked in the CoglProgram object instead.
    
    http://bugzilla.o-hand.com/show_bug.cgi?id=2179

 cogl/driver/gles/cogl-gles2-wrapper.c |   41 +++++++++++++++++----------------
 cogl/driver/gles/cogl-gles2-wrapper.h |   11 ++++-----
 cogl/driver/gles/cogl-program.c       |   38 ++++++++++++++++++++----------
 cogl/driver/gles/cogl-program.h       |   11 ++++++++-
 4 files changed, 61 insertions(+), 40 deletions(-)

commit 7705469d2ba6388740001e61363b02c0b226ffd9
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Aug 2 21:40:55 2010 +0100

    cogl-shader: unifies the driver/{gl,gles} shader files
    
    The per driver implementations of cogl-shader.c had become almost
    identical we now have a single cogl/cogl-shader.c instead.

 cogl/Makefile.am                       |    2 +
 cogl/cogl-shader-private.h             |   40 ++++++
 cogl/cogl-shader.c                     |  235 ++++++++++++++++++++++++++++++++
 cogl/driver/gl/Makefile.am             |    2 -
 cogl/driver/gl/cogl-shader-private.h   |   40 ------
 cogl/driver/gl/cogl-shader.c           |  169 -----------------------
 cogl/driver/gles/Makefile.am           |    2 -
 cogl/driver/gles/cogl-shader-private.h |   40 ------
 cogl/driver/gles/cogl-shader.c         |  214 -----------------------------
 9 files changed, 277 insertions(+), 467 deletions(-)

commit 6e176f94faf6a2dd38ea29eafbef0b28e3598edc
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Jul 23 17:44:53 2010 +0100

    cogl-shader: Store the CoglShaderType in CoglShader
    
    Instead of having to query GL and translate the GL enum into a
    CoglShaderType each time cogl_shader_get_type is called we now keep
    track of the type in CoglShader.

 cogl/driver/gl/cogl-shader-private.h |    1 +
 cogl/driver/gl/cogl-shader.c         |   14 ++------------
 cogl/driver/gles/cogl-shader.c       |   13 +------------
 3 files changed, 4 insertions(+), 24 deletions(-)

commit 8640f527cb36ace0af291d42871c5463e3f99502
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sun Jul 25 21:36:41 2010 +0100

    cogl: don't include cogl-debug.h in cogl.h or install
    
    cogl-debug.h is an internal header so it shouldn't have been included by
    cogl.h and the header shouldn't be installed either.

 cogl/Makefile.am                      |    2 +-
 cogl/cogl-atlas-texture.c             |    1 +
 cogl/cogl-bitmap.c                    |    1 +
 cogl/cogl-framebuffer.c               |    1 +
 cogl/cogl-journal.c                   |    1 +
 cogl/cogl-material-arbfp.c            |    1 +
 cogl/cogl-material-opengl.c           |    1 +
 cogl/cogl-material.c                  |    1 +
 cogl/cogl-matrix.c                    |    1 +
 cogl/cogl-primitives.c                |    1 +
 cogl/cogl-texture-2d-sliced.c         |    1 +
 cogl/cogl.h                           |    1 -
 cogl/winsys/cogl-texture-pixmap-x11.c |    1 +
 pango/cogl-pango-render.c             |    1 +
 14 files changed, 13 insertions(+), 2 deletions(-)

commit a2c2797105082e4abe9dbda0cc93670b7c72ce37
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Jul 14 19:39:24 2010 +0100

    gles/cogl-shader.c: Store the shader type in CoglShader
    
    Nothing was storing the shader type when a shader was created so it
    would get confused about whether it was a custom vertex or fragment
    shader.
    
    Also the 'type' member of CoglShader was a GLenum but the only place
    that read it was treating it as if it was CoglShaderType. This changes
    it be CoglShaderType.

 cogl/driver/gles/cogl-shader-private.h |    2 +-
 cogl/driver/gles/cogl-shader.c         |    1 +
 2 files changed, 2 insertions(+), 1 deletions(-)

commit 023510636c74decc278074318f8732edf7b879fa
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Jul 22 16:58:23 2010 +0100

    Plug the leaking CoglProgram and CoglShader
    
    _cogl_program_free and _cogl_shader_free never freed the struct their
    structs so it would end up leaking a little bit.

 cogl/driver/gl/cogl-program.c   |    2 ++
 cogl/driver/gl/cogl-shader.c    |    2 ++
 cogl/driver/gles/cogl-program.c |    2 ++
 cogl/driver/gles/cogl-shader.c  |    2 ++
 4 files changed, 8 insertions(+), 0 deletions(-)

commit 2ccee98b31d3bd5cdebb9347cec44bad7cd3dd3d
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Jul 22 19:58:47 2010 +0100

    cogl-bitmap-pixbuf: Avoid copying the buffer in more circumstances
    
    When loading an RGB image GdkPixbuf will pad the rowstride so that the
    beginning of each row is aligned to 4 bytes. This was causing us to
    fallback to the code that copies the buffer. It is probably safe to
    avoid copying the buffer if we can detect that the rowstride is simply
    an alignment of the packed rowstride.
    
    This also changes the copying fallback code so that it uses the
    aligned rowstride. However it is now extremely unlikely that the
    fallback code would ever be used.

 cogl/cogl-bitmap-pixbuf.c |   33 ++++++++++++++++++++++++---------
 1 files changed, 24 insertions(+), 9 deletions(-)

commit fecb40a0433e6c069a27f6120506c105e747e2f7
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Jul 22 19:15:44 2010 +0100

    cogl-bitmap-pixbuf: Fix the rowstride used when copying a GdkPixbuf
    
    In commit b780413e5ae4b the GdkPixbuf loading code was changed so that
    if it needs to copy the pixbuf then it would tightly pack it. However
    it was still using the rowstride from the pixbuf so the image would
    end up skewed. This fixes it to use the real rowstride.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2235

 cogl/cogl-bitmap-pixbuf.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 0ab6dc9db129bc0b2d084dd1ce0e6093d01bce6a
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Jul 20 17:34:04 2010 +0100

    cogl-material: Don't map the shininess value to [0,1]
    
    In OpenGL the 'shininess' lighting parameter is floating point value
    limited to the range 0.0→128.0. This number is used to affect the size
    of the specular highlight. Cogl materials used to only accept a number
    between 0.0 and 1.0 which then gets multiplied by 128.0 before sending
    to GL. I think the assumption was that this is just a weird GL quirk
    so we don't expose it. However the value is used as an exponent to
    raise the attenuation to a power so there is no conceptual limit to
    the value.
    
    This removes the mapping and changes some of the documentation.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2222

 cogl/cogl-material-opengl.c |    6 ++----
 cogl/cogl-material.c        |    4 +++-
 cogl/cogl-material.h        |    9 +++++----
 3 files changed, 10 insertions(+), 9 deletions(-)

commit 89286f6a474eafc1d22c99fc7bcaec5bc79cf3ba
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Jul 21 23:22:07 2010 +0100

    cogl-material: Always reset the GLSL program to zero when flushing
    
    When flushing a fixed-function or arbfp material it would always call
    disable_glsl to try to get rid of the previous GLSL shader. This is
    needed even if current_use_program_type is not GLSL because if an
    application calls cogl_program_uniform then Cogl will have to bind the
    program to set the uniform. If this happens then it won't update
    current_use_program_type presumably because the enabled state of arbfp
    is still valid.
    
    The problem was that disable_glsl would only select program zero when
    the current_use_program_type is set to GLSL which wouldn't be the case
    if cogl_program_uniform was called. This patch changes it to just
    directly call _cogl_gl_use_program_wrapper(0) instead of having a
    separate disable_glsl function. The current program is cached in the
    cogl context anyway so it shouldn't cause any extra unnecessary GL
    calls.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2232

 cogl/cogl-material-opengl.c |   15 ++-------------
 1 files changed, 2 insertions(+), 13 deletions(-)

commit 5b6298db102327bc10c3deecaafe465150e505e1
Author: Neil Roberts <neil@linux.intel.com>
Date:   Sat Jul 17 14:08:28 2010 +0100

    cogl-material: Consider the shader when deciding if materials equate
    
    _cogl_material_equal was ignoring the user shader state so rectangles
    with different shaders would get batched together.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2220

 cogl/cogl-material.c |   14 ++++++++++++++
 1 files changed, 14 insertions(+), 0 deletions(-)

commit b2247b10fd4c53572c04fe539802dfac2b1145f6
Author: Neil Roberts <neil@linux.intel.com>
Date:   Sat Jul 17 12:40:19 2010 +0100

    cogl-material-arbfp: Use separate buffers when calling g_ascii_dtostr
    
    g_ascii_dtostr was being used in four separate arguments to
    g_string_append_printf but all invocations of it were using the same
    buffer. This would end up with all of the arguments having the same
    value which would depend on whichever order the compiler evaluates
    them in. This patches changes it to use a multi-dimensional array and
    a loop to fill in the separate buffers.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2219

 cogl/cogl-material-arbfp.c |   19 ++++++++++---------
 1 files changed, 10 insertions(+), 9 deletions(-)

commit 62fa7b4e028db5364d033ec0b6b497df7bc67457
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Jul 16 23:37:59 2010 +0100

    material-arbfp: Use locale-independent double to string conversion
    
    The ARBfp programs are created with a printf() wrapper, which usually
    fails in non-en locales as soon as you start throwing things like
    floating point values in the mix.
    
    We should use the g_ascii_dtostr() function which places a double into a
    string buffer in a locale-independent way.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2219

 cogl/cogl-material-arbfp.c |   16 +++++++++++-----
 1 files changed, 11 insertions(+), 5 deletions(-)

commit 094ad196071f964a8b59fb12416a610e73e67338
Merge: a3a7a7e 4eca571
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Jul 16 17:23:36 2010 +0100

    Merge remote branch 'elliot/cookbook-actor-opacity'
    
    Conflicts:
    	doc/cookbook/Makefile.am

commit a3a7a7ebcb89c25cd268a91e1055a99318a959ba
Merge: ae8fe82 7d269c6
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Jul 16 17:13:12 2010 +0100

    Merge remote branch 'elliot/cookbook-include-videos'
    
    * elliot/cookbook-include-videos:
      cookbook: Tweak so that videos sit inside a paragraph for better spacing
      docs: Note the P_() macro in the HACKING file
      cookbook: Added support for inline video
    
    Conflicts:
    	doc/cookbook/Makefile.am

commit ae8fe829b62b01d942e8cbb066f181714151da78
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Jul 16 17:12:37 2010 +0100

    Merge remote branch 'elliot/cookbook-animation-fading'
    
    * elliot/cookbook-animation-fading:
      cookbook: Minor modification to wording to improve clarity
      cookbook: Added recipe for fading actors in/out

commit 4eca571a32a0669650de99eee4362c13600c7d4c
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Jul 15 13:05:55 2010 +0100

    Add an internal _cogl_bitmap_new_from_buffer
    
    This function creates a CoglBitmap which internally references a
    CoglBuffer. The map and unmap functions will divert to mapping the
    buffer. There are also now bind and unbind functions which should be
    used instead of map and unmap whenever the data doesn't need to be
    read from the CPU but will instead be passed to GL for packing or
    unpacking. For bitmaps created from buffers this just binds the
    bitmap.
    
    cogl_texture_new_from_buffer now just uses this function to wrap the
    buffer in a bitmap rather than trying to bind the buffer
    immediately. This means that the buffer will be bound only at the
    point right before the texture data is uploaded.
    
    This approach means that using a pixel array will take the fastest
    upload route if possible, but can still fallback to copying the data
    by mapping the buffer if some conversion is needed. Previously it
    would just crash in this case because the texture functions were all
    passed a NULL pointer.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2112

 cogl/cogl-bitmap-private.h             |   25 ++++++
 cogl/cogl-bitmap.c                     |  139 ++++++++++++++++++++++++++++++--
 cogl/cogl-texture.c                    |   37 ++-------
 cogl/driver/gl/cogl-texture-driver.c   |  114 ++++++++++++--------------
 cogl/driver/gles/cogl-texture-driver.c |   81 +++++++++---------
 5 files changed, 261 insertions(+), 135 deletions(-)

commit e5dc645753e958c6b9d59b0c8cf58da1924c22e7
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Jul 15 13:02:23 2010 +0100

    Add a Cogl debug flag for BITMAP
    
    CoglBitmap will soon want to report notes as it gets more complicated
    so this adds a debug flag for it.

 cogl/cogl-debug.c |    3 ++-
 cogl/cogl-debug.h |    3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

commit c5205c50d246e033265b77d2b746a72c1137e7e1
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Jul 15 11:32:08 2010 +0100

    Try to avoid copying the GdkPixbuf when it is tightly packed
    
    The docs for GdkPixbuf say that the last row of the image won't
    necessarily be allocated to the size of the full rowstride. The rest
    of Cogl and possibly GL assumes that we can copy the bitmap with
    memcpy(height*rowstride) so we previously would copy the pixbuf data
    to ensure this. However if the rowstride is the same as bpp*width then
    there is no way for the last row to be under-allocated so in this case
    we can just directly upload from the gdk pixbuf. Now that CoglBitmap
    can be created with a destroy function we can make it keep a reference
    to the pixbuf and unref it during its destroy callback. GdkPixbuf
    seems to always pack the image with no padding between rows even if it
    is RGB so this should end up always avoiding the memcpy.
    
    The fallback code for when we do have to copy the pixbuf is now
    simplified so that it copies all of the rows in a single loop. We only
    copy the useful region of each row so this should be safe. The
    rowstride of the CoglBitmap is now always allocated to bpp*width
    regardless of the rowstride of the pixbuf.

 cogl/cogl-bitmap-pixbuf.c |   41 ++++++++++++++++++++++++-----------------
 1 files changed, 24 insertions(+), 17 deletions(-)

commit ccc3068ffdeb2c5b44ef54a6a2d06b7c3a08b694
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Jul 7 18:44:16 2010 +0100

    cogl-bitmap: Encapsulate the CoglBitmap even internally
    
    The CoglBitmap struct is now only defined within cogl-bitmap.c so that
    all of its members can now only be accessed with accessor
    functions. To get to the data pointer for the bitmap image you must
    first call _cogl_bitmap_map and later call _cogl_bitmap_unmap. The map
    function takes the same arguments as cogl_pixel_array_map so that
    eventually we can make a bitmap optionally internally divert to a
    pixel array.
    
    There is a _cogl_bitmap_new_from_data function which constructs a new
    bitmap object and takes ownership of the data pointer. The function
    gets passed a destroy callback which gets called when the bitmap is
    freed. This is similar to how gdk_pixbuf_new_from_data
    works. Alternatively NULL can be passed for the destroy function which
    means that the caller will manage the life of the pointer (but must
    guarantee that it stays alive at least until the bitmap is
    freed). This mechanism is used instead of the old approach of creating
    a CoglBitmap struct on the stack and manually filling in the
    members. It could also later be used to create a CoglBitmap that owns
    a GdkPixbuf ref so that we don't necessarily have to copy the
    GdkPixbuf data when converting to a bitmap.
    
    There is also _cogl_bitmap_new_shared. This creates a bitmap using a
    reference to another CoglBitmap for the data. This is a bit of a hack
    but it is needed by the atlas texture backend which wants to divert
    the set_region virtual to another texture but it needs to override the
    format of the bitmap to ignore the premult flag.

 cogl/cogl-atlas-texture-private.h      |    2 +-
 cogl/cogl-atlas-texture.c              |  187 +++++-----
 cogl/cogl-bitmap-fallback.c            |  144 +++++---
 cogl/cogl-bitmap-pixbuf.c              |   82 ++---
 cogl/cogl-bitmap-private.h             |  109 +++++--
 cogl/cogl-bitmap.c                     |  228 ++++++++++--
 cogl/cogl-texture-2d-private.h         |    2 +-
 cogl/cogl-texture-2d-sliced-private.h  |    2 +-
 cogl/cogl-texture-2d-sliced.c          |  607 ++++++++++++++++++--------------
 cogl/cogl-texture-2d.c                 |   70 +++--
 cogl/cogl-texture-3d-private.h         |    2 +-
 cogl/cogl-texture-3d.c                 |  109 +++---
 cogl/cogl-texture-private.h            |    4 +-
 cogl/cogl-texture-rectangle-private.h  |    2 +-
 cogl/cogl-texture-rectangle.c          |   43 ++--
 cogl/cogl-texture.c                    |  355 +++++++++++--------
 cogl/cogl.c                            |   77 +++--
 cogl/driver/gl/cogl-texture-driver.c   |  116 ++++---
 cogl/driver/gles/cogl-texture-driver.c |  200 ++++++-----
 19 files changed, 1421 insertions(+), 920 deletions(-)

commit 41cd2ae2c84f2e217cebb632d303a16fbb7a9fb5
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Jul 14 13:21:54 2010 +0100

    cogl-texture-2d-sliced: Store the internal format not image format
    
    The 'format' member of CoglTexture2DSliced is returned by
    cogl_texture_get_format. All of the other backends return the internal
    format of the GL texture in this case. However the sliced backend was
    returning the format of the image data used to create the texture. It
    doesn't make any sense to retain this information because it doesn't
    necessarily indicate the format of the actual texture. This patch
    changes it to store the internal format instead.

 cogl/cogl-texture-2d-sliced.c |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

commit 7d269c631532bcdfa556016b4d18249391f53cef
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Jul 14 17:49:16 2010 +0100

    gles/cogl-texture-driver.c: Fix the include for cogl-material-private
    
    In ddb9016be4 the GL texture driver backend was changed to include
    cogl-material-opengl-private.h instead of cogl-material-private.h.
    However the gles texture backend was missed from this so it was giving
    a compiler warning about using an undeclared function.

 cogl/driver/gles/cogl-texture-driver.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 00e3d77be3adee84cb934d912d075d31d35b04b7
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Jul 14 17:45:15 2010 +0100

    cogl-texture-3d: Use glTexSubImage3D through an indirect pointer
    
    glTexSubImage3D was being called directly in cogl-texture-3d.c but the
    function is only available since GL version 1.2 so on Windows it won't
    be possible to directly link to it. Also under GLES it is only
    available conditionally in an extension.

 cogl/cogl-texture-3d.c                  |    1 +
 cogl/driver/gl/cogl-feature-functions.h |    7 +++++++
 2 files changed, 8 insertions(+), 0 deletions(-)

commit a104b37068b4603fd548a86336d38c674bb6ce11
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Jul 14 16:35:33 2010 +0100

    cogl-texture-3d: Fix the cogl-material-private header include
    
    In ddb9016be4 the texture backends were changed to include
    cogl-material-opengl-private.h instead of cogl-material-private.h.
    However the 3D texture backend was missed from this so it was giving a
    compiler warning about using an undeclared function.

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

commit 8b8f5efbe523a1cf1b461df214562b7c4522b674
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Jul 14 16:34:36 2010 +0100

    cogl-texture-3d: Don't include cogl-texture-2d-private.h
    
    I think this was included by a cut-and-paste error as it isn't needed
    anywhere in the source.

 cogl/cogl-texture-3d.c |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

commit 96b0e6c3047aa6361da173fe5221434920b3c8fa
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sat Jul 10 03:40:47 2010 +0100

    material: splits out all the state flushing code
    
    This moves the code supporting _cogl_material_flush_gl_state into
    cogl-material-opengl.c as part of an effort to reduce the size of
    cogl-material.c to keep it manageable.

 cogl/cogl-journal.c                 |    1 +
 cogl/cogl-material-opengl-private.h |    7 +
 cogl/cogl-material-opengl.c         | 1014 +++++++++++++++++++++++++++++++++
 cogl/cogl-material-private.h        |   26 +-
 cogl/cogl-material.c                | 1061 ++---------------------------------
 cogl/cogl-path.c                    |    1 +
 cogl/cogl-primitives.c              |    1 +
 cogl/cogl-vertex-buffer.c           |    1 +
 cogl/cogl.c                         |    1 +
 cogl/driver/gl/cogl-program.c       |    1 +
 10 files changed, 1088 insertions(+), 1026 deletions(-)

commit 5442e429ba85718c85bdb9ca8ea529d5d2013098
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sat Jul 10 02:53:38 2010 +0100

    material: split the texture unit management out
    
    In general cogl-material.c has become far to large to manage in one
    source file. As one of the ways to try and break it down this patch
    starts to move some of lower level texture unit state management out
    into cogl-material-opengl.c. The naming is such because the plan is to
    follow up and migrate the very GL specific state flushing code into the
    same file.

 cogl/Makefile.am                      |    2 +
 cogl/cogl-atlas-texture.c             |    1 +
 cogl/cogl-context.c                   |    1 +
 cogl/cogl-material-fixed.c            |    1 +
 cogl/cogl-material-opengl-private.h   |  148 +++++++++++++++++++++
 cogl/cogl-material-opengl.c           |  230 +++++++++++++++++++++++++++++++++
 cogl/cogl-material-private.h          |  110 ----------------
 cogl/cogl-material.c                  |  197 +---------------------------
 cogl/cogl-texture-2d-sliced.c         |    2 +-
 cogl/cogl-texture-2d.c                |    2 +-
 cogl/cogl-texture-rectangle.c         |    1 +
 cogl/driver/gl/cogl-texture-driver.c  |    2 +-
 cogl/winsys/cogl-texture-pixmap-x11.c |    1 +
 13 files changed, 391 insertions(+), 307 deletions(-)

commit be9564b3db8bf28fdd4f3f2d681add340917841e
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sat Jul 10 01:36:22 2010 +0100

    material: copy_differences: handle copying fog state
    
    When the support for redirecting the legacy fog state through cogl
    material was added in 9b9e764dc, the code to handle copying the fog
    state in _cogl_material_copy_differences was missed.

 cogl/cogl-material.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

commit ae88bff3294f574ba65761b5c3d08734367078fa
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Jul 13 18:41:01 2010 +0100

    Add a GL_GENERATE_MIPMAP fallback to the texture 2d and 3d backends
    
    The CoglTexture2DSliced backend has a fallback for when the
    framebuffer extension is missing so it's not possible to use
    glGenerateMipmap. This involves keeping a copy of the upper-left pixel
    of the tex image so that we can temporarily enable GL_GENERATE_MIPMAP
    on the texture object and do a sub texture update by reuploading the
    contents of the first pixel. This patch copies that mechanism to the
    2D and 3D backends. The CoglTexturePixel structure which was
    previously internal to the sliced backend has been moved to
    cogl-texture-private.h so that it can be shared.

 cogl/cogl-texture-2d-private.h        |    2 +
 cogl/cogl-texture-2d-sliced-private.h |   13 --------
 cogl/cogl-texture-2d.c                |   48 ++++++++++++++++++++++++-------
 cogl/cogl-texture-3d-private.h        |    2 +
 cogl/cogl-texture-3d.c                |   50 +++++++++++++++++++++------------
 cogl/cogl-texture-private.h           |   16 ++++++++++
 6 files changed, 89 insertions(+), 42 deletions(-)

commit 9e8d3d17b0994f2d5f8572319beb4e9ab9840d48
Merge: 671abec 23a1729
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Jul 13 16:12:14 2010 +0100

    Merge branch 'wip/xkb-support'
    
    * wip/xkb-support:
      x11: Use XKB to translate keycodes into key symbols
      x11: Use XKB to track the Locks state
      x11: Use XKB detectable auto-repeat
      x11: Add a Keymap ancillary object
      x11: Store the group inside the event platform data
      events: Add platform-data to allocated Events
      build: Check for the XKB extension

commit 671abec8b792ae96c62253c99482d0f49b1aab8b
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Jul 2 13:33:06 2010 +0100

    Make the material functions for setting the p wrap mode public
    
    Now that we have 3D texture support it makes sense to expose the wrap
    mode for the p coordinate.

 cogl/cogl-material-private.h         |   10 ---------
 cogl/cogl-material.c                 |   15 +++++--------
 cogl/cogl-material.h                 |   38 ++++++++++++++++++++++++++++++---
 cogl/cogl-vertex-buffer.c            |    2 +-
 doc/reference/cogl/cogl-sections.txt |    2 +
 5 files changed, 43 insertions(+), 24 deletions(-)

commit ec718d4ca47923edfb9687b3929a824a8c7005ac
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Jul 12 17:01:32 2010 +0100

    Rename the third texure coordinate from 'r' to 'p'
    
    Using 'r' to name the third component is problematic because that is
    commonly used to represent the red component of a vector representing
    a color. Under GLSL this is awkward because the texture swizzling for
    a vector uses a single letter for each component and the names for
    colors, textures and positions are synonymous. GLSL works around this
    by naming the components of the texture s, t, p and q. Cogl already
    effectively already exposes this naming because it exposes GLSL so it
    makes sense to use that naming consistently. Another alternative could
    be u, v and w. This is what Blender and Direct3D use. However the w
    component conflicts with the w component of a position vertex.

 cogl/cogl-atlas-texture.c             |    4 +-
 cogl/cogl-material-private.h          |    8 ++--
 cogl/cogl-material.c                  |   68 +++++++++++++++++++-------------
 cogl/cogl-sub-texture.c               |    4 +-
 cogl/cogl-texture-2d-sliced.c         |    2 +-
 cogl/cogl-texture-2d.c                |    2 +-
 cogl/cogl-texture-3d-private.h        |    2 +-
 cogl/cogl-texture-3d.c                |   10 ++--
 cogl/cogl-texture-private.h           |    4 +-
 cogl/cogl-texture-rectangle.c         |    2 +-
 cogl/cogl-texture.c                   |    4 +-
 cogl/cogl-vertex-buffer.c             |    4 +-
 cogl/winsys/cogl-texture-pixmap-x11.c |    4 +-
 13 files changed, 65 insertions(+), 53 deletions(-)

commit 5288f6d88d94988875d69d8a850053f66319d042
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Jul 1 22:04:59 2010 +0100

    Add a Cogl texture 3D backend
    
    This adds a publicly exposed experimental API for a 3D texture
    backend. There is a feature flag which can be checked for whether 3D
    textures are supported. Although we require OpenGL 1.2 which has 3D
    textures in core, GLES only provides them through an extension so the
    feature can be used to detect that.
    
    The textures can be created with one of two new API functions :-
    
    cogl_texture_3d_new_with_size
    
     and
    
    cogl_texture_3d_new_from_data
    
    There is also internally a new_from_bitmap function. new_from_data is
    implemented in terms of this function.
    
    The two constructors are effectively the only way to upload data to a
    3D texture. It does not work to call glTexImage2D with the
    GL_TEXTURE_3D target so the virtual for cogl_texture_set_region does
    nothing. It would be possible to make cogl_texture_get_data do
    something sensible like returning all of the images as a single long
    image but this is not currently implemented and instead the virtual
    just always fails. We may want to add API specific to the 3D texture
    backend to get and set a sub region of the texture.
    
    All of those three functions can throw a GError. This will happen if
    the GPU does not support 3D textures or it does not support NPOTs and
    an NPOT size is requested. It will also fail if the FBO extension is
    not supported and the COGL_TEXTURE_NO_AUTO_MIPMAP flag is not
    given. This could be avoided by copying the code for the
    GL_GENERATE_MIPMAP TexParameter fallback, but in the interests of
    keeping the code simple this is not yet done.
    
    This adds a couple of functions to cogl-texture-driver for uploading
    3D data and querying the 3D proxy
    texture. prep_gl_for_pixels_upload_full now also takes sets the
    GL_UNPACK_IMAGE_HEIGHT parameter so that 3D textures can have padding
    between the images. Whenever 3D texture is uploading, both the height
    of the images and the height of all of the data is specified (either
    explicitly or implicilty from the CoglBitmap) so that the image height
    can be deduced by dividing by the depth.

 cogl/Makefile.am                          |    3 +
 cogl/cogl-material-arbfp.c                |    7 +
 cogl/cogl-texture-3d-private.h            |   96 +++++
 cogl/cogl-texture-3d.c                    |  657 +++++++++++++++++++++++++++++
 cogl/cogl-texture-3d.h                    |  154 +++++++
 cogl/cogl-texture-driver.h                |   26 ++
 cogl/cogl-types.h                         |    4 +-
 cogl/cogl.h                               |    1 +
 cogl/driver/gl/cogl-feature-functions.h   |   14 +
 cogl/driver/gl/cogl-texture-driver.c      |  108 ++++-
 cogl/driver/gles/cogl-feature-functions.h |   19 +
 cogl/driver/gles/cogl-gles2-wrapper.c     |   23 +-
 cogl/driver/gles/cogl-gles2-wrapper.h     |    4 +
 cogl/driver/gles/cogl-texture-driver.c    |  135 ++++++-
 doc/reference/cogl/cogl-docs.xml.in       |    1 +
 doc/reference/cogl/cogl-sections.txt      |    8 +
 16 files changed, 1233 insertions(+), 27 deletions(-)

commit 159c7ed7e55dadd203dc15762951e6769ae1b02f
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Jul 12 14:30:44 2010 +0100

    configure: Include gl2ext.h or glext.h under GLES
    
    Under big GL, glext.h is included automatically by gl.h. However under
    GLES this doesn't appear to happen so it has to be included explicitly
    to get the defines for extensions. This patch changes the
    clutter_gl_header to be called cogl_gl_headers and it can now take a
    space seperated list of multiple headers. This is then later converted
    to a list of #include lines which ends up cogl-defines.h. The gles2
    and gles1 backends now add their respective ext header to this list.

 cogl/cogl-defines.h.in |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 42dcffbc3a02df2dfdcbfce79f4f0170c40ab751
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Jul 1 21:49:16 2010 +0100

    Make a public CoglBitmapError enum
    
    There are many places in the texture backend that need to do
    conversion using the CoglBitmap code. Currently none of these
    functions can throw an error but they do return a value to indicate
    failure. In future it would make sense if new texture functions could
    throw an error and in that case they would want to use a CoglBitmap
    error if the failure was due to the conversion. This moves the
    internal CoglBitmap error from the quartz backend to be public in
    cogl-bitmap.h so that it can be used in this way.

 cogl/cogl-bitmap-pixbuf.c            |   16 ----------------
 cogl/cogl-bitmap.c                   |    5 +++++
 cogl/cogl-bitmap.h                   |   32 ++++++++++++++++++++++++++++++++
 doc/reference/cogl/cogl-sections.txt |    2 ++
 4 files changed, 39 insertions(+), 16 deletions(-)

commit 396ef40d43baa41b05fd5fe8aa201ef0c11bb269
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Jul 13 12:59:24 2010 +0100

    Rename COGL_ERROR_MISSING_FEATURE to COGL_ERROR_UNSUPPORTED
    
    We can use this error in more unsupported situations than just when we
    have a Cogl feature flag for the error. For example if a non-sliced
    texture is created with dimensions that are too large then we could
    throw this error. Therefore it seems good to rename to something more
    general.

 cogl/cogl-material.c |    4 ++--
 cogl/cogl-types.h    |   21 ++++++++++++++++++---
 2 files changed, 20 insertions(+), 5 deletions(-)

commit c3489a0a22308b76c064e13926f0f18d7456292a
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Jul 1 11:07:03 2010 +0100

    Move _cogl_texture_2d_is_pot to cogl-util.h
    
    This function could be used in many places in Cogl so it makes sense
    to share it in cogl-util.h as _cogl_util_is_pot().

 cogl/cogl-texture-2d.c |   11 ++---------
 cogl/cogl-util.h       |    8 ++++++++
 2 files changed, 10 insertions(+), 9 deletions(-)

commit ccd45fc723611b43247638d16968393ecad12e58
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Jul 13 13:59:07 2010 +0100

    cogl-gles2-wrapper: Layers aren't equal if one is enabled and one is not
    
    Previously when comparing whether the settings for a layer are equal
    it would only check if one of them was enabled. If so then it would
    assume the other one was enabled and continue to compare the texture
    environment. Now it also checks whether the enabledness differs.

 cogl/driver/gles/cogl-gles2-wrapper.c |   62 ++++++++++++++++++---------------
 1 files changed, 34 insertions(+), 28 deletions(-)

commit 23a172935d59491771e328166c4eb08e4ef8d9ca
Merge: 8dba134 044523d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Jul 12 21:25:25 2010 +0100

    Merge remote branch 'elliot/cookbook-animation-inversion'
    
    * elliot/cookbook-animation-inversion:
      cookbook: Fixed invalid XML tag
      cookbook: Added "inverting an animation" recipe
      docs: Enabled animation section

commit 8dba1349c30460ed817efa83e37f54340512e0d3
Merge: 89df91a 044523d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Jul 12 21:25:22 2010 +0100

    Merge remote branch 'elliot/cookbook-animation-intro'
    
    * elliot/cookbook-animation-intro:
      cookbook: Added introduction for animations section
      docs: Enabled animation section

commit 89df91a3897981e50e3eb790fe0da77fb429dcdd
Merge: 044523d bf56e79
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Jul 12 21:20:30 2010 +0100

    Merge remote branch 'elliot/cookbook-consistency'
    
    * elliot/cookbook-consistency:
      cookbook: Fixed typo
      cookbook: Fix build so CSS files get installed
      cookbook: Moved paragraph where it logically belongs
      cookbook: Added some judicious note elements
      cookbook: Added more information for contributors
      cookbook: Link out to docbook site
      cookbook: Made docbook element usage consistent
      cookbook: Additional selectors in CSS stylesheet
      cookbook: Copy the CSS file into the HTML build directory

commit 044523db26c730b43e5c408d7528505c13120f7e
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Jul 9 19:09:49 2010 +0100

    Add the deprecated ref-counting for cogl_program
    
    cogl_program has always had cogl_program_ref and cogl_program_unref
    but this was missed from 89cb325fd4 so they got removed.

 cogl/driver/gl/cogl-program.c   |    1 +
 cogl/driver/gles/cogl-program.c |    1 +
 2 files changed, 2 insertions(+), 0 deletions(-)

commit 2c8bf0099572a5498fa9cc0fe8b5c034a93bfab0
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Jul 9 18:46:31 2010 +0100

    Don't define public cogl_is_* functions for internal types
    
    This adds a COGL_OBJECT_INTERNAL_DEFINE macro and friends that are the
    same as COGL_OBJECT_DEFINE except that they prefix the cogl_is_*
    function with an underscore so that it doesn't get exported in the
    shared library.

 cogl/cogl-atlas-texture.c     |    2 +-
 cogl/cogl-clip-stack.c        |    4 +-
 cogl/cogl-framebuffer.c       |    8 ++--
 cogl/cogl-material.c          |   18 ++++++----
 cogl/cogl-object-private.h    |   78 ++++++++++++++++++++++++++++++-----------
 cogl/cogl-sub-texture.c       |    4 +-
 cogl/cogl-texture-2d-sliced.c |    2 +-
 cogl/cogl-texture-2d.c        |    4 +-
 cogl/cogl-texture-private.h   |    6 +++
 cogl/cogl-texture-rectangle.c |    2 +-
 10 files changed, 87 insertions(+), 41 deletions(-)

commit 9e3705ecb3b19ffbf65eff1baab018e2dd365d5e
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Jul 9 18:24:28 2010 +0100

    Add cogl_vertex_buffer_is_indices to the public headers
    
    This function has always been defined in the shared library but it was
    missed from the public headers.

 cogl/cogl-vertex-buffer.h            |   15 +++++++++++++++
 doc/reference/cogl/cogl-sections.txt |    1 +
 2 files changed, 16 insertions(+), 0 deletions(-)

commit b25035ad2d83729247678ccd96fc4f26051820d4
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Jul 9 17:59:16 2010 +0100

    cogl: Don't define the deprecated ref/unref accessors for new types
    
    Previously COGL_OBJECT_DEFINE would always define deprecated
    cogl_$type_{ref,unref} functions even if the type is new or if the
    type is entirely internal. An application would still find it
    difficult to use these because they wouldn't be in the headers, but it
    still looks bad that they are exported from the shared library. This
    patch changes it so that the deprecated ref counting functions are
    defined using a separate macro and only the types that have these
    functions in the headers call this macro.

 cogl/cogl-framebuffer.c        |    1 +
 cogl/cogl-material.c           |    1 +
 cogl/cogl-object-private.h     |    4 +++-
 cogl/cogl-vertex-buffer.c      |    1 +
 cogl/driver/gl/cogl-shader.c   |    1 +
 cogl/driver/gles/cogl-shader.c |    1 +
 6 files changed, 8 insertions(+), 1 deletions(-)

commit ea708094c598fa1b2356c84314e9f349234e3326
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Jul 8 11:49:31 2010 +0100

    material: use common node type for materials and layers
    
    Since 365605cf42, materials and layers are represented in a tree
    structure that allows traversing up through parents and iterating down
    through children.  This re-works the related typedefs and reparenting
    code so that they can be shared.

 cogl/cogl-material-arbfp.c   |   25 ++-
 cogl/cogl-material-private.h |  109 +++++-----
 cogl/cogl-material.c         |  479 ++++++++++++++++++++++--------------------
 3 files changed, 326 insertions(+), 287 deletions(-)

commit 2d20589d8e5f9c1fbdbc463b96cf264367acbf81
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Fri Jul 9 17:55:31 2010 +0100

    cogl-texture-pixmap-x11: This API is new in 1.4, not 1.2
    
    CoglTexturePixmapX11 has been introduced in the 1.3 development cycle. A
    Stability: Unstable tag was missing too, so add it.

 cogl/winsys/cogl-texture-pixmap-x11.h |   11 +++++++----
 1 files changed, 7 insertions(+), 4 deletions(-)

commit c0fb59702c1d32a82cb555c57ccc1813beee321c
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Fri Jul 9 15:59:14 2010 +0100

    cogl: Add Stability tag to new experimental API
    
    Functions guarded with COGL_ENABLE_EXPERIMENTAL API should be also maked
    as being Unstable with the Stability gtk-doc tag.
    
    Fixes: http://bugzilla.clutter-project.org/show_bug.cgi?id=2175

 cogl/cogl-material.h |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

commit bf8384baf131242420eb80d260c62745472356c3
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Jul 8 18:37:01 2010 +0100

    Use GL_MAX_TEXTURE_SIZE on GLES when checking supported tex size
    
    Under big GL, _cogl_texture_driver_size_supported uses the proxy
    texture to check whether the given texture size is supported. Proxy
    textures aren't available under GLES so previously this would just
    return TRUE to assume all texture sizes are supported. This patch
    makes it use glGetIntegerv with GL_MAX_TEXTURE_SIZE to give a second
    best guess.
    
    This fixes the sliced texture backend so that it will use slices when
    the texture is too big.

 cogl/driver/gles/cogl-texture-driver.c |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

commit 0fbdafd318b77ddec4296f6f4fbdf5d1fe329f92
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Jul 8 18:33:45 2010 +0100

    Fix cogl_texture_get_data when an intermediate buffer is used
    
    When an intermediate buffer is used for downloading texture data it
    was using the wrong byte length for a row so the copy back to the
    user's buffer would fail.

 cogl/cogl-texture.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit d3ea1ec6f81aee661bb2b3520ad190d1587b5cba
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Jul 8 18:31:29 2010 +0100

    Use GL_NEAREST filter in the draw-and-read get_data texture fallback
    
    The fallback for when glGetTexImage is not available renders the
    texture to the framebuffer to read the data using glReadPixels. This
    patch just sets the COGL_MATERIAL_FILTER_NEAREST filter mode on the
    material before rendering to avoid linear filtering which would alter
    the texture data.

 cogl/cogl-texture.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

commit f8d1955ab783a72d94b77fcf2d48ab3d08c7db72
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Jul 8 18:29:12 2010 +0100

    Use cogl_read_pixels in the cogl texture draw-and-read fallback
    
    The fallback for when glGetTexImage is not available draws parts of
    the texture to the framebuffer and uses glReadPixels to extract the
    data. However it was using cogl_rectangle to draw and then immediately
    using raw glReadPixels to fetch the data. This won't cause a journal
    flush so the rectangle won't necessarily have hit the framebuffer
    yet. Instead it now uses cogl_read_pixels which does flush the
    journal.

 cogl/cogl-texture.c |   15 +++++++--------
 1 files changed, 7 insertions(+), 8 deletions(-)

commit 475a72fd94bc5eec0745df634896cb6b7e230dad
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Jul 8 18:28:11 2010 +0100

    cogl-material: Fix some problems with flushing texture overrides
    
    There were a few problems flushing texture overrides so that sliced
    textures would not work:
    
    * In _cogl_material_set_layer_texture it ignored the 'overriden'
      parameter and always set texture_overridden to FALSE.
    
    * cogl_texture_get_gl_texture wasn't being called correctly in
      override_layer_texture_cb. It returns a gboolean to indicate the
      error status but this boolean was being assigned to gl_target.
    
    * _cogl_material_layer_texture_equal did not take into account the
      override.
    
    * _cogl_material_layer_get_texture_info did not return the overridden
      texture so it would always use the first texture slice.

 cogl/cogl-material.c |   22 ++++++++++++++++++----
 1 files changed, 18 insertions(+), 4 deletions(-)

commit 61cbeeacfaaf2e4f548d4500d94118a813fd1ad5
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Jul 8 15:15:22 2010 +0100

    cogl-texture: Share the common code in the set_region virtual
    
    There was a lot of common code that was copied to all of the backends
    to convert the data to a suitable format and wrap it into a CoglBitmap
    so that it can be passed to _cogl_texture_driver_upload_subregion_to_gl.
    This patch moves the common code to cogl-texture.c so that the virtual
    just takes a CoglBitmap that is already in the right format.

 cogl/cogl-atlas-texture.c             |   83 +++++++-------------------------
 cogl/cogl-sub-texture.c               |   21 +++------
 cogl/cogl-texture-2d-sliced.c         |   57 ++++------------------
 cogl/cogl-texture-2d.c                |   58 ++++------------------
 cogl/cogl-texture-private.h           |   19 ++++++--
 cogl/cogl-texture-rectangle.c         |   58 ++++------------------
 cogl/cogl-texture.c                   |   76 +++++++++++++++++++++++++-----
 cogl/winsys/cogl-texture-pixmap-x11.c |    6 +--
 8 files changed, 136 insertions(+), 242 deletions(-)

commit 223317c5006ed5e594f4129b64e64b1ac97be9f2
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Jul 8 13:54:37 2010 +0100

    cogl-texture: Share the common code in the get_data virtual
    
    Previously cogl_texture_get_data would pretty much directly pass on to
    the get_data texture virtual function. This ended up with a lot of
    common code that was copied to all of the backends. For example, the
    method is expected to return the required data size if the data
    pointer is NULL and to calculate its own rowstride if the rowstride is
    0. Also it needs to convert the downloaded data if GL can't support
    that format directly.
    
    This patch moves the common code to cogl-texture.c so the virtual is
    always called with a format that can be downloaded directly by GL and
    with a valid rowstride. If the download fails then the virtual can
    return FALSE in which case cogl-texture will use the draw and read
    fallback.

 cogl/cogl-atlas-texture.c             |    2 +-
 cogl/cogl-sub-texture.c               |   26 ++------
 cogl/cogl-texture-2d-sliced.c         |   93 ++++-------------------------
 cogl/cogl-texture-2d.c                |  102 ++++----------------------------
 cogl/cogl-texture-private.h           |   13 +++-
 cogl/cogl-texture-rectangle.c         |  106 ++++----------------------------
 cogl/cogl-texture.c                   |   98 +++++++++++++++++++++++++++++-
 cogl/winsys/cogl-texture-pixmap-x11.c |    2 +-
 8 files changed, 150 insertions(+), 292 deletions(-)

commit 0e49e4f204f43b9515650aa88da9da7a62de88ee
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Apr 7 11:06:20 2010 +0100

    cogl-vertex-buffer: Default to GL_CLAMP_TO_EDGE for point sprites
    
    For point sprites you are usually drawing the whole texture so you
    most often want GL_CLAMP_TO_EDGE. This patch removes the override for
    COGL_MATERIAL_WRAP_MODE_AUTOMATIC when point sprites are enabled for a
    layer so that it will clamp to edge.

 cogl/cogl-material.h      |    6 +++-
 cogl/cogl-vertex-buffer.c |   57 ++++++++++++++++++++++++--------------------
 2 files changed, 35 insertions(+), 28 deletions(-)

commit da3be3df6b70efc55d27c757629a5efe9cfaaaad
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Mar 22 13:33:55 2010 +0000

    cogl-material: Add support for point sprites
    
    This adds a new API call to enable point sprite coordinate generation
    for a material layer:
    
    void
    cogl_material_set_layer_point_sprite_coords_enabled (CoglHandle material,
                                                         int layer_index,
                                                         gboolean enable);
    
    There is also a corresponding get function.
    
    Enabling point sprite coords simply sets the GL_COORD_REPLACE of the
    GL_POINT_SPRITE glTexEnv when flusing the material. There is no
    separate application control for glEnable(GL_POINT_SPRITE). Instead it
    is left permanently enabled under the assumption that it has no affect
    unless GL_COORD_REPLACE is enabled for a texture unit.
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=2047

 cogl/cogl-context.c                     |   14 +++
 cogl/cogl-material-private.h            |   12 ++-
 cogl/cogl-material.c                    |  166 ++++++++++++++++++++++++++++++-
 cogl/cogl-material.h                    |   44 ++++++++
 cogl/cogl-types.h                       |    5 +-
 cogl/driver/gl/cogl-feature-functions.h |    7 ++
 cogl/driver/gles/cogl-gles2-wrapper.c   |   63 +++++++++---
 cogl/driver/gles/cogl-gles2-wrapper.h   |   19 +++--
 cogl/driver/gles/cogl.c                 |    3 +
 doc/reference/cogl/cogl-sections.txt    |    2 +
 10 files changed, 305 insertions(+), 30 deletions(-)

commit 06b58baa10247eacf7a702a5da30ee811069d19a
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Mar 22 09:32:17 2010 +0000

    cogl-material: Add a property for setting the point size
    
    This adds cogl_material_{get,set}_point_size. If the point size is not
    1.0f then glPointSize will be called when the material is flushed.
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=2047

 cogl/cogl-context.c                            |    2 +
 cogl/cogl-context.h                            |    2 +
 cogl/cogl-material-private.h                   |   10 ++-
 cogl/cogl-material.c                           |   72 ++++++++++++++++++++++++
 cogl/cogl-material.h                           |   33 +++++++++++
 cogl/driver/gles/cogl-fixed-vertex-shader.glsl |    6 ++
 cogl/driver/gles/cogl-gles2-wrapper.c          |   19 ++++++
 cogl/driver/gles/cogl-gles2-wrapper.h          |    9 +++-
 doc/reference/cogl/cogl-sections.txt           |    2 +
 9 files changed, 151 insertions(+), 4 deletions(-)

commit dcc8c66fdd88b12cc53ad07fc029068ab8a1187a
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Jul 7 20:43:54 2010 +0100

    material: support dumping layer state graph to dot file
    
    Recently I added a _cogl_debug_dump_materials_dot_file function for
    debugging the sparse material state. This extends the state dumped to
    include the graph of layer state also.

 cogl/cogl-material.c |  133 +++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 110 insertions(+), 23 deletions(-)

commit 093251776f56c3065c69c5a397301f84802e3e29
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Jul 7 19:23:57 2010 +0100

    material: set ->layer_index on new layers for unit0
    
    We were mistakenly only initializing layer->layer_index for new layers
    associated with texture units > 0. This had gone unnoticed because
    normally layers associated with texture unit0 have a layer index of 0
    too. Mutter was hitting this issue because it was initializing layer 1
    before layer 0 for one of its materials so layer 1 was temporarily
    associated with texture unit 0.

 cogl/cogl-material.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit added497f43a6c161ff727122b3e3cefbb43b10c
Merge: 0c3354a 0eb9fc0
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Jul 7 16:06:30 2010 +0100

    Merge branch 'cally-merge'
    
    * cally-merge:
      cally: Add introspection generation
      cally: Improving cally doc
      cally: Cleaning CallyText
      cally: Refactoring "window:create" and "window:destroy" emission code
      cally: Use proper backend information on CallyActor
      cally: Check HAVE_CONFIG_H on cally-util.c
      docs: Fix Cally documentation
      cally: Clean up the headers
      Add binaries of the Cally examples to the ignore file
      docs: Add Cally API reference
      Avoid to load cally module on a11y examples
      Add accessibility tests
      Initialize accessibility support on clutter_init
      Rename some methods and includes to avoid -Wshadow warnings
      Cally initialization code
      Add Cally

commit 0eb9fc04f5a38ab610813ffb930b3d7be44cbf22
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Jul 7 15:57:43 2010 +0100

    cally: Add introspection generation
    
    Toolkits and applications not written in C might still need access to
    the Cally API to write accessibility extensions based on it for their
    own native elements.

 cogl/Makefile.am |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 0c3354acba8be6a628a25f4184fc1f9ec61caabb
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Jul 7 14:41:54 2010 +0100

    framebuffer: Replace CoglHandle with CoglFramebuffer *
    
    One more object converted to stop using CoglHandle re:a8c8cbee513

 cogl/cogl-clip-state.c          |   16 +++---
 cogl/cogl-framebuffer-private.h |   33 ++++++-----
 cogl/cogl-framebuffer.c         |  121 ++++++++++++++++-----------------------
 cogl/cogl-journal.c             |    2 +-
 cogl/cogl-texture.c             |    2 +-
 cogl/cogl.c                     |    2 +-
 cogl/cogl.h                     |   22 ++++----
 7 files changed, 88 insertions(+), 110 deletions(-)

commit 8098052d56e05809732aa1d408a5df4c360f6d92
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Jul 6 20:18:26 2010 +0100

    material: route fogging state through CoglMaterial
    
    Previously cogl_set_fog would cause a flush of the Cogl journal and
    would directly bang the GL state machine to setup fogging. As part of
    the ongoing effort to track most state in CoglMaterial to support
    renderlists this now adds an indirection so that cogl_set_fog now just
    updates ctx->legacy_fog_state. The fogging state then gets enabled as a
    legacy override similar to how the old depth testing API is handled.

 cogl/cogl-context.c          |    3 +-
 cogl/cogl-context.h          |    3 +-
 cogl/cogl-material-arbfp.c   |    2 +-
 cogl/cogl-material-fixed.c   |   48 ++++++++++++++++++++++++++++++++
 cogl/cogl-material-private.h |   20 +++++++++++--
 cogl/cogl-material.c         |   62 ++++++++++++++++++++++++++++++++++++++++++
 cogl/cogl.c                  |   54 +++++++-----------------------------
 7 files changed, 143 insertions(+), 49 deletions(-)

commit a17dfcf1c26ccab01fc73c4354a986fbfedf117d
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Jul 6 01:21:43 2010 +0100

    cogl-buffer: Move malloc fallback logic into CoglBuffer
    
    Since we'll want to share the fallback logic with CoglVertexArray this
    moves the malloc based fallback (for when OpenGL doesn't support vertex
    or pixel buffer objects) into cogl-buffer.c.

 cogl/cogl-buffer-private.h |    9 +--
 cogl/cogl-buffer.c         |  201 +++++++++++++++++++++++++++++++++++++------
 cogl/cogl-pixel-array.c    |  183 ++--------------------------------------
 3 files changed, 182 insertions(+), 211 deletions(-)

commit f8d58446a81cde3080665d93784b8fad3048e2cc
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Jul 5 23:32:55 2010 +0100

    cogl-buffer: consider it an error to free a mapped buffer
    
    Explicitly warn if we detect that a CoglBuffer is being freed while it
    is still mapped. Previously we silently unmapped the buffer, but it's
    not something we want to encourage.

 cogl/cogl-buffer.c |    3 +--
 cogl/cogl-buffer.h |    3 ++-
 2 files changed, 3 insertions(+), 3 deletions(-)

commit e98ee6665bf51c679a1aa55e907cfa8962ef05cb
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Jul 5 23:24:34 2010 +0100

    cogl-buffer: Track the last used bind target in CoglBuffer
    
    This makes CoglBuffer track the last used bind target as a private
    property. This is later used when binding a buffer to map instead of
    always using the PIXEL_UNPACK target.
    
    This also adds some additional sanity checks that code doesn't try to
    nest binds to the same target or bind a buffer to multiple targets at
    the same time.

 cogl/cogl-buffer-private.h      |   23 ++++++++++-
 cogl/cogl-buffer.c              |   86 ++++++++++++++++++++++++++++++++-------
 cogl/cogl-context.c             |    6 ++-
 cogl/cogl-context.h             |    4 +-
 cogl/cogl-pixel-array-private.h |    1 -
 cogl/cogl-pixel-array.c         |   35 +++++++++-------
 cogl/cogl-texture.c             |    5 +-
 7 files changed, 121 insertions(+), 39 deletions(-)

commit 7571cc1923a9cbae9797bb70f13d759f7a8a25cd
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Jul 6 02:01:24 2010 +0100

    cogl: expose the semantic differences of gl/gles2 npot textures
    
    This adds three new feature flags COGL_FEATURE_TEXTURE_NPOT_BASIC,
    COGL_FEATURE_TEXTURE_NPOT_MIPMAP and COGL_FEATURE_TEXTURE_NPOT_REPEAT
    that can tell you if your hardware supports non power of two textures,
    npot textures + mipmaps and npot textures + wrap modes other than
    CLAMP_TO_EDGE.
    
    The pre-existing COGL_FEATURE_TEXTURE_NPOT feature implies all of the
    above.
    
    By default GLES 2 core supports npot textures but mipmaps and repeat
    modes can only be used with power of two textures. This patch also makes
    GLES check for the GL_OES_texture_npot extension to determine if mipmaps
    and repeating are supported with npot textures.

 cogl/cogl-types.h                         |   21 +++++++++++++++++++--
 cogl/driver/gl/cogl.c                     |    5 ++++-
 cogl/driver/gles/cogl-feature-functions.h |   10 ++++++++++
 cogl/driver/gles/cogl.c                   |    3 +++
 4 files changed, 36 insertions(+), 3 deletions(-)

commit c243086f449634e5273e1137f89fd321ee4686ef
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Jul 6 16:08:06 2010 +0100

    cogl-vertex-buffer: Fix the #define for glDisableVertexAttribArray
    
    glDisableVertexAttribArray was defined to glEnableVertexAttribArray so
    it would probably cause crashes if it was ever used. Presumably
    nothing is using these yet because the generic attributes are not yet
    tied to shader attributes in a predictable way.

 cogl/cogl-vertex-buffer.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit bf56e798c6094b76fb9734c472b739d1ecc73ff4
Author: Alexandros Frantzis <alexandros.frantzis@linaro.org>
Date:   Tue Jul 6 13:24:00 2010 +0100

    build: Exclude built sources from the dist
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2169
    
    Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>

 cogl/Makefile.am |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

commit 3b4b5ba01cde888c7e824e24bcc5e1b3615e6a39
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Jul 6 01:30:25 2010 +0100

    debug: Adds a COGL_DEBUG=disable-pbos debug option
    
    For testing purposes, either to identify bugs in Cogl or the driver or
    simulate lack of PBO support COGL_DEBUG=disable-pbos can be used to
    fallback to malloc instead.

 cogl/cogl-debug.c |    2 ++
 cogl/cogl-debug.h |    9 +++++----
 cogl/cogl.c       |    3 +++
 3 files changed, 10 insertions(+), 4 deletions(-)

commit 72e1ff05a867fe55a8e66b5f550aca0265916b4c
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sat Jul 3 19:05:04 2010 +0100

    pango-render: set CLAMP_TO_EDGE wrap mode on glyph_material
    
    The pango renderer was causing lots of override materials to be allocated
    because the vertex_buffer API converts AUTOMATIC mode into REPEAT for
    backwards compatibility. By explicitly setting the wrap mode to
    CLAMP_TO_EDGE when creating the glyph_material then the vertex_buffer
    API will leave it untouched.

 pango/cogl-pango-render.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

commit 92d0322766dfb28597894d72a66aa858a84aa66b
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Jul 5 16:14:00 2010 +0100

    pixel-array: Allow passing of hints to cogl_buffer_map
    
    This allows you to tell Cogl that you are planning to replace all the
    buffer's data once it is mapped with cogl_buffer_map. This means if the
    buffer is currently being accessed by the GPU then the driver doesn't
    have to stall and wait for it to finish before it can access it from the
    CPU and can instead potentially allocate a new buffer with undefined
    data and map that.

 cogl/cogl-buffer-private.h |    3 ++-
 cogl/cogl-buffer.c         |    8 +++++---
 cogl/cogl-buffer.h         |   36 +++++++++++++++++++++++++++++++++---
 cogl/cogl-pixel-array.c    |    9 ++++++---
 4 files changed, 46 insertions(+), 10 deletions(-)

commit 51e4245ce1baf12482a6d9b758a640a79dda2e9b
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sat Jul 3 21:11:33 2010 +0100

    cogl-object: cogl_is_XYZ prototype should take void *
    
    This changes the cogl_is_XYZ function prototypes generated when using
    the COGL_OBJECT_DEFINE macro to take a void * argument instead of a
    CoglHandle argument.

 cogl/cogl-object-private.h |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 9e25f8c40de3d6f4d11c5fabe09aba990b2a8e9e
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sun Jul 4 00:49:31 2010 +0100

    pixel-array: Only allow allocation of arrays with a 2D size
    
    This removes cogl_pixel_array_new which just took a size in bytes.
    
    Without the image size and pixel format then the driver often doesn't
    have enough information to allocate optimal GPU memory that can be
    textured from directly. This is because GPUs often have ways to
    spatially alter the layout of a texture to improve cache access patterns
    which may require special alignment and padding dependant in the images
    width, height and bpp.
    
    Although currently we are limited by OpenGL because it doesn't let us
    pass on the width and height when allocating a PBO, the hope is that we
    can define a better extension at some point.

 cogl/cogl-pixel-array.c |    6 +++---
 cogl/cogl-pixel-array.h |   16 ----------------
 2 files changed, 3 insertions(+), 19 deletions(-)

commit daa34aeb0e8b3c124df1e8f2c87d1070ebb32933
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sun Jul 4 00:45:12 2010 +0100

    pixel-array: rename new_from_size to new_with_size
    
    It is more in keeping with other coding conventions in Cogl to use new
    "with" size instead of new "from" size.

 cogl/cogl-pixel-array.c |    8 ++++----
 cogl/cogl-pixel-array.h |   12 ++++++------
 2 files changed, 10 insertions(+), 10 deletions(-)

commit a46cc22c1bf30dbacdc2a86ac84161f2c048a7f5
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sun Jul 4 00:18:10 2010 +0100

    cogl-buffer-private.h: cleanup up the coding style
    
    This file was following the Clutter coding style of arranging prototypes
    into columns which Cogl doesn't copy.

 cogl/cogl-buffer-private.h |   42 +++++++++++++++++++++++++-----------------
 1 files changed, 25 insertions(+), 17 deletions(-)

commit 521d9ca2034a679be753ec7163f779547d73189b
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sat Jul 3 23:46:03 2010 +0100

    rename CoglPixelBuffer to CoglPixelArray
    
    This renames CoglPixelBuffer to CoglPixelArray to be consistent with the
    new CoglVertexArray API.

 cogl/Makefile.am                 |    6 +-
 cogl/cogl-buffer.c               |    2 +-
 cogl/cogl-pixel-array-private.h  |   74 +++++++++
 cogl/cogl-pixel-array.c          |  324 ++++++++++++++++++++++++++++++++++++++
 cogl/cogl-pixel-array.h          |  147 +++++++++++++++++
 cogl/cogl-pixel-buffer-private.h |   73 ---------
 cogl/cogl-pixel-buffer.c         |  323 -------------------------------------
 cogl/cogl-pixel-buffer.h         |  146 -----------------
 cogl/cogl-texture.c              |   14 +-
 cogl/cogl.h                      |    2 +-
 10 files changed, 557 insertions(+), 554 deletions(-)

commit cafeb025313b02472ddaeb5499d84acbb6068264
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sat Jul 3 21:30:33 2010 +0100

    cogl-buffer: make the COGL_BUFFER_USAGE_HINT private
    
    The usage hint should be implied by the CoglBuffer subclass type so the
    public getter and setter APIs for manually changing the usage hint of a
    CoglBuffer have now been removed.

 cogl/cogl-buffer-private.h |    9 +++++++++
 cogl/cogl-buffer.c         |   22 ----------------------
 cogl/cogl-buffer.h         |   44 --------------------------------------------
 3 files changed, 9 insertions(+), 66 deletions(-)

commit 9ceb0edf26654f259eab4be640db491d9b3948a4
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sat Jul 3 23:56:44 2010 +0100

    cogl-buffer: Handle subclass registration like cogl-texture
    
    Instead of having to extend cogl_is_buffer with new buffer types
    manually this now adds a new COGL_BUFFER_DEFINE macro to be used instead
    of COGL_OBJECT_DEFINE for CoglBuffer subclasses. This macro will
    automatically register the new type with ctx->buffer_types which will
    iterated by cogl_is_buffer. This is the same coding pattern used for
    CoglTexture.

 cogl/cogl-buffer-private.h |   12 ++++++++++++
 cogl/cogl-buffer.c         |   28 +++++++++++++++++++++++++---
 cogl/cogl-context.c        |    2 ++
 cogl/cogl-context.h        |    4 ++++
 cogl/cogl-pixel-buffer.c   |    2 +-
 5 files changed, 44 insertions(+), 4 deletions(-)

commit 1b7e362189654db241c927be3f795d90f75ef84d
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sat Jul 3 20:24:36 2010 +0100

    pixel-buffer: Replace CoglHandle with CoglPixelBuffer *
    
    One more file converted to stop using CoglHandle re:a8c8cbee513

 cogl/cogl-buffer-private.h       |    5 +++--
 cogl/cogl-pixel-buffer-private.h |    4 ++--
 cogl/cogl-pixel-buffer.c         |   26 +++++++++++++-------------
 cogl/cogl-pixel-buffer.h         |   18 ++++++++++--------
 4 files changed, 28 insertions(+), 25 deletions(-)

commit 12a76ca4aa796d74e7fdd8459d0d3a8ba3470bba
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Jul 2 18:04:45 2010 +0100

    cogl-material: Adds debug api to dump sparse material graph
    
    This adds a _cogl_debug_dump_materials_dot_file function that can be
    used to dump all the descendants of the default material to a file using
    the dot format which can then be converted to an image to visualize.

 cogl/cogl-material.c |  165 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 165 insertions(+), 0 deletions(-)

commit b5f7ab345cb74a5c1fd73a781ff3a8c1db2d75f4
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sun Jul 4 02:44:37 2010 +0100

    cogl-vertex-buffer.h: #include <cogl/cogl-defines.h>
    
    cogl-vertex-buffer.h was assuming that the platforms GL headers had
    already been included but that shouldn't have to be the case.

 cogl/cogl-vertex-buffer.h |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

commit 0b3c45396b2b4062b3104b1657bed99ba9874ea4
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sat Jul 3 21:10:05 2010 +0100

    cogl-object-private.h: #include glib.h and cogl-types.h
    
    cogl-object-private.h was only working in places that had already
    included glib.h and cogl-types.h

 cogl/cogl-object-private.h |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

commit cc0b76b405a3e8855efde8ca2ee34fa2e6c227ed
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sat Jul 3 18:44:47 2010 +0100

    material: don't keep extra ref on copy-on-write materials
    
    In _cogl_material_pre_change_notify if a material with descendants is
    modified then we create a new material that is a copy of the one being
    modified and reparent those descendants to the new material.
    
    This patch ensures we drop the reference we get from cogl_material_copy
    since we can rely on the descendants to keep the new material alive.

 cogl/cogl-material.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

commit 3428633cb30159bdfd3671e6834a4a9792fe8246
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Jul 2 01:07:36 2010 +0100

    build: Fix GLES builds since the material backend split
    
    The commit to split the fragment processing backends out from
    cogl-material.c (3e1323a6362906a95) broke the GLES 1 and 2 builds the
    fix was to guard the code in each backend according to the
    COGL_MATERIAL_BACKEND_XYZ defines which are setup in
    cogl-material-private.h.

 cogl/cogl-material-arbfp.c   |    7 ++++++-
 cogl/cogl-material-fixed.c   |    7 ++++++-
 cogl/cogl-material-glsl.c    |    7 ++++++-
 cogl/cogl-material-private.h |    2 ++
 4 files changed, 20 insertions(+), 3 deletions(-)

commit be6335c87062b629bf228c0b7f53cbbef3f86261
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Jul 2 17:48:19 2010 +0100

    docs: Add a cogl-paths section
    
    The path primitives have a specific section, now, and gtk-doc is loudly
    complaining about it being defined but not referenced.

 doc/reference/cogl/cogl-docs.xml.in  |    1 +
 doc/reference/cogl/cogl-sections.txt |    6 ++++--
 2 files changed, 5 insertions(+), 2 deletions(-)

commit cea74d92ea4e053531743cb50eef03015d0d57ac
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Jul 2 16:19:48 2010 +0100

    Convert the ASCII art documentation in cogl-vertex-buffer to PNGs
    
    The documentation for cogl_vertex_buffer_indices_get_for_quads was
    using ugly ASCII art to draw the diagrams. These have now been
    replaced with PNG figures.

 cogl/cogl-vertex-buffer.h                     |   35 ++++++++++---------------
 doc/reference/cogl/Makefile.am                |    4 +++
 doc/reference/cogl/quad-indices-order.png     |  Bin 0 -> 2620 bytes
 doc/reference/cogl/quad-indices-triangles.png |  Bin 0 -> 8018 bytes
 4 files changed, 18 insertions(+), 21 deletions(-)

commit 432c37bd21abf357e28e64b4a337c06c71b2bd32
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Jul 2 13:49:34 2010 +0100

    Add CoglMaterialWrapMode to the Cogl docs and fix docs for the getters
    
    CoglMaterialWrapMode was missing from the cogl-sections.txt file so it
    wasn't getting displayed. There were also no documented return values
    from the getters.

 cogl/cogl-material.h                 |    4 ++++
 doc/reference/cogl/cogl-sections.txt |    1 +
 2 files changed, 5 insertions(+), 0 deletions(-)

commit 59d06d486d599525c4b301941b8a913cbf088da9
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Jul 1 20:34:59 2010 +0100

    Fix building the tesselator code for GLES
    
    The tesselator code uses some defines that it expects to be in the GL
    headers such as GLAPI and GLAPIENTRY. These are used to mark the entry
    points as exportable on each platform. We don't really want the
    tesselator code to use these but we also don't want to modify the C
    files so instead they are #defined to be empty in the stub glu.h. That
    header is only included internally when building the tesselator/ files
    so it shouldn't affect the rest of Cogl.
    
    GLES also doesn't have a GLdouble type so we just #define this to be a
    regular double.

 cogl/cogl-path.c             |    4 ++--
 cogl/tesselator/GL/glu.h     |   14 ++++++++++++++
 cogl/tesselator/tesselator.h |   30 +++++++++++++++---------------
 3 files changed, 31 insertions(+), 17 deletions(-)

commit 7961b1c93dab6b334ce1d4dfdb6e2d1cb0f45d46
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Jul 1 15:27:03 2010 +0100

    cogl-material: Don't doubly ref the parent in cogl_material_copy
    
    cogl_material_copy was taking a reference on the original texture when
    making a copy. However it then calls _cogl_material_set_parent on the
    material which also takes a reference on the parent. The second
    reference is cleaned up whenever _cogl_material_unparent is called and
    this is also called by _cogl_material_free. However, it seems that
    nothing was cleaning up the first reference. I think the reference is
    entirely unnecessary so this patch removes it.

 cogl/cogl-material.c |    2 --
 1 files changed, 0 insertions(+), 2 deletions(-)

commit 137d38962a9a5c14f4432dbf52cc98880d9d305a
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Jul 1 12:21:25 2010 +0100

    cogl: don't include cogl-vector.h twice in cogl.h
    
    cogl-vector.h should only be included by cogl.h when
    COGL_ENABLE_EXPERIMENTAL_API is defined. This removes the unguarded
    duplicate include.

 cogl/cogl.h |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

commit 1000c80444a3d99d0965632a571b9ae19cb8d048
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Jun 30 18:06:04 2010 +0100

    cogl: declare experimental symbols consistently
    
    We had several different ways of exposing experimental API, in one case
    the symbols had no special suffix, in two other ways the symbols were
    given an _EXP suffix but in different ways.
    
    This makes all experimental API have an _EXP suffix which is handled
    using #defines in the header so the prototypes in the .c and .h files
    don't have the suffix.
    
    The documented reason for the suffix is so that anyone watching Cogl for
    ABI changes who sees symbols disappear will hopefully understand what's
    going on.

 cogl/cogl-buffer.c                    |   32 ++++++-------
 cogl/cogl-buffer.h                    |   67 +++++++--------------------
 cogl/cogl-pixel-buffer.c              |   82 ++++++---------------------------
 cogl/cogl-pixel-buffer.h              |   47 +++++--------------
 cogl/cogl-vector.h                    |   22 +++++++++
 cogl/winsys/cogl-texture-pixmap-x11.h |   56 ++++++-----------------
 6 files changed, 96 insertions(+), 210 deletions(-)

commit a0a06f0342d3acee95cd4927534fdd5affe46b5c
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Jun 30 15:51:52 2010 +0100

    cogl/tesselator: Update to the latest code from GLU
    
    This grabs the latest code for libtess from git Mesa. This is mostly
    so that we can get the following commit which fixes a lot of compiler
    warnings in Clutter:
    
    commit 75acb896c6da758d03e86f8725d6ca0cb2c6ad82
    Author: Neil Roberts <neil@linux.intel.com>
    Date:   Wed Jun 30 12:41:11 2010 +0100
    
        glu: Fix some compiler warnings in libtess
    
        When compiled with the more aggressive compiler warnings such as
        -Wshadow and -Wempty-body the libtess code gives a lot more
        warnings. This fixes the following issues:
    
        * The 'Swap' macro tries to combine multiple statements into one and
          then consume the trailing semicolon by using if(1){/*...*/}else.
          This gives warnings because the else part ends up with an empty
          statement. It also seems a bit dangerous because if the semicolon
          were missed then it would still be valid syntax but it would just
          ignore the following statement. This patch replaces it with the more
          common idiom do { /*...*/ } while(0).
    
        * 'free' was being used as a local variable name but this shadows the
          global function. This has been renamed to 'free_handle'
    
        * TRUE and FALSE were being unconditionally defined. Although this
          isn't currently a problem it seems better to guard them with #ifndef
          because it's quite common for them to be defined in other headers.
    
        https://bugs.freedesktop.org/show_bug.cgi?id=28845

 cogl/tesselator/geom.c           |    2 +-
 cogl/tesselator/mesh.c           |    4 ++++
 cogl/tesselator/normal.c         |    4 ++++
 cogl/tesselator/priorityq-heap.c |   22 +++++++++++++---------
 cogl/tesselator/priorityq.c      |    2 +-
 cogl/tesselator/render.c         |    8 ++++++--
 cogl/tesselator/sweep.c          |    4 ++++
 cogl/tesselator/tess.c           |    4 ++++
 8 files changed, 37 insertions(+), 13 deletions(-)

commit 6fbe92193f85307ba1f0a473c8f242d07bb1f90d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Jun 30 15:50:47 2010 +0100

    docs: Various fixes for gtk-doc

 cogl/cogl.h                    |   10 +++++-----
 doc/reference/cogl/Makefile.am |   12 ++++++------
 2 files changed, 11 insertions(+), 11 deletions(-)

commit be46b872e9dc962c0cd2c44275e2a39a1de2eedf
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Jun 22 14:02:17 2010 +0100

    material: Replace CoglHandle with CoglMaterial *
    
    As part of the ongoing effort to remove CoglHandle from the API this
    switches the cogl_material API to use a strongly typed CoglMaterial
    pointer instead of CoglHandle.

 cogl/cogl-context.h          |   10 +-
 cogl/cogl-material-private.h |   46 ++---
 cogl/cogl-material.c         |  435 ++++++++++++++++++------------------------
 cogl/cogl-material.h         |  270 ++++++++++++++------------
 4 files changed, 349 insertions(+), 412 deletions(-)

commit 17731b3af1def4981404db85d244e3c8fbd9d29b
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Jun 15 16:44:52 2010 +0100

    material: Split the fragment processing backends out
    
    This splits the fragment processing backends (glsl, arbfp and fixed) out
    from cogl-material.c into their own cogl-material-{glsl,arbfp,fixed}.c
    files in an effort to help and keep cogl-material.c maintainable.

 cogl/Makefile.am                   |    6 +
 cogl/cogl-material-arbfp-private.h |   36 +
 cogl/cogl-material-arbfp.c         | 1029 ++++++++++++++++++++++++++++
 cogl/cogl-material-fixed-private.h |   36 +
 cogl/cogl-material-fixed.c         |  201 ++++++
 cogl/cogl-material-glsl-private.h  |   36 +
 cogl/cogl-material-glsl.c          |  123 ++++
 cogl/cogl-material-private.h       |   83 +++-
 cogl/cogl-material.c               | 1309 ++----------------------------------
 9 files changed, 1587 insertions(+), 1272 deletions(-)

commit e7df75773959a6a11931ef7b0e75d4a8cc6d066e
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Jun 30 03:31:37 2010 +0100

    material: remove a duplicate gtk-doc "Since: 1.4"
    
    The cogl_material_get_depth_writing_enabled documentation had two
    "Since: 1.4" annotations which was confusing the gobject introspection
    scanner.

 cogl/cogl-material.h |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

commit cdf5b222db4067f99ce4dd21b36d6faf113a2db9
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Jun 23 13:40:43 2010 +0100

    cogl-path: Allow changing the fill rule
    
    This adds two new API calls- cogl_path_set_fill_rule and
    cogl_path_get_fill_rule. This allows modifying the fill rule of the
    current path. In addition to the previous default fill rule of
    'even-odd' it now supports the 'non-zero' rule. The fill rule is a
    property of the path (not the Cogl context) so creating a new path or
    preserving a path with cogl_path_get_handle affects the fill rule.

 cogl/cogl-path-private.h                  |    3 +
 cogl/cogl-path.c                          |   38 ++++++++++++
 cogl/cogl-path.h                          |   88 +++++++++++++++++++++++-----
 doc/reference/cogl/Makefile.am            |    6 +-
 doc/reference/cogl/cogl-sections.txt      |    3 +
 doc/reference/cogl/fill-rule-even-odd.png |  Bin 0 -> 3121 bytes
 doc/reference/cogl/fill-rule-non-zero.png |  Bin 0 -> 3143 bytes
 doc/reference/cogl/fill-rule.png          |  Bin 3121 -> 0 bytes
 8 files changed, 120 insertions(+), 18 deletions(-)

commit 244a795f43cf2d448b2f41143e57f80ecff7a75a
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Apr 19 11:24:24 2010 +0100

    cogl-debug: Remove the force-scanline-paths option
    
    The scanline path rasterizer has been removed because the paths can be
    drawn with the tesselator instead. The option therefore no longer does
    anything.

 cogl/cogl-debug.c |    2 --
 cogl/cogl-debug.h |    1 -
 2 files changed, 0 insertions(+), 3 deletions(-)

commit fecaaea132ca2cfe449bd765035a8217c061caa8
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Apr 15 23:56:46 2010 +0100

    cogl-path: Use the GLU tesselator to draw paths
    
    Instead of drawing paths using the stencil buffer trick, it now
    tesselates the path into triangles using the GLU tesselator and
    renders them directly. A vbo is created with one vertex for each node
    on the path. The tesselator is used to generate a series of indices
    into the vbo as triangles. The tesselator's output of strips and fans
    is converted into GL_TRIANGLES so that it can be rendered with a
    single draw call (but the vertices are still shared via the
    indices). The vbo is stored with the path so that if the application
    uses retained paths then Cogl won't have to tessellate again.
    
    The vertices also have texture coordinates associated with them so
    that it can replicate the old behaviour of drawing a material with a
    texture by fitting the texture to the bounding box of the path and
    then clipping it. However if the texture contains waste or is sliced
    then the vertex buffer code will refuse to draw it. In this case it
    will revert back to drawing the path into the stencil buffer and then
    drawing the material as a clipped quad.
    
    The VBO is used even when setting up the stencil buffer for clipping
    to a path because the tessellated geometry may cover less area.
    
    The old scanline rasterizer has been removed because the tesselator
    should work equally well on drivers with no stencil buffer.

 cogl/cogl-path-private.h |    5 +
 cogl/cogl-path.c         |  737 ++++++++++++++++++++++++++++-----------------
 2 files changed, 463 insertions(+), 279 deletions(-)

commit b86e33095757333dd7b2eabdb8c23113135275b1
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Apr 16 00:28:15 2010 +0100

    cogl: Pull in the code for GLU tesselator from Mesa/SGI
    
    This copies the files for the GLU tesselator from Mesa. The Mesa code
    is based on the original SGI code and is released under a BSD license.
    
    The memalloc.h header has been replaced with one that forces the code
    to use g_malloc and friends. The rest of the files are not altered
    from the original so it should be possible to later upgrade the files
    by simply overwriting them.
    
    There is a tesselator.h header which is expected to be included by
    rest of Cogl to use the tesselator. This contains a trimmed down
    version of glu.h that only includes parts that pertain to the
    tesselator. There is also a stub glu.h in the GL directory which is
    just provided so that the tesselator code can include <GL/gl.h>
    without depending on the system header. It just redirects to
    tesselator.h

 cogl/Makefile.am                 |    7 +-
 cogl/tesselator/GL/glu.h         |   26 +
 cogl/tesselator/Makefile.am      |   41 ++
 cogl/tesselator/README           |  446 +++++++++++++
 cogl/tesselator/dict-list.h      |  100 +++
 cogl/tesselator/dict.c           |  111 ++++
 cogl/tesselator/dict.h           |  100 +++
 cogl/tesselator/geom.c           |  264 ++++++++
 cogl/tesselator/geom.h           |   84 +++
 cogl/tesselator/gluos.h          |    1 +
 cogl/tesselator/memalloc.h       |   42 ++
 cogl/tesselator/mesh.c           |  794 ++++++++++++++++++++++
 cogl/tesselator/mesh.h           |  266 ++++++++
 cogl/tesselator/normal.c         |  253 +++++++
 cogl/tesselator/normal.h         |   45 ++
 cogl/tesselator/priorityq-heap.c |  252 +++++++
 cogl/tesselator/priorityq-heap.h |  107 +++
 cogl/tesselator/priorityq-sort.h |  117 ++++
 cogl/tesselator/priorityq.c      |  260 ++++++++
 cogl/tesselator/priorityq.h      |  117 ++++
 cogl/tesselator/render.c         |  498 ++++++++++++++
 cogl/tesselator/render.h         |   52 ++
 cogl/tesselator/sweep.c          | 1357 ++++++++++++++++++++++++++++++++++++++
 cogl/tesselator/sweep.h          |   77 +++
 cogl/tesselator/tess.c           |  628 ++++++++++++++++++
 cogl/tesselator/tess.h           |  165 +++++
 cogl/tesselator/tesselator.h     |  121 ++++
 cogl/tesselator/tessmono.c       |  201 ++++++
 cogl/tesselator/tessmono.h       |   71 ++
 29 files changed, 6601 insertions(+), 2 deletions(-)

commit d99a8bf694072a3230c210206b94bf1983436153
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Jun 28 15:25:19 2010 +0100

    cogl: Add const to some pointer arguments
    
    Some of the arguments to the material and path functions were taking a
    pointer to a CoglColor or an array of floats that was not intended to
    be written to but were not marked with const.

 cogl/cogl-material.c |    6 +++---
 cogl/cogl-material.h |   14 +++++++-------
 cogl/cogl-path.c     |    4 ++--
 cogl/cogl-path.h     |    8 ++++----
 4 files changed, 16 insertions(+), 16 deletions(-)

commit de1f4885ddb1eb510bc9796a008f7a38a105e598
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Jun 23 17:10:03 2010 +0100

    material: Avoid possibly reading invalid memory
    
    in _cogl_material_prune_empty_layer_difference we sometimes unref the
    given layer before dereferencing it to get a pointer to its parent. This
    defers the unref until after we have fetched the parent pointer.

 cogl/cogl-material.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit e33a94bff474d192b74a9e25868950b967a9a98a
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Jun 23 17:29:08 2010 +0100

    cogl: Remove cogl-defines.h.in from the driver make files
    
    Commit 7fae8ac051292 changed cogl-defines.h.in so there is only a
    single copy in clutter/cogl/ instead of one for each driver. However
    the old files were still mentioned in the EXTRA_DIST of the
    Makefile.am so make distcheck was failing.

 cogl/Makefile.am             |    2 ++
 cogl/driver/gl/Makefile.am   |    2 +-
 cogl/driver/gles/Makefile.am |    1 -
 3 files changed, 3 insertions(+), 2 deletions(-)

commit e8e5188484bf700af9dc3dc657c40988d4c309b1
Author: Chris Lord <chris@linux.intel.com>
Date:   Wed Jun 23 15:53:50 2010 +0100

    cogl-path: Disable texture coord arrays before drawing
    
    It was possible that the texture co-ord arrays were left enabled during
    stroking, which could possibly cause a crash.

 cogl/cogl-path.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

commit 857aee2b91e0e01d13251dd6658b4016a78b10ad
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Jun 22 15:42:41 2010 +0100

    texture-pixmap-x11: don't assume anything about the GLXFBConfig type
    
    A pedantic change to get_fbconfig_for_depth() so that we don't need to
    make any assumptions about the GLXFBConfig typedef or what values
    we can overload to indicate an invalid config.
    
    get_fbconfig_for_depth() now simply returns FALSE if it fails to find a
    config.

 cogl/winsys/cogl-context-winsys.h     |    1 +
 cogl/winsys/cogl-texture-pixmap-x11.c |   37 ++++++++++++++++-----------------
 2 files changed, 19 insertions(+), 19 deletions(-)

commit c0d42cb0213497de082e1ed4b7d53c31fca704c5
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Jun 22 14:43:36 2010 +0100

    Silence another compiler warning

 cogl/winsys/cogl-texture-pixmap-x11.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 7d206ccdbb93852871047454dca2af27462b0a49
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Jun 22 14:10:44 2010 +0100

    cogl-texture-pixmap-x11: Use NULL instead of None for invalid GLXFBConfig
    
    GLXFBConfigs are opaque pointers not XIDs so it doesn't make sense to
    return None from get_fbconfig_for_depth. Instead it now returns NULL.

 cogl/winsys/cogl-texture-pixmap-x11.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 0244eccfe31e0dba9d3ba9902e97bf72a9e81702
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Jun 22 13:48:53 2010 +0100

    Silence some compiler warnings

 cogl/cogl-material.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

commit 8458fb7e200ea0ea71b84598aea64e5a1e1bbb45
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue May 25 18:56:14 2010 +0100

    Add a CoglTexturePixmapX11 texture backend
    
    This is a publicly exposed texture backend to create a texture which
    contains the contents of an X11 pixmap. The API is currently marked as
    experimental.
    
    The backend internally holds a handle to another texture. All of the
    backend virtuals simply redirect to the internal texture.
    
    The texture can optionally be automatically updated if the
    automatic_updates parameter is TRUE. If set then Cogl will listen for
    damage events on the pixmap and update the texture accordingly.
    Alternatively a damage object can be created externally and passed
    down to Cogl.
    
    The updates can be performed with XGetImage, XShmGetImage or the
    GLX_EXT_texture_pixmap extension. If the TFP extension is used it will
    optionally try to create a rectangle texture if the driver does not
    support NPOTs or it is forced through the
    COGL_PIXMAP_TEXTURE_RECTANGLE or CLUTTER_PIXMAP_TEXTURE_RECTANGLE
    environment variables.
    
    If the GLXFBConfig does not support mipmapping then it will fallback
    to using X{Shm,}GetImage. It keeps a separate texture around for this
    so that it can later start using the TFP texture again if the texture
    is later drawn with mipmaps disabled.

 cogl/Makefile.am                              |    7 +-
 cogl/cogl-debug.c                             |    4 +-
 cogl/cogl-debug.h                             |    3 +-
 cogl/winsys/cogl-context-winsys.c             |   26 +-
 cogl/winsys/cogl-context-winsys.h             |   40 +-
 cogl/winsys/cogl-texture-pixmap-x11-private.h |   92 ++
 cogl/winsys/cogl-texture-pixmap-x11.c         | 1397 +++++++++++++++++++++++++
 cogl/winsys/cogl-texture-pixmap-x11.h         |  176 ++++
 cogl/winsys/cogl-winsys-feature-functions.h   |   20 +
 9 files changed, 1758 insertions(+), 7 deletions(-)

commit 9c62265939e3a097cdc0da7b40e65608cc863ec9
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Jun 21 12:48:02 2010 +0100

    Add -DCOGL_ENABLE_EXPERIMENTAL_API to Makefiles for Cogl and x11/glx
    
    Cogl and Clutter should be able to use the experimental API so this
    adds the required define to the CPPFLAGS in the Makefiles.

 cogl/Makefile.am |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

commit 9d0962098f44a06565afe1a3e5435f21a8c5352d
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Jun 18 14:30:23 2010 +0100

    cogl-defines.h: Add a COGL_HAS_X11 define
    
    This will be defined in cogl-defines.h whenever Cogl is built using a
    winsys that supports X11. This implies CoglTexturePixmapX11 will be
    available.
    
    To make this work the two separate cogl-defines.h.in files have been
    merged into one. The configure script now makes a @COGL_DEFINES@
    substitution variable which contains the #define lines to put in
    rather than directly having them in the seperate files.

 cogl/Makefile.am                   |    3 --
 cogl/cogl-defines.h.in             |   36 +++++++++++++++++++++++++++++++
 cogl/driver/gl/cogl-defines.h.in   |   37 --------------------------------
 cogl/driver/gles/cogl-defines.h.in |   41 ------------------------------------
 4 files changed, 36 insertions(+), 81 deletions(-)

commit 16c7d12e6c3ffe251ebc80463727b1074d8bdd59
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Jun 4 10:38:30 2010 +0100

    cogl: Add _cogl_xlib_{,un}trap_errors
    
    This is similar to clutter_x11_{,un}trap_errors except that it stores
    the previous trap state in a caller-allocated struct so that it can be
    re-entrant.
    
    Make _cogl_xlib_trap_errors re-entrant
    
    (this will be squashed into an earlier commit)

 cogl/winsys/cogl-context-winsys.c |    2 +
 cogl/winsys/cogl-context-winsys.h |   23 +++++++++++++++++++++
 cogl/winsys/cogl-xlib.c           |   39 +++++++++++++++++++++++++++++++++++++
 cogl/winsys/cogl-xlib.h           |   29 +++++++++++++++++++++++++++
 4 files changed, 93 insertions(+), 0 deletions(-)

commit 6ad668c76b126efec977b09c8796f245f73b85cb
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Jun 1 13:32:57 2010 +0100

    cogl-texture: Avoid premult conversion if the dst format has no alpha
    
    The _cogl_texture_needs_premult_conversion function was already
    checking whether the source format had an alpha channel before
    returning TRUE, but it also doesn't make sense to do the premult
    conversion if the destination format has no alpha. This patch adds
    that check in too.

 cogl/cogl-texture.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

commit 31b5beb2c00bfae83d6cd26e33242887f330e0bd
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Jun 2 17:55:56 2010 +0100

    cogl: Add the infrastructure for checking for winsys extensions
    
    This adds the framework needed to check for winsys specific extensions
    (such as GLX extensions) using a similar mechanism to the
    cogl-feature-functions header. There is a separate
    cogl-winsys-feature-functions header which will contain macros to list
    the extensions and functions. cogl_create_context_winsys now calls
    _cogl_feature_check for each of these functions. _cogl_feature_check
    has had to be changed to accept the driver prefix as the first
    parameter so that it can prepend "GLX" rather than "GL" in this case.

 cogl/Makefile.am                            |    1 +
 cogl/cogl-feature-private.c                 |    7 ++-
 cogl/cogl-feature-private.h                 |    3 +-
 cogl/driver/gl/cogl.c                       |    2 +-
 cogl/driver/gles/cogl.c                     |    2 +-
 cogl/winsys/cogl-context-winsys.c           |   64 +++++++++++++++++++++++++++
 cogl/winsys/cogl-context-winsys.h           |   21 ++++++++-
 cogl/winsys/cogl-winsys-feature-functions.h |   25 ++++++++++
 8 files changed, 118 insertions(+), 7 deletions(-)

commit 9646e85ba77d7ffe5059b4cea1616a79f7fe5f52
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed May 19 16:13:07 2010 +0100

    Pass all Xlib events through Cogl
    
    The Clutter X11 backend now passes all events through
    _cogl_xlib_handle_event. This function can now internally be hooked
    with _cogl_xlib_add_filter. These are added to a list of callbacks
    which are all called in turn by _cogl_xlib_handle_event. This is
    intended to be used internally in Cogl by any parts that need to see
    Xlib events.
    
    Cogl now also has an internally exposed function to set a pointer to
    the Xlib display. This is stored in a global variable. The Clutter X11
    backend sets this.
    
    _cogl_xlib_handle_event and _cogl_xlib_set_display can be removed once
    Cogl gains a proper window system abstraction.

 cogl/Makefile.am                  |   11 +++--
 cogl/cogl-internal.h              |   52 +++++++++++++++++++++++++
 cogl/winsys/cogl-context-winsys.c |   20 ++++++++++
 cogl/winsys/cogl-context-winsys.h |    7 +++
 cogl/winsys/cogl-xlib.c           |   77 +++++++++++++++++++++++++++++++++++++
 cogl/winsys/cogl-xlib.h           |   37 ++++++++++++++++++
 6 files changed, 200 insertions(+), 4 deletions(-)

commit 2e5b4a5b81d92909ad90e554c57c94b7c3f82f57
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Jun 2 15:16:14 2010 +0100

    cogl: Add a struct for winsys-specific data to CoglContext
    
    This creates a separate struct to store the fields of the context that
    are specific to the winsys. This is all stored in one file but ideally
    this could work more like the CoglContextDriver struct and have a
    different header for each winsys.

 cogl/Makefile.am                  |    2 +
 cogl/cogl-context.c               |    8 +++++++
 cogl/cogl-context.h               |    2 +
 cogl/winsys/cogl-context-winsys.c |   38 +++++++++++++++++++++++++++++++++++++
 cogl/winsys/cogl-context-winsys.h |   32 +++++++++++++++++++++++++++++++
 5 files changed, 82 insertions(+), 0 deletions(-)

commit 9a1aa08fda8983420e543056ed8e54397058486e
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Jun 10 15:33:34 2010 +0100

    cogl: Add an internal CoglTextureRectangle backend
    
    This adds an internal rectangle texture backend which is mostly based
    on the CoglTexture2D backend. It will throw assert failures if any
    operations are attempted that rectangle textures don't support, such
    as mipmapping or hardware repeating.

 cogl/Makefile.am                        |    2 +
 cogl/cogl-texture-rectangle-private.h   |   68 ++++
 cogl/cogl-texture-rectangle.c           |  662 +++++++++++++++++++++++++++++++
 cogl/driver/gl/cogl-feature-functions.h |    7 +
 cogl/driver/gl/cogl-texture-driver.c    |   41 ++-
 5 files changed, 763 insertions(+), 17 deletions(-)

commit 82e63a47536e6151e3678df8ac4e47935683b7c8
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Jun 9 17:39:59 2010 +0100

    cogl-texture: Replace the ensure_mipmaps virtual with pre_paint
    
    Instead of the ensure_mipmaps virtual that is only called whenever the
    texture is about to be rendered with a min filter that needs the
    mipmap, there is now a pre_paint virtual that is always called when
    the texture is about to be painted in any way. It has a flags
    parameter which is used to specify whether the mipmap will be needed.
    
    This is useful for CoglTexturePixmapX11 because it needs to do stuff
    before painting that is unrelated to mipmapping.

 cogl/cogl-atlas-texture.c     |   13 +++++++------
 cogl/cogl-material-private.h  |    7 ++++---
 cogl/cogl-material.c          |   33 ++++++++++++++++-----------------
 cogl/cogl-primitives.c        |    4 ++--
 cogl/cogl-sub-texture.c       |    7 ++++---
 cogl/cogl-texture-2d-sliced.c |    9 +++++++--
 cogl/cogl-texture-2d.c        |   27 ++++++++++++++-------------
 cogl/cogl-texture-private.h   |   12 ++++++++++--
 cogl/cogl-texture.c           |    4 ++--
 cogl/cogl-vertex-buffer.c     |    2 +-
 10 files changed, 67 insertions(+), 51 deletions(-)

commit ebb05bcb64ca1799ce12e8262a58169e3acd79cb
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Jun 11 13:50:36 2010 +0100

    cogl-texture: List texture subclass types rather than hardcoding them
    
    Instead of having a hardcoded series of if-statements in
    cogl_is_texture to determine which types should appear as texture
    subclasses, they are now stored in a GSList attached to the Cogl
    context. The list is amended to using a new cogl_texture_register_type
    function. There is a convenience macro called COGL_TEXTURE_DEFINE
    which uses COGL_HANDLE_DEFINE_WITH_CODE to register the texture type
    when the _get_type() function is first called.

 cogl/cogl-atlas-texture.c     |    2 +-
 cogl/cogl-context.c           |    4 ++++
 cogl/cogl-context.h           |    4 ++++
 cogl/cogl-sub-texture.c       |    2 +-
 cogl/cogl-texture-2d-sliced.c |    2 +-
 cogl/cogl-texture-2d.c        |    2 +-
 cogl/cogl-texture-private.h   |   11 +++++++++++
 cogl/cogl-texture.c           |   21 +++++++++++++++++----
 8 files changed, 40 insertions(+), 8 deletions(-)

commit 2f286446af5cf80eb5c43083f76fce6468e54d1f
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Jun 11 13:44:27 2010 +0100

    Add COGL_{OBJECT,HANDLE}_DEFINE_WITH_CODE
    
    This macro is similar to COGL_HANDLE_DEFINE_WITH_CODE except that it
    allows a snippet of code to be inserted into the _get_type()
    function. This is similar to how G_DEFINE_TYPE_WITH_CODE
    works. COGL_HANDLE_DEFINE is now just a wrapper around
    COGL_HANDLE_DEFINE_WITH_CODE.

 cogl/cogl-object-private.h |   17 +++++++++++++----
 1 files changed, 13 insertions(+), 4 deletions(-)

commit f9f2f6bc6c91c5f554617fb1a0b57340d7875d9d
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Jun 3 15:06:47 2010 +0100

    Add _cogl_texture_2d_externally_modified
    
    _cogl_texture_2d_externally_modified is a function specific to the
    CoglTexture2D texture backend that should be called whenever the
    contents of the texture are modified without the backend knowing about
    it. It simply marks the mipmap tree as invalid.

 cogl/cogl-texture-2d-private.h |   11 +++++++++++
 cogl/cogl-texture-2d.c         |    9 +++++++++
 2 files changed, 20 insertions(+), 0 deletions(-)

commit 5a5b3914baef4e9664068f91987f964de799ee93
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Jun 2 15:01:18 2010 +0100

    cogl: Fix the include path in driver/*/Makefile.am
    
    The include path for the winsys and driver folder was given relative
    to $(srcdir) so it would end up relative to the driver folder which is
    wrong. It is now specified as $(srcdir)/../../winsys to get the right
    location. The driver folder is removed because it is actually just
    $(srcdir) and that is already included.

 cogl/driver/gl/Makefile.am   |    3 +--
 cogl/driver/gles/Makefile.am |    3 +--
 2 files changed, 2 insertions(+), 4 deletions(-)

commit 0e43647fedeea6ead91a98a589783666f4701525
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Jun 8 18:38:25 2010 +0100

    gles2: don't disable clip planes for GLES2
    
    GLES2 doesn't provide user clip planes (you would have to use a vertex +
    fragment shader to achieve the same kind of result) so we make sure not
    to call glEnable/Disable with any of the GL_CLIP_PLANE0..3 defines.
    
    http://bugzilla.o-hand.com/show_bug.cgi?id=2177

 cogl/cogl-clip-stack.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

commit 9234757c3591f19e2bbc3d2964f049b6879a972d
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Jun 22 11:21:09 2010 +0100

    material: fix a typo in _cogl_material_journal_unref
    
    The function had a line like:
    
    CoglMaterial *material =
        material = _cogl_material_pointer_from_handle (material_handle);
    
    where the duplicate "material =" wasn't intended, so this patch removes
    it.

 cogl/cogl-material.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit c8aae9a663f46e572da5f124f56c291f1db26353
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Jun 18 04:38:43 2010 +0100

    egl: Consolidates eglx and eglnative into one "egl" winsys
    
    This remove quite a lot of redundant code by consolidating the eglx and
    eglnative window system backends.

 cogl/Makefile.am             |    4 ++--
 cogl/winsys/cogl-egl.c       |   41 +++++++++++++++++++++++++++++++++++++++++
 cogl/winsys/cogl-eglnative.c |   35 -----------------------------------
 cogl/winsys/cogl-eglx.c      |   41 -----------------------------------------
 4 files changed, 43 insertions(+), 78 deletions(-)

commit 270e1e81883f6da4bf4b75aa4619ffc932ee68c0
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Jun 18 15:25:51 2010 +0100

    cogl-context: Use the function pointer for glActiveUnit
    
    Under WGL, any functions that were defined after GL 1.1 are not
    directly exported in the DLL so we need to reference them via the
    function pointers. A new call to glActiveUnit was missed in
    cogl-context.c

 cogl/cogl-context.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

commit f95cdfc11e756301d3575a657af864d8423d158e
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Jun 18 15:33:03 2010 +0100

    cogl-material: Don't use the symbol 'near'
    
    The window headers contain the line
    
     #define near
    
    so it's not possible to use the symbol 'near' in code that's portable
    to Windows. This replaces it with 'near_val'.
    
    I think the define is meant to improve compatibility with code written
    for Windows 3.1 where near would be a keyword to make it a smaller
    pointer size.

 cogl/cogl-material.c |   20 ++++++++++----------
 cogl/cogl-material.h |   16 ++++++++--------
 2 files changed, 18 insertions(+), 18 deletions(-)

commit 7cd5908ef057099e309e8a7c8e69e2ac8959c6f3
Author: Richard Hughes <richard@hughsie.com>
Date:   Tue Jun 15 22:36:19 2010 +0100

    build: Fix a compiler warning when using make dist
    
    Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>

 cogl/Makefile.am |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

commit d3b26f3f4d835a4ebc7d9424178ec578f800cb31
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Jun 15 16:42:30 2010 +0100

    Set the initial value of a variable
    
    Fixes a compiler warning.

 cogl/cogl-primitives.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit c506b58ecfb6495c93417d3f130ea60aa0e66916
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Jun 14 23:14:15 2010 +0100

    material: Adds arbfp compile counter
    
    This adds a uprof counter to track how many ARBfp programs get compiled
    by an application.

 cogl/cogl-material.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

commit ba067c3da80d9e1ffe5a988cbf4b4472b2352806
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Jun 10 19:03:57 2010 +0100

    material: Support sparse ARBfp program generation
    
    We don't need to generate a new ARBfp program for every material created
    if we can find an ancestor whos state will result in the same program
    being generated.
    
    The more code we can have adopt the coding pattern of deriving their
    materials from other similar materials using cogl_material_copy() the
    more likely this metric will be good enough on its own to minimize the
    set of arbfp programs necessary to support a given application.

 cogl/cogl-material-private.h |   21 ++-
 cogl/cogl-material.c         |  356 +++++++++++++++++++++++++++++++++++-------
 2 files changed, 316 insertions(+), 61 deletions(-)

commit a38e597aaaab1d14b367006c5b2e2f3ae31aab68
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Jun 14 22:20:27 2010 +0100

    material: free any layer cache in material_set_parent
    
    Previously in _cogl_material_pre_change_notify we manually freed the
    layer caches of a material if we caused a reparent, but it makes more
    sense to have _cogl_material_set_parent do this directly instead.

 cogl/cogl-material.c |   23 +++++------------------
 1 files changed, 5 insertions(+), 18 deletions(-)

commit 92e8fbfdc6833ea04e3af4c54de668cfa97ed4c6
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu May 27 20:04:49 2010 +0100

    Adds an internal weak material mechanism
    
    This adds a _cogl_material_weak_copy() function that can be used to
    create materials that don't count as strong dependants on their parents.
    This means the parent can be modified without worrying about how it will
    affect weak materials. The material age of the parent can potentially be
    queried to determine if a weak material might need to be re-created.

 cogl/cogl-material-private.h |    6 ++
 cogl/cogl-material.c         |  167 +++++++++++++++++++++++++++++-------------
 2 files changed, 123 insertions(+), 50 deletions(-)

commit 9689ec5aadc4fafdb5f12d3329dc5b87b51177b1
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu May 27 15:19:15 2010 +0100

    material: Adds a simple material age getter
    
    When we add support for weak materials it's expected that Clutter will
    want to attach them as private data to other materials and it needs a
    mechanism to determine when a weak material should be re-created because
    its parent has changed somehow.
    
    This adds the concept of a material age (internal only currently) which
    increments whenever a material is modified. Clutter can then save the
    age of the material which its weak materials are derived from and later
    determine when the weak material may be invalid.

 cogl/cogl-material-private.h |   10 ++++++++++
 cogl/cogl-material.c         |   19 +++++++++++++++++++
 2 files changed, 29 insertions(+), 0 deletions(-)

commit c9702be94e60c6bf7ddef8a25125dee1a4a1c095
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu May 27 15:18:15 2010 +0100

    primitives: we were memsetting the wrong wrap mode overrides pointer
    
    In _cogl_texture_quad_multiple_primitives we weren't memsetting the
    CoglMaterialWrapModeOverrides structure we were memsetting
    &state.wrap_mode_overrides where state.wrap_mode_overrides is just a
    pointer that might potentially later point to the
    CoglMaterialWrapModeOverrides structure.

 cogl/cogl-primitives.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 20910a1215a4369c4ef5f7645c04eaa9e478010d
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed May 26 14:13:37 2010 +0100

    material: generalize how we compare simple material properties
    
    In _cogl_material_equal we were repeating the same code pattern to
    compare several of the state groups so this just adds
    simple_property_equal function that's now used instead.

 cogl/cogl-material.c |  134 +++++++++++++++++++++++---------------------------
 1 files changed, 62 insertions(+), 72 deletions(-)

commit dab4ddc7184b25274c24fcec4c1e2d9dfff5e94a
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed May 26 11:33:32 2010 +0100

    material: Make CoglMaterial responsible for depth state
    
    This redirects the legacy depth testing APIs through CoglMaterial and
    adds a new experimental cogl_material_ API for handling the depth
    testing state.
    
    This adds the following new functions:
    cogl_material_set_depth_test_enabled
    cogl_material_get_depth_test_enabled
    cogl_material_set_depth_writing_enabled
    cogl_material_get_depth_writing_enabled
    cogl_material_set_depth_test_function
    cogl_material_get_depth_test_function
    cogl_material_set_depth_range
    cogl_material_get_depth_range
    
    As with other experimental Cogl API you need to define
    COGL_ENABLE_EXPERIMENTAL_API to access them and their stability isn't
    yet guaranteed.

 cogl/cogl-context.c          |    8 +
 cogl/cogl-context.h          |    8 +
 cogl/cogl-material-private.h |   19 ++-
 cogl/cogl-material.c         |  323 ++++++++++++++++++++++++++++++++++++++++--
 cogl/cogl-material.h         |  207 +++++++++++++++++++++++++++
 cogl/cogl-types.h            |   25 +++-
 cogl/cogl.c                  |   28 +++--
 cogl/cogl.h                  |    6 +
 8 files changed, 596 insertions(+), 28 deletions(-)

commit fca054e949476d3434df28f3f0ded9a9ca37f345
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed May 26 03:07:17 2010 +0100

    cogl docs: Improve documentation for cogl_ortho
    
    cogl_ortho is one of those APIs whos style was, for better or worse,
    copied from OpenGL and for some inexplicable reason the near and far
    arguments are inconsistent with the left, right, top, bottom arguments
    because they don't take z coordinates they take a "distance" which
    should be negative for a plane behind the viewer.
    
    This updates the documentation to explain this.

 cogl/cogl.h                       |   21 +++++++++++++++++----
 doc/reference/cogl/Makefile.am    |    6 ++++--
 doc/reference/cogl/cogl_ortho.png |  Bin 0 -> 12650 bytes
 3 files changed, 21 insertions(+), 6 deletions(-)

commit a5d6c02f7c3ee085549d09150788e1209ab9de00
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed May 19 01:02:16 2010 +0100

    primitives: no longer assume _get_layers list remains valid
    
    The internal CoglMaterialLayer pointers associated with a material may
    change whenever layer properties are modified so it's no longer ok to
    assume that a list of layers returned by cogl_material_get_layers
    remains valid if the layers have been changed.

 cogl/cogl-primitives.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

commit b57f68245cc4d91229ba3ad6a3e045573c41e014
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed May 19 00:36:31 2010 +0100

    material: Adds simple breadcrumb debugging mechanism
    
    Since it can sometimes be awkward to figure out where a particular
    material came from when debugging, this adds a breadcrumb mechanism that
    lets you associate a const string with a material that may give a clue
    about its origin.

 cogl/cogl-material-private.h |   14 ++++++++++++++
 cogl/cogl-material.c         |   23 ++++++++++++++++++++++-
 2 files changed, 36 insertions(+), 1 deletions(-)

commit 6b5281401c643ace10243ce823656f0443f8967b
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue May 18 23:38:33 2010 +0100

    material: remove override options from _cogl_material_equal
    
    As a follow on to using cogl_material_copy instead of flush options this
    patch now removes the ability to pass flush options to
    _cogl_material_equal which is the final reference to the
    CoglMaterialFlushOptions mechanism.

 cogl/cogl-journal.c          |    4 +--
 cogl/cogl-material-private.h |    2 -
 cogl/cogl-material.c         |   60 +++++++++--------------------------------
 3 files changed, 14 insertions(+), 52 deletions(-)

commit 3979de69823c487ce9cd9455077ce755011fb0dc
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue May 18 22:42:49 2010 +0100

    cogl: remove _cogl_material_flush_gl_state flush options
    
    Since cogl_material_copy should now be cheap to use we can simplify
    how we handle fallbacks and wrap mode overrides etc by simply copying
    the original material and making our override changes on the new
    material. This avoids the need for a sideband state structure that has
    been growing in size and makes flushing material state more complex.
    
    Note the plan is to eventually use weak materials for these override
    materials and attach these as private data to the original materials so
    we aren't making so many one-shot materials.

 cogl/cogl-context.c          |    2 +-
 cogl/cogl-journal-private.h  |    1 -
 cogl/cogl-journal.c          |   68 ++++++++++++++++++++++++++---------------
 cogl/cogl-material-private.h |    6 +++-
 cogl/cogl-material.c         |   38 ++---------------------
 cogl/cogl-path.c             |   24 ++++++++++-----
 cogl/cogl-primitives.c       |   60 ++++++++++++++++++++++++------------
 cogl/cogl-vertex-buffer.c    |   45 +++++++++++++++++++++++++++-
 cogl/cogl.c                  |    4 +--
 9 files changed, 153 insertions(+), 95 deletions(-)

commit 1cc3ae69444d09509d90c454f22802f4d897b5b7
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Apr 8 12:21:04 2010 +0100

    CoglMaterial: Implements sparse materials design
    
    This is a complete overhaul of the data structures used to manage
    CoglMaterial state.
    
    We have these requirements that were aiming to meet:
    (Note: the references to "renderlists" correspond to the effort to
    support scenegraph level shuffling of Clutter actor primitives so we can
    minimize GPU state changes)
    
    Sparse State:
    We wanted a design that allows sparse descriptions of state so it scales
    well as we make CoglMaterial responsible for more and more state. It
    needs to scale well in terms of memory usage and the cost of operations
    we need to apply to materials such as comparing, copying and flushing
    their state. I.e. we would rather have these things scale by the number
    of real changes a material represents not by how much overall state
    CoglMaterial becomes responsible for.
    
    Cheap Copies:
    As we add support for renderlists in Clutter we will need to be able to
    get an immutable handle for a given material's current state so that we
    can retain a record of a primitive with its associated material without
    worrying that changes to the original material will invalidate that
    record.
    
    No more flush override options:
    We want to get rid of the flush overrides mechanism we currently use to
    deal with texture fallbacks, wrap mode changes and to handle the use of
    highlevel CoglTextures that need to be resolved into lowlevel textures
    before flushing the material state.
    
    The flush options structure has been expanding in size and the structure
    is logged with every journal entry so it is not an approach that scales
    well at all. It also makes flushing material state that much more
    complex.
    
    Weak Materials:
    Again for renderlists we need a way to create materials derived from
    other materials but without the strict requirement that modifications to
    the original material wont affect the derived ("weak") material. The
    only requirement is that its possible to later check if the original
    material has been changed.
    
    A summary of the new design:
    
    A CoglMaterial now basically represents a diff against its parent.
    Each material has a single parent and a mask of state that it changes.
    
    Each group of state (such as the blending state) has an "authority"
    which is found by walking up from a given material through its ancestors
    checking the difference mask until a match for that group is found.
    
    There is only one root node to the graph of all materials, which is the
    default material first created when Cogl is being initialized.
    
    All the groups of state are divided into two types, such that
    infrequently changed state belongs in a separate "BigState" structure
    that is only allocated and attached to a material when necessary.
    
    CoglMaterialLayers are another sparse structure. Like CoglMaterials they
    represent a diff against their parent and all the layers are part of
    another graph with the "default_layer_0" layer being the root node that
    Cogl creates during initialization.
    
    Copying a material is now basically just a case of slice allocating a
    CoglMaterial, setting the parent to be the source being copied and
    zeroing the mask of changes.
    
    Flush overrides should now be handled by simply relying on the cheapness
    of copying a material and making changes to it. (This will be done in a
    follow on commit)
    
    Weak material support will be added in a follow on commit.

 cogl/cogl-atlas-texture.c    |   10 +
 cogl/cogl-context.c          |   23 +-
 cogl/cogl-context.h          |   21 +-
 cogl/cogl-debug.c            |    4 +-
 cogl/cogl-debug.h            |    3 +-
 cogl/cogl-internal.h         |    9 +-
 cogl/cogl-journal.c          |    7 +-
 cogl/cogl-material-private.h |  606 +++--
 cogl/cogl-material.c         | 6220 ++++++++++++++++++++++++++++++------------
 cogl/cogl-material.h         |    6 +-
 cogl/cogl-path.c             |    7 +-
 cogl/cogl-primitives.c       |   29 +-
 cogl/cogl-vertex-buffer.c    |   21 +-
 cogl/cogl.c                  |    8 -
 14 files changed, 5024 insertions(+), 1950 deletions(-)

commit 6c8b8cef9e202ab1dd5c5a6894dcdb16c86d1b9b
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Jun 15 14:26:37 2010 +0100

    material: fix #ifdef guard around use of _TEXTURE_RECTANGLE
    
    We were incorrectly guarding the use of GL_TEXTURE_RECTANGLE_ARB with
    ifdef ARB_texture_rectangle instead of ifdef GL_ARB_texture_rectangle
    which broke test-cogl-texture-rectangle.

 cogl/cogl-material.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 26628553ed395437455ce1aaab15df7d6c4a7769
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Jun 10 14:39:20 2010 +0100

    blend-strings: removes the AUTO_COMPOSITE function enum
    
    This was mistakenly added some time ago because at some point when we
    were discussing how to handle premultiplied alpha in Clutter/Cogl we
    were considering having a magic "just do the right thing" option which
    was later abandoned.

 cogl/cogl-blend-string.c |    2 --
 cogl/cogl-blend-string.h |    1 -
 cogl/cogl-material.c     |    3 ---
 3 files changed, 0 insertions(+), 6 deletions(-)

commit 99bef3116df4c253b9acdf343a39b0404d7eb9ce
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Jun 10 14:17:42 2010 +0100

    cogl-color: add cogl_color_init_from_xyz funcs
    
    This is to try and improve API consistency. Simple cogl structures that
    don't derive from CoglObject and which can be allocated on the stack,
    such as CoglColor and CoglMatrix should all have  "_init" or
    "_init_from" functions to initialize all the structure members. (As
    opposed to a cogl_xyz_new() function for CoglObjects). CoglColor
    previously used the naming scheme "_set_from" for these initializers but
    "_set" is typically reserved for setting individual properties of a
    structure/object.
    
    This adds three _init functions:
    cogl_color_init_from_4ub
    cogl_color_init_from_4f
    cogl_color_init_from_4fv
    
    The _set_from functions are now deprecated but only with a gtk-doc
    annotation for now. This is because the cogl_color_set_from API is quite
    widely used already and so were giving a grace period before enabling a
    GCC deprecated warning just because otherwise the MX maintainers will
    complain to me that I've made their build logs look messy.

 cogl/cogl-color.c |   64 ++++++++++++++++++++++++++++++++++++++++------------
 cogl/cogl-color.h |   61 +++++++++++++++++++++++++++++++++++++++++++++++---
 2 files changed, 106 insertions(+), 19 deletions(-)

commit 49907d62678efb67bd8882151579ac13774a4896
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Jun 10 14:07:40 2010 +0100

    cogl-color: add private _cogl_color_get_rgba_4ubv API
    
    The journal logs colors as 4bytes into a vertex array and since we are
    planning to make CoglMaterial track its color using a CoglColor instead
    of a byte array this convenience will be useful for re-implementing
    _cogl_material_get_colorubv.

 cogl/cogl-color-private.h |   40 ++++++++++++++++++++++++++++++++++++++++
 cogl/cogl-color.c         |    7 +++++++
 2 files changed, 47 insertions(+), 0 deletions(-)

commit 3af1dc18b866ce84ca897b2c310fb3ab07677639
Merge: fcfff3d cce5616
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Jun 11 18:12:54 2010 +0100

    Merge branch 'wip/deform-effect'
    
    * wip/deform-effect:
      docs: Add DeformEffect and PageTurnEffect to the API reference
      effect: Add PageTurnEffect
      effect: Add DeformEffect
      offscreen-effect: Traslate the modelview with the offsets
      docs: Fix Effect subclassing section

commit fcfff3dd042e104c54f500f16e7a7fbf45409254
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Jun 11 14:47:30 2010 +0100

    cogl/winsys/cogl-eglx: Use the right egl header on 1.1
    
    Commit b0cc98fdceb introduced a #include for the egl header in
    cogl-eglx.c The header name is different under GLES 1.1 so it broke
    compilation.

 cogl/winsys/cogl-eglx.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

commit cc7722389c9b51c218a8a0ff1d3b12d6f262e78c
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Jun 11 14:37:56 2010 +0100

    cogl-program: Add cogl_program_uniform_1i to GLES
    
    The GLES 1.1 backend was missing a stub for cogl_program_uniform_1i.

 cogl/driver/gles/cogl-program.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

commit 9343cb849a531e28609db1159b8f02b4b6b51e0b
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Jun 11 14:36:38 2010 +0100

    cogl-gles2: Prefix internal GLES 2 wrapper symbols with _
    
    Some internal symbols used for the GLES 2 wrapper were accidentally
    being exported. This prepends an underscore to them so they won't
    appear in the shared library.

 cogl/driver/gles/cogl-context-driver.c           |    2 +-
 cogl/driver/gles/cogl-fixed-fragment-shader.glsl |   30 ++--
 cogl/driver/gles/cogl-fixed-vertex-shader.glsl   |   24 ++--
 cogl/driver/gles/cogl-gles2-wrapper.c            |  201 +++++++++++-----------
 cogl/driver/gles/cogl-gles2-wrapper.h            |  192 ++++++++++----------
 cogl/driver/gles/cogl-texture-driver.c           |    2 +-
 6 files changed, 226 insertions(+), 225 deletions(-)

commit 0bbf50f905f73ccb450f8bf374f2f865a9302fbb
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Apr 22 14:33:47 2010 +0100

    cogl-clip-stack: Always use the scissor when clipping
    
    Whenever a path or a rectangle is added to the clip stack it now also
    stores a screen space bounding box in the entry. Then when the clip
    stack is flushed the bounding box is first used to set up the
    scissor. That way when we eventually come to use the stencil buffer
    the clear will be affected by the scissor so we don't have to clear
    the entire buffer.

 cogl/cogl-clip-stack.c |  179 ++++++++++++++++++++++++++++++++----------------
 cogl/cogl-path.c       |    4 +
 2 files changed, 124 insertions(+), 59 deletions(-)

commit 5a71ff4cdd6e406c80d14c10e0e412236527158e
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Apr 22 14:13:52 2010 +0100

    cogl-path: Export _cogl_path_get_bounds
    
    _cogl_path_get_bounds is no longer static and is exported in
    cogl-path-private.h so that it can be used in the clip stack code. The
    old version of the function returned x/y and width/height. However
    this was mostly used to call cogl_rectangle which takes x1/y1
    x2/y2. The function has been changed to just directly return the
    second form because it is more useful. Anywhere that was previously
    using the function now just directly looks at path->path_nodes_min and
    path->path_nodes_max instead.

 cogl/cogl-path-private.h |    7 ++++
 cogl/cogl-path.c         |   72 +++++++++++++++++++++++++---------------------
 2 files changed, 46 insertions(+), 33 deletions(-)

commit a9da7d72db3328f949a123d3b2a097e88b900fab
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Apr 22 13:48:49 2010 +0100

    cogl-clip-state: Export transform_point internally to Cogl
    
    The transform_point function takes a modelview matrix, projection
    matrix and a viewport and performs all three transformations on a
    point to give a Cogl window coordinate. This is useful in a number of
    places in Cogl so this patch moves it to cogl.c and adds it to
    cogl-internal.h

 cogl/cogl-clip-state.c |   45 +++------------------------------------------
 cogl/cogl-internal.h   |    7 +++++++
 cogl/cogl.c            |   39 +++++++++++++++++++++++++++++++++++++++
 3 files changed, 49 insertions(+), 42 deletions(-)

commit 4abd42aced823a182da8353966cecb2f3783d8f7
Author: Sunil Sadasivan <sunil@kakai.com>
Date:   Thu May 13 00:59:06 2010 -0700

    cogl_texture_get_data() copies using wrong width size.
    
    For sliced 2D textures, _cogl_texture_2d_sliced_get_data() uses the
    bitmap width, instead of the rowstride, when memcpy()ing into the
    dest buffer.
    
    Signed-off-by: Robert Bragg <robert@linux.intel.com>

 cogl/cogl-texture-2d-sliced.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 98f2d2516b2e680d8b0081cc34932b4b4d9e7d3a
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Sun Jun 6 23:03:26 2010 +0100

    cogl-color: Provide setters for all the channels
    
    We only had getters for the red, green, blue and alpha channels of a
    color. This meant that, if you wanted to change, say, the alpha
    component of a color, one would need to query the red, green and blue
    channels and use set_from_4ub() or set_from_4f().
    
    Instead of this, just provide some setters for CoglColor, using the same
    naming scheme than the existing getters.

 cogl/cogl-color.c                    |   84 ++++++++++++++++++
 cogl/cogl-color.h                    |  156 ++++++++++++++++++++++++++++++++++
 doc/reference/cogl/cogl-sections.txt |   18 ++++
 3 files changed, 258 insertions(+), 0 deletions(-)

commit 896dd975d19a7df8790cbd82b7d53f13d63587e3
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Sun Jun 6 22:57:02 2010 +0100

    cogl-color: Add cogl_color_unpremultiply()
    
    For some operations on pre-multiplied colors (say, replace the alpha
    value), you need to unpremultiply the color.
    
    This patch provides the counterpart to cogl_color_premultiply().

 cogl/cogl-color.c                    |   11 +++++++++++
 cogl/cogl-color.h                    |   13 +++++++++++++
 doc/reference/cogl/cogl-sections.txt |    1 +
 3 files changed, 25 insertions(+), 0 deletions(-)

commit 2ba6ab6dbc34e04b069fb0c88ed8d392a48a7b91
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed May 26 16:32:23 2010 +0100

    cogl: Initialize the framebuffer bits on state flush
    
    The place where we actually change the framebuffer is
    _cogl_framebuffer_flush_state(), so if we changed to a new frame buffer
    we need to initialize the color bits there.
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=2094

 cogl/cogl-framebuffer.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

commit 7a7dedebd515c0064809719cdd3a7b8b9f0f1935
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed May 26 17:14:53 2010 +0100

    cogl-framebuffer: Use the FBO extension for color sizes
    
    OpenGL 3.0 deprecated querying of the GL_{RED,GREEN,BLUE}_BITS
    constants, and the FBO extension provides a mechanism to query for the
    color buffer sizes which *should* work even with the default
    framebuffer. Unfortunately, this doesn't seem to hold for Mesa - so we
    just use this for the offscreen CoglFramebuffer type, and we fall back
    to glGetIntegerv() for the onscreen one.
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=2094

 cogl/cogl-debug.c                         |    4 +-
 cogl/cogl-framebuffer.c                   |   78 +++++++++++++++++++++++++++--
 cogl/driver/gl/cogl-feature-functions.h   |    5 ++
 cogl/driver/gles/cogl-feature-functions.h |    5 ++
 4 files changed, 87 insertions(+), 5 deletions(-)

commit 3c4451cd848cd1f9bc5e4a228d415cddba7c7e81
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed May 26 16:31:18 2010 +0100

    cogl: Hide cogl_framebuffer_get_*_bits()
    
    These accessors should be private, for the time being.
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=2094

 cogl/cogl-framebuffer.c |    8 ++++----
 cogl/cogl.c             |    8 ++++----
 cogl/cogl.h             |   24 ++++++++++++------------
 3 files changed, 20 insertions(+), 20 deletions(-)

commit cce5616edff223cf81705321d58fa917c6f55d18
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Jun 9 13:53:34 2010 +0100

    cogl-material: Fix the function which sets the enable blend flag
    
    This function had two problems. Firstly it would clear the enable
    blend flag before calling pre_change_notify so that if blending was
    previously enabled the journal would end up being flushed while the
    flag was still cleared. Secondly it would call the pre change notify
    whenever blending is needed regardless of whether it was already
    needed previously.
    
    This was causing problems in test-depth.

 cogl/cogl-material.c |   11 ++++++++---
 1 files changed, 8 insertions(+), 3 deletions(-)

commit 82e80e67650ac8ec119f2d909423ab5b707206a7
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Apr 26 10:01:43 2010 +0100

    material: Avoid redundant glBindTexture calls
    
    This adds a _cogl_bind_gl_texture_transient function that should be used
    instead of glBindTexture so we can have a consistent cache of the
    textures bound to each texture unit so we can avoid some redundant
    binding.

 cogl/cogl-atlas-texture.c              |   10 ++-
 cogl/cogl-material-private.h           |   28 ++++++++
 cogl/cogl-material.c                   |  112 +++++++++++++++++++++++++++++--
 cogl/cogl-sub-texture.c                |    6 +-
 cogl/cogl-texture-2d-sliced.c          |   55 ++++++++++++----
 cogl/cogl-texture-2d.c                 |   32 +++++++--
 cogl/cogl-texture-driver.h             |    2 +
 cogl/cogl-texture-private.h            |   19 ++++++
 cogl/cogl-texture.c                    |   23 +++++++
 cogl/driver/gl/cogl-texture-driver.c   |   11 ++-
 cogl/driver/gles/cogl-texture-driver.c |    9 ++-
 11 files changed, 266 insertions(+), 41 deletions(-)

commit acc44161c108dafef63d730b585b4f68b935f6ad
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Apr 26 10:01:43 2010 +0100

    material: Adds backend abstraction for fragment processing
    
    As part of an effort to improve the architecture of CoglMaterial
    internally this overhauls how we flush layer state to OpenGL by adding a
    formal backend abstraction for fragment processing and further
    formalizing the CoglTextureUnit abstraction.
    
    There are three backends: "glsl", "arbfp" and "fixed". The fixed backend
    uses the OpenGL fixed function APIs to setup the fragment processing,
    the arbfp backend uses code generation to handle fragment processing
    using an ARBfp program, and the GLSL backend is currently only there as
    a formality to handle user programs associated with a material. (i.e.
    the glsl backend doesn't yet support code generation)
    
    The GLSL backend has highest precedence, then arbfp and finally the
    fixed. If a backend can't support some particular CoglMaterial feature
    then it will fallback to the next backend.
    
    This adds three new COGL_DEBUG options:
    * "disable-texturing" as expected should disable all texturing
    * "disable-arbfp" always make the arbfp backend fallback
    * "disable-glsl" always make the glsl backend fallback
    * "show-source" show code generated by the arbfp/glsl backends

 cogl/cogl-buffer.c                      |    2 -
 cogl/cogl-context.c                     |   38 +-
 cogl/cogl-context.h                     |   22 +-
 cogl/cogl-debug.c                       |   10 +-
 cogl/cogl-debug.h                       |    6 +-
 cogl/cogl-internal.h                    |   15 -
 cogl/cogl-journal.c                     |   11 +-
 cogl/cogl-material-private.h            |  234 ++-
 cogl/cogl-material.c                    | 2674 ++++++++++++++++++++++---------
 cogl/cogl-path.c                        |   27 +-
 cogl/cogl-pixel-buffer.c                |    2 -
 cogl/cogl-primitives.c                  |   33 +-
 cogl/cogl-vertex-buffer.c               |   36 +-
 cogl/cogl.c                             |  109 +--
 cogl/driver/gl/cogl-context-driver.h    |    2 +
 cogl/driver/gl/cogl-feature-functions.h |   57 +-
 cogl/driver/gl/cogl-program.c           |  106 +-
 cogl/driver/gl/cogl-program.h           |    2 +-
 cogl/driver/gl/cogl-shader.c            |   26 +-
 cogl/driver/gles/cogl-program.c         |   15 +-
 20 files changed, 2398 insertions(+), 1029 deletions(-)

commit 8ebf76a9a91da0bbbe1208366c1740f0c77d6392
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Jun 9 14:42:18 2010 +0100

    cogl-atlas-texture: Flush the journal before starting blit not after
    
    _cogl_atlas_texture_blit_begin binds a texture to use as the
    destination and it expects it to stay bound until
    _cogl_atlas_texture_end_blit is called. However there was a call to
    _cogl_journal_flush directly after setting up the blit state which
    could cause the wrong texture to be bound. This just moves the flush
    to before the call to _cogl_atlas_texture_blit_begin.
    
    This was breaking test-cogl-sub-texture.

 cogl/cogl-atlas-texture.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

commit 4ac3133208af1c3cc502692113e7273c5265df05
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Jun 4 16:42:30 2010 +0100

    atlas: fix some journal flushing issues
    
    1) Always flush when migrating textures out of an atlas because although
    it's true that the original texture data will remain valid in the
    original texture we can't assume that journal entries have resolved the
    GL texture that will be used. This is only true if a layer0_override has
    been used.
    
    2) Don't flush at the point of creating a new atlas simply flush
    immediately before reorganizing an atlas. This means we are now assuming
    that we will never see recursion due to atlas textures being modified
    during a journal flush. This means it's the responsibility of the
    primitives code to _ensure_mipmaps for example not the responsibility of
    _cogl_material_flush_gl_state.

 cogl/cogl-atlas-texture.c |   39 +++++++++++++++++----------------------
 1 files changed, 17 insertions(+), 22 deletions(-)

commit a21d90912905672a52b31d44dad0988f102d29ec
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Jun 4 17:06:32 2010 +0100

    primitives: make sure to update texture storage before drawing
    
    We want to make sure that the material state flushing code will never
    result in changes to the texture storage for that material. So for
    example mipmaps need to be ensured by the primitives code.
    
    Changes to the texture storage will invalidate the texture coordinates
    in the journal and we want to avoid a recursion of journal flushing.

 cogl/cogl-material.c      |    2 -
 cogl/cogl-primitives.c    |   58 +++++++++++++++++++++++++++++++++++++++++----
 cogl/cogl-vertex-buffer.c |    7 +++++
 3 files changed, 60 insertions(+), 7 deletions(-)

commit 1047c1c082dd80a840e408c89ead597ba903f614
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Apr 26 09:55:50 2010 +0100

    matrix: add cogl_matrix_equal API
    
    This adds a way to compare two CoglMatrix structures to see if they
    represent the same transformations. memcmp can't be used because a
    CoglMatrix contains private flags and padding.

 cogl/cogl-matrix.c |   45 +++++++++++++++++++++++++++++++++++++++++++++
 cogl/cogl-matrix.h |   15 +++++++++++++++
 2 files changed, 60 insertions(+), 0 deletions(-)

commit 8ee099d204f2deb7da85b6fc93a1f28704767e35
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Wed Nov 18 00:26:09 2009 +0000

    cogl-material: Use fragment programs instead of texture env combiners
    
                          THIS IS A WORK IN PROGRESS
    
    Mesa is building a big shader when using ARB_texture_env_combine. The
    idea is to bypass that computation, do it ourselves and cache the
    compiled program in a CoglMaterial.
    
    For now that feature can be enabled by setting the COGL_PIPELINE
    environment variable to "arbfp". COGL_SHOW_FP_SOURCE can be set to a non
    empty string to dump the fragment program source too.
    
    TODO:
      * fog (really easy, using OPTION)
      * support tex env combiner operands, DOT3, ADD_SIGNED, INTERPOLATE
        combine modes (need refactoring the generation of temporary
        variables) (not too hard)
      * alpha testing for GLES 2.0?

 cogl/cogl-material-private.h |   11 ++
 cogl/cogl-material.c         |  354 +++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 363 insertions(+), 2 deletions(-)

commit 56dd71dba0aafeb6c0f1c62a021ede1034e5af98
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Sat Nov 14 14:59:59 2009 +0000

    cogl: Introduce private feature flags and check for ARB_fp
    
    The Cogl context has now a feature_flags_private enum that will allow us
    to query and use OpenGL features without exposing them in the public
    API.
    
    The ARB_fragment_program extension is the first user of those flags.
    Looking for this extension only happens in the gl driver as the gles
    drivers will not expose them.
    
    One can use _cogl_features_available_private() to check for the
    availability of such private features.
    
    While at it, reindent cogl-internal.h as described in CODING_STYLE.

 cogl/cogl-context.c                       |    1 +
 cogl/cogl-context.h                       |    5 ++-
 cogl/cogl-feature-private.h               |    3 ++
 cogl/cogl-internal.h                      |    8 +++++
 cogl/cogl.c                               |   11 +++++++
 cogl/driver/gl/cogl-context-driver.c      |    2 +-
 cogl/driver/gl/cogl-context-driver.h      |    2 +-
 cogl/driver/gl/cogl-feature-functions.h   |   42 ++++++++++++++++++++++++----
 cogl/driver/gl/cogl.c                     |   25 +++++++++++------
 cogl/driver/gles/cogl-context-driver.c    |    2 +-
 cogl/driver/gles/cogl-context-driver.h    |    2 +-
 cogl/driver/gles/cogl-feature-functions.h |    6 +++-
 cogl/driver/gles/cogl.c                   |    8 +++--
 13 files changed, 91 insertions(+), 26 deletions(-)

commit 8836c868a433bfae7296e1cb0a9ffb75c952d391
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Jun 8 17:26:26 2010 +0100

    cogl-gles2-wrapper: Fix some cases using the wrong texture unit
    
    At two places in cogl_wrap_prepare_for_draw it was trying to loop over
    the texture units to flush some state. However it was retrieving the
    texture unit pointer using w->active_texture_unit instead of the loop
    index so it would end up with the wrong state.
    
    Also in glEnableClientState it was using the active unit instead of
    the client active unit.

 cogl/driver/gles/cogl-gles2-wrapper.c |    7 +++----
 1 files changed, 3 insertions(+), 4 deletions(-)

commit 2e52c5f67bae148b0061d26f8924cef685ff9e62
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Sat Jun 5 21:05:23 2010 +0100

    doc: Some fixes for the Cogl documentation
    
     • 3 general fixes (typos, copy/paste),
     • ignore cogl-object-private.h,
     • cogl_fixed_atani() was in reality cogl_fixed_atan(), fixed in commit
       43564f05.
     • Fix the cogl-vector section: sections must have a </SECTION> tag at
       the end. Also the cogl-vector section was added in the middle of the
       cogl-buffer one. Let's shiffle it out and add that </SECTION> tag.

 cogl/cogl-types.h                    |    6 +++---
 doc/reference/cogl/Makefile.am       |    1 +
 doc/reference/cogl/cogl-sections.txt |   13 +++++++------
 3 files changed, 11 insertions(+), 9 deletions(-)

commit 7fa011b037e77fea4eb998c8d3950487bcf1cb5e
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Fri Jun 4 17:17:45 2010 +0100

    build: Don't distribute clutter-version.h and cogl-defines.h
    
    As with a351ff2af earlier, distributing headers generated at configure
    time conflicts with out of tree builds as the distributed headers will
    be included first instead of including the generated ones.

 cogl/Makefile.am |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 7dbcb82622f97daa26a7000b0924c7c82bfe1e81
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Jun 1 19:27:07 2010 +0100

    cogl-object-private.h: white space cleanup
    
    simply replaces tabs with spaces

 cogl/cogl-object-private.h |  101 ++++++++++++++++++++++----------------------
 1 files changed, 51 insertions(+), 50 deletions(-)

commit d02d40bf61009bf67d80742c61ddd64c3aa327d3
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Jun 1 18:06:47 2010 +0100

    CoglObject: Adds a COGL_OBJECT macro for casting
    
    This adds a convenience COGL_OBJECT macro for casting CoglObject
    subclasses to (CoglObject *) pointers.

 cogl/cogl-object.h |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

commit 5af3ead3a2bbd18f4b1ee35eabffd20d740749c1
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu May 27 22:24:56 2010 +0100

    CoglObject: Adds cogl_object_{get,set}_user_data
    
    This provides a mechanism for associating private data with any
    CoglObject. We expect Clutter will use this to associate weak materials
    with normal materials.

 cogl/Makefile.am                     |    3 +
 cogl/cogl-handle.h                   |    2 +-
 cogl/cogl-object-private.h           |  205 ++++++++++++++++++++++++++++
 cogl/cogl-object.c                   |  246 ++++++++++++++++++++++++++++++++++
 cogl/cogl-object.h                   |  245 +++++++++++++---------------------
 cogl/cogl-util.c                     |   61 ---------
 cogl/cogl.h                          |    1 +
 doc/reference/cogl/cogl-sections.txt |    6 +
 8 files changed, 554 insertions(+), 215 deletions(-)

commit ef08c6369a0bb2a261fa16bf4323a5d524d5d788
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Jun 1 17:53:42 2010 +0100

    cogl-path: Adds missing cogl_is_path prototype
    
    This adds a missing cogl_is_path prototype to the public cogl-path.h
    header.

 cogl/cogl-path.h                     |   12 ++++++++++++
 doc/reference/cogl/cogl-sections.txt |    1 +
 2 files changed, 13 insertions(+), 0 deletions(-)

commit 368dc483723ae213594df202b6651234c0c419fa
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Jun 1 17:34:59 2010 +0100

    cogl-path: Renames cogl_path_get/set cogl_get/set_path
    
    These aren't path methods so aren't consistent with the
    cogl_object_method naming style we are aiming for.

 cogl/cogl-clip-state.c               |    2 +-
 cogl/cogl-path.c                     |   47 +++++++++++++++++----------------
 cogl/cogl-path.h                     |    8 +++---
 doc/reference/cogl/cogl-sections.txt |    4 +-
 4 files changed, 31 insertions(+), 30 deletions(-)

commit 63eeaa86ea7ab9879c39de35ab985cc935057c53
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Thu Jun 3 11:33:54 2010 +0100

    build: Distribute cogl-object.h
    
    cogl-object.h is a new public header. Include it in the right list of
    source files to have it distributed.

 cogl/Makefile.am |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

commit cd7c1dca765ce773a383df6c4469744bd298dc36
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Jun 1 14:14:41 2010 +0100

    docs: Miscellaneous fixes to silence gtk-doc

 cogl/cogl.h |   29 ++++++++++++++---------------
 1 files changed, 14 insertions(+), 15 deletions(-)

commit 595271ac877e4dffe0599aeaf3d61224215a4ec3
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri May 28 01:01:28 2010 +0100

    clip_stack: Remove use of CoglHandle in the CoglClipStack API
    
    This replaces the use of CoglHandle with strongly type CoglClipStack *
    pointers instead. The only function not converted for now is
    cogl_is_clip_stack which will be done in a later commit.

 cogl/cogl-clip-stack.c |   64 ++++++++++++++++++++---------------------------
 cogl/cogl-clip-stack.h |   26 ++++++++++---------
 2 files changed, 41 insertions(+), 49 deletions(-)

commit 653d1a32542f5be81f136cb51ad1de2d39f88739
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri May 28 00:51:40 2010 +0100

    bitmap: Remove use of CoglHandle in the CoglBitmap API
    
    This replaces the use of CoglHandle with strongly type CoglBitmap *
    pointers instead. The only function not converted for now is
    cogl_is_bitmap which will be done in a later commit.

 cogl/cogl-bitmap-private.h |    4 ++--
 cogl/cogl-bitmap.c         |    6 +++---
 cogl/cogl-bitmap.h         |    8 +++++---
 3 files changed, 10 insertions(+), 8 deletions(-)

commit 817c1cddccf1286e3773ab74a43892484b2bd75f
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri May 28 00:35:47 2010 +0100

    path: Remove use of CoglHandle in the CoglPath API
    
    This replaces the use of CoglHandle with strongly type CoglPath *
    pointers instead. The only function not converted for now is
    cogl_is_path which will be done in a later commit.

 cogl/cogl-path-private.h |    5 +--
 cogl/cogl-path.c         |   52 +++++++++++++++++++++------------------------
 cogl/cogl-path.h         |   41 +++++++++++++++++++----------------
 cogl/cogl.c              |   10 ++++----
 4 files changed, 53 insertions(+), 55 deletions(-)

commit 5f8fadeb1c4956741ab76eb0f19d440a7a50280f
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Jun 1 11:50:02 2010 +0100

    cogl: avoid ‘_cogl_xyz_handle_new’ defined but not used warnings
    
    This patch makes it so that only the backwards compatibility
    COGL_HANDLE_DEFINE macro defines a _cogl_xyz_handle_new function. The
    new COGL_OBJECT_DEFINE macro only defines a _cogl_xyz_object_new
    function.

 cogl/cogl-object.h |   18 ++++++++++--------
 1 files changed, 10 insertions(+), 8 deletions(-)

commit db7cc5b1b416557419b85e06114ed89c7e263039
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Thu May 27 13:30:07 2010 +0100

    analysis: Fix some CoglFixed API
    
    2 functions where not correctly defined/documented, use the actual
    symbol name instead.

 cogl/cogl-fixed.h |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

commit 45a947d226c5d81c2fc8b8d716c9b014d86f4113
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Thu May 27 13:28:43 2010 +0100

    analysis: Use static functions when possible
    
    It's best to ensure the functions only used in one compilation unit are
    marked as static so GCC can inline them if it feels like it.

 cogl/cogl-clip-stack.c |    2 +-
 cogl/cogl-clip-state.c |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 338a37d468dc3d3fc523930b4eeab56b7664b864
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Thu May 27 12:18:29 2010 +0100

    analysis: Make all function declarations be protoypes
    
    It's valid C to declare a function omitting it prototype, but it seems
    to be a good practise to always declare a function with its
    corresponding prototype.

 cogl/cogl-context.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

commit 58b0028b52f5e9d1eda9747ee262284ba8d9c73b
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Thu May 27 08:28:29 2010 +0100

    analysis: FALSE/0 used in pointer context
    
    While this is totally fine (0 in the pointer context will be converted
    in the right internal NULL representation, which could be a value with
    some bits to 1), I believe it's clearer to use NULL in the pointer
    context.
    
    It seems that, in most case, it's more an overlook than a deliberate
    choice to use FALSE/0 as NULL, eg. copying a _COGL_GET_CONTEXT (ctx, 0)
    or a g_return_val_if_fail (cond, 0) from a function returning a
    gboolean.

 cogl/cogl-buffer.c            |    2 +-
 cogl/cogl-journal.c           |    2 +-
 cogl/cogl-path.c              |    4 ++--
 cogl/cogl-texture-2d-sliced.c |    2 +-
 cogl/cogl-vertex-buffer.c     |   14 +++++++-------
 cogl/driver/gl/cogl-program.c |    2 +-
 6 files changed, 13 insertions(+), 13 deletions(-)

commit 3aaef72e50a1934cc54dec4322cb838295d12c70
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu May 27 23:40:40 2010 +0100

    buffer: Remove use of CoglHandle in the CoglBuffer API
    
    This replaces the use of CoglHandle with strongly type CoglBuffer *
    pointers instead. The only function not converted for now is
    cogl_is_buffer which will be done in a later commit.

 cogl/cogl-buffer-private.h |    1 -
 cogl/cogl-buffer.c         |   62 +++++++++++++++++--------------------------
 cogl/cogl-buffer.h         |   58 +++++++++++++++++++++--------------------
 3 files changed, 55 insertions(+), 66 deletions(-)

commit 7bcea1c64eede09582cf0bbfafaec48cac42744c
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu May 27 23:31:40 2010 +0100

    Start eradicating the CoglHandle typedef
    
    CoglHandle is a common source of complaints and confusion because people
    expect a "handle" to be some form of integer type with some indirection
    to lookup the corresponding objects as opposed to a direct pointer.
    
    This patch starts by renaming CoglHandle to CoglObject * and creating
    corresponding cogl_object_ APIs to replace the cogl_handle ones.
    
    The next step though is to remove all use of CoglHandle in the Cogl APIs
    and replace with strongly typed pointer types such as CoglMaterial * or
    CoglTexture * etc also all occurrences of COGL_INVALID_HANDLE can just
    use NULL instead.
    
    After this we will consider switching to GTypeInstance internally so we
    can have inheritance for our types and hopefully improve how we handle
    bindings.
    
    Note all these changes will be done in a way that maintains the API and
    ABI.

 cogl/cogl-handle.h |  140 +++-------------------------------------
 cogl/cogl-object.h |  183 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 cogl/cogl-types.h  |   21 ++++++
 cogl/cogl-util.c   |   43 +++++++++----
 4 files changed, 244 insertions(+), 143 deletions(-)

commit 0f32fb4acd0835ecc24803a81a2d1a77174a920a
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri May 28 18:12:53 2010 +0100

    cogl-texture-2d: Regenerate the mipmaps when the texture is modified
    
    When the texture is modified by cogl_texture_set_region, it wasn't
    setting mipmaps_dirty so it would never update the mipmaps.

 cogl/cogl-texture-2d.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

commit 4c1a12d824d58876ee70ddd2913bb1580bc7b81a
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Sep 25 19:04:13 2009 +0100

    [material] fix _set_alpha_test_function: missing a glEnable(GL_ALPHA_TEST)
    
    Since the default alpha test function of GL_ALWAYS is equivalent to
    GL_ALPHA_TEST being disabled we don't need to worry about Enabling/Disabling
    it when flushing material state, instead it's enough to leave it always
    enabled.  We will assume that any driver worth its salt wont incur any
    additional cost for glEnable (GL_ALPHA_TEST) + GL_ALWAYS vs
    glDisable (GL_ALPHA_TEST).
    
    This patch simply calls glEnable (GL_ALPHA_TEST) in cogl_create_context

 cogl/cogl-context.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

commit 5a1cffd0bb8036bd48deab24b9e6d84d8149a7ba
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu May 27 14:54:14 2010 +0100

    cogl-vertex-buffer: Don't disable any texture coord arrays
    
    The enabled state of the texture coord arrays is cached in the cogl
    context so there is no need to disable them when we've finished
    rendering a vbo.

 cogl/cogl-vertex-buffer.c |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)

commit 97fd2c368e96d5475cda8872f36fadc6f14ef0a4
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu May 27 14:51:44 2010 +0100

    cogl: Record new enabled arrays in _cogl_disable_other_texcoord_arrays
    
    When _cogl_disable_other_texcoord_arrays is called it disables the
    neccessary texcoord arrays and then removes the bits for the disabled
    arrays in ctx->texcoord_arrays_enabled. However none of the places
    that call the function then set any bits in ctx->texcoord_arrays_enabled
    so the arrays would never get marked and they would never get disabled
    again.
    
    This patch just changes it so that _cogl_disable_other_texcoord_arrays
    also sets the corresponding bits in ctx->texcoord_arrays_enabled.

 cogl/cogl-internal.h |    3 ++-
 cogl/cogl.c          |    1 +
 2 files changed, 3 insertions(+), 1 deletions(-)

commit aaf5600b2d4e1a37b52ba45126b0f31bf2e270f9
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon May 24 12:40:11 2010 +0100

    cogl: Use a CoglBitmask to store the list of used texcoord arrays
    
    Instead of directly using a guint32 to store a bitmask for each used
    texcoord array, it now stores them in a CoglBitmask. This removes the
    limitation of 32 layers (although there are still other places in Cogl
    that imply this restriction). To disable texcoord arrays code should
    call _cogl_disable_other_texcoord_arrays which takes a bitmask of
    texcoord arrays that should not be disabled. There are two extra
    bitmasks stored in the CoglContext which are used temporarily for this
    function to avoid allocating a new bitmask each time.
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=2132

 cogl/cogl-context.c       |    8 +++++++-
 cogl/cogl-context.h       |    8 +++++++-
 cogl/cogl-internal.h      |    5 ++++-
 cogl/cogl-journal.c       |    7 +++----
 cogl/cogl-path.c          |    3 ++-
 cogl/cogl-primitives.c    |    7 +++----
 cogl/cogl-vertex-buffer.c |   10 ++++++----
 cogl/cogl.c               |   41 +++++++++++++++++++++++------------------
 8 files changed, 55 insertions(+), 34 deletions(-)

commit 4fb784d111605ac629e1ed63bfb9ff744beb3209
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu May 20 17:31:42 2010 +0100

    cogl: Add an internal CoglBitmask type
    
    This implements a growable array of bits called CoglBitmask. The
    CoglBitmask is intended to be cheap if less than 32 bits are used. If
    more bits are required it will allocate a GArray. The type is meant to
    be allocated on the stack but because it can require additional
    resources it also has a destroy function.
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=2132

 cogl/Makefile.am    |    2 +
 cogl/cogl-bitmask.c |  257 +++++++++++++++++++++++++++++++++++++++++++++++++++
 cogl/cogl-bitmask.h |  223 ++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 482 insertions(+), 0 deletions(-)

commit 52cbc93b1870b7734363024318603fbe67030126
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu May 20 00:40:24 2010 +0100

    cogl-material: Fix the count of the number of layers
    
    Previously the counter for the number of layers was only updated
    whenever the texture handle for a layer changes. However there are
    many other ways for a new layer to be created for example by setting a
    layer combine constant. Also by default the texture on a layer is
    COGL_INVALID_HANDLE so if the application tries to create an explicit
    layer with no texture by calling cogl_material_set_layer with
    COGL_INVALID_HANDLE then it also wouldn't update the count.
    
    This patch fixes that by incrementing the count in
    cogl_material_get_layer instead. This function is called by all
    functions that may end up creating a layer so it seems like the most
    appropriate place.
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=2132

 cogl/cogl-material.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

commit 992d5f7fb616870b2f1bce0ac2122cfa4bfe34c9
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu May 20 00:16:49 2010 +0100

    cogl-vertex-buffer: Don't disable layers with no texture coords
    
    It should be quite acceptable to use a texture without defining any
    texture coords. For example a shader may be in use that is doing
    texture lookups without referencing the texture coordinates. Also it
    should be possible to replace the vertex colors using a texture layer
    without a texture but with a constant layer color.
    
    enable_state_for_drawing_buffer no longer sets any disabled layers in
    the overrides. Instead of counting the number of units with texture
    coordinates it now keeps them in a mask. This means there can now be
    gaps in the list of enabled texture coordinate arrays. To cope with
    this, the Cogl context now also stores a mask to track the enabled
    arrays. Instead of code manually iterating each enabled array to
    disable them, there is now an internal function called
    _cogl_disable_texcoord_arrays which disables a given mask.
    
    I think this could also fix potential bugs when a vertex buffer has
    gaps in the texture coordinate attributes that it provides. For
    example if the vertex buffer only had texture coordinates for layer 2
    then the disabling code would not disable the coordinates for layers 0
    and 1 even though they are not used. This could cause a crash if the
    previous data for those arrays is no longer valid.
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=2132

 cogl/cogl-context.c       |    2 +-
 cogl/cogl-context.h       |    3 ++-
 cogl/cogl-internal.h      |    3 +++
 cogl/cogl-journal.c       |   14 +++++---------
 cogl/cogl-path.c          |    9 ++-------
 cogl/cogl-primitives.c    |   13 ++++---------
 cogl/cogl-vertex-buffer.c |   21 ++++++---------------
 cogl/cogl.c               |   33 ++++++++++++++++++++++++++-------
 8 files changed, 49 insertions(+), 49 deletions(-)

commit 99c7e51145ad751ae1c4b171e7af687e82247e59
Merge: 94c1614 af591f5
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon May 24 10:42:03 2010 +0100

    Merge branch 'wip/state-machine'
    
    * wip/state-machine:
      Do not use wildcards in test-state
      script: Implement State deserialization
      state: added a "target-state" property
      state: documented data structures
      Add State interactive tests to the ignore file
      state: Documentation and introspection annotation fixes
      state: Minor coding style fixes
      state: Clean up the header's documentation
      state: Constify StateKey accessors
      Do not include clutter.h from a Clutter header file
      state-machine: made clutter_state_change take a boolean animate argument
      state-machine: use clutter_timeline_get_progress
      state-machine: add completed signal
      state machine: added state machine
    
    Conflicts:
    	.gitignore

commit 94c1614164b720b2c06e7252688795137e16cd70
Merge: 6696b4f 676c8a5
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri May 21 14:38:37 2010 +0100

    Merge branch 'wip/framebuffer-bits'
    
    * wip/framebuffer-bits:
      Implement accessors for the color bits in a framebuffer

commit 6696b4ff4331b49128bbd933cb72b72d5b10ba20
Merge: fa22ee0 1eddbe8
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri May 21 10:55:09 2010 +0100

    Merge branch 'wip/constraints'
    
    * wip/constraints: (24 commits)
      Add the Cogl API reference to the fixxref extra directories
      Document the internal MetaGroup class
      Remove the construct-only flag from ActorMeta:name
      doc: Remove gtk-doc annotations from the json-glib copy
      doc: Fix parameter documentation
      Add named modifiers for Action and Constraint
      Remove a redundant animation
      Set the stage resizable in test-constraints
      Use a 9 grid for the constraints test
      Miscellaneous documentation fixes
      docs: Document animating action and constraint properties
      docs: Document BindConstraint and AlignConstraint
      constraint: Rename BindConstraint:bind-axis
      constraints: Add AlignConstraint
      tests: Add a constraints interactive test
      constraint: Add BindConstraint
      actor: Implement Animatable
      animation: Use the new Animatable API for custom properties
      animatable: Add custom properties to Animatable
      constraint: Add ClutterConstraint base class
      ...
    
    Conflicts:
    	configure.ac

commit fa22ee0e8d7cab726be9534bd7afd851e944ea5c
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu May 20 14:54:44 2010 +0100

    math: Adds an experimental cogl_vector3_* API
    
    This adds a math utility API for handling 3 component, single precision
    float vectors with the following; mostly self explanatory functions:
    
    cogl_vector3_init
    cogl_vector3_init_zero
    cogl_vector3_equal
    cogl_vector3_equal_with_epsilon
    cogl_vector3_copy
    cogl_vector3_free
    cogl_vector3_invert
    cogl_vector3_add
    cogl_vector3_subtract
    cogl_vector3_multiply_scalar
    cogl_vector3_divide_scalar
    cogl_vector3_normalize
    cogl_vector3_magnitude
    cogl_vector3_cross_product
    cogl_vector3_dot_product
    cogl_vector3_distance
    
    Since the API is experimental you will need to define
    COGL_ENABLE_EXPERIMENTAL_API before including cogl.h if you want to use
    the API.

 cogl/Makefile.am                     |    2 +
 cogl/cogl-vector.c                   |  284 ++++++++++++++++++++++++++
 cogl/cogl-vector.h                   |  367 ++++++++++++++++++++++++++++++++++
 cogl/cogl.h                          |    2 +
 doc/reference/cogl/cogl-docs.xml.in  |    1 +
 doc/reference/cogl/cogl-sections.txt |   20 ++
 6 files changed, 676 insertions(+), 0 deletions(-)

commit af591f5c09e0e2a1ce91d94d1d0a08cfb5a54c6b
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu May 20 12:37:56 2010 +0100

    cogl-texture-2d: Optimise _cogl_texture_2d_is_pot
    
    This takes the simple algorithm from here:
    
    http://graphics.stanford.edu/~seander/bithacks.html#DetermineIfPowerOf2
    
    This avoids a loop and is much faster.

 cogl/cogl-texture-2d.c |   15 +--------------
 1 files changed, 1 insertions(+), 14 deletions(-)

commit 76d5a1a8589cec5670c7fd2fea351f58049346ba
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Oct 13 15:27:06 2009 +0100

    Stubs out _cogl_xlib_handle_event
    
    This stubs out an xlib event handling mechanism for Cogl. The intention
    is for Clutter to use this to forward all x11 events to Cogl. As we move
    winsys functionality down into Cogl, Cogl will become responsible for
    handling a number of X events: ConfigureNotify events for onscreen
    framebuffers, swap events and Damage events for cogl_x11_texture_pixmap.

 cogl/Makefile.am        |    6 +++-
 cogl/cogl-internal.h    |   39 +++++++++++++++++++++++++++++++++
 cogl/winsys/cogl-xlib.c |   54 +++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 97 insertions(+), 2 deletions(-)

commit 1ed1d4fc6a3faa0a26ea06d0e741549c20010ef2
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Oct 8 12:08:21 2009 +0100

    build: expose automake conditionals for cogl winsys
    
    Expose the ./configured window system/backend options to the Cogl
    automake files via some new SUPPORT_XYZ conditionals.

 cogl/Makefile.am |   38 +++++++++++++++++++++++++-------------
 1 files changed, 25 insertions(+), 13 deletions(-)

commit 5f94a6bf6e0c3712523b5a06d7d147d43e7cccbd
Author: Brian Tarricone <brian@kakai.com>
Date:   Thu Mar 25 20:55:31 2010 -0700

    eglx: implement cogl_get_proc_address()
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=2124

 cogl/winsys/cogl-eglx.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

commit 1eddbe8e1b89bbd73e7401168268862b865a6ddb
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed May 12 18:57:52 2010 +0100

    cogl-material: Set the blend equation even if blend funcs are the same
    
    Previously it would only try to set the blend equation if the RGB and
    alpha blending functions were different. However it's completely valid
    to use a non-standard blending function when the functions are the
    same. This patch moves the blending equation to outside the if
    statement.

 cogl/cogl-material.c |   28 +++++++++++++---------------
 1 files changed, 13 insertions(+), 15 deletions(-)

commit 9ca68bc37a760c1c8e186316929fa99f3098b392
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed May 12 15:19:09 2010 +0100

    cogl-material: Set blend constant even if alpha and rgb factors are the same
    
    Previously it would only set the blend constant if glBlendFuncSeparate
    was used but it is perfectly acceptable to use the blend constant when
    the same factor is used for each. It now sets the blend constant
    whenever one of the factors would use the constant.

 cogl/cogl-material.c |   26 ++++++++++++++++++++++----
 1 files changed, 22 insertions(+), 4 deletions(-)

commit 837eb54db491bed833f0e57c152e97f3b0658961
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed May 12 17:56:25 2010 +0100

    cogl-blend-string: Don't split combined blend statements into two
    
    When a single statement is used to specify the factors for both the
    RGB and alpha parts it previously split up the statement into
    two. This works but it ends up unnecessarily using glBlendFuncSeparate
    when glBlendFunc would suffice.
    
    For example, the blend statement
    
     RGBA = ADD(SRC_COLOR*(SRC_COLOR), DST_COLOR*(1-SRC_COLOR))
    
    would get split into the two statements
    
     RGBA = ADD(SRC_COLOR*(SRC_COLOR[RGB]), DST_COLOR*(1-SRC_COLOR[RGB]))
     A    = ADD(SRC_COLOR*(SRC_COLOR[A]), DST_COLOR*(1-SRC_COLOR[A]))
    
    That translates to:
    
     glBlendFuncSeparate (GL_SRC_COLOR, GL_ONE_MINUS_SRC_COLOR,
                          GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
    
    This patch makes it so that arg_to_gl_blend_factor can handle the
    combined RGBA mask instead. That way the single statement gets
    translated to the equivalent call:
    
     glBlendFunc (GL_SRC_COLOR, GL_ONE_MINUS_SRC_COLOR);

 cogl/cogl-material.c |   16 +++++-----------
 1 files changed, 5 insertions(+), 11 deletions(-)

commit 8193e12546caba1a9799e04b1d4400b59b95de60
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Apr 22 11:58:52 2010 +0100

    cogl-path: Use true copy-on-write semantics
    
    Previously a path copy was implemented such that only the array of
    path nodes was shared with the source and the rest of the data is
    copied. This was so that the copy could avoid a deep copy if the
    source path is appended to because the copy keeps track of its own
    length. This optimisation is probably not worthwhile because it makes
    the copies less cheap. Instead the CoglPath struct now just contains a
    single pointer to a new CoglPathData struct which is separately
    ref-counted. When the path is modified it will be copied if the ref
    count on the data is not 1.

 cogl/cogl-path-private.h |   20 ++--
 cogl/cogl-path.c         |  249 ++++++++++++++++++++++------------------------
 2 files changed, 125 insertions(+), 144 deletions(-)

commit 582bd409dd98f367065866df4e83cf420da0d756
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date:   Sat May 8 16:58:14 2010 -0400

    cogl-framebuffer: Flush journal when creating fbo
    
    Since framebuffer state is not flushed prior to replaying the journal,
    the trick of marking the framebuffer dirty prior to calling
    glBindFramebuffer() doesn't work... the outstanding journal entries
    will get replayed to the newly created framebuffer.
    
    Fix this by flushing the journal as well.
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=2110
    
    Signed-off-by: Robert Bragg <robert@linux.intel.com>

 cogl/cogl-framebuffer.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

commit 11532f79ec9283bbf27e13b5909402585a94464d
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu May 6 14:15:04 2010 +0100

    cogl-clip-stack: Set *stencil_used_p when the stack is empty
    
    If the clip stack is empty then _cogl_clip_stack_flush exits
    immediately. This was missing out the assignment of *stencil_used_p at
    the bottom of the function. If a path is then used after the clip is
    cleared then it would think it needs to merge with the clip so the
    stencil would not be cleared correctly.

 cogl/cogl-clip-stack.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

commit 676c8a5fd4e0a9126a1a735f9e89513e5614a838
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Apr 26 18:08:45 2010 +0100

    Implement accessors for the color bits in a framebuffer
    
    Instead of using cogl_get_bitmasks() to query the GL machinery for the
    size of the color bits, we should store the values inside the
    CoglFramebuffer object and query them the first time we set the framebuffer
    as the current one.
    
    Currently, cogl_get_bitmasks() is re-implemented in terms of
    cogl_framebuffer_get_*_bits(). As soon as we are able to expose the
    CoglOnscreen framebuffer object in the public API we'll be able to
    deprecate cogl_get_bitmasks() altogether.
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=2094

 cogl/cogl-context.c             |    1 +
 cogl/cogl-framebuffer-private.h |   18 ++++++++++++
 cogl/cogl-framebuffer.c         |   57 +++++++++++++++++++++++++++++++++++++++
 cogl/cogl.c                     |   24 +++++-----------
 cogl/cogl.h                     |   52 +++++++++++++++++++++++++++++++++++
 5 files changed, 135 insertions(+), 17 deletions(-)

commit 36298bbe307385f3fc7e08e80281e0df188952fe
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed May 5 12:05:15 2010 +0100

    gles: Fix the functions names for the GL_OES_framebuffer_object ext
    
    In 91cde78a7 I accidentally changed the function names that get looked
    up for the framebuffer extension under GLES so that they didn't have
    any suffix. The spec for extension specifies that they should have the
    OES suffix.

 cogl/driver/gles/cogl-feature-functions.h |    5 +----
 1 files changed, 1 insertions(+), 4 deletions(-)

commit 6243a5dc340875597cf64b8e1a6c1eb5840b2b72
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Mon May 3 20:41:17 2010 +0200

    debug: Use G_UNLIKELY in the tests
    
    Debugging code is not meant to be run in the nominal code path. Use
    G_UNLIKELY to be reduce the number of bubbles in the instruction
    pipeline.
    
    Took the opportunity to re-indent the macros.

 cogl/cogl-debug.h |   20 ++++++++++----------
 1 files changed, 10 insertions(+), 10 deletions(-)

commit dc4c0e3d3e7a6471a932640554fdd2f171d38f1f
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Apr 30 12:10:16 2010 +0100

    debug: wrap glClear calls with the GE macro
    
    This adds a GE macro wrapper around our calls to glClear so we can
    print a warning for any errors reported by the driver.

 cogl/cogl.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit ebe86985fd505d549c8acbfb45ff8d195ebe3eb5
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Apr 26 12:41:26 2010 +0100

    cogl-texture-2d-sliced: Use the converted bitmap when uploading
    
    When uploading texture data the cogl-texture-2d-sliced backend was
    using _cogl_texture_prepare_for_upload to create a bitmap suitable for
    upload but then it was using the original bitmap instead of the new
    bitmap for the data. This was causing any format conversions performed
    by cogl_texture_prepare_for_upload to be ignored.
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=2059

 cogl/cogl-texture-2d-sliced.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

commit dae6ab7d7918a98975897e3196e4f7dc4da9c128
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Apr 26 12:30:37 2010 +0100

    cogl-texture: Don't attempt to use GL to convert formats under GLES
    
    In commit abe91784c4b I changed cogl-texture so that it would use the
    OpenGL mechanism to specify a different internal texture format from
    the image format so that it can do the conversion instead of
    Cogl. However under GLES the internal format and the image format must
    always be the same and it only supports a limited set of formats. This
    patch changes _cogl_texture_prepare_for_upload so that it does the
    conversion using the cogl bitmap code when compiling for GLES.
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=2059

 cogl/cogl-texture.c |   32 ++++++++++++++++++++++++++++++++
 1 files changed, 32 insertions(+), 0 deletions(-)

commit 3e88dee1a3bdb55e9bd712452d636adf6a9547f7
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Apr 27 16:38:07 2010 +0100

    cogl-material: Fix the check to prevent using too many layers
    
    There was a check at the bottom of the loop which sets up the state
    for each of the layers so that it would break from the loop when the
    maximum number of layers is reached. However after doing this it would
    not increment 'i'. 'i' is later used to disable the remaining layers
    so it would end up disabling the last layer it just set up.
    
    This patch moves the check to be part of the loop condition so that
    the check is performed after incrementing 'i'.
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=2064

 cogl/cogl-material.c |    9 ++++-----
 1 files changed, 4 insertions(+), 5 deletions(-)

commit d5d98500be9ff7c63bd233c4c968f9b61bc54b9d
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Apr 27 16:35:35 2010 +0100

    cogl-material: Fix the warning for when too many layers are used
    
    The warning displayed when too many layers are used had an off-by-one
    error so that it would display even if exactly the maximum number is
    used. There was also a missing space at the end of the line in the
    message which looked wrong when displayed on the terminal.
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=2064

 cogl/cogl-material.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

commit edf2bf3d8a5d9a37c9221092fd14a45fd4ef2fca
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Apr 22 18:14:40 2010 +0100

    cogl-path: Make cogl_path_arc_rel static
    
    cogl_path_arc_rel was never in any public headers so it isn't part of
    the public API. It also has a slightly inconsistent name because the
    rest of the relative path functions are called cogl_path_rel_*. This
    patch makes it static for now to make it more obvious that it isn't
    public. The name has changed to _cogl_path_rel_arc.

 cogl/cogl-path.c |   56 +++++++++++++++++++++++++++---------------------------
 1 files changed, 28 insertions(+), 28 deletions(-)

commit 2b8abbdaa8af0b340bbbae82aeafe0feccb28710
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Apr 22 18:03:57 2010 +0100

    cogl-path: Add documentation for the angles of cogl_path_arc
    
    This adds documentation for how Cogl interprets the angles given to
    cogl_path_arc.

 cogl/cogl-path.h |   10 ++++++++--
 1 files changed, 8 insertions(+), 2 deletions(-)

commit 308ca6cb14393c553ee77b15b6cf7d0089df7af8
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Apr 21 22:36:43 2010 +0100

    cogl-path: Fix the truncation when adding to a copied path
    
    If a path is copied and then appended to, the copy needs to have the
    last sub path truncated so that it fits in the total path size in case
    the original path was modified. However the path size check was broken
    so if the copied path had more than one sub path it would fail.

 cogl/cogl-path.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 9d93e250d19334062e6a560f67431c5d49292dd2
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Apr 20 14:58:57 2010 +0100

    cogl-clip-stack: Use orientation of the polygon to set clip planes
    
    Previously the clip stack code was trying to detect when the
    orientation of the on-screen rectangle had changed by checking if the
    order of the y-coordinates on the left edge was different from the
    order the x-coordinates on the top edge. This doesn't work for some
    rotations which was causing the clip planes to clip the wrong side of
    the line. This patch makes it detect the orientation by calculating
    the signed area which is a standard computer graphics algorithm.
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=2079

 cogl/cogl-clip-stack.c |   43 ++++++++++++++++++++++++-------------------
 1 files changed, 24 insertions(+), 19 deletions(-)

commit 17a1595cb0776e20e9fa6708190e65ee3af7b995
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Apr 21 11:49:57 2010 +0100

    cogl-path: Document how a shape is filled
    
    This adds some documentation to cogl_path_fill() describing the fill
    rule Cogl uses.

 cogl/cogl-path.h                 |   28 +++++++++++++++++++++++-----
 doc/reference/cogl/Makefile.am   |    6 +++++-
 doc/reference/cogl/fill-rule.png |  Bin 0 -> 3121 bytes
 3 files changed, 28 insertions(+), 6 deletions(-)

commit 8afea984376fb4aa4af6ee5e3886473b352ebd9f
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Apr 19 18:54:40 2010 +0100

    cogl-path: Don't try to union sub paths
    
    When drawing a path with only a single sub path, Cogl uses the
    'even-odd' fill rule which means that if a part of the path intersects
    with another part then the intersection would be inverted. However
    when combining sub paths it treats them as separate paths and then
    unions them together. This doesn't match the semantics of the even-odd
    rule in SVG and Cairo. This patch makes it so that a new sub path is
    just drawn as another triangle fan so that it will continue to invert
    the stencil buffer. This is also much simpler and more efficient as
    well as being more correct.
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=2088

 cogl/cogl-path.c |   24 ------------------------
 1 files changed, 0 insertions(+), 24 deletions(-)

commit 7f629f626e25ac7a4678f205c5f0e568582308f8
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Mar 26 22:40:53 2010 +0000

    cogl_read_pixels: Always use GL_RGBA/GL_UNSIGNED_BYTE under GLES
    
    Under GLES glReadPixels is documented to only support GL_RGBA with
    GL_UNSIGNED_BYTE and an implementation specfic format which can be
    fetched with glGet, GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES and
    GL_IMPLEMENTATION_COLOR_READ_TYPE_OES. This patch makes it always read
    using GL_RGBA and GL_UNSIGNED_BYTE and then convert the results if
    neccessary.
    
    This has some room for improvement because it doesn't attempt to use
    the implementation specific format. Also the conversion is somewhat
    wasteful because there are currently no cogl_bitmap_* functions to
    convert without allocating a new buffer so it ends up doing an
    intermediate copy.
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=2057

 cogl/cogl.c |   67 +++++++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 58 insertions(+), 9 deletions(-)

commit f944d419a3cb1e893fd9f0166ca17b23d9463452
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Mar 26 22:34:56 2010 +0000

    cogl-bitmap: Fix converting formats with and without alpha channels
    
    _cogl_bitmap_convert_format_and_premult was failing when converting
    from RGBA to RGB and vice versa. _cogl_bitmap_fallback_convert
    converts without altering the premult status so when choosing a new
    format it would copy over the premult bit. However, it did this
    regardless of whether the new format had an alpha channel so when
    converting from RGBA_8888_PRE to RGB_888 it would end up inventing a
    new meaningless format which would be RGB_888_PRE. This patch makes it
    avoid copying the premult flag if the destination has no alpha. It
    doesn't matter if it copies when the source format has no alpha
    because it will always be unset.
    
    _cogl_bitmap_convert_format_and_premult was also breaking when
    converting from RGBA_8888_PRE to RGB_888 because it would think
    RGB_888 is unpremultiplied and try to convert but then
    _cogl_bitmap_fallback_premult wouldn't know how to do the conversion.
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=2057

 cogl/cogl-bitmap-fallback.c |    8 ++++++--
 cogl/cogl-bitmap.c          |   10 +++++++++-
 2 files changed, 15 insertions(+), 3 deletions(-)

commit 30c4678ff4c7fdcded9756333cd220a67ba26125
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Apr 15 10:58:28 2010 +0100

    cogl: Implement retained clip stacks
    
    This adds three new internal API functions which can be used to retain
    the clip stack state and restore it later:
    
     _cogl_get_clip_stack
     _cogl_set_clip_stack
     _cogl_clip_stack_copy
    
    The functions are currently internal and not yet used but we may want
    to make them public in future to replace the cogl_clip_stack_save()
    and cogl_clip_stack_restore() APIs.
    
    The get function just returns the handle to the clip stack at the top
    of the stack of stacks and the set function just replaces it.
    
    The copy function makes a cheap copy of an existing stack by taking a
    reference to the top stack entry. This ends up working like a deep
    copy because there is no way to modify entries of a stack but it
    doesn't actually copy the data.

 cogl/cogl-clip-stack.c |   26 ++++++++++++++++++++++++++
 cogl/cogl-clip-stack.h |   19 +++++++++++++++++++
 cogl/cogl-clip-state.c |   34 ++++++++++++++++++++++++++++++++++
 cogl/cogl-clip-state.h |   28 ++++++++++++++++++++++++++++
 4 files changed, 107 insertions(+), 0 deletions(-)

commit 84b87e811e0152dfd6a55930c62d1211f808b8e1
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Apr 15 10:27:43 2010 +0100

    cogl-clip-stack: Convert to be a CoglHandle
    
    CoglClipStacks can now be reference counted via a CoglHandle. The
    ClipClipState now stores handles in the list rather than CoglClipStack
    pointers.

 cogl/cogl-clip-stack.c |   28 +++++++++++++++++++++-------
 cogl/cogl-clip-stack.h |   17 ++++++-----------
 cogl/cogl-clip-state.c |   16 ++++++++--------
 3 files changed, 35 insertions(+), 26 deletions(-)

commit f6f375cb369266b34a5c766b6d964356981dd852
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Apr 14 19:41:08 2010 +0100

    Separate out CoglClipStackState from cogl-clip-stack.c
    
    CoglClipStackState has now been renamed to CoglClipState and is moved
    to a separate file. CoglClipStack now just maintains a stack and
    doesn't worry about the rest of the state. CoglClipStack sill contains
    the code to flush the stack to GL.

 cogl/Makefile.am                |    2 +
 cogl/cogl-clip-stack.c          |  349 +++-------------------------------
 cogl/cogl-clip-stack.h          |   37 +++--
 cogl/cogl-clip-state.c          |  405 +++++++++++++++++++++++++++++++++++++++
 cogl/cogl-clip-state.h          |   50 +++++
 cogl/cogl-framebuffer-private.h |    6 +-
 cogl/cogl-framebuffer.c         |   10 +-
 cogl/cogl-path.c                |    4 +-
 cogl/cogl.c                     |    2 +-
 9 files changed, 519 insertions(+), 346 deletions(-)

commit 07a76aacfbdb8ac1d1e19c18eaacf41b87cee1a5
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Apr 14 18:47:25 2010 +0100

    cogl-slip-stack: Store clip window rect entries in Cogl coordinates
    
    When glScissor is called it needs to pass coordinates in GL's
    coordinate space where the origin is the bottom left. Previously this
    conversion was done before storing the window rect in the clip
    stack. However this might make it more difficult if we want to be able
    to grab a handle to a clip stack and use it in different circumstances
    later. This patch moves the coordinate conversion to inside the clip
    state flushing code.

 cogl/cogl-clip-stack.c |   57 +++++++++++++++++++++++++++---------------------
 1 files changed, 32 insertions(+), 25 deletions(-)

commit 2f631464743400ee4447ac872012fa85cc2c30ff
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Apr 14 15:42:57 2010 +0100

    cogl-clip-stack: Store window rect entries as ints not floats
    
    The window rectangles are passed in as integers so there is no point
    in converting them to floats when storing a stack entry for them.

 cogl/cogl-clip-stack.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

commit 71fdc54dde65f87f55a7c3da795a5b3d81ee06e2
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Apr 14 13:17:26 2010 +0100

    cogl-clip-stack: Use reference counted stack entries
    
    The stack is now stored as a list of reference counted entries.
    Instead of using a GList, each entry now contains a link with a
    reference to its parent. The idea is that this would allow copying
    stacks with a shared ancestry.
    
    Previously the code flushed the state by finding the bottom of the
    stack and then applying each entry by walking back up to the top. This
    is slightly harder to do now because the list is no longer
    doubly-linked. However I don't think it matters which order the
    entries are applied so I've just changed it to apply them in reverse
    order.
    
    There was also a restriction that if ever the stencil buffer is used
    then we could no longer use clip planes for any subsequent entries. I
    don't think this makes sense because it should always work as long as
    it doesn't attempt to use the clip planes more than once. I've
    therefore removed the restriction.

 cogl/cogl-clip-stack.c |  207 ++++++++++++++++++++++++++++++++++--------------
 1 files changed, 149 insertions(+), 58 deletions(-)

commit ecf65cd4a5c904918aba419db2461c9a4527c83b
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Apr 13 17:26:03 2010 +0100

    cogl-atlas-texture: Fix a memory leak
    
    The CoglAtlasTexture struct was not being freed in
    _cogl_atlas_texture_free so there would be a small leak whenever a
    texture was destroyed.
    
    Thanks to Robert Bragg for spotting this.

 cogl/cogl-atlas-texture.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

commit 3769862323f71fc04d8352e32fc385b1c916e37f
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Apr 1 18:35:32 2010 +0100

    cogl-material: Use CLAMP_TO_EDGE for WRAP_AUTOMATIC unless overriden
    
    CoglMaterial now sets GL_CLAMP_TO_EDGE if WRAP_MODE_AUTOMATIC is used
    unless it is overridden when the material is flushed. The primitives
    are still expected to expose repeat semantics so no user visible
    changes are made. The idea is that drawing non-repeated textures is
    the most common case so if we make clamp_to_ege the default then we
    will reduce the number of times we have to override the
    material. Avoiding overrides will become important if the overriding
    mechanism is replaced with one where the primitive is expected to copy
    the material and change that instead.

 cogl/cogl-material.c      |    6 +-
 cogl/cogl-primitives.c    |  104 ++++++++++++++++++++++++++++++++++----------
 cogl/cogl-vertex-buffer.c |   35 ++++++++++++++-
 3 files changed, 115 insertions(+), 30 deletions(-)

commit e007bc5358e19612bb5c8176733c1d1bb9dd66c8
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Apr 1 11:31:33 2010 +0100

    cogl-material: Add support for setting the wrap mode for a layer
    
    Previously, Cogl's texture coordinate system was effectively always
    GL_REPEAT so that if an application specifies coordinates outside the
    range 0→1 it would get repeated copies of the texture. It would
    however change the mode to GL_CLAMP_TO_EDGE if all of the coordinates
    are in the range 0→1 so that in the common case that the whole texture
    is being drawn with linear filtering it will not blend in edge pixels
    from the opposite sides.
    
    This patch adds the option for applications to change the wrap mode
    per layer. There are now three wrap modes: 'repeat', 'clamp-to-edge'
    and 'automatic'. The automatic map mode is the default and it
    implements the previous behaviour. The wrap mode can be changed for
    the s and t coordinates independently. I've tried to make the
    internals support setting the r coordinate but as we don't support 3D
    textures yet I haven't exposed any public API for it.
    
    The texture backends still have a set_wrap_mode virtual but this value
    is intended to be transitory and it will be changed whenever the
    material is flushed (although the backends are expected to cache it so
    that it won't use too many GL calls). In my understanding this value
    was always meant to be transitory and all primitives were meant to set
    the value before drawing. However there were comments suggesting that
    this is not the expected behaviour. In particular the vertex buffer
    drawing code never set a wrap mode so it would end up with whatever
    the texture was previously used for. These issues are now fixed
    because the material will always set the wrap modes.
    
    There is code to manually implement clamp-to-edge for textures that
    can't be hardware repeated. However this doesn't fully work because it
    relies on being able to draw the stretched parts using quads with the
    same values for tx1 and tx2. The texture iteration code doesn't
    support this so it breaks. This is a separate bug and it isn't
    trivially solved.
    
    When flushing a material there are now extra options to set wrap mode
    overrides. The overrides are an array of values for each layer that
    specifies an override for the s, t or r coordinates. The primitives
    use this to implement the automatic wrap mode. cogl_polygon also uses
    it to set GL_CLAMP_TO_BORDER mode for its trick to render sliced
    textures. Although this code has been added it looks like the sliced
    trick has been broken for a while and I haven't attempted to fix it
    here.
    
    I've added a constant to represent the maximum number of layers that a
    material supports so that I can size the overrides array. I've set it
    to 32 because as far as I can tell we have that limit imposed anyway
    because the other flush options use a guint32 to store a flag about
    each layer. The overrides array ends up adding 32 bytes to each flush
    options struct which may be a concern.
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=2063

 cogl/cogl-journal-private.h          |    2 +
 cogl/cogl-journal.c                  |    7 +
 cogl/cogl-material-private.h         |   56 +++++++--
 cogl/cogl-material.c                 |  221 ++++++++++++++++++++++++++++++++-
 cogl/cogl-material.h                 |  104 ++++++++++++++++
 cogl/cogl-primitives.c               |  174 ++++++++++++++++++++++-----
 cogl/cogl-texture-2d-sliced.c        |    4 -
 cogl/cogl-texture-2d.c               |    4 -
 doc/reference/cogl/cogl-sections.txt |    5 +
 9 files changed, 524 insertions(+), 53 deletions(-)

commit fb7f1a7fd63c537d473a33557603bcd63745398e
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Mar 25 17:29:22 2010 +0000

    Split the wrap mode of _cogl_texture_set_wrap_mode into three
    
    GL supports setting different wrap modes for the s, t and r
    coordinates so we should design the backend interface to support that
    also. The r coordinate is not currently used by any of the backends
    but we might as well have it to make life easier if we ever add
    support for 3D textures.
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=2063

 cogl/cogl-atlas-texture.c             |   13 +++++++++----
 cogl/cogl-primitives.c                |   16 ++++++++++++----
 cogl/cogl-sub-texture.c               |   13 +++++++++----
 cogl/cogl-texture-2d-private.h        |    3 ++-
 cogl/cogl-texture-2d-sliced-private.h |    3 ++-
 cogl/cogl-texture-2d-sliced.c         |   31 ++++++++++++++++++++-----------
 cogl/cogl-texture-2d.c                |   26 ++++++++++++++++----------
 cogl/cogl-texture-private.h           |   13 +++++++++----
 cogl/cogl-texture.c                   |   11 ++++++++---
 9 files changed, 87 insertions(+), 42 deletions(-)

commit 908be0480cb8f1d9f3da50a962e9064f2252b261
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Apr 1 20:06:30 2010 +0100

    cogl: Make private members really hard to accidentally use
    
    CoglColor and CoglMatrix have public declarations with private members
    so that we are free to change the implementation but the structures
    could still be allocated on the stack in applications. However it's
    quite easy not to realise the members are private and then access them
    directly. This patch wraps the members in a macro which redefines the
    symbol name when including the header outside of the clutter source.
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=2065

 cogl/cogl-matrix.h |    9 +++++----
 cogl/cogl-types.h  |   24 +++++++++++++++++-------
 2 files changed, 22 insertions(+), 11 deletions(-)

commit dedb753d3075353939840a13ab3c6e850dabfc6f
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Apr 12 15:16:58 2010 +0100

    CoglMatrix: Don't make the matrix fields private
    
    The xx, yx, zx etc fields are meant to be read-only but they were
    marked as private with the gtk-doc annotation. This patch moves the
    private marker so that the 16 float member fields are public but the
    type, inverted matrix, flags and padding are not.

 cogl/cogl-matrix.h |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

commit 232c960b67f1802b6bfe61ae70f3b6df5332762d
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Apr 12 12:06:03 2010 +0100

    Fix indentation in CoglMatrix
    
    The members of CoglMatrix were indented by 4 characters instead of 2.

 cogl/cogl-matrix.h |   54 ++++++++++++++++++++++++++--------------------------
 1 files changed, 27 insertions(+), 27 deletions(-)

commit 067a520f26116759fc9717bbbb74b4c2c1590092
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Apr 8 17:43:27 2010 +0100

    cogl: Support retained paths
    
    This adds three new API calls:
    
      CoglHandle cogl_path_get()
      void cogl_path_set(CoglHandle path)
      CoglHandle cogl_path_copy(CoglHandle path)
    
    All of the fields relating to the path have been moved from the Cogl
    context to a new CoglPath handle type. The cogl context now just
    contains a CoglPath handle. All of the existing path commands
    manipulate the data in the current path handle. cogl_path_new now just
    creates a new path handle and unrefs the old one.
    
    The path handle can be stored for later with cogl_path_get. The path
    can then be copied with cogl_path_copy. Internally it implements
    copy-on-write semantics with an extra optimisation that it will only
    copy the data if the new path is modified, but not if the original
    path is modified. It can do this because the only way to modify a path
    is by appending to it so the copied path is able to store its own path
    length and only render the nodes up to that length. For this to work
    the copied path also needs to keep its own copies of the path extents
    because the parent path may change these by adding nodes.
    
    The clip stack now uses the cogl_path_copy mechanism to store paths in
    the stack instead of directly copying the data. This should save some
    memory and processing time.

 cogl/Makefile.am                     |    1 +
 cogl/cogl-clip-stack.c               |   37 +---
 cogl/cogl-context.c                  |    8 +-
 cogl/cogl-context.h                  |    7 +-
 cogl/cogl-internal.h                 |   28 ---
 cogl/cogl-path-private.h             |   96 ++++++++++
 cogl/cogl-path.c                     |  333 +++++++++++++++++++++++++---------
 cogl/cogl-path.h                     |   46 +++++
 doc/reference/cogl/cogl-sections.txt |    3 +
 9 files changed, 413 insertions(+), 146 deletions(-)

commit d1353b3c1a6ec020ce74c30255fc3777313571c1
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Apr 8 14:37:01 2010 +0100

    cogl: renames cogl_multiply_matrix to cogl_transform
    
    Although cogl_multiply_matrix was consistent with OpenGL, after further
    consideration it was agreed that cogl_transform is a better name. Given
    that it's in the global cogl_ namespace cogl_transform seems more self
    documenting.

 cogl/cogl.c                          |    2 +-
 cogl/cogl.h                          |    4 ++--
 doc/reference/cogl/cogl-sections.txt |    1 +
 3 files changed, 4 insertions(+), 3 deletions(-)

commit 58e4ec07988433f6f17a1a45cd96ce25aa641aca
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Apr 1 13:15:12 2010 +0100

    docs: This improves the documentation for cogl_push_framebuffer
    
    This adds an example of how to setup a Clutter style 2D coordinate space
    and clarifies what state is owned by a framebuffer. (projection,
    modelview, viewport and clip stack)
    
    When we expose more cogl_framebuffer API this example will hopefully be
    migrated into a more extensive introduction to using framebuffers.

 cogl/cogl.h |   85 ++++++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 75 insertions(+), 10 deletions(-)

commit c49aeed2bf2de0e59b15a8a8f45d290fded6bc77
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Mar 19 09:55:30 2010 +0000

    cogl: move cogl_set_source* funcs into cogl.c
    
    Previously cogl_set_source and cogl_set_source_texture were in
    cogl-material.c and the cogl_set_source_color* funcs were in
    cogl-color.c. Originally this was because cogl.c was duplicated between
    the GL and GLES backends and we didn't want to add to the amount of
    duplicated code, but these files have since been consolidated into one
    cogl.c.

 cogl/cogl-color.c    |   24 --------------------
 cogl/cogl-material.c |   36 ------------------------------
 cogl/cogl.c          |   60 +++++++++++++++++++++++++++++++++++++++++++++++++-
 3 files changed, 59 insertions(+), 61 deletions(-)

commit 6c8c0714f67866c42e1d7b4e1e5da60f16647f77
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Mar 19 09:30:59 2010 +0000

    cogl: adds convenience cogl_multiply_matrix function
    
    Quite often it's desirable to be able to multiply the current modelview
    matrix by an arbitrary matrix. Currently though you have to first
    explicitly call cogl_get_modelview_matrix to get the current modelview
    into a temporary variable, then you need to multiply it with your matrix
    using cogl_matrix_multiply and finally use cogl_set_modelview_matrix to
    make the result be the new modelview. This new convenience function lets
    more efficiently skip the first get and last set steps.

 cogl/cogl.c |    8 ++++++++
 cogl/cogl.h |   11 +++++++++++
 2 files changed, 19 insertions(+), 0 deletions(-)

commit 1f715ad153faf54b8c772ac7e3b770316f6d79f0
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Mar 19 09:16:08 2010 +0000

    cogl: rename cogl_enable to _cogl_enable
    
    Every now and then someone sees the cogl_enable API and gets confused,
    thinking its public API so this renames the symbol to be clear that it's
    is an internal only API.

 cogl/cogl-context.c       |    2 +-
 cogl/cogl-internal.h      |    4 +-
 cogl/cogl-journal.c       |    6 ++--
 cogl/cogl-material.c      |    2 +-
 cogl/cogl-path.c          |   10 ++++----
 cogl/cogl-primitives.c    |    2 +-
 cogl/cogl-vertex-buffer.c |    2 +-
 cogl/cogl.c               |   52 ++++++++++++++++++++++----------------------
 8 files changed, 40 insertions(+), 40 deletions(-)

commit 40155e64d8c604de5b120dfe75330e632b517955
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Mar 25 09:45:59 2010 +0000

    docs: Add 1.4 index to the API references
    
    Now that master has branched for the 1.3 development cycle.

 doc/reference/cogl/cogl-docs.xml.in |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

commit 93754d8dc04d7841e0b51e1750f68f015c9e4e71
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Mar 25 09:33:26 2010 +0000

    Use begin/end macros in cogl-primitives.h
    
    Protect the people using a C++ compiler from the dark abyss of C code.
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=2049

 cogl/cogl-primitives.h |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

commit e573eaf2ed8c928d9cfa5a7db393cf00b75dba67
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date:   Tue Mar 16 20:38:53 2010 -0400

    Switch texture units before calling _cogl_texture_set_filters()
    
    When setting up the state for a layer, we need to switch texture
    units before we do anything that might bind the texture, or
    we'll bind the wrong texture to the previous unit.
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=2033
    
    Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>

 cogl/cogl-material.c |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)

commit e1aec639800046236605a27f662744b245e72c7b
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date:   Wed Mar 17 15:39:55 2010 -0400

    Set pixel store parameters before calling glGetTexImage
    
    We need to set up the rowstride and alignment properly in
    CoglTexture2D before reading texture data.
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=2036
    
    Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>

 cogl/cogl-texture-2d.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

commit 89519a1d33e51d6db06c89a9e9d43dd7473210de
Author: Colin Walters <walters@verbum.org>
Date:   Fri Mar 12 17:39:27 2010 -0500

    Return and warn if a handle's refcount is <= 0
    
    This makes it more likely consumers notice invalid unreferences.
    GObject has the same assertion.
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=2029
    
    Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>

 cogl/cogl-util.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

commit 9fc9aa562e7ca0def0d1118802860333e3cbdb89
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Mar 9 16:37:52 2010 -0800

    cogl-texture-2d: Determine format before checking texture support
    
    When entering cogl_texture_2d_new_from_bitmap the internal format can
    be COGL_PIXEL_FORMAT_ANY. This was causing _cogl_texture_2d_can_create
    to use an invalid GL format type. Mesa apparently ignores this but it
    was causing errors when Cogl is compiled with debugging under NVidia.
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=2026

 cogl/cogl-texture-2d.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

commit 770ca1311d5c4638b435ece90843f89b4d3fa0d7
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date:   Mon Mar 1 16:49:04 2010 -0500

    Fix checks for out-of-bounds coordinates and repeats
    
    Add a return result from CoglTexture.transform_quad_coords_to_gl(),
    so that we can properly determine the nature of repeats in
    the face of GL_TEXTURE_RECTANGLE_ARB, where the returned
    coordinates are not normalized.
    
    The comment "We also work out whether any of the texture
    coordinates are outside the range [0.0,1.0]. We need to do
    this after calling transform_coords_to_gl in case the texture
    backend is munging the coordinates (such as in the sub texture
    backend)." is disregarded and removed, since it's actually
    the virtual coordinates that determine whether we repeat,
    not the GL coordinates.
    
    Warnings about disregarded layers are used in all cases where
    applicable, including for subtextures.
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=2016
    
    Signed-off-by: Neil Roberts <neil@linux.intel.com>

 cogl/cogl-atlas-texture.c     |    2 +-
 cogl/cogl-primitives.c        |   40 ++++++++++++++--------------------------
 cogl/cogl-sub-texture.c       |    9 ++++-----
 cogl/cogl-texture-2d-sliced.c |   22 +++++++++++++++++++---
 cogl/cogl-texture-2d.c        |   15 ++++++++++++---
 cogl/cogl-texture-private.h   |   18 +++++++++++++++---
 cogl/cogl-texture.c           |    2 +-
 7 files changed, 66 insertions(+), 42 deletions(-)

commit ec9adfd1d400e3c783cd75ea2893575585f08ce3
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date:   Mon Mar 1 14:04:20 2010 -0500

    CoglTexture2DSliced: Handle TEXTURE_RECTANGLE_ARB
    
    In _cogl_texture_2d_sliced_foreach_sub_texture_in_region(), don't
    assert that the target is GL_TEXTURE_2D; instead conditionalize
    normalization on the target.
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=2015

 cogl/cogl-texture-2d-sliced.c |   22 +++++++++++++---------
 1 files changed, 13 insertions(+), 9 deletions(-)

commit edecd668c86486409dce168655a3ea0f9b675df2
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Mar 3 17:02:51 2010 +0000

    Update stb_image.c
    
    Upstream "released" 1.18.

 cogl/stb_image.c | 1605 +++++++++++++++++++++++++++++-------------------------
 1 files changed, 862 insertions(+), 743 deletions(-)

commit c3917c8da587f7ad0e5a6ffe6b383355fcf2821b
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Mar 2 02:07:40 2010 +0000

    cogl debug: Adds missing guards around debug cogl_args[]
    
    commit 511e5ceb516dc accidentally removed the #ifdef COGL_ENABLE_DEBUG
    guards around the "cogl-debug" and "cogl-no-debug" cogl_args[] which
    this patch restores.

 cogl/cogl-debug.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

commit d32b4b1c127cf019787e6cf0dae608f9175a88da
Merge: d29b3c8 84223c8
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Mar 2 12:25:45 2010 +0000

    Merge branch 'eglnative-update'
    
    * eglnative-update:
      eglnative: Add CLUTTER_FB_DEVICE
      eglnative: Update implementation

commit d29b3c8f81d235aeac648df330bbd1a3acedfee6
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date:   Mon Mar 1 13:54:03 2010 -0500

    Fall back in _cogl_texture_2d_new_from_bitmap()
    
    Just like _cogl_texture_2d_new_with_size(),
    _cogl_texture_2d_new_from_bitmap() needs to check if an unsliced
    texture can be created at the given size, or if hardware
    limitations prevent this.
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=2014
    
    Signed-off-by: Neil Roberts <neil@linux.intel.com>

 cogl/cogl-texture-2d.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

commit 84223c855db7b574240b76a0eb2925f99f7cde15
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Mar 1 18:08:41 2010 +0000

    cogl: Support any format in cogl_read_pixels
    
    cogl_read_pixels() no longer asserts that the format passed in is
    RGBA_8888 but instead accepts any format. The appropriate GL enums for
    the format are passed to glReadPixels so OpenGL should be perform a
    conversion if neccessary.
    
    It currently assumes glReadPixels will always give us premultiplied
    data. This will usually be correct because the result of the default
    blending operations for Cogl ends up with premultiplied data in the
    framebuffer. However it is possible for the framebuffer to be in
    whatever format depending on what CoglMaterial is used to render to
    it. Eventually we may want to add a way for an application to inform
    Cogl that the framebuffer is not premultiplied in case it is being
    used for some special purpose.
    
    If the requested format is not premultiplied then Cogl will convert
    it. The tests have been changed to read the data as premultiplied so
    that they won't be affected by the conversion. Picking in Clutter has
    been changed to use COGL_PIXEL_FORMAT_RGB_888 because it doesn't need
    the alpha component. clutter_stage_read_pixels is left unchanged
    because the application can't specify a format for that so it seems to
    make most sense to store unpremultiplied values.
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=1959

 cogl/cogl.c |   84 ++++++++++++++++++++++++++++++++++++++++-------------------
 cogl/cogl.h |    8 +++++-
 2 files changed, 64 insertions(+), 28 deletions(-)

commit 672a77453f93c53df8a3855fbdfcd09d1861fe89
Merge: 72f4ddf 984c19a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Mar 1 15:37:12 2010 +0000

    Merge branch 'stage-min-size-rework'
    
    * stage-min-size-rework:
      docs: Update minimum size accessors
      actor: Use the TOPLEVEL flag instead of a type check
      [stage] Use min-width/height props for min size

commit 72f4ddf5324137f451bd54192f687f2eae8efee4
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Mar 1 12:56:10 2010 +0000

    Remove mentions of the FSF address
    
    Since using addresses that might change is something that finally
    the FSF acknowledge as a plausible scenario (after changing address
    twice), the license blurb in the source files should use the URI
    for getting the license in case the library did not come with it.
    
    Not that URIs cannot possibly change, but at least it's easier to
    set up a redirection at the same place.
    
    As a side note: this commit closes the oldes bug in Clutter's bug
    report tool.
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=521

 cogl/cogl-atlas-texture-private.h         |    6 +++---
 cogl/cogl-atlas-texture.c                 |    6 +++---
 cogl/cogl-atlas.c                         |    6 +++---
 cogl/cogl-atlas.h                         |    6 +++---
 cogl/cogl-bitmap-fallback.c               |    6 +++---
 cogl/cogl-bitmap-pixbuf.c                 |    6 +++---
 cogl/cogl-bitmap-private.h                |    6 +++---
 cogl/cogl-bitmap.c                        |    6 +++---
 cogl/cogl-bitmap.h                        |    6 +++---
 cogl/cogl-blend-string.c                  |    6 +++---
 cogl/cogl-blend-string.h                  |    6 +++---
 cogl/cogl-buffer-private.h                |    6 +++---
 cogl/cogl-buffer.c                        |    6 +++---
 cogl/cogl-buffer.h                        |    6 +++---
 cogl/cogl-clip-stack.c                    |    6 +++---
 cogl/cogl-clip-stack.h                    |    6 +++---
 cogl/cogl-color.c                         |    6 +++---
 cogl/cogl-color.h                         |    6 +++---
 cogl/cogl-context.c                       |    6 +++---
 cogl/cogl-context.h                       |    6 +++---
 cogl/cogl-debug.c                         |    6 +++---
 cogl/cogl-debug.h                         |    6 +++---
 cogl/cogl-deprecated.h                    |    6 +++---
 cogl/cogl-feature-private.c               |    6 +++---
 cogl/cogl-feature-private.h               |    6 +++---
 cogl/cogl-fixed.c                         |    6 +++---
 cogl/cogl-fixed.h                         |    6 +++---
 cogl/cogl-framebuffer-private.h           |    6 +++---
 cogl/cogl-framebuffer.c                   |    6 +++---
 cogl/cogl-handle.h                        |    6 +++---
 cogl/cogl-internal.h                      |    6 +++---
 cogl/cogl-journal-private.h               |    6 +++---
 cogl/cogl-journal.c                       |    6 +++---
 cogl/cogl-material-private.h              |    6 +++---
 cogl/cogl-material.c                      |    6 +++---
 cogl/cogl-material.h                      |    6 +++---
 cogl/cogl-matrix-mesa.c                   |    6 +++---
 cogl/cogl-matrix-mesa.h                   |    6 +++---
 cogl/cogl-matrix-private.h                |    6 +++---
 cogl/cogl-matrix-stack.c                  |    6 +++---
 cogl/cogl-matrix-stack.h                  |    6 +++---
 cogl/cogl-matrix.c                        |    6 +++---
 cogl/cogl-matrix.h                        |    6 +++---
 cogl/cogl-offscreen.h                     |    6 +++---
 cogl/cogl-path.c                          |    6 +++---
 cogl/cogl-path.h                          |    6 +++---
 cogl/cogl-pixel-buffer-private.h          |    6 +++---
 cogl/cogl-pixel-buffer.c                  |    6 +++---
 cogl/cogl-pixel-buffer.h                  |    6 +++---
 cogl/cogl-primitives.c                    |    6 +++---
 cogl/cogl-primitives.h                    |    6 +++---
 cogl/cogl-profile.h                       |    6 +++---
 cogl/cogl-shader.h                        |    6 +++---
 cogl/cogl-spans.c                         |    6 +++---
 cogl/cogl-spans.h                         |    6 +++---
 cogl/cogl-sub-texture-private.h           |    6 +++---
 cogl/cogl-sub-texture.c                   |    6 +++---
 cogl/cogl-texture-2d-private.h            |    6 +++---
 cogl/cogl-texture-2d-sliced-private.h     |    6 +++---
 cogl/cogl-texture-2d-sliced.c             |    6 +++---
 cogl/cogl-texture-2d.c                    |    6 +++---
 cogl/cogl-texture-driver.h                |    6 +++---
 cogl/cogl-texture-private.h               |    6 +++---
 cogl/cogl-texture.c                       |    6 +++---
 cogl/cogl-texture.h                       |    6 +++---
 cogl/cogl-types.h                         |    6 +++---
 cogl/cogl-util.c                          |    6 +++---
 cogl/cogl-util.h                          |    6 +++---
 cogl/cogl-vertex-buffer-private.h         |    6 +++---
 cogl/cogl-vertex-buffer.c                 |    6 +++---
 cogl/cogl-vertex-buffer.h                 |    6 +++---
 cogl/cogl.c                               |    6 +++---
 cogl/cogl.h                               |    6 +++---
 cogl/driver/gl/cogl-context-driver.c      |    6 +++---
 cogl/driver/gl/cogl-context-driver.h      |    6 +++---
 cogl/driver/gl/cogl-defines.h.in          |    6 +++---
 cogl/driver/gl/cogl-feature-functions.h   |    6 +++---
 cogl/driver/gl/cogl-program.c             |    6 +++---
 cogl/driver/gl/cogl-program.h             |    6 +++---
 cogl/driver/gl/cogl-shader-private.h      |    6 +++---
 cogl/driver/gl/cogl-shader.c              |    6 +++---
 cogl/driver/gl/cogl-texture-driver.c      |    6 +++---
 cogl/driver/gl/cogl.c                     |    6 +++---
 cogl/driver/gles/cogl-context-driver.c    |    6 +++---
 cogl/driver/gles/cogl-context-driver.h    |    6 +++---
 cogl/driver/gles/cogl-defines.h.in        |    6 +++---
 cogl/driver/gles/cogl-feature-functions.h |    6 +++---
 cogl/driver/gles/cogl-gles2-wrapper.c     |    6 +++---
 cogl/driver/gles/cogl-gles2-wrapper.h     |    6 +++---
 cogl/driver/gles/cogl-program.c           |    6 +++---
 cogl/driver/gles/cogl-program.h           |    6 +++---
 cogl/driver/gles/cogl-shader-private.h    |    6 +++---
 cogl/driver/gles/cogl-shader.c            |    6 +++---
 cogl/driver/gles/cogl-texture-driver.c    |    6 +++---
 cogl/driver/gles/cogl.c                   |    6 +++---
 cogl/winsys/cogl-eglnative.c              |    6 +++---
 cogl/winsys/cogl-eglx.c                   |    6 +++---
 cogl/winsys/cogl-fruity.c                 |    6 +++---
 cogl/winsys/cogl-glx.c                    |    6 +++---
 cogl/winsys/cogl-osx.c                    |    6 +++---
 cogl/winsys/cogl-sdl.c                    |    6 +++---
 cogl/winsys/cogl-win32.c                  |    6 +++---
 cogl/winsys/cogl-winsys.h                 |    6 +++---
 103 files changed, 309 insertions(+), 309 deletions(-)

commit 82fd07c54af5f6641fbf5e0952c930ec32ef70c6
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Feb 23 14:45:44 2010 +0000

    cogl-vertex-buffer: Add support for unsigned int indices
    
    This adds a COGL_INDICES_TYPE_UNSIGNED_INT enum value so that unsigned
    ints can be used with cogl_vertex_buffer_indices_new.  Unsigned ints
    are not supported in core on GLES so a feature flag has also been
    added to advertise this. GLES only sets the feature if the
    GL_OES_element_index_uint extension is available. It is an error to
    call indices_new() with unsigned ints unless the feature is
    advertised.
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=1998

 cogl/cogl-types.h                         |    6 +++++-
 cogl/cogl-vertex-buffer.c                 |   17 ++++++++++++++++-
 cogl/cogl-vertex-buffer.h                 |    8 ++++++++
 cogl/driver/gl/cogl.c                     |    3 ++-
 cogl/driver/gles/cogl-feature-functions.h |    6 ++++++
 5 files changed, 37 insertions(+), 3 deletions(-)

commit b583083a3fc4ec5368ee662b9338c8f32a59daaf
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Feb 24 11:13:55 2010 +0000

    gles2: Remove the special wrapper for glBindTexture
    
    Previously the GLES2 backend needed a special wrapper for
    glBindTexture because it needed to know the internal GL format of the
    texture in order to correctly implement the GL_MODULATE texture env
    mode. When GL_MODULATE is used then the RGB values are taken from the
    previous texture layer rather than being fetched from the
    texture. However since the material API was added Cogl no longer uses
    the GL_MODULATE texture env mode but instead always uses GL_COMBINE.
    
    Compiling the GLES2 backend broke since the more-texture-backends
    branch merge because the cogl_get_internal_gl_format function was
    removed and there was one place in GLES2 specific code that was using
    this to bind the texture.

 cogl/cogl-material.c                   |   10 ----------
 cogl/cogl-texture-2d-sliced.c          |    5 ++---
 cogl/cogl-texture-driver.h             |    7 -------
 cogl/driver/gl/cogl-texture-driver.c   |   12 ------------
 cogl/driver/gles/cogl-gles2-wrapper.c  |   22 ----------------------
 cogl/driver/gles/cogl-gles2-wrapper.h  |   12 ------------
 cogl/driver/gles/cogl-texture-driver.c |   13 -------------
 7 files changed, 2 insertions(+), 79 deletions(-)

commit cb7a99ac69ac76b62b7cab082105d41442214312
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Feb 24 16:50:32 2010 +0000

    cogl-gles2-wrapper: Add support for the layer combine operations
    
    The texture layer combine functions are now hard coded to GL_COMBINE
    instead of GL_MODULATE. The combine function can be customized with
    all the parameters of GL_COMBINE. A shader is generated to implement
    the given parameters.
    
    Currently it will try to generate code for the constant color but it
    will use a uniform which does not exist.

 cogl/cogl-blend-string.c              |    9 -
 cogl/driver/gles/cogl-gles2-wrapper.c |  382 ++++++++++++++++++++++++++++++---
 cogl/driver/gles/cogl-gles2-wrapper.h |   16 ++
 3 files changed, 371 insertions(+), 36 deletions(-)

commit 7dce5d937290a01c425ace6199e18fce5580f84e
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Feb 24 10:42:59 2010 +0000

    gles2: Implement a wrapper for glGetIntegerv(GL_MAX_TEXTURE_UNITS)
    
    The GLES2 backend for Cogl is failing to compile because
    GL_MAX_TEXTURE_UNITS is not defined. Let's define it and provide a
    wrapper which uses GL_MAX_TEXTURE_IMAGE_UNITS or
    COGL_GLES2_MAX_TEXTURE_UNITS, whichever is the smallest.

 cogl/driver/gles/cogl-gles2-wrapper.c |    6 ++++++
 cogl/driver/gles/cogl-gles2-wrapper.h |    2 ++
 2 files changed, 8 insertions(+), 0 deletions(-)

commit 984c19a6f7b75d0e9068a22b15545260dafba4a5
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Feb 24 11:28:44 2010 +0000

    docs: Detail replacement for cogl_check_extension()
    
    The cogl_check_extension() function has been deprecated, but it's easily
    replaceable with a simple strstr() call.

 cogl/cogl.h |   13 ++++++++-----
 1 files changed, 8 insertions(+), 5 deletions(-)

commit f9fe4526ebb79de87c4bf456efbf6f544525f1a6
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Feb 17 18:45:08 2010 +0000

    cogl debug: Adds glViewport call tracing
    
    To aid in the debugging of Clutter stage resize issues this adds a
    COGL_DEBUG=opengl option that will trace "some select OpenGL calls"
    (currently just glViewport calls)

 cogl/cogl-debug.c       |    2 ++
 cogl/cogl-debug.h       |    3 ++-
 cogl/cogl-framebuffer.c |    6 ++++++
 3 files changed, 10 insertions(+), 1 deletions(-)

commit 5751e4875624d6a68e635f1e20486e54bb17f47e
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Feb 17 17:53:28 2010 +0000

    cogl debug: hint that all debugging paths are G_UNLIKELY
    
    Most Cogl debugging code conditions are marked as G_UNLIKELY with the
    intention of having the CPU branch prediction always assume the
    path is disabled so having debugging support in release binaries has
    negligible overhead.
    
    This patch simply fixes a few cases where we weren't using G_UNLIKELY.

 cogl/cogl-journal.c |    9 +++++----
 cogl/cogl.c         |    2 +-
 2 files changed, 6 insertions(+), 5 deletions(-)

commit 210e618e6dc4dcbb302c23d507df889582a8b85e
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Feb 17 14:38:11 2010 +0000

    cogl debug: Makes COGL_DEBUG=all|verbose|help more useful
    
    COGL_DEBUG=all wasn't previously useful as there are several options
    that change the behaviour of Cogl and all together wouldn't help anyone
    debug anything.
    
    This patch makes it so COGL_DEBUG=all|verbose now only enables options
    that don't change the behaviour of Cogl, i.e. they only affect the
    amount of noise we'll print to a terminal.
    
    In addition to that this patch also improves the output from
    COGL_DEBUG=help so we now print a table of options including one liner
    descriptions of what each option enables.

 cogl/cogl-debug.c             |  121 +++++++++++++++++++++++++++++++----------
 cogl/cogl-debug.h             |   37 ++++++-------
 cogl/cogl-texture-2d-sliced.c |    2 +-
 3 files changed, 111 insertions(+), 49 deletions(-)

commit e8eb65319c1b01cf6cf61a0d7a796ca1d304791e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Feb 23 16:51:26 2010 +0000

    cogl: Add deprecation annotation to CoglMaterial ref/unref
    
    The G_GNUC_DEPRECATED annotation was missing from the material ref and
    unref functions.

 cogl/cogl-material.h |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

commit d3a51df0fa23b5c5de9048e317c31df10b856d10
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Feb 17 22:16:17 2010 +0000

    cogl-vertex-buffer: Fix the malloc fallback for indices
    
    The size of the malloc'd buffer for indices when VBOs are not
    available was too small so memory corruption would result if it was
    used.
    
    http://bugzilla.o-hand.com/show_bug.cgi?id=1996

 cogl/cogl-vertex-buffer.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit a4dfa70a0e218f5215fd26935fb3f76be33676e7
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Feb 16 14:53:10 2010 +0000

    cogl_texture_new_from_foreign: improve docs
    
    Improve the explanation of what the x_pot_waste and y_pot_waste
    arguments can be used for.

 cogl/cogl-texture.h |   15 +++++++++++----
 1 files changed, 11 insertions(+), 4 deletions(-)

commit e96072c90ac0c800bf9bddaa1d09885f161d229b
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Feb 16 14:23:11 2010 +0000

    cogl-texture: for foreign textures; always trust user geom
    
    We now never query the width and height of the given texture object
    from OpenGL. The problem is that the user may be creating a Cogl
    texture from a texture_from_pixmap object where glTexImage2D was
    never called and the texture_from_pixmap spec doesn't clarify that
    it's reliable to query the width from OpenGL.
    
    This should address:
    http://bugzilla.openedhand.com/show_bug.cgi?id=1502
    
    Thanks to Johan Bilien for reporting

 cogl/cogl-texture-2d-sliced.c |   24 +++++++++---------------
 1 files changed, 9 insertions(+), 15 deletions(-)

commit 1d54ecb8a1fa22b11d23498085ce6404e7baf391
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Feb 17 15:58:32 2010 +0000

    cogl-clip-stack: Round the coords when clipping to a window rect
    
    The size and position of the window rectangle for clipping in
    try_pushing_rect_as_window_rect is calculated by projecting the
    rectangle coordinates. Due to rounding errors, this can end up with
    slightly off numbers like 34.999999. These were then being cast
    directly to an integer so it could end up off by one.
    
    This uses a new macro called COGL_UTIL_NEARBYINT which is a
    replacement for the C99 nearbyint function.

 cogl/cogl-clip-stack.c |    6 +++++-
 cogl/cogl-util.h       |    8 ++++++++
 2 files changed, 13 insertions(+), 1 deletions(-)

commit 47f1b2ebc917f5a6d6e4122c165bd9155acd3fe9
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Feb 16 12:01:18 2010 +0000

    cogl-atlas-texture: Don't use the atlas if FBOs aren't supported
    
    If FBOs aren't supported then it will end up very slow to reorganize
    the atlas. Also currently the CoglTexture2D backend will refuse to
    create any textures anyway so the full atlas texture won't be created.

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

commit 0238be686a51a9a663460ebd2709a14d8791eebd
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Feb 16 11:58:47 2010 +0000

    cogl-atlas-texture: Check for errors when creating the atlas texture
    
    cogl_texture_2d_new may fail in certain circumstances so
    cogl_atlas_texture_reserve_space should detect this and also
    fail. This will cause cogl_texture_new to fallback to a sliced
    texture.
    
    Thanks to Vladimir Ivakin for reporting this problem.

 cogl/cogl-atlas-texture.c |   19 ++++++++++++-------
 1 files changed, 12 insertions(+), 7 deletions(-)

commit 9e74b04fbd7f93109ed86bb1de0be7d5a8f09d86
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Mon Feb 8 19:18:36 2010 +0000

    docs: Add 2010 in COGL's Copyright notice
    
    While at it, fix the usage of <year> in <copyright> to let the
    stylesheet do the collation when having several years.

 doc/reference/cogl/cogl-docs.xml.in |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

commit 3946a91e686cc5746289b25e52d43098e0997722
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Fri Feb 12 17:24:15 2010 +0000

    cogl-buffer: fix compilation for GL ES
    
    In the frenzy of the last 10mins before API freeze, I obviously forgot
    to update the OpenGL path for _cogl_buffer_hints_to_gl_enum(). This
    commit fixes this.

 cogl/cogl-buffer.c |   15 +++++----------
 1 files changed, 5 insertions(+), 10 deletions(-)

commit 1499535fd0f07224a49d6bda118b58487ebdf92c
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Feb 12 15:33:56 2010 +0000

    cogl-atlas-texture: Flush the journal before adding a new texture
    
    When the atlas is reorganised we could potentially be moving around
    textures that are already referenced in the journal. We therefore need
    to flush the journal otherwise they will be rendered with incorrect
    texture coordinates. We also need to flush the journal even if we are
    not reorganizing so that we can rely on the old texture contents
    remaining in the atlas after migrating a texture out.

 cogl/cogl-atlas-texture.c |   26 +++++++++++++++++++++++++-
 1 files changed, 25 insertions(+), 1 deletions(-)

commit 8119c184dabdb31d89cde3fdcdd856c915e9400f
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Feb 12 10:08:51 2010 +0000

    cogl-sub-texture: Optimise taking a sub texture of a sub texture
    
    When creating a Cogl sub-texture, if the full texture is also a sub
    texture it will now just offset the x and y and reference the full
    texture instead. This avoids one level of indirection when rendering
    the texture which reduces the chances of getting rounding errors in
    the calculations.

 cogl/cogl-sub-texture-private.h |   17 +++++++++++++++--
 cogl/cogl-sub-texture.c         |   29 +++++++++++++++++++++++------
 cogl/cogl-texture.h             |    4 ++++
 3 files changed, 42 insertions(+), 8 deletions(-)

commit 395518fb34d5ed1c5555e0c2ce099fdfde20a464
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Feb 12 15:52:07 2010 +0000

    docs: Fixes for Cogl

 cogl/cogl-material.h                 |    1 +
 cogl/cogl-pixel-buffer.h             |    2 +-
 doc/reference/cogl/Makefile.am       |    3 ++-
 doc/reference/cogl/cogl-sections.txt |    8 ++++----
 4 files changed, 8 insertions(+), 6 deletions(-)

commit 6e32d0afdab4dc80b49abb39e7285bca772113f5
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Feb 11 15:24:17 2010 +0000

    analysis: CoglPangoRenderer
    
    Remove unused variables.

 pango/cogl-pango-render.c |   17 +++++++----------
 1 files changed, 7 insertions(+), 10 deletions(-)

commit fbe9e80a07d131a2db663726da5acce814fa4e31
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Feb 12 14:26:33 2010 +0000

    cogl: Cache the value for GL_MAX_TEXTURE_UNITS
    
    The function _cogl_get_max_texture_units is called quite often while
    rendering and it returns a constant value so we might as well cache
    the result. Calling glGetInteger on Mesa can be expensive because it
    flushes a lot of state.

 cogl/cogl-context.c |    2 ++
 cogl/cogl-context.h |    4 ++++
 cogl/cogl.c         |   12 +++++++++---
 3 files changed, 15 insertions(+), 3 deletions(-)

commit e48b817b0a674613065d0a6e4b185b8a2bb07c5e
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Feb 11 16:12:26 2010 +0000

    cogl: resolves some low hanging issues flagged by clang
    
    An initial pass over the Cogl source code using the Clang static
    analysis tool flagged a few low hanging issues such as un-used variables
    or redundant initializing of variables which this patch fixes.

 cogl/cogl-texture-2d-sliced.c |    9 ++-------
 cogl/cogl-texture.c           |    8 ++++----
 2 files changed, 6 insertions(+), 11 deletions(-)

commit 142128e10730fd6d1485b0756fac53895f313f49
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Feb 11 15:33:01 2010 +0000

    cogl_rectangle: avoid redundant copy of geometry
    
    All the cogl_rectangle* APIs normalize their input into into an array of
    _CoglMutiTexturedRect rectangles and pass these on to our work horse;
    _cogl_rectangles_with_multitexture_coords. The definition of
    _CoglMutiTexturedRect had 4 separate float members, x_1, y_1, x_2 and
    y_2 which meant for some common cases we were having to copy out from an
    array into these members. We are now able to simply point into the users
    array avoiding a copy which seems desirable when submiting lots of
    rectangles.

 cogl/cogl-journal-private.h |    5 +-
 cogl/cogl-journal.c         |   31 ++++++----
 cogl/cogl-primitives.c      |  135 ++++++++++++++++++++++--------------------
 3 files changed, 91 insertions(+), 80 deletions(-)

commit f93e50a2819426c6c921ea7da8d0b232e5ad8285
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Feb 10 22:47:49 2010 +0000

    cogl: explicitly mark cogl_<object>_ref/unref APIs as deprecated
    
    This uses the G_GNUC_DEPRECATED macros to mark the
    cogl_{texture,vertex_buffer,shader}_ref and unref APIs as deprecated.
    Since this flagged that cogl-pango-display-list.c and
    clutter-glx-texture-pixmap.c were still using deprecated _ref/_unref
    APIs they have now been changed to use the cogl_handle_ref/unref API
    instead.

 cogl/cogl-shader.h              |    8 ++++++--
 cogl/cogl-texture.h             |    4 ++--
 cogl/cogl-vertex-buffer.h       |    4 ++--
 pango/cogl-pango-display-list.c |    8 ++++----
 4 files changed, 14 insertions(+), 10 deletions(-)

commit 7d9b733446438d301cf45de539097e236b4b1b1e
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Feb 10 22:30:37 2010 +0000

    cogl: cleanly separate primitives + paths code
    
    The function prototypes for the primitives API were spread between
    cogl-path.h and cogl-texture.h and should have been in a
    cogl-primitives.h.
    
    As well as shuffling the prototypes around into more sensible places
    this commit splits the cogl-path API out from cogl-primitives.c into
    a cogl-path.c

 cogl/Makefile.am       |    3 +
 cogl/cogl-internal.h   |   28 ++
 cogl/cogl-path.c       | 1121 ++++++++++++++++++++++++++++++++++++++++++++++++
 cogl/cogl-path.h       |   35 +--
 cogl/cogl-primitives.c | 1078 ----------------------------------------------
 cogl/cogl-primitives.h |  188 +++++++--
 cogl/cogl-texture.h    |  133 ------
 cogl/cogl.h            |    1 +
 8 files changed, 1317 insertions(+), 1270 deletions(-)

commit ba4b00be42874e3a1af59efaf5426b20ead7519b
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Feb 10 18:18:30 2010 +0000

    cogl: remove redundant _cogl_journal_flush prototype
    
    There was a redundant _cogl_journal_flush function prototype in
    cogl-primitives.h

 cogl/cogl-clip-stack.c        |    1 +
 cogl/cogl-framebuffer.c       |    1 +
 cogl/cogl-journal-private.h   |    5 +++--
 cogl/cogl-material.c          |    1 +
 cogl/cogl-primitives.h        |    3 ---
 cogl/cogl-texture-2d-sliced.c |    1 +
 cogl/cogl-texture-2d.c        |    1 +
 cogl/cogl-vertex-buffer.c     |    1 +
 cogl/driver/gl/cogl-program.c |    1 +
 9 files changed, 10 insertions(+), 5 deletions(-)

commit 0f5f4e8645d12eb6c5ff99c13503f2380740bb10
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Feb 10 01:57:32 2010 +0000

    cogl: improves header and coding style consistency
    
    We've had complaints that our Cogl code/headers are a bit "special" so
    this is a first pass at tidying things up by giving them some
    consistency. These changes are all consistent with how new code in Cogl
    is being written, but the style isn't consistently applied across all
    code yet.
    
    There are two parts to this patch; but since each one required a large
    amount of effort to maintain tidy indenting it made sense to combine the
    changes to reduce the time spent re indenting the same lines.
    
    The first change is to use a consistent style for declaring function
    prototypes in headers. Cogl headers now consistently use this style for
    prototypes:
    
     return_type
     cogl_function_name (CoglType arg0,
                         CoglType arg1);
    
    Not everyone likes this style, but it seems that most of the currently
    active Cogl developers agree on it.
    
    The second change is to constrain the use of redundant glib data types
    in Cogl. Uses of gint, guint, gfloat, glong, gulong and gchar have all
    been replaced with int, unsigned int, float, long, unsigned long and char
    respectively. When talking about pixel data; use of guchar has been
    replaced with guint8, otherwise unsigned char can be used.
    
    The glib types that we continue to use for portability are gboolean,
    gint{8,16,32,64}, guint{8,16,32,64} and gsize.
    
    The general intention is that Cogl should look palatable to the widest
    range of C programmers including those outside the Gnome community so
    - especially for the public API - we want to minimize the number of
    foreign looking typedefs.

 cogl/cogl-atlas-texture.c              |   52 +++---
 cogl/cogl-atlas.c                      |   22 ++-
 cogl/cogl-atlas.h                      |   18 +-
 cogl/cogl-bitmap-fallback.c            |   82 +++++-----
 cogl/cogl-bitmap-pixbuf.c              |   60 +++---
 cogl/cogl-bitmap-private.h             |   30 ++--
 cogl/cogl-bitmap.c                     |   34 ++--
 cogl/cogl-bitmap.h                     |   15 +-
 cogl/cogl-blend-string.c               |   12 +-
 cogl/cogl-blend-string.h               |    4 +-
 cogl/cogl-buffer-private.h             |   14 +-
 cogl/cogl-buffer.c                     |    8 +-
 cogl/cogl-buffer.h                     |   26 ++--
 cogl/cogl-clip-stack.c                 |   16 +-
 cogl/cogl-clip-stack.h                 |   14 +-
 cogl/cogl-color.h                      |   75 +++++---
 cogl/cogl-context.c                    |    2 +-
 cogl/cogl-context.h                    |   10 +-
 cogl/cogl-debug.c                      |    8 +-
 cogl/cogl-debug.h                      |    4 +-
 cogl/cogl-feature-private.c            |   19 +-
 cogl/cogl-feature-private.h            |   14 +-
 cogl/cogl-fixed.c                      |   24 ++--
 cogl/cogl-fixed.h                      |   72 +++++---
 cogl/cogl-handle.h                     |    2 +-
 cogl/cogl-internal.h                   |   32 ++--
 cogl/cogl-journal.c                    |   26 ++--
 cogl/cogl-material-private.h           |   67 ++++---
 cogl/cogl-material.c                   |   22 ++--
 cogl/cogl-material.h                   |  175 +++++++++++-------
 cogl/cogl-matrix.h                     |  110 +++++++-----
 cogl/cogl-path.h                       |  138 ++++++++------
 cogl/cogl-pixel-buffer-private.h       |    9 +-
 cogl/cogl-pixel-buffer.c               |   53 +++---
 cogl/cogl-pixel-buffer.h               |   46 +++---
 cogl/cogl-primitives.c                 |   48 +++---
 cogl/cogl-primitives.h                 |   13 +-
 cogl/cogl-shader.h                     |   96 ++++++----
 cogl/cogl-sub-texture-private.h        |   14 +-
 cogl/cogl-sub-texture.c                |   70 ++++----
 cogl/cogl-texture-2d-private.h         |    4 +-
 cogl/cogl-texture-2d-sliced-private.h  |    6 +-
 cogl/cogl-texture-2d-sliced.c          |  163 +++++++++---------
 cogl/cogl-texture-2d.c                 |   34 ++--
 cogl/cogl-texture-private.h            |    6 +-
 cogl/cogl-texture.c                    |  106 ++++++------
 cogl/cogl-texture.h                    |  220 +++++++++++++----------
 cogl/cogl-types.h                      |   15 +-
 cogl/cogl-util.c                       |   30 ++--
 cogl/cogl-vertex-buffer-private.h      |    2 +-
 cogl/cogl-vertex-buffer.c              |   18 +-
 cogl/cogl-vertex-buffer.h              |    6 +-
 cogl/cogl.c                            |   52 +++---
 cogl/cogl.h                            |  310 +++++++++++++++++++-------------
 cogl/driver/gl/cogl-program.c          |   18 +-
 cogl/driver/gl/cogl-shader.c           |    2 +-
 cogl/driver/gl/cogl-texture-driver.c   |    2 +-
 cogl/driver/gl/cogl.c                  |    8 +-
 cogl/driver/gles/cogl-gles2-wrapper.c  |    6 +-
 cogl/driver/gles/cogl-gles2-wrapper.h  |   12 +-
 cogl/driver/gles/cogl-program.c        |   42 +++---
 cogl/driver/gles/cogl-shader.c         |    4 +-
 cogl/driver/gles/cogl-texture-driver.c |    4 +-
 doc/CODING_STYLE                       |   49 +++++
 64 files changed, 1491 insertions(+), 1184 deletions(-)

commit 10fa7c7ce9a69b733e4652a51e101a98911d5bb8
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Feb 5 16:32:19 2010 +0000

    cogl: deprecates cogl_check_extension
    
    OpenGL is an implementation detail for Cogl so it's not appropriate to
    expose OpenGL extensions through the Cogl API.
    
    Note: Clutter is currently still using this API, because it is still
    doing raw GL calls in ClutterGLXTexturePixmap, so this introduces a
    couple of (legitimate) build warnings while compiling Clutter.

 cogl/cogl-feature-private.c |    4 ++--
 cogl/cogl-internal.h        |    1 +
 cogl/cogl.c                 |   32 ++++++++++++++++++++++++++++++++
 cogl/cogl.h                 |   11 ++++++++++-
 cogl/driver/gl/cogl.c       |   31 +++----------------------------
 cogl/driver/gles/cogl.c     |   25 -------------------------
 6 files changed, 48 insertions(+), 56 deletions(-)

commit f74f4bdc2bcf885c53d8c07c9a25dac7d5ce9505
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Feb 11 14:20:48 2010 +0000

    cogl: Add a fallback for when the signbit macro is missing
    
    The signbit macro is defined in C99 so it should be available but some
    versions of GCC don't appear to define it by default. If it's not
    available we can use a hack to test the bit directly.

 cogl/cogl-sub-texture.c |    2 +-
 cogl/cogl-texture-2d.c  |    2 +-
 cogl/cogl-util.h        |   27 ++++++++++++++++++++++++++-
 3 files changed, 28 insertions(+), 3 deletions(-)

commit a0a40f07b35015a46b4dcd927da13c1639a27fd0
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Feb 10 12:41:09 2010 +0000

    cogl-material: Layers are not equal if the filters aren't equal
    
    A material layer can not be considered equal if it is using different
    texture filtering modes. This was causing problems where rectangles
    with different filters would end up batched together and then rendered
    with the wrong filter mode.

 cogl/cogl-material.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

commit 282abe91f79fc37ec5ed840e248f7bc563b1cfaa
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Feb 9 17:07:08 2010 +0000

    cogl: Move material_copy() out of the deprecated section
    
    We strongly suggest people should be using cogl_material_copy(), but it
    was hidden behind the deprecation guards.

 cogl/cogl-material.h |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

commit 0145562cadf233492a5e37cee7bca7e1762f125d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Feb 9 16:57:14 2010 +0000

    Fix some compiler warnings
    
    GCC complains that some variable might be used uninitialized.

 cogl/cogl-matrix-stack.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

commit d3948fab8c3d3e63e2b4da3ffa9100cca99031e4
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Feb 9 16:30:28 2010 +0000

    cogl-bitmap: Remove const from premult_alpha_last_four_pixels_sse2
    
    The function modifies the pixels pointed by p in-place so the pointer
    can not be constant. The compiler was accepting this because the
    modification is done from inline assembler.

 cogl/cogl-bitmap-fallback.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 62fa1f9c2892df70477b7746a3a5f197d63dcbf7
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Feb 9 15:29:29 2010 +0000

    docs: Clean up the unused symbols for Cogl
    
    Gtk-doc is reporting a lot of false positives in the unused text file,
    mostly because of new private files that have been added to Cogl but not
    to the gtk-doc ignore list for the Cogl API reference.
    
    Once the false positives have been removed we have a couple of really
    missing symbols that should be added to the cogl-sections.txt file.

 doc/reference/cogl/Makefile.am       |   54 +++++++++++++++++++---------------
 doc/reference/cogl/cogl-sections.txt |    7 ++++
 2 files changed, 37 insertions(+), 24 deletions(-)

commit 82c6be52690e33359ab8fb1ea08b94afdcbc753d
Author: Bastian Winkler <buz@netbuz.org>
Date:   Tue Feb 9 15:19:03 2010 +0100

    cogl-buffer: Use correct argument types in cogl_buffer_set_data_EXP
    
    offset and size arguments are gsize in cogl-buffer.h
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=1980
    
    Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>

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

commit ea0d0f12312d7c21a28e3c428a799fd09e895f72
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Feb 9 14:48:11 2010 +0000

    docs: Move some Cogl defines in the private section
    
    The PixelFormat bit and mask #defines should not be used and are there
    mostly for convenience, so we can push them to the "private" sub-section
    of the API reference.
    
    This pushed Cogl's API reference coverage to 100%.

 doc/reference/cogl/cogl-sections.txt |   16 ++++++++--------
 1 files changed, 8 insertions(+), 8 deletions(-)

commit 2674a1ead2a0c0ad1803acdfc7bf8e1ee188d60d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Feb 9 14:41:37 2010 +0000

    docs: Fixes for Cogl API reference
    
      98% symbol docs coverage.
      335 symbols documented.
      0 symbols incomplete.
      8 not documented.
    
    Not bad, if I may say so.

 cogl/cogl-buffer.h                   |   12 +++++++--
 cogl/cogl-color.h                    |   41 ++++++++++++++++++++++++++++++++++
 cogl/cogl-fixed.h                    |    2 +-
 cogl/cogl-material-private.h         |    2 +-
 cogl/cogl-matrix.h                   |    3 +-
 cogl/cogl-types.h                    |   23 ++++++++++++++++++-
 doc/reference/cogl/cogl-sections.txt |   16 +++----------
 7 files changed, 80 insertions(+), 19 deletions(-)

commit 2938ae0475f7630a7be721c5f2d81feb34564182
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Feb 9 12:21:10 2010 +0000

    cogl-texture-2d: Use _cogl_texture_driver_gen to generate the GL tex
    
    _cogl_texture_driver_gen is needed to set the texture minification
    mode to Cogl's default of GL_LINEAR. There was also a line to set this
    in _cogl_texture_2d_new_with_size but it wasn't working because it was
    called *before* the texture was bound. If the texture was later
    rendered with the default material it then it would end up with GL's
    default mipmap filtering mode but without mipmaps so it would render
    white squares instead.

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

commit f16fd0ddbb0fcf1285ba77cbcb23e57ab70d3df7
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Dec 18 21:17:21 2009 +0000

    cogl: Use SSE2 when possible for premultiplying
    
    This adds a fast path for premultiplying an RGBA image using SSE2
    instructions. SSE registers are 128-bit and we need at least 16-bits
    per component for the intermediate result of the multiplication so we
    can do two pixels in parallel with one register. The function
    interleaves 2 SSE registers to multiply 4 pixels in one function call
    with the hope that this will pipeline better.
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=1939
    Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>

 cogl/cogl-bitmap-fallback.c |  104 ++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 103 insertions(+), 1 deletions(-)

commit 2ecb6f7b20a501818f1bc6fea3406b9fce557a27
Author: Halton Huo <halton.huo@gmail.com>
Date:   Tue Feb 9 10:21:37 2010 +0000

    Remove return from void functions
    
    This patch fixes compilation on suncc.
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=1978
    
    Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>

 cogl/cogl-buffer.c      |    2 +-
 cogl/cogl-sub-texture.c |    2 +-
 cogl/cogl-texture.c     |    2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

commit 23717452bfdd9ae2f4328f3fefb30cd0eafea8c1
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Mon Feb 8 17:11:43 2010 +0000

    cogl-buffer: Use TEXTURE as the only value for CoglBufferUsageHint
    
    We should try to use more explicit defines than GL for our hints. For
    now we only support using a CoglBuffer to generate textures.

 cogl/cogl-buffer.c       |   38 +++++++++-----------------------------
 cogl/cogl-buffer.h       |   12 +++---------
 cogl/cogl-pixel-buffer.c |    2 +-
 3 files changed, 13 insertions(+), 39 deletions(-)

commit 273fd23742876183544be9fa83b1f3e369e63a1c
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Tue Feb 2 16:44:16 2010 +0000

    cogl-buffer: make sure the code compiles on GL ES
    
    OpenGL ES has no PBO extension, so we fallback to using a malloc'ed
    buffer. Make sure the OpenGL-only defines don't leak into the OpenGL ES
    compilation.

 cogl/cogl-buffer.c       |   28 ++++++++++++++++++++++++++++
 cogl/cogl-pixel-buffer.c |    7 +++++++
 cogl/cogl-texture.c      |    5 ++++-
 3 files changed, 39 insertions(+), 1 deletions(-)

commit ca80e8802b3a1ea52e62294de841a236065c0db8
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Tue Feb 2 12:59:51 2010 +0000

    cogl-pixel-buffer: Add a fallback path
    
    First, let's add a new public feature called, surprisingly,
    COGL_FEATURE_PBOS to check the availability of PBOs and provide a
    fallback path when running on older GL implementations or on OpenGL ES
    
    In case the underlying OpenGL implementation does not provide PBOs, we
    need a fallback path (a malloc'ed buffer). The CoglPixelBufer
    constructors will instanciate a subclass of CoglBuffer that handles
    map/unmap and set_data() with a malloc'ed buffer.
    
    The public feature is useful to check before using set_data() on a
    buffer as it will mean doing a memcpy() when not supporting PBOs (in
    that case, it's better to create the texture directly instead of using a
    CoglBuffer).

 cogl/cogl-pixel-buffer.c                |   56 +++++++++++++++++++++++++++++--
 cogl/cogl-texture.c                     |   38 +++++++++++++++------
 cogl/cogl-types.h                       |    4 ++-
 cogl/driver/gl/cogl-feature-functions.h |    5 +++
 4 files changed, 88 insertions(+), 15 deletions(-)

commit cf960cfb3d8f0be32559eab35727f285e686c234
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Fri Jan 22 15:07:27 2010 +0000

    cogl-texture: Add a new constructor to turn CoglBuffers into textures
    
    The only goal of using COGL buffers is to use them to create
    textures. cogl_texture_new_from_buffer() is the new symbol to create
    textures out of buffers.

 cogl/cogl-texture.c                  |   55 +++++++++++++++++++++++++++++++
 cogl/cogl-texture.h                  |   60 ++++++++++++++++++++++++++++++++++
 doc/reference/cogl/cogl-sections.txt |    3 ++
 3 files changed, 118 insertions(+), 0 deletions(-)

commit 47cc5a4e4344f94e5a32b68e18a44e33f1cfb332
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Sun Jan 10 18:04:29 2010 +0000

    cogl-pixel-buffer: add a pixel buffer object class
    
    This subclass of CoglBuffer aims at wrapping PBOs or other system
    surfaces like DRM buffer objects. Two constructors are available:
    
    cogl_pixel_buffer_new() with a size when you only care about the size of
    the buffer (such a buffer can be used to store several texture data such
    as the three planes of a I420 frame).
    
    cogl_pixel_buffer_new_full() is more a 1:1 mapping between the data and
    an underlying surface, with the possibility of having access to a low
    level memory buffer that may have a stride.

 cogl/Makefile.am                     |    3 +
 cogl/cogl-pixel-buffer-private.h     |   72 ++++++++
 cogl/cogl-pixel-buffer.c             |  317 ++++++++++++++++++++++++++++++++++
 cogl/cogl-pixel-buffer.h             |  165 ++++++++++++++++++
 cogl/cogl.h                          |    1 +
 doc/reference/cogl/cogl-sections.txt |    6 +
 6 files changed, 564 insertions(+), 0 deletions(-)

commit 40b73a8c0c295400a0e4fd8402ec1a170db9a66a
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Sun Jan 10 17:28:24 2010 +0000

    cogl-buffer: add an abstract class around openGL's buffer objects
    
    Buffer objects are cool! This abstracts the buffer API first introduced
    by GL_ARB_vertex_buffer_object and then extended to other objects.
    
    The coglBuffer abstract class is intended to be the base class of all
    the buffer objects, letting the user map() buffers. If the underlying
    implementation does not support buffer objects (or only support VBO but
    not FBO for instance), fallback paths should be provided.

 cogl/Makefile.am                     |    3 +
 cogl/cogl-buffer-private.h           |  102 ++++++++++++
 cogl/cogl-buffer.c                   |  282 +++++++++++++++++++++++++++++++++
 cogl/cogl-buffer.h                   |  287 ++++++++++++++++++++++++++++++++++
 cogl/cogl-context.c                  |    2 +
 cogl/cogl-context.h                  |    5 +
 cogl/cogl.h                          |    4 +
 doc/reference/cogl/cogl-docs.xml.in  |   21 +++
 doc/reference/cogl/cogl-sections.txt |   17 ++
 9 files changed, 723 insertions(+), 0 deletions(-)

commit dbef77cd8bfad02a5f2cf4b9c7343e42e584de6a
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Mon Jan 25 11:21:05 2010 +0000

    cogl: new textures sould have GL_TEXTURE_MIN_FILTER set to GL_LINEAR
    
    The only way the user has to set the mipmap filters is through the
    material/layer API. This API defaults to GL_LINEAR/GL_LINEAR for the max
    and min filters. With the main use case of cogl being 2D interfaces, it
    makes sense do default to GL_LINEAR for the min filter.
    
    When creating new textures, we did not set any filter on them, using
    OpenGL defaults': GL_NEAREST_MIPMAP_LINEAR for the min filter and
    GL_LINEAR for the max filter. This will make the driver allocate memory
    for the mipmap tree, memory that will not be used in the nominal case
    (as the material API defaults to GL_LINEAR).
    
    This patch tries to ensure that the min filter is set to GL_LINEAR
    before any glTexImage*() call is done on the texture by setting the
    filter when generating new OpenGL handles.

 cogl/cogl-texture-2d-sliced.c          |    9 ++++-----
 cogl/cogl-texture-2d.c                 |    9 +++++----
 cogl/cogl-texture-driver.h             |    9 +++++++++
 cogl/driver/gl/cogl-texture-driver.c   |   27 +++++++++++++++++++++++++++
 cogl/driver/gles/cogl-texture-driver.c |   27 +++++++++++++++++++++++++++
 5 files changed, 72 insertions(+), 9 deletions(-)

commit 0adc2c458d5fadbff99d6341093043b5863219a1
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Mon Jan 11 00:15:25 2010 +0000

    cogl: Introduce the GE_RET() debug macro
    
    Some GL functions have a return value that the GE() macro is not able to
    handle. Let's define a new Ge_RET() macro which will be able to handle
    functions such as glMapBuffer().
    
    While at it, removed the unused variadic dots to the GE() macro.

 cogl/cogl-internal.h |   14 +++++++++++++-
 1 files changed, 13 insertions(+), 1 deletions(-)

commit 5b4957a81046b75348f98060a78ef837f67b17fe
Merge: b31f2dd b39d1b7
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Feb 8 16:53:11 2010 +0000

    Merge branch 'animator-parser'
    
    * animator-parser:
      docs: Describe the Animation definition syntax
      animator: Provide a ClutterScript parser
      animator: Allow retrieving type property type from a key
      script: Use a node when resolving an animation mode

commit b31f2dd4a2d6df62f1049cd8c57dea627193f0d4
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Jan 14 18:11:57 2010 +0000

    cogl path: make sure marking the clip state dirty takes affect
    
    When we trashed the contents of the stencil buffer during
    _cogl_path_fill_nodes we marked the clip stack state as dirty and expected
    the clip stack code would clean up our glStencilFunc state.
    
    The problem is that we only try and update the clip state during
    _cogl_journal_init (when we flush the framebuffer state) which is only
    called when the journal first gets something logged in it.
    
    To make sure the stencil state is cleaned up we now also flush the journal
    so _cogl_journal_init will be called for the next logged rectangle.

 cogl/cogl-primitives.c |    9 ++++++++-
 1 files changed, 8 insertions(+), 1 deletions(-)

commit 286ca56d4f0c3fa6929876235f5d54f92eea2a26
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Feb 8 10:34:22 2010 +0000

    Merge remote branch 'origin/cwiiis-stage-resize'
    
    * origin/cwiiis-stage-resize:
      [stage-x11] Set the default size differently
      [stage] Set default size correctly
      Revert "[x11] Don't set actor size on ConfigureNotify"
      [x11] Don't set actor size on ConfigureNotify
      [stage] Now that get_geometry works, use it
      [stage-x11] make get_geometry always get geometry
      [stage] Get the current size correctly
      [stage] Set minimum width/height to 1x1
      [stage] Add set/get_minumum_size

commit b39d1b788a793a4ea0d9b5e9686fac91039be7a3
Merge: a73ac7b b9a9bf6
Author: Neil Roberts <neil@linux.intel.com>
Date:   Sat Feb 6 00:20:07 2010 +0000

    Merge branch 'more-texture-backends'
    
    This adds three new texture backends.
    
    - CoglTexture2D: This is a trimmed down version of CoglTexture2DSliced
      which only supports a single texture and only works with the
      GL_TEXTURE_2D target. The code is a lot simpler so it has a less
      overheads than dealing with slices. Cogl will use this wherever
      possible.
    
    - CoglSubTexture: This is used to get a CoglHandle to represent a
      subregion of another texture. The texture can be used as if it was a
      standalone texture but it does not need to copy the resources.
    
    - CoglAtlasTexture: This collects RGB and RGBA textures into a single
      GL texture with the aim of reducing texture state changes and
      increasing batching. The backend will try to manage the atlas and
      may move the textures around to close gaps in the texture. By
      default all textures will be placed in the atlas.

commit b9a9bf60b7b6b0d80f0b97a43527d7d6fd83b9f8
Author: Neil Roberts <neil@linux.intel.com>
Date:   Sat Feb 6 00:12:10 2010 +0000

    cogl-bitmap: Update the format after (un)premultiplying
    
    The pixel format of the bitmap needs to have its premult flag cleared
    or set after the premult conversion otherwise it may get converted
    again.

 cogl/cogl-bitmap-fallback.c |    4 ++++
 cogl/cogl-texture.c         |    3 +--
 2 files changed, 5 insertions(+), 2 deletions(-)

commit 45215cb42640dc094f002dd7d84bcc2c9af22cea
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Feb 5 17:03:04 2010 +0000

    cogl-atlas-texture: Fix a cut and paste error when getting the height
    
    There was a typo in getting the height of the full texture to check
    whether the sub region fits so that it was using the width
    instead. This was causing crashes when debugging is enabled for some
    apps.

 cogl/cogl-sub-texture.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit a73ac7bf574efa3136d6a14a73c7d2d054474eb1
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Thu Feb 4 21:10:02 2010 +0000

    docs: Use % for defines not #
    
    Some links to defines in the gtk-doc annotations were using '#' instead
    of '%'.

 cogl/cogl-fixed.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

commit 8ef5e82dfa02bc45c145970337dffc495542c1da
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Wed Jan 27 16:03:28 2010 +0000

    docs: fix new line in the cogl xml top level document
    
    A comma in the FSF address is wrong. Supreme Offence.

 doc/reference/cogl/cogl-docs.xml.in |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

commit 264f0f0f05746e8e92100022fdd09934882fad77
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Feb 3 23:08:30 2010 +0000

    cogl-texture: Avoid copying the bitmap when premultiplying from a file
    
    In cogl_texture_new_from_file we create and own a temporary
    bitmap. There's no need to copy this data if we need to do a premult
    conversion so instead it just does conversion before passing it on to
    cogl_texture_new_from_bitmap.

 cogl/cogl-texture.c |   23 ++++++++++++++++++-----
 1 files changed, 18 insertions(+), 5 deletions(-)

commit e83e0c3e5b78e6e220f27c3648d84a0f92eb2d23
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Feb 3 22:54:44 2010 +0000

    cogl-texture: Split out _cogl_texture_prepare_for_upload
    
    The Cogl atlas code was using _cogl_texture_prepare_for_upload with a
    NULL pointer for the dst_bmp to determine the internal format of the
    texture without converting the bitmap. It needs to do this to decide
    whether the texture will go in the atlas before wasting time on the
    conversion. This use of the function is a little confusing so that
    part of it has been split out into a new function called
    _cogl_texture_determine_internal_format. The code to decide whether a
    premult conversion is needed has also been split out.

 cogl/cogl-atlas-texture.c   |   11 +-----
 cogl/cogl-texture-private.h |    7 ++++
 cogl/cogl-texture.c         |   81 +++++++++++++++++++++++++-----------------
 3 files changed, 57 insertions(+), 42 deletions(-)

commit ef9781d7dadb7431c5420764d9a33b9bddcf1a5a
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Feb 3 19:54:12 2010 +0000

    cogl-atlas: Make the cogl_atlas_* API internal
    
    This just adds an underscore to every entry point for the CoglAtlas
    API so that it's not exported.

 cogl/cogl-atlas-texture.c |   89 ++++++++++++++--------------
 cogl/cogl-atlas.c         |  140 ++++++++++++++++++++++----------------------
 cogl/cogl-atlas.h         |   32 +++++-----
 cogl/cogl-context.c       |    2 +-
 4 files changed, 132 insertions(+), 131 deletions(-)

commit 76f4696e437d69a96ec8bddedb109f05dc1bb19e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Dec 3 17:13:44 2009 +0000

    Delay default stage creation
    
    The default stage creation should be delayed as much as possible,
    ideally at the end of the init() process.

 cogl/cogl-journal.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

commit e337bd2370d181f9bd37c5006dbf2bd9d5396ddb
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Dec 3 17:35:19 2009 +0000

    cogl-debug: Remove redundant newlines
    
    The debugging notes wrapping g_debug() already have an implicit newline
    at the end of the passed message.

 cogl/cogl-handle.h |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

commit 44431da16430ba0f69f0b4c78f3d4fe148e2eaed
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Feb 3 14:31:12 2010 +0000

    cogl-vertex-buffer: Refix disabling texture coord arrays
    
    Commit 92a375ab4 changed the initial value of max_texcoord_attrib_unit
    to -1 so that it could disable the texture coord array for the first
    texture unit when there are no texture coords used in the vbo. However
    max_texcoord_attrib_unit was an unsigned value so this actually became
    G_MAXUINT. The disabling loop at the bottom still worked because
    G_MAXUINT+1==0 but the check for whether any texture unit is greater
    than max_texcoord_attrib_unit was failing so it would always end up
    disabling all texture units. This is now fixed by changing
    max_texcoord_attrib_unit to be signed.

 cogl/cogl-vertex-buffer.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit efcbd20320712de9785d8361f5483cecc96cf0df
Merge: e445504 f7bd5af
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Feb 1 13:37:19 2010 +0000

    Merge remote branch 'master' into texture-debugging
    
    Conflicts:
    	clutter/cogl/cogl/cogl-context.h

commit e4455041c8439ce9f5b5e1f9ee9c7e0a4927a4ec
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Feb 1 13:25:19 2010 +0000

    cogl-material: Compare GL texture numbers for material layer textures
    
    When deciding if a material layer is equal it now compares the GL
    target and texture number if the textures are not sliced. This is
    needed to get batching across atlased textures.

 cogl/cogl-material.c |   25 ++++++++++++++++++++++++-
 1 files changed, 24 insertions(+), 1 deletions(-)

commit e20c98e54899497fce26f60e10a8787e1ed6fec4
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Feb 1 12:11:58 2010 +0000

    cogl: Let GL do the format conversion when uploading texture data
    
    Cogl accepts a pixel format for both the data in memory and the
    internal format to be used for the texture. If they do not match then
    it would convert them using the CoglBitmap functions before uploading
    the data. However, GL also lets you specify both formats so it makes
    more sense to let GL do the conversion. The driver may need the
    texture in a specific format so it may end up being converted anyway.
    
    The cogl_texture_upload_data functions have been removed and replaced
    with a single function to prepare the bitmap. This will only do the
    premultiplication conversion because that is the only part that GL
    can't do directly.

 cogl/cogl-atlas-texture.c     |  111 ++++++++++-----------
 cogl/cogl-texture-2d-sliced.c |  220 ++++++++++++++++++++++------------------
 cogl/cogl-texture-2d.c        |   92 ++++++++----------
 cogl/cogl-texture-private.h   |   44 +++------
 cogl/cogl-texture.c           |  134 +++++++++++--------------
 5 files changed, 289 insertions(+), 312 deletions(-)

commit a6f061e41fa97267c35e15869ba91d21de2ad1f2
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Jan 29 15:15:08 2010 +0000

    cogl: Do the premult conversion in-place rather than copying to a new buffer
    
    The premult part of _cogl_convert_premult has now been split out as
    _cogl_convert_premult_status. _cogl_convert_premult has been renamed
    to _cogl_convert_format to make it less confusing. The premult
    conversion is now done in-place instead of copying the
    buffer. Previously it was copying the buffer once for the format
    conversion and then copying it again for the premult conversion. The
    premult conversion never changes the size of the buffer so it's quite
    easy to do in place. We can also use the separated out function
    independently.

 cogl/cogl-atlas-texture.c     |    6 +-
 cogl/cogl-bitmap-fallback.c   |  142 ++++++++++++++++-------------------------
 cogl/cogl-bitmap-pixbuf.c     |    6 +-
 cogl/cogl-bitmap-private.h    |   22 +++---
 cogl/cogl-bitmap.c            |  102 +++++++++++------------------
 cogl/cogl-texture-2d-sliced.c |   12 ++--
 cogl/cogl-texture-2d.c        |   12 ++--
 cogl/cogl-texture.c           |    6 +-
 8 files changed, 123 insertions(+), 185 deletions(-)

commit 406c203b422bd492235ffa91816671f4fd26e44c
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Jan 29 12:19:42 2010 +0000

    cogl-atlas-texture: Use a single atlas for both RGB and RGBA textures
    
    The internal format of the atlas texture is still set to the
    appropriate format so Cogl will disable blending for textures that are
    intended to be RGB. This should end up ignoring the alpha channel from
    the texture in the atlas. This makes the code slightly easier to
    maintain and should also improve the chances of batching.

 cogl/cogl-atlas-texture.c |  134 ++++++++++++++++----------------------------
 cogl/cogl-context.c       |   18 ++----
 cogl/cogl-context.h       |    8 +--
 3 files changed, 57 insertions(+), 103 deletions(-)

commit f7bd5af4a6e1b1f9145df58fe7ca8cf6a8d65a37
Merge: 4fcbbfe 18b96c8
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Feb 1 11:26:56 2010 +0000

    Merge branch 'device-manager'
    
    * device-manager: (37 commits)
      x11: Re-enable XI1 extension keyboards
      x11: Always handle core device events before XI events
      docs: Documentation fixes for DeviceManager
      device-manager: Fix the signals definition
      docs: Add sections for InputDevice and DeviceManager
      docs: Add clutter_input_device_get_device_name()
      tests: Print out the device details on motion
      Always register core devices
      device: Remove unused is_default member
      win32: Experimental implementation of device support
      tests: Print the device name, as well as its Id
      x11: Fill out the :name property of the InputDevices
      device: Add the :name property to InputDevice
      x11: Store core devices on the X11 Backend singleton
      device: Unset the cursor actor when leaving the stage
      device: Add pointer actor getter
      x11: Discard the LeaveNotify for off-stage ButtonRelease
      device: Do not overwrite the stage for an InputDevice
      event: Off-stage button releases have a click count of 1
      event: Scroll events do not have click count
      ...

commit 4fcbbfeedcb1641d283743acb712b567a757efce
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Jan 27 21:26:26 2010 +0000

    Whitespace fixes in cogl-util

 cogl/cogl-util.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

commit 47df6724b2893936033777fd2eec1cd0b8c7499c
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Jan 22 18:14:57 2010 +0000

    cogl: Use the colours of COGL_DEBUG=rectangles to debug batching
    
    Instead of assigning a new colour to each quad of a batch, the
    rectangle debugging code now assigns a new colour to each batch so
    that it can be used to visually see what is being batched. The colour
    is stored in a global variable that is reset during cogl_clear. This
    improves the chances that the same colour will be used for a batch in
    the next frames to avoid flickering.

 cogl/cogl-context.h |    6 +++++
 cogl/cogl-journal.c |   54 ++++++++++++++++++++++++++++++++++----------------
 cogl/cogl.c         |   11 ++++++++++
 3 files changed, 54 insertions(+), 17 deletions(-)

commit 1718b1d42ef167779e7cefa18e01023b64e57cf9
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Jan 26 13:46:27 2010 +0000

    cogl-vertex-buffer: Fix disabling the texture arrays from previous prim
    
    When setting up the state for the vertex buffer,
    enable_state_for_drawing_buffer tries to keep track of the highest
    numbered texture unit in use. It then disables any texture arrays for
    units that were previously enabled if they are greater than that
    number. However if there is no texturing in the VBO then the max used
    unit would be left at 0 which it would later think meant unit 0 is
    still in use so it wouldn't disable it. To fix this it now initialises
    the max used unit to -1 which it should interpret as ‘no units are in
    use’ so it will later disable the arrays for all units.
    
    Thanks to Jon Mayo for reporting the bug.
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=1957

 cogl/cogl-vertex-buffer.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 548ed1cdf241ac0d324e2b289964f371f859b408
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Jan 27 12:06:22 2010 +0000

    docs: Add some notes about the CoglPixelFormat enums
    
    The pixel format enums didn't explain what order in memory the
    components should be so it was difficult to use them.

 cogl/cogl-types.h |   22 +++++++++++++++++++---
 1 files changed, 19 insertions(+), 3 deletions(-)

commit 9d45e9641c57a890474fa76178d3eba316aa445a
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Tue Jan 26 18:47:25 2010 +0000

    cogl: Fix checks of the number of available texture units
    
    We were checking the number of texture units against the GL enum that is
    used in glGetInteger() to query that number. Let's abstract this in a
    little function.
    
    Took the opportunity to dig a bit on the usage of GL limits for the
    number of texture (image) units and document our use of them. We'll need
    something finer grained if we want to fully exploit texture image units
    with a programmable pipeline.

 cogl/cogl-internal.h |    2 ++
 cogl/cogl-material.c |   10 ++--------
 cogl/cogl.c          |   30 ++++++++++++++++++++++++++++++
 3 files changed, 34 insertions(+), 8 deletions(-)

commit 84a438be55b13c6411f0f854987356235d7db91e
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Sun Nov 15 20:17:47 2009 +0000

    cogl: Fix gl equivalent of blend string
    
    An example of what could be the equivalent of
        "RBG = REPLACE(TEXTURE)
         A   = MODULATE(PREVIOUS,TEXTURE)"
    using the ARB_texture_env_combine extension was given, but it seems that
    a few typo were left:
        * remove a spurius GL_COMBINE_ALPHA
        * use the _ALPHA variant of SRCN and OPERANDN when setting up the
          alpha combiner

 doc/reference/cogl/blend-strings.xml |    9 ++++-----
 1 files changed, 4 insertions(+), 5 deletions(-)

commit 3069ad640926e8f70e3a406acce518282b58b345
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Sun Nov 15 19:54:17 2009 +0000

    cogl: Create CoglTextureUnit with its associated unit number
    
    The index field of CoglTextureUnit was never set, leading to the
    creation of units with index set to 0. When trying to retrieve a texture
    unit by its index (!= 0) with _cogl_get_texture_unit(), a new one was
    created as it could not find it back in the list of textures units:
    ctx->texture_units.
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=1958

 cogl/cogl.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

commit 67fc6ead78645b112485e3e5854113e1c9dd0074
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Jan 21 15:34:19 2010 +0000

    cogl-atlas-texture: Add a debug option to disable the atlas
    
    If the user specifies the 'disable-atlas' debug option then no texture
    will be put in the atlas.

 cogl/cogl-atlas-texture.c |    5 +++++
 cogl/cogl-debug.c         |    3 ++-
 cogl/cogl-debug.h         |    3 ++-
 3 files changed, 9 insertions(+), 2 deletions(-)

commit 41a915ec002342d881f0bdbc6ecb99bc73537587
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Jan 19 17:06:28 2010 +0000

    cogl-atlas-texture: Don't create atlas textures with the premult bit
    
    Previously the atlas textures were being created with whatever format
    the first sub texture is in. Only three formats are supported so this
    only matters if the first texture is a premultiplied alpha
    texture. Instead it now masks out the premultiplied bit so that the
    textures are always either RGB_888 or RGBA_8888.

 cogl/cogl-atlas-texture.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

commit a78246b4032f362dc98fbd11e86a8fe350669693
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Jan 18 10:53:00 2010 +0000

    cogl-atlas-texture: Fix premultiplied texture formats
    
    When uploading texture data it was just calling cogl_texture_set_data
    on the large texture. This would attempt to convert the data to the
    format of the large texture. All of the textures with alpha channels
    are stored together regardless of whether they are premultiplied so
    this was causing premultiplied textures to be unpremultiplied
    again. It now just uploads the data ignoring the premult bit of the
    format so that it only gets converted once.

 cogl/cogl-atlas-texture.c |  232 ++++++++++++++++++++++++++++++--------------
 1 files changed, 158 insertions(+), 74 deletions(-)

commit 12b45aaa3067ccb1bcf6785fc59bfd43b0164120
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Jan 14 17:57:43 2010 +0000

    cogl-primitives: Ensure the mipmaps for a layer before logging quads
    
    With the atlas texture backend ensuring the mipmaps can make it become
    a completely different texture which will have different texture
    coordinates or may even be sliced. Therefore we need to ensure the
    mipmaps before deciding which quads to log in the journal. This adds a
    new private function to cogl-material which ensures the mipmaps if
    needed.

 cogl/cogl-material-private.h |    6 ++++++
 cogl/cogl-material.c         |   19 +++++++++++++++----
 cogl/cogl-primitives.c       |    6 ++++++
 3 files changed, 27 insertions(+), 4 deletions(-)

commit ae7825275e0b67a2cdab3d3208e16b2b3c11498c
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Jan 18 09:22:04 2010 +0000

    cogl: Make CoglSubTexture only work for quad rendering
    
    The sub texture backend doesn't work well as a completely general
    texture backend because for example when rendering with cogl_polygon
    it needs to be able to tranform arbitrary texture coordinates without
    reference to the other coordintes. This can't be done when the texture
    coordinates are a multiple of one because sometimes the coordinate
    should represent the left or top edge and sometimes it should
    represent the bottom or top edge. For example if the s coordinates are
    0 and 1 then 1 represents the right edge but if they are 1 and 2 then
    1 represents the left edge.
    
    Instead the sub-textures are now documented not to support coordinates
    outside the range [0,1]. The coordinates for the sub-region are now
    represented as integers as this helps avoid rounding issues. The
    region can no longer be a super-region of the texture as this
    simplifies the code quite a lot.
    
    There are two new texture virtual functions:
    
    transform_quad_coords_to_gl - This transforms two pairs of coordinates
         representing a quad. It will return FALSE if the coordinates can
         not be transformed. The sub texture backend uses this to detect
         coordinates that require repeating which causes cogl-primitives
         to use manual repeating.
    
    ensure_non_quad_rendering - This is used in cogl_polygon and
         cogl_vertex_buffer to inform the texture backend that
         transform_quad_to_gl is going to be used. The atlas backend
         migrates the texture out of the atlas when it hits this.

 cogl/cogl-atlas-texture.c       |   57 ++++-
 cogl/cogl-primitives.c          |   21 +-
 cogl/cogl-sub-texture-private.h |   15 +-
 cogl/cogl-sub-texture.c         |  498 +++++++++++++--------------------------
 cogl/cogl-texture-2d-sliced.c   |   21 ++
 cogl/cogl-texture-2d.c          |   17 ++
 cogl/cogl-texture-private.h     |   10 +
 cogl/cogl-texture.c             |   33 +++-
 cogl/cogl-texture.h             |   22 +-
 cogl/cogl-vertex-buffer.c       |    5 +
 10 files changed, 325 insertions(+), 374 deletions(-)

commit 963afa88c51ba69820e570560fffc5c1650d16a6
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Jan 11 16:23:38 2010 +0000

    cogl-texture: Fix manual repeating for negative coordinates
    
    When calculating the next integer position for negative coordinates it
    would not increment if the position is already a multiple of one so we
    need to manually add one.

 cogl/cogl-texture.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

commit f1c289378e7f557ad5227417c22d7c0ce4fcecf2
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Jan 11 16:21:56 2010 +0000

    cogl-texture-2d: Fix the coordinate wrapping for negative coordinates
    
    The formula to wrap the coordinates to the [0,1] range was broken when
    the coordinates were negative.

 cogl/cogl-texture-2d.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

commit f5d809f1e83f65651c65566db87ee6a3876ac79e
Merge: 568b6fb 18b96c8
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Jan 15 12:15:46 2010 +0000

    Merge branch 'master' into more-texture-backends

commit 18b96c84bf188e211cb3c21be2603c56f279332e
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Jan 12 21:44:40 2010 +0000

    cogl-framebuffer: Return gboolean from try_creating_fbo
    
    When try_creating_fbo fails it returns 0 to report the error and if it
    succeeds it returns ‘flags’. However cogl_offscreen_new_to_texture
    also passes in 0 for the flags as the last fallback to create the fbo
    with nothing but the color buffer. In that case it will return 0
    regardless of whether it succeeded so the last fallback will always be
    considered a failure.
    
    To fix this it now just returns a gboolean to indicate whether it
    succeeded and the flags used for each attempt is assigned when passing
    the argument rather than from the return value of the function.
    
    Also if the only configuration that succeeded was with flags==0 then
    it would always try all combinations because last_working_flags would
    also be zero. To avoid this it now uses a separate gboolean to mark
    whether we found a successful set of flags.
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=1873

 cogl/cogl-framebuffer.c |   56 +++++++++++++++++++++++-----------------------
 1 files changed, 28 insertions(+), 28 deletions(-)

commit deecf83c4a120b8db311566154af2a37c8613111
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Jan 13 15:40:36 2010 +0000

    build: Clean up COGL build flags

 cogl/Makefile.am |   53 ++++++++++++++++++++++++++---------------------------
 1 files changed, 26 insertions(+), 27 deletions(-)

commit d1c56ae9a718cddb7c985b046709ff1e59a1b35b
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Jan 12 14:49:55 2010 +0000

    cogl-framebuffer: Add some missing GL defines
    
    Since 755cce33a7 the framebuffer code is using the GL enums
    GL_DEPTH_ATTACHMENT and GL_DEPTH_COMPONENT16. These aren't available
    directly under GLES except with the OES suffix so we need to define
    them manually as we do with the other framebuffer constants.

 cogl/cogl-framebuffer.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

commit dfc3dd9c439b33ca655b00223ec387c3316e9371
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Jan 12 14:43:36 2010 +0000

    cogl: Remove the CGL_* defines
    
    These macros used to define Cogl wrappers for the GLenum values. There are
    now Cogl enums everywhere in the API where these were required so we
    shouldn't need them anymore. They were in the public headers but as
    they are not neccessary and were not in the API docs for Clutter 1.0
    it should be safe to remove them.

 cogl/cogl-material.c                  |   10 +-
 cogl/cogl-primitives.c                |    2 +-
 cogl/cogl-shader.h                    |    2 +-
 cogl/cogl-texture.h                   |    7 +-
 cogl/driver/gl/cogl-defines.h.in      |  655 ---------------------------------
 cogl/driver/gl/cogl-texture-driver.c  |    2 +-
 cogl/driver/gles/cogl-defines.h.in    |  597 ------------------------------
 cogl/driver/gles/cogl-gles2-wrapper.c |    4 +-
 cogl/driver/gles/cogl-gles2-wrapper.h |   65 ++--
 9 files changed, 51 insertions(+), 1293 deletions(-)

commit e2fcb62990c7f72c9ffcff5b39b2794352eaa610
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Jan 12 11:02:09 2010 +0000

    journal: Fixes logging of multiple sets of texture coordinates
    
    If a user supplied multiple groups of texture coordinates with
    cogl_rectangle_with_multitexture_coords() then we would repeatedly log only
    the first group in the journal.  This fixes that bug and adds a conformance
    test to verify the fix.
    
    Thanks to Gord Allott for reporting this bug.

 cogl/cogl-journal.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

commit 9690913fefdad782c74efa5c546ece0d873c05e4
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Nov 30 20:04:41 2009 +0000

    cogl: Support multiple fallbacks in cogl_offscreen_new_to_texture()
    
    The Intel drivers in Mesa 7.6 (and possibly earlier versions) don't
    support creating FBOs with a stencil buffer but without a depth
    buffer. This reworks framebuffer allocation so that we try a number
    of fallback options before failing.
    
    The options we try in order are:
    - the same options that were sucessful last time if available
    - combined depth and stencil
    - separate depth and stencil
    - just stencil, no depth
    - just depth, no stencil
    - neither depth or stencil

 cogl/cogl-framebuffer-private.h |    2 +-
 cogl/cogl-framebuffer.c         |  238 +++++++++++++++++++++++++--------------
 2 files changed, 156 insertions(+), 84 deletions(-)

commit 05ce533fc8b865ed45f60abdf50625003b841576
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Nov 25 14:26:32 2009 +0000

    framebuffers: cogl_offscreen_new_to_texture should take a ref on the texture
    
    We weren't taking a reference on the texture to be used as the color buffer
    for offscreen rendering, so it was possible to free the texture leaving the
    framebuffer in an inconsistent state.

 cogl/cogl-framebuffer-private.h |    1 +
 cogl/cogl-framebuffer.c         |    3 +++
 2 files changed, 4 insertions(+), 0 deletions(-)

commit fbad0a75b684cebbff874ba689810c2ff763b6e8
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Jul 3 16:22:35 2009 +0100

    profiling: Adds initial UProf accounting to Cogl
    
    This adds gives Cogl a dedicated UProf context which will be linked together
    with Clutter's context during clutter_init_real().
    
    Initial timers cover _cogl_journal_flush and _cogl_journal_log_quad
    
    You can explicitly ask for a report of Cogl statistics by exporting
    COGL_PROFILE_OUTPUT_REPORT=1 but since the context is linked with Clutter's
    the statisitcs will also be shown in the automatic Clutter reports.

 cogl/Makefile.am    |    2 +
 cogl/cogl-journal.c |   19 +++++++++++++++++
 cogl/cogl-profile.c |   30 ++++++++++++++++++++++++++++
 cogl/cogl-profile.h |   54 +++++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 105 insertions(+), 0 deletions(-)

commit e9c4a0467b8f65531e5f8670332f3c7af07359ee
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Jan 5 18:02:29 2010 +0000

    Covert stb_image.c to Unix format
    
    The file is still in DOS format (CRLF instead of LF) and this confuses
    the hell out of some versions of Git.

 cogl/stb_image.c | 7544 +++++++++++++++++++++++++++---------------------------
 1 files changed, 3772 insertions(+), 3772 deletions(-)

commit 932a9e16abccfd409f14f6fa8977923a9fdcacdb
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Jan 5 17:54:45 2010 +0000

    Include cogl-defines.h before using GL types
    
    If we are using GL* types we should also be including cogl-defines.h, as
    that will include the right GL header.

 cogl/cogl-shader.h  |    1 +
 cogl/cogl-texture.h |    1 +
 2 files changed, 2 insertions(+), 0 deletions(-)

commit 928e1adc3d26ae648b5b7bad617c700e0aec65eb
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Jan 5 16:11:45 2010 +0000

    cogl: Fix array annotations
    
    The arrays in the cogl_program_set_uniform_* API should be marked as
    such, and have their length arguments specified.

 cogl/cogl-shader.h |   16 ++++++++--------
 1 files changed, 8 insertions(+), 8 deletions(-)

commit 493bdb48fd782c006e38564daa6fa7b8beb6c7af
Merge: 9b441ec ade4e58
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Jan 5 11:04:50 2010 +0000

    Merge branch 'matrix-mode'
    
    * matrix-mode:
      build: Move CoglMatrixMode to cogl-matrix-stack.h

commit ade4e5839d1c94941d7485ba1483b421e4e226e2
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Jan 4 11:58:32 2010 +0000

    build: Move CoglMatrixMode to cogl-matrix-stack.h
    
    This avoids a redeclaration of _cogl_matrix_stack_flush_to_gl() from
    using GLenum to CoglMatrixMode.
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=1928

 cogl/cogl-internal.h     |    7 -------
 cogl/cogl-matrix-stack.h |    9 +++++++--
 2 files changed, 7 insertions(+), 9 deletions(-)

commit 9b441ec30954c7f9dffa1df5f2adac70076ccc26
Author: Halton Huo <halton.huo@sun.com>
Date:   Mon Jan 4 11:49:50 2010 +0000

    cogl-texture: Remove return in void functions
    
    http://bugzilla.o-hand.com/show_bug.cgi?id=1929
    
    Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>

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

commit 2e510c4ef26858f2766db0f60c833e4c84833f03
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Jan 4 11:49:13 2010 +0000

    build: Maintainer cflags go in the _CFLAGS target
    
    The maintainer compiler flags are not pre-processor flags.

 cogl/Makefile.am |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

commit de5c84c4536f4d46ad555ec73895c90a2b773b14
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Jan 4 11:43:00 2010 +0000

    cogl: Const-ify vertices in cogl_polygon()
    
    The CoglTextureVertex array passed to cogl_polygon() is a pure
    in-argument and should be const-ified.
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=1917

 cogl/cogl-primitives.c |   27 ++++++++++++++-------------
 cogl/cogl-texture.h    |    6 +++---
 2 files changed, 17 insertions(+), 16 deletions(-)

commit c6e20029643f4fb6581c3fe89efb2b676bef982f
Merge: 1567ab1 5441440
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Dec 23 10:38:02 2009 +0000

    Merge branch 'animate-layout-manager' into ebassi-next
    
    * animate-layout-manager:
      layout-manager: Document the animation support
      layout-manager: Rewind the timeline in begin_animation()
      box-layout: Remove the allocations hash table
      docs: Clean up the README file
      layout: Let begin_animation() return the Alpha
      box-layout: Add knobs for controlling animations
      box-layout: Animate layout properties
      layout: Add animation support to LayoutManager
      Add ActorBox animation methods

commit 1567ab144b3d9c27b467dc7711f3e345d1bc2ece
Merge: 9640384 08139ac
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sun Dec 20 17:39:12 2009 +0000

    Merge branch 'stage-use-alpha' into ebassi-next
    
    * stage-use-alpha:
      tests: Use accessor methods for :use-alpha
      stage: Add accessors for :use-alpha
      tests: Allow setting the stage opacity in test-paint-wrapper
      stage: Premultiply the stage color
      stage: Composite the opacity with the alpha channel
      glx: Always request an ARGB visual
      stage: Add :use-alpha property
      materials: Get the right blend function for alpha

commit 96403842d0d2ef5bbba01c974f10f03d492f1d9a
Merge: cddad17 5441440
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sun Dec 20 17:33:51 2009 +0000

    Merge branch 'internal-flag' into ebassi-next
    
    * internal-flag:
      conform: Add test unit for the destruction of Containers
      actor: Add internal child flag
      Clean up whitespace, indentation and comments

commit cddad17059313a4445082d47c59f6c52ad001a1c
Merge: 5b614a8 5441440
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Dec 10 23:36:04 2009 +0000

    Merge branch 'get-current-event' into ebassi-next
    
    * get-current-event:
      Add clutter_get_current_event

commit 5b614a87efbba6e10cd8481df44d6fb7f4196dc5
Merge: db881bb 5441440
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Dec 9 23:32:41 2009 +0000

    Merge branch 'no-layout-flag' into ebassi-next
    
    * no-layout-flag:
      actor: Add a NO_LAYOUT flag for actors

commit db881bb3eeab7d059c4db72bcd701bb181a7a6ea
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Dec 9 23:32:18 2009 +0000

    Merge branch 'size-cache' into ebassi-next
    
    * size-cache:
      tests: Clean up the BoxLayout interactive test
      actor: Add debugging notes for size cache
      Add a cache of size requests

commit 568b6fbda1b3992baeddedf9f9856185ca826036
Author: Neil Roberts <neil@linux.intel.com>
Date:   Sat Dec 5 14:20:00 2009 +0000

    cogl-material: Ensure mipmaps before doing anything else on a texture
    
    When the texture is in the atlas, ensuring the mipmaps can effectively
    make it become a completely different texture so we should do this
    before getting the GL handle.

 cogl/cogl-material.c |   19 +++++++++++--------
 1 files changed, 11 insertions(+), 8 deletions(-)

commit 9139f21e093d9d809ecaa16a0e1d84afea93da32
Author: Neil Roberts <neil@linux.intel.com>
Date:   Sat Dec 5 13:48:03 2009 +0000

    cogl-atlas-texture: Remove textures from the atlas when mipmapping is required
    
    Mipmaps don't work very well in the current atlas because there is not
    enough padding between the textures. If ensure_mipmaps is called it
    will now create a new texture and migrate the atlased texture to
    it. It will use the same blit mechanism as when migrating so it will
    try to use an FBO for a fast blit. However if this is not possible it
    will end up downloading the data for the entire atlas which is not
    ideal.

 cogl/cogl-atlas-texture.c |   66 ++++++++++++++++++++++++++++++++++++++------
 1 files changed, 57 insertions(+), 9 deletions(-)

commit 3ebe48105d0254a4d5b4be6831975c0aa7914290
Author: Neil Roberts <neil@linux.intel.com>
Date:   Sat Dec 5 13:24:01 2009 +0000

    cogl-atlas-texture: Try to do texture blits using an FBO
    
    When reorganizing the textures, we can avoid downloading the entire
    texture data if we bind the source texture in a framebuffer object and
    copy the destination using glCopyTexSubImage2D. This is also
    implemented using a much faster path in Mesa.
    
    Currently it is calling the GL framebuffer API directly but ideally it
    would use the Cogl offscreen API. However there is no way to tell Cogl
    not to create a stencil renderbuffer which seems like a waste in this
    situation.
    
    If FBOs are not available it will fallback to reading back the entire
    texture data as before.

 cogl/cogl-atlas-texture.c |  198 ++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 168 insertions(+), 30 deletions(-)

commit 636cef1bd64754e544971c7d691d6179b7d11109
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Dec 4 19:43:39 2009 +0000

    cogl-atlas: Add a debug option to visualize the atlas
    
    This adds a 'dump-atlas-image' debug category. When enabled, CoglAtlas
    will use Cairo to create a png which visualizes the leaf rectangles of
    the atlas.

 cogl/cogl-atlas.c |   76 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 cogl/cogl-debug.c |    3 +-
 cogl/cogl-debug.h |    3 +-
 3 files changed, 80 insertions(+), 2 deletions(-)

commit f5d43d9b024f1e94e6e7adfef4c3916a9da3d39d
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Dec 4 18:55:53 2009 +0000

    cogl-texture-atlas: Add some debugging notes
    
    This adds an 'atlas' category to the COGL_DEBUG environment
    variable. When enabled Cogl will display messages when textures are
    added to the atlas and when the atlas is reorganized.

 cogl/cogl-atlas-texture.c |   62 ++++++++++++++++++++++++++++++++++++++++----
 cogl/cogl-debug.c         |    3 +-
 cogl/cogl-debug.h         |    3 +-
 3 files changed, 60 insertions(+), 8 deletions(-)

commit ec547b7ce03a021346e7ff1d3e3c30999025a9ce
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Dec 4 18:24:15 2009 +0000

    cogl-atlas-texture: Support reorganizing the atlas when it is full
    
    When space can't be found in the atlas for a new texture it will now
    try to reorganize the atlas to make space. A new CoglAtlas is created
    and all of the textures are readded in decreasing size order. If the
    textures still don't fit then the size of the atlas is doubled until
    either we find a space or we reach the texture size limits. If we
    successfully find an organization that fits then all of the textures
    will be migrated to a new texture. This involves copying the texture
    data into CPU memory and then uploading it again. Potentially it could
    eventually use a PBO or an FBO to transfer the image without going
    through the CPU.
    
    The algorithm for laying out the textures works a lot better if the
    rectangles are added in order so we might eventually want some API for
    creating multiple textures in one go to avoid reorganizing the atlas
    as far as possible.

 cogl/cogl-atlas-texture.c |  315 ++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 280 insertions(+), 35 deletions(-)

commit bec2600087dc127619688a593c41e60633f4cba5
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Dec 4 13:06:32 2009 +0000

    cogl: Add an atlased texture backend
    
    This adds a CoglAtlas type which is a data structure that keeps track
    of unused sub rectangles of a larger rectangle. There is a new atlased
    texture backend which uses this to put multiple textures into a single
    larger texture.
    
    Currently the atlas is always sized 256x256 and the textures are never
    moved once they are put in. Eventually it needs to be able to
    reorganise the atlas and grow it if necessary. It also needs to
    migrate the textures out of the atlas if mipmaps are required.

 cogl/Makefile.am                  |    4 +
 cogl/cogl-atlas-texture-private.h |   64 +++++
 cogl/cogl-atlas-texture.c         |  488 ++++++++++++++++++++++++++++++++++
 cogl/cogl-atlas.c                 |  520 +++++++++++++++++++++++++++++++++++++
 cogl/cogl-atlas.h                 |   76 ++++++
 cogl/cogl-context.c               |   14 +
 cogl/cogl-context.h               |    8 +
 cogl/cogl-texture.c               |   30 ++-
 cogl/cogl-types.h                 |    3 +-
 9 files changed, 1194 insertions(+), 13 deletions(-)

commit 63c984f193739622b2f1523604d841227eeea63e
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Dec 3 14:46:20 2009 +0000

    cogl-sub-texture: Fix the height of sub textures
    
    The code which is used to get the texture height was accidentally
    using the width due to a cut-and-paste fail.

 cogl/cogl-sub-texture.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

commit 05d42ed390232b14a40511bae985c2f58a474859
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Nov 27 18:45:36 2009 +0000

    cogl: Add a CoglTexture2D backend
    
    This is an optimised version of CoglTexture2DSliced that always deals
    with a single texture and always uses the GL_TEXTURE_2D
    target. cogl_texture_new_from_bitmap now tries to use this backend
    first. If it can't create a texture with that size then it falls back
    the sliced backend.
    
    cogl_texture_upload_data_prepare has been split into two functions
    because the sliced backend needs to know the real internal format
    before the conversion is performed. Otherwise the converted bitmap
    will be wasted if the backend can't support the size.

 cogl/Makefile.am               |    2 +
 cogl/cogl-texture-2d-private.h |   69 +++++
 cogl/cogl-texture-2d.c         |  623 ++++++++++++++++++++++++++++++++++++++++
 cogl/cogl-texture-private.h    |    9 +
 cogl/cogl-texture.c            |   75 ++++--
 5 files changed, 755 insertions(+), 23 deletions(-)

commit f17767e4c105d1d172d9496646ec22105e107e31
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Nov 30 12:15:05 2009 +0000

    cogl: Add _cogl_texture_driver_upload_to_gl
    
    This provides a way to upload the entire data for a texture without
    having to first call glTexImage and then glTexSubImage. This should be
    faster especially with indirect rendering where it would needlessy
    send the data for the texture twice.

 cogl/cogl-texture-driver.h             |   14 +++++++++
 cogl/driver/gl/cogl-texture-driver.c   |   26 +++++++++++++++++
 cogl/driver/gles/cogl-texture-driver.c |   47 ++++++++++++++++++++++++++++++++
 3 files changed, 87 insertions(+), 0 deletions(-)

commit 8753422ef53608b90cef24e35dee10b01dede14e
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Nov 27 16:59:51 2009 +0000

    cogl: Move some of the texture_2d_sliced_new_* functions into cogl-texture
    
    new_from_data and new_from_file can be implemented in terms of
    new_from_bitmap so it makes sense to move these to cogl-texture rather
    than having to implement them in every texture backend.

 cogl/cogl-texture-2d-sliced-private.h |   16 ------
 cogl/cogl-texture-2d-sliced.c         |   84 ---------------------------------
 cogl/cogl-texture.c                   |   44 +++++++++++++----
 3 files changed, 33 insertions(+), 111 deletions(-)

commit c9cafc798c5245a034a9537cbf390b652e17ac16
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Nov 27 16:39:16 2009 +0000

    cogl: Add a sub texture backend
    
    This adds a new texture backend which represents a sub texture of a
    larger texture. The texture is created with a reference to the full
    texture and a set of coordinates describing the region. The backend
    simply defers to the full texture for all operations and maps the
    coordinates to the other range. You can also use coordinates outside
    the range [0,1] to create a repeated version of the full texture.
    
    A new public API function called cogl_texture_new_from_sub_texture is
    available to create the sub texture.

 cogl/Makefile.am                     |    2 +
 cogl/cogl-sub-texture-private.h      |   56 +++
 cogl/cogl-sub-texture.c              |  699 ++++++++++++++++++++++++++++++++++
 cogl/cogl-texture.c                  |   15 +-
 cogl/cogl-texture.h                  |   27 ++
 doc/reference/cogl/cogl-sections.txt |    1 +
 6 files changed, 798 insertions(+), 2 deletions(-)

commit 7c5aea9b688e7fb3d57cd5a8c5bf2b8095f5f71a
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Dec 2 17:17:24 2009 +0000

    cogl: Make the callback for foreach_sub_texture_in_region use const
    
    The CoglTextureSliceCallback function pointer now takes const pointers
    for the texture coordinates. This makes it clearer that the callback
    should not modify the array and therefore the backend can use the same
    array for both sets of coords.

 cogl/cogl-journal-private.h |    2 +-
 cogl/cogl-journal.c         |    2 +-
 cogl/cogl-primitives.c      |   14 +++++++-------
 cogl/cogl-texture-private.h |    4 ++--
 4 files changed, 11 insertions(+), 11 deletions(-)

commit 6bc3319c86be6b74e7e0701e11e34d4acfb56017
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Dec 2 13:41:49 2009 +0000

    cogl: Add a texture utility function for manually repeating
    
    Given a region of texture coordinates this utility invokes a callback
    enough times to cover the region with a subregion that spans the
    texture at most once. Eg, if called with tx1 and tx2 as 0.5 and 3.0 it
    it would invoke the callback with:
    
    0.5,1.0  1.0,2.0  2.0,3.0
    
    Manual repeating is needed by all texture backends regardless of
    whether they can support hardware repeating because when Cogl calls
    the foreach_sub_texture_in_region method then it sets the wrap mode to
    GL_CLAMP_TO_EDGE and no hardware repeating is possible.

 cogl/cogl-texture-private.h |   14 ++++++
 cogl/cogl-texture.c         |  102 +++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 116 insertions(+), 0 deletions(-)

commit 28e37e9f57275887ae47b83bc87375b91926c534
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Nov 27 15:47:22 2009 +0000

    cogl-primitives: Check for repeating after the coordinate transform
    
    In _cogl_multitexture_quad_single_primitive we use a wrap mode of
    GL_CLAMP_TO_EDGE if the texture coordinates are all in the range [0,1]
    or GL_REPEAT otherwise. This is to avoid pulling in pixels from either
    side when using GL_LINEAR filter mode and rendering the entire
    texture. Previously it was checking using the unconverted texture
    coordinates. This is ok unless the texture backend is radically
    transforming the texture coordinates, such as in the sub texture
    backend where the coordinates may map to something completely
    different. We now check whether the coordinates are in range after
    converting them.

 cogl/cogl-primitives.c |   87 ++++++++++++++++++++---------------------------
 1 files changed, 37 insertions(+), 50 deletions(-)

commit 25f3b993c61957801fcd2071d4d0cf060b02c886
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Nov 26 18:58:17 2009 +0000

    cogl: Move all of the fields from CoglTexture to CoglTexture2DSliced
    
    Most of the fields that were previously in CoglTexture are specific to
    the implementation of CoglTexture2DSliced so they should be placed
    there instead. For example, the 'mipmaps_dirty' flag is an
    implementation detail of the ensure_mipmaps function so it doesn't
    make sense to force all texture backends to have this function.
    
    Other fields such as width, height, gl_format and format may make
    sense for all textures but I've added them as virtual functions
    instead. This may make more sense for a sub-texture backend for
    example where it can calculate these based on the full texture.

 cogl/cogl-texture-2d-sliced-private.h |   25 +++-
 cogl/cogl-texture-2d-sliced.c         |  204 +++++++++++++++++++--------------
 cogl/cogl-texture-private.h           |   21 +---
 cogl/cogl-texture.c                   |   19 +--
 4 files changed, 149 insertions(+), 120 deletions(-)

commit 5030356e0e2a216df803643c00fb18e504fa765b
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Nov 26 17:32:52 2009 +0000

    cogl: Move data only used for upload out of CoglTexture
    
    The CoglTexture struct previously contained some fields which are only
    used to upload data such as the CoglBitmap and the source GL
    format. These are now moved to a separate CoglTextureUploadData struct
    which only exists for the duration of one of the cogl_texture_*_new
    functions. In cogl-texture there are utility functions which operate
    on this new struct rather than on CoglTexture directly.
    
    Some of the fields that were previously stored in the CoglBitmap
    struct are now copied to the CoglTexture such as the width, height,
    format and internal GL format.
    
    The rowstride was previously stored in CoglTexture and this was
    publicly accessible with the cogl_texture_get_rowstride
    function. However this doesn't seem to be a useful function because
    there is no need to use the same rowstride again when uploading or
    downloading new data. Instead cogl_texture_get_rowstride now just
    calculates a suitable rowstride from the format and width of the
    texture.

 cogl/cogl-texture-2d-sliced.c          |  344 +++++++++++++++-----------------
 cogl/cogl-texture-driver.h             |    6 +-
 cogl/cogl-texture-private.h            |   51 +++--
 cogl/cogl-texture.c                    |   93 +++++-----
 cogl/driver/gl/cogl-texture-driver.c   |   14 +-
 cogl/driver/gles/cogl-texture-driver.c |   16 +-
 6 files changed, 262 insertions(+), 262 deletions(-)

commit 5441440f4790e972ac2f8dd81e61adc5c98c8e58
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Dec 2 21:54:22 2009 +0000

    cogl: Use #ifdef GL around GL_TEXTURE_RECTANGLE_ARB
    
    Commit 558b17ee1e added support for rectangle textures to the
    framebuffer code. Under GLES there is no GL_TEXTURE_RECTANGLE_ARB
    definition so this was breaking the build. The rest of Cogl uses
    ifdef's around that constant so we should do the same here.

 cogl/cogl-framebuffer.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

commit d75559b91b939611ae3857edb36dfd98a084987a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Dec 2 11:37:13 2009 +0000

    Remove a gtk-doc annotation
    
    The Mesa matrix code still has a comment that looks like a gtk-doc
    annotation.

 cogl/cogl-matrix-mesa.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 08139ace98fbb322dff13a686c2140ecab6ebac5
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Dec 1 16:22:45 2009 +0000

    materials: Get the right blend function for alpha
    
    The correct blend function for the alpha channel is:
    
      GL_ONE, GL_ONE_MINUS_SRC_ALPHA
    
    As per bug 1406. This fix was dropped when the switch to premultiplied
    alpha was merged.

 cogl/cogl-material.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit ca7f3fb883e872e76894f85fff20959949b2719c
Merge: a8b563b 6c5110c
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Dec 1 14:55:19 2009 +0000

    Merge branch 'text-direction'
    
    * text-direction:
      docs: Add text-direction accessors
      Set the default language on the Pango context
      actor: Set text direction on parenting
      tests: Display the index inside text-box-layout
      box-layout: Honour :text-direction
      text: Dirty layout cache on text direction changes
      actor: Add :text-direction property
      Use the newly added ClutterTextDirection enumeration
      Add ClutterTextDirection enumeration

commit a8b563b622e5061dd6d0d1164ca5fa79b24ab008
Author: Neil Roberts <neil@linux.intel.com>
Date:   Sun Nov 29 20:06:36 2009 +0000

    cogl: Enable blending if a lighting colour is semi-transparent
    
    We currently enable blending if the material colour has
    transparency. This patch makes it also enable blending if any of the
    lighting colours have transparency. Arguably this isn't neccessary
    because we don't expose any API to enable lighting so there is no
    bug. However it is currently possible to enable lighting with a direct
    call to glEnable and this otherwise works so it is a shame not to have
    it.
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=1907

 cogl/cogl-material.c |   14 +++++++++++++-
 1 files changed, 13 insertions(+), 1 deletions(-)

commit 120f94d073cb2b005592c26f75e117b28f390a94
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Nov 27 15:24:09 2009 +0000

    primitives: Don't use dynamic arrays since VS2008 can't cope with them :-(
    
    This changes _cogl_path_fill_nodes_scanlines to use g_alloca instead of
    using a variable to declare an array length.

 cogl/cogl-primitives.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 944423a8d99d384635b3d13c1ea18f1fed2e59c3
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Nov 26 19:06:35 2009 +0000

    cogl: deprecate cogl_draw_buffer API and replace with a cogl_framebuffer API
    
    cogl_push_draw_buffer, cogl_set_draw_buffer and cogl_pop_draw_buffer are now
    deprecated and new code should use the new cogl_framebuffer_* API instead.
    
    Code that previously did:
        cogl_push_draw_buffer ();
        cogl_set_draw_buffer (COGL_OFFSCREEN_BUFFER, buffer);
        /* draw */
        cogl_pop_draw_buffer ();
    should now be re-written as:
        cogl_push_framebuffer (buffer);
        /* draw */
        cogl_pop_framebuffer ();
    
    As can be seen from the example above the rename has been used as an
    opportunity to remove the redundant target argument from
    cogl_set_draw_buffer; it now only takes one call to redirect to an offscreen
    buffer, and finally the term framebuffer may be a bit more familiar to
    anyone coming from an OpenGL background.

 cogl/Makefile.am                     |    4 +-
 cogl/cogl-clip-stack.c               |   74 ++--
 cogl/cogl-context.c                  |   13 +-
 cogl/cogl-context.h                  |    4 +-
 cogl/cogl-draw-buffer-private.h      |  133 --------
 cogl/cogl-draw-buffer.c              |  603 ---------------------------------
 cogl/cogl-framebuffer-private.h      |  124 +++++++
 cogl/cogl-framebuffer.c              |  618 ++++++++++++++++++++++++++++++++++
 cogl/cogl-journal.c                  |   12 +-
 cogl/cogl-matrix-stack.c             |    6 +-
 cogl/cogl-primitives.c               |   30 +-
 cogl/cogl-texture.c                  |   12 +-
 cogl/cogl-vertex-buffer.c            |    6 +-
 cogl/cogl.c                          |   80 +++---
 cogl/cogl.h                          |   73 ++++-
 doc/reference/cogl/cogl-sections.txt |    3 +
 16 files changed, 928 insertions(+), 867 deletions(-)

commit 7fee8a309bbf4a8dc55a4cb93ee735dec4979173
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Nov 26 17:47:17 2009 +0000

    cogl_offscreen: deprecate cogl_offscreen_ref/unref.
    
    New code should use cogl_handle_ref/unref

 cogl/cogl-offscreen.h |   34 +++++++++++++++++++++-------------
 1 files changed, 21 insertions(+), 13 deletions(-)

commit 1df0e36c6c700ab80943ea0e171b1134ce0ce963
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Nov 25 13:39:45 2009 +0000

    cogl: Use a vtable for the texture backends instead of a type and switch
    
    Instead of storing an enum with the backend type for each texture and
    then using a switch statement to decide which function to call, we
    should store pointers to all of the functions in a struct and have
    each texture point to that struct. This is potentially slightly faster
    when there are more backends and it makes implementing new backends
    easier because it's more obvious which functions have to be
    implemented.

 cogl/cogl-texture-2d-sliced-private.h |   62 ----------------
 cogl/cogl-texture-2d-sliced.c         |  122 +++++++++++++++-----------------
 cogl/cogl-texture-private.h           |   97 +++++++++++++++++++------
 cogl/cogl-texture.c                   |  124 ++++++--------------------------
 4 files changed, 154 insertions(+), 251 deletions(-)

commit 95fed739d5bc66e8b382a69c7890e2d325ba820e
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Nov 25 02:47:52 2009 +0000

    offscreen: cogl_offscreen_new_to_texture now supports GL_TEXTURE_RECTANGLE_ARB
    
    cogl_offscreen_new_to_texture previously bailed out if the given texture's
    GL target was anything but GL_TEXTURE_2D, but it now also allows
    foreign GL_TEXTURE_RECTANGLE_ARB textures.
    
    Thanks to Owen for reporting this issue, ref:
    https://bugzilla.gnome.org/show_bug.cgi?id=601032

 cogl/cogl-draw-buffer.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

commit 32bc0f208852fcf7324b3323cbc094785a432e9b
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Nov 24 18:24:07 2009 +0000

    debug: remove the COGL_DEBUG=client-side-matrices option
    
    Cogl only supports client side matrices so this debug option is no longer
    useful.

 cogl/cogl-debug.c |    1 -
 cogl/cogl-debug.h |   13 ++++++-------
 2 files changed, 6 insertions(+), 8 deletions(-)

commit 16a09763efcf5067975e9036ebba6aaf405260e3
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Nov 11 12:50:48 2009 +0000

    [cogl-material] Adds cogl_material_copy() API
    
    cogl_material_copy can be used to create a new CoglHandle referencing a copy
    of some given material.
    
    From now on we will advise that developers always aim to use this function
    instead of cogl_material_new() when creating a material that is in any way
    derived from another.
    
    By using cogl_material_copy, Cogl can maintain an ancestry for each material
    and keep track of "similar" materials.  The plan is that Cogl will use this
    information to minimize the cost of GPU state transitions.

 cogl/cogl-context.c          |   13 ++++++---
 cogl/cogl-context.h          |    4 ++-
 cogl/cogl-material-private.h |    9 ++++++
 cogl/cogl-material.c         |   62 +++++++++++++++++++++++++++++++++++------
 cogl/cogl-material.h         |   18 ++++++++++++
 cogl/cogl.c                  |    6 ++--
 6 files changed, 95 insertions(+), 17 deletions(-)

commit 78fb882a4bd782d54d99c373e5c294f4883dfbc1
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Nov 11 12:52:08 2009 +0000

    [cogl] remove unused gles/cogl-utils.[c,h]
    
    The only function in gles/cogl-utils.c was cogl_util_next_p2() and it's
    redundant since we also have a cogl/cogl-utils.[c,h]

 cogl/driver/gles/cogl-util.c |   49 ------------------------------------------
 cogl/driver/gles/cogl-util.h |   30 -------------------------
 2 files changed, 0 insertions(+), 79 deletions(-)

commit d2ce4f71379f2a2aed2b0e50e80f5c0583ea2866
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Nov 23 11:30:32 2009 +0000

    docs: Don't document cogl_flush_gl_state as public API
    
    This function was #if 0'd before we released Clutter 1.0 so there's no
    implementation of it.  At some point we thought it might assist with
    developers breaking out into raw OpenGL.  Breaking out to raw GL is a
    difficult problem though so we decided instead we will wait for a specific
    use case to arrise before trying to support it.

 cogl/cogl.c                          |    8 --------
 cogl/cogl.h                          |   22 ----------------------
 doc/reference/cogl/cogl-sections.txt |    1 -
 3 files changed, 0 insertions(+), 31 deletions(-)

commit d2f8f6c58184fa24c19646bd9f7ed4c314cdc7f2
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Nov 19 16:07:38 2009 +0000

    Minor fix to cogl material
    
    _cogl_material_get_layer expects a CoglMaterial* pointer but it was
    being called with a CoglHandle. This doesn't matter because the
    CoglHandle is actually just the CoglMaterial* pointer anyway but it
    breaks the ability to change the _cogl_material_pointer_from_handle
    macro.

 cogl/cogl-material.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 421b85fcd5585df2177f1e71c436d12274b9e999
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Nov 19 14:30:01 2009 +0000

    docs: Add indices to the Cogl API reference
    
    The Clutter API reference has an index of the symbols for each minor
    version, and a list of deprecated symbols. The Cogl API reference
    should have the same layout.

 doc/reference/cogl/cogl-docs.xml.in |   23 ++++++++++++++++++++++-
 1 files changed, 22 insertions(+), 1 deletions(-)

commit 03439aede831649822c115ebe3dc9eb410cf1c65
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Nov 19 13:55:10 2009 +0000

    docs: Increase consistency in Cogl documentation

 cogl/cogl-texture.h       |   66 +++++++++++++---------
 cogl/cogl-vertex-buffer.h |  134 ++++++++++++++++++++++++---------------------
 cogl/cogl.h               |   90 ++++++++++++++++--------------
 3 files changed, 157 insertions(+), 133 deletions(-)

commit fab83d14f4508b2f1e305328dda7a21abbfc9618
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Nov 19 13:33:26 2009 +0000

    docs: Documentation fixes for CoglMatrix
    
    Clean up the references, the docbook tags, and the style to fit in
    with the rest of the API references for Cogl and Clutter.

 cogl/cogl-matrix.h |  136 ++++++++++++++++++++++++++--------------------------
 1 files changed, 68 insertions(+), 68 deletions(-)

commit 800e100c20c1898d623a899d2179e0731089eb5c
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Nov 19 13:33:08 2009 +0000

    Whitespace fix for cogl-color.h

 cogl/cogl-color.h |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

commit 80783abf890f672c1bb2de4d5b319d7d02a6cdfd
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Nov 19 13:31:38 2009 +0000

    docs: Documentation fixes for CoglMaterial
    
    Clean up the references, the docbook tags, and the style to fit in
    with the rest of the API references for Cogl and Clutter.

 cogl/cogl-material.h |  404 +++++++++++++++++++++++++-------------------------
 1 files changed, 205 insertions(+), 199 deletions(-)

commit 3f9e26f084b06c0f3b7d821ed49825bb9826cb38
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Nov 19 13:29:02 2009 +0000

    docs: Documentation fixes for CoglBitmap
    
    • Use the same style for the Cogl API reference as the one used for
      the Clutter API reference.
    
    • Fix the introspection annotations for cogl_bitmap_get_size_from_file()

 cogl/cogl-bitmap.h |   25 +++++++++++++------------
 1 files changed, 13 insertions(+), 12 deletions(-)

commit bae4b213d3fe22063e0b0a152f812e9df5d28597
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Nov 19 12:34:06 2009 +0000

    docs: Fix Cogl API reference build
    
    • Ignore all the private header files
    
    • Add all missing/unused symbols
    
    • Remove deprecated symbols from 0.*

 doc/reference/cogl/Makefile.am       |   30 ++++++++++++++++++++++--------
 doc/reference/cogl/cogl-sections.txt |   29 ++++++++++++++++++++++++-----
 2 files changed, 46 insertions(+), 13 deletions(-)

commit feff0213ea0d4b83d9b90e2012f45cf1ab7a107d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Nov 19 12:32:59 2009 +0000

    docs: Remove non-gtk-doc annotations
    
    The imported Mesa matrix code has some documentation annotations
    that make gtk-doc very angry. Since it's all private anyway we
    can safely make gtk-doc ignore the offending stuff.

 cogl/cogl-matrix-mesa.c |  136 +++++++++++++++++++++++-----------------------
 cogl/cogl-matrix-mesa.h |   12 ++--
 2 files changed, 74 insertions(+), 74 deletions(-)

commit 8f21013ee6a31ea09d457a33d50cca3cf8616169
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Nov 19 11:51:21 2009 +0000

    docs: Fix the 'Since' annotation for some functions
    
    The 'Since' annotation needs to have a colon after it or gtk-doc won't
    pick it up.

 cogl/cogl-material.h |   40 ++++++++++++++++++++--------------------
 cogl/cogl-texture.h  |    6 +++---
 cogl/cogl.h          |    4 ++--
 3 files changed, 25 insertions(+), 25 deletions(-)

commit b4fc8faaabcface6421ffe4acc47cc5c99706cff
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Nov 18 19:09:10 2009 +0000

    cogl: Use APIENTRY for GL function pointer declarations
    
    This matters for platforms such as Windows that use a different
    calling covention from the default for GL functions.

 cogl/driver/gl/cogl-context-driver.h   |    6 +++++-
 cogl/driver/gles/cogl-context-driver.h |    6 +++++-
 2 files changed, 10 insertions(+), 2 deletions(-)

commit 0f37570e93b894fcd0b3f7dc90586f6c0685ad94
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Nov 18 19:23:57 2009 +0000

    build: Fix out-of-tree builds for cogl-defines.h
    
    $(COGL_DRIVER)/cogl-defines.h is generated in the configure script so
    it ends up in the build directory. Therefore the build rule for
    cogl/cogl-defines.h should depend on the file in $(builddir) not
    $(srcdir).

 cogl/Makefile.am |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

commit 2d51159281844fc2a1551065f78007b9e9b8f516
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Nov 18 18:04:13 2009 +0000

    docs: Clean up deprecation notices
    
    The deprecation notices in gtk-doc should also refer to the
    release that added the deprecation, and if the deprecated
    symbol has been replaced by something else then the new symbol
    should be correctly referenced.

 cogl/cogl.h |   46 +++++++++++++++++++++++-----------------------
 1 files changed, 23 insertions(+), 23 deletions(-)

commit 2f2c3fb8392eaf6f570dc713a811bde7e4f34ac9
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Nov 18 17:35:07 2009 +0000

    build: Make cogl.h not conditional on driver defines
    
    The main COGL header cogl.h is currently created at configure time
    because it conditionally includes the driver-dependent defines. This
    sometimes leads to a stale cogl.h with old definitions which can
    break the build until you clean out the whole tree and start from
    scratch.
    
    We can generate a stable cogl-defines.h at build time from the
    equivalent driver-dependent header and let cogl.h include that
    file instead.

 cogl/Makefile.am |   18 +-
 cogl/cogl.h      |  991 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 cogl/cogl.h.in   |  991 ------------------------------------------------------
 3 files changed, 1003 insertions(+), 997 deletions(-)

commit b91e8a828feac9f4459aac77c4fa93aff734903d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Nov 18 14:37:43 2009 +0000

    build: Add cogl-matrix-private.h to the dist

 cogl/Makefile.am |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

commit 7372e1d4f91c148a717be32501944bc69f4050f5
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Nov 18 14:34:33 2009 +0000

    build: Add cogl-feature-functions.h to the dist

 cogl/driver/gl/Makefile.am   |    1 +
 cogl/driver/gles/Makefile.am |    3 ++-
 2 files changed, 3 insertions(+), 1 deletions(-)

commit 0e112c3371050c727cfc37da093650a95b0048a4
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Nov 18 13:23:10 2009 +0000

    cogl: Add the missing terminators for the arrays of feature functions
    
    _cogl_feature_check expects the array of function names to be
    terminated with a NULL pointer but I forgot to add this. This was
    causing crashes depending on what happened to be in memory after the
    array.

 cogl/driver/gl/cogl.c   |    1 +
 cogl/driver/gles/cogl.c |    1 +
 2 files changed, 2 insertions(+), 0 deletions(-)

commit 0927f35e7a3373a88207cabfefcc4c9716061854
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Nov 17 18:06:31 2009 +0000

    cogl: Use the GL_EXT_blend_{func,equation}_separate extensions
    
    We should use these extensions to check for glBlendFuncSeparate and
    glBlendEquationSeparate as well as checking the GL version number.

 cogl/driver/gl/cogl-feature-functions.h |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)

commit 2a53b84d18fb4e2839ca8c9f6bccf51f09845424
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Nov 17 17:22:22 2009 +0000

    cogl: Don't bother checking for NPOTs or VBOs on later GLs
    
    For VBOs, we don't need to check for the extension if the GL version
    is greater than 1.5. Non-power-of-two textures are given in 2.0.
    
    We could also assume shader support in GL 2.0 except that the function
    names are different from those in the extension so it wouldn't work
    well with the current mechanism.

 cogl/driver/gl/cogl-feature-functions.h |    4 +++-
 cogl/driver/gl/cogl.c                   |    3 ++-
 2 files changed, 5 insertions(+), 2 deletions(-)

commit 058d79dce2a30aab7457b237ff6d42872fe9d4e9
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Nov 17 13:52:40 2009 +0000

    cogl: Make it easier to add checks for GL extensions
    
    Previously if you need to depend on a new GL feature you had to:
    
    - Add typedefs for all of the functions in cogl-defines.h.in
    
    - Add function pointers for each of the functions in
      cogl-context-driver.h
    
    - Add an initializer for the function pointers in
      cogl-context-driver.c
    
    - Add a check for the extension and all of the functions in
      cogl_features_init. If the extension is available under multiple
      names then you have to duplicate the checks.
    
    This is quite tedious and error prone. This patch moves all of the
    features and their functions into a list of macro invocations in
    cogl-feature-functions.h. The macros can be redefined to implement all
    of the above tasks from the same header.
    
    The features are described in a struct with a pointer to a table of
    functions. A new function takes the feature description from this
    struct and checks for its availability. The feature can take a list of
    extension names with a list of alternate namespaces (such as "EXT" or
    "ARB"). It can also detect the feature from a particular version of
    GL.
    
    The typedefs are now gone and instead the function pointer in the Cogl
    context just directly contains the type.
    
    Some of the functions in the context were previously declared with the
    'ARB' extension. This has been removed so that now all the functions
    have no suffix. This makes more sense when the extension could
    potentially be merged into GL core as well.

 cogl/Makefile.am                          |    2 +
 cogl/cogl-feature-private.c               |  141 +++++++++++
 cogl/cogl-feature-private.h               |   71 ++++++
 cogl/cogl-journal.c                       |   10 +-
 cogl/cogl-vertex-buffer.c                 |   21 +-
 cogl/driver/gl/cogl-context-driver.c      |   58 +----
 cogl/driver/gl/cogl-context-driver.h      |   81 +------
 cogl/driver/gl/cogl-defines.h.in          |  361 ----------------------------
 cogl/driver/gl/cogl-feature-functions.h   |  326 +++++++++++++++++++++++++
 cogl/driver/gl/cogl-program.c             |   89 ++++----
 cogl/driver/gl/cogl-shader.c              |   27 +-
 cogl/driver/gl/cogl.c                     |  369 +++--------------------------
 cogl/driver/gles/cogl-context-driver.c    |   19 +-
 cogl/driver/gles/cogl-context-driver.h    |   25 +-
 cogl/driver/gles/cogl-defines.h.in        |   70 ------
 cogl/driver/gles/cogl-feature-functions.h |   72 ++++++
 cogl/driver/gles/cogl.c                   |   82 +++----
 17 files changed, 794 insertions(+), 1030 deletions(-)

commit 8b4a861093583cc7d978aa9128abf3c24c13b743
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Nov 11 16:42:53 2009 +0000

    Use the GL_ARB_multitexture extension on GL 1.2
    
    Cogl requires multi-texturing support. This is only available as an
    extension in GL 1.2 so we should check for it before accepting the
    driver.
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=1875

 cogl/driver/gl/cogl.c |   46 +++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 39 insertions(+), 7 deletions(-)

commit 6b0b07a8a600030b4dfdb6d72dc09f269465540b
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Nov 11 13:38:52 2009 +0000

    cogl-material: Fallback to BlendFunc if BlendFuncSeparate is unavailable
    
    glBlendFuncSeparate is only available in OpenGL 1.4. If we
    conditionally check for this then Clutter will work with OpenGL 1.2.
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=1875

 cogl/cogl-material.c |   11 ++++++++---
 1 files changed, 8 insertions(+), 3 deletions(-)

commit a50907848fa6d05c33688d434675f4a14a6e6f2d
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Nov 11 13:26:54 2009 +0000

    Validate that the GL version is >= 1.2
    
    There is a new internal Cogl function called _cogl_check_driver_valid
    which looks at the value of the GL_VERSION string to determine whether
    the driver is supported. Clutter now calls this after the stage is
    realized. If it fails then the stage is marked as unrealized and a
    warning is shown.
    
    _cogl_features_init now also checks the version number before getting
    the function pointers for glBlendFuncSeparate and
    glBlendEquationSeparate. It is not safe to just check for the presence
    of the functions because some drivers may define the function without
    fully implementing the spec.
    
    The GLES version of _cogl_check_driver_valid just always returns TRUE
    because there are no version requirements yet.
    
    Eventually the function could also check for mandatory extensions if
    there were any.
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=1875

 cogl/cogl.c             |    5 +++
 cogl/cogl.h.in          |    9 +++++
 cogl/driver/gl/cogl.c   |   87 +++++++++++++++++++++++++++++++++++++++++++----
 cogl/driver/gles/cogl.c |    6 +++
 4 files changed, 100 insertions(+), 7 deletions(-)

commit d30927290110b1f6443ee8331c272e097217b0b2
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Oct 5 13:37:11 2009 +0100

    [cogl-primitives] Don't clear the whole stencil buffer
    
    When _cogl_add_path_to_stencil_buffer is used to draw a path we don't
    need to clear the entire stencil buffer. Instead it can clear just the
    bounding box of the path. This adds an extra parameter called
    'need_clear' which is only set if the stencil buffer is being used for
    clipping.
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=1829

 cogl/cogl-clip-stack.c |    6 ++++--
 cogl/cogl-primitives.c |   37 ++++++++++++++++++++++++++++++-------
 2 files changed, 34 insertions(+), 9 deletions(-)

commit c49edf00979f1f89a3b3a2bc783d543f6d3754f5
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Nov 12 17:00:15 2009 +0000

    Remove _cogl_flush_matrix_stacks from cogl-internal.h
    
    The definition for this function was removed in f7d64e5abvoid so it
    should be removed from the header too.

 cogl/cogl-internal.h |    2 --
 1 files changed, 0 insertions(+), 2 deletions(-)

commit 57d9c3c6689b7d1f10575c6fb049c24f6e408f55
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Nov 11 10:32:39 2009 +0000

    cogl: Declare cogl_is_bitmap()
    
    The function is automatically defined by the CoglHandle type
    definition macro, but it still requires to be declared in the
    header file to be used.

 cogl/cogl-bitmap.h |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)

commit 6c5110cb4b80faf671b49c0eb98b689e18826a7c
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Nov 9 11:50:16 2009 +0000

    cogl: Add an initialiser for enable_flags in cogl_begin_gl
    
    This fixes a warning about an uninitialised value. It could also
    potentially fix some crashes for example if the enable_flags value
    happened to include a bit for enabling a vertex array if no vertex
    buffer pointer was set.

 cogl/cogl.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 2fca6087e9bd5f4e453e8b3137476268634aeda2
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Nov 6 15:06:39 2009 +0000

    Clean up cogl.h template
    
    The inclusion order is mostly random, and it should really be
    in alphabetic order, just like clutter.h.
    
    Also, cogl-vertex-buffer.h is included twice.

 cogl/cogl.h.in |   17 +++++++++--------
 1 files changed, 9 insertions(+), 8 deletions(-)

commit 544543e249d59750a0ed8fdb3ac2d9e333d89d79
Author: Tim Horton <hortont424@gmail.com>
Date:   Fri Nov 6 11:57:43 2009 +0000

    osx: CGBitmapContextCreate can't make 24bpp, alphaless offscreen pixmaps
    
    While loading a JPEG from disk (with clutter_texture_new_from_file),
    I got the following:
    
    <Error>: CGBitmapContextCreate: unsupported parameter combination: 8
    integer bits/component; 24 bits/pixel; 3-component colorspace;
    kCGImageAlphaNone; 3072 bytes/row.
    <Error>: CGContextDrawImage: invalid context
    
    Looking around, I found that CGBitmapContextCreate can't make 24bpp
    offscreen pixmaps without an alpha channel...
    
    This fixes the bug, and seems to not break other things...
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=1159
    
    Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>

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

commit 339b447075218847f376301010cd9dc6478cff37
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Nov 6 14:04:36 2009 +0000

    Do not pass flags to g_module_open(NULL)
    
    The flags are ignored when opening the main module, so we
    should pass 0 to avoid confusion when reading the source.

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

commit eb0adfe2bcf04987eec40582945592844f0fa310
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Nov 6 11:50:22 2009 +0000

    Merge branch 'josh-osx-fixes'
    
    * josh-osx-fixes:
      osx: Fix a warning on Snow Leopard
      docs: Fix OS X docs to install Ports in correct order
      osx: Implement the updated ClutterStageWindow interface

commit b0c60ce77a21ff1a7916f9601aefd6b26d9cc98d
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Nov 5 10:56:24 2009 +0000

    [clip-stack] stop using deprecated cogl_clip_push_window_rect API
    
    try_pushing_rect_as_window_rect now uses the new
    cogl_clip_push_window_rectangle API.

 cogl/cogl-clip-stack.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 2e0e441031fb404310eaf82bc81b4d53350ca277
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Nov 4 19:31:43 2009 +0000

    [cogl-clip] deprecate parts and cleanup the API
    
    cogl_clip_push() which accepts a rectangle in model space shouldn't have
    been defined to take x,y,width,height arguments because this isn't consistant
    with other Cogl API dealing with model space rectangles.  If you are using a
    coordinate system with the origin at the center and the y+ extending up,
    then x,y,width,height isn't as natural as (x0,y0)(x1,y1). This API has
    now been replace with cogl_clip_push_rectangle()
    
    (As a general note: the Cogl API should only use the x,y,width,height style
    when the appropriate coordinate space is defined by Cogl to have a top left
    origin.  E.g.  window coordinates, or potentially texture coordinates)
    
    cogl_clip_push_window_rect() shouldn't have been defined to take float
    arguments since we only clip with integral pixel precision. We also
    shouldn't have abbreviated "rectangle". This API has been replaced with
    cogl_clip_push_window_rectangle()
    
    cogl_clip_ensure() wasn't documented at all in Clutter 1.0 and probably
    no one even knew it existed. This API isn't useful, and so it's now
    deprecated. If no one complains we may remove the API altogether for
    Clutter 1.2.
    
    cogl_clip_stack_save() and cogl_clip_stack_restore() were originally added
    to allow us to save/restore the clip when switching to/from offscreen
    rendering.  Now that offscreen draw buffers are defined to own their clip
    state and the state will be automatically saved and restored this API is now
    redundant and so deprecated.

 cogl/cogl-clip-stack.c               |   44 +++++++++-------
 cogl/cogl.h.in                       |   92 ++++++++++++++++++++++++++++++++--
 doc/reference/cogl/cogl-sections.txt |    9 ++-
 3 files changed, 117 insertions(+), 28 deletions(-)

commit 1af8be2f7076165911e72b10965c92e170e38f30
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Nov 4 20:17:56 2009 +0000

    [clip-stack] Internally track model space clip rects as (x0,y0)(x1,y1) pairs
    
    Don't track the rectangles as x0,y0,width,height. This is in preparation
    for some API tidy up.

 cogl/cogl-clip-stack.c |  113 +++++++++++++++++++++++++-----------------------
 1 files changed, 59 insertions(+), 54 deletions(-)

commit 6ca49145f4986f6ae8d1a2f4cdd202e9b52d5a18
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Nov 4 19:42:17 2009 +0000

    [clip-stack] move lots of supporting code from cogl.c to cogl-clip-stack.c
    
    There was quite a bit of code in cogl.c that was only used to support
    cogl-clip-stack.c, so this has now been moved to cogl-clip-stack.c

 cogl/cogl-clip-stack.c |  277 +++++++++++++++++++++++++++++++++++++++++++-----
 cogl/cogl.c            |  237 -----------------------------------------
 2 files changed, 250 insertions(+), 264 deletions(-)

commit d4ffa2f819737b0f06e7a1b1e83c6c648b11b8ca
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Nov 4 16:55:18 2009 +0000

    [debug] Adds a COGL_DEBUG=force-scanline-paths
    
    For a long time now the GLES driver for Cogl has supported a fallback
    scanline rasterizer for filling paths when no stencil buffer is available,
    but now that we build the same cogl-primitives code for GL and GLES I
    thought it may sometimes be useful for debugging to force Cogl to use the
    scanline rasterizer instead of the current stencil buffer approach.

 cogl/cogl-debug.c      |    3 ++-
 cogl/cogl-debug.h      |    3 ++-
 cogl/cogl-primitives.c |    3 ++-
 3 files changed, 6 insertions(+), 3 deletions(-)

commit b49f90acb6a2d19a01e567a16928351f7db0747c
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sat Oct 17 04:06:56 2009 +0100

    [cogl-primitives] Get rid of driver specific cogl-primitives code
    
    These files were practically identical, except the gles code had additional
    support for filling paths without a stencil buffer.  All the driver code has
    now been moved into cogl/cogl-primitives.c

 cogl/cogl-primitives.c             |  488 +++++++++++++++++++++++++++++++++-
 cogl/driver/gl/Makefile.am         |    1 -
 cogl/driver/gl/cogl-primitives.c   |  313 ----------------------
 cogl/driver/gles/Makefile.am       |    1 -
 cogl/driver/gles/cogl-primitives.c |  516 ------------------------------------
 5 files changed, 482 insertions(+), 837 deletions(-)

commit 9cfc8acb771e181685c28f02e957c93846a1f0e3
Merge: df920a4 61654a9
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Nov 4 03:46:45 2009 +0000

    Merge commit 'cogl-reorg-draw-buffers'
    
    * cogl-reorg-draw-buffers: (38 commits)
      [test-fbo] greatly simplify the test
      [tests] test-backface-culling: test culling with offscreen rendering
      [tests] Adds test-cogl-readpixels.c for very basic cogl_read_pixels testing
      [tests] Adds test-cogl-offscreen to validate offscreen draw buffer
      [tests] test-cogl-viewport tests semantics of over/under size viewports
      [test-texture-fbo] comment the colors defined in corner_colors
      Add a conformance test for clutter_texture_new_from_actor
      [cogl-texture-2d-sliced] allow COGL_FORMAT_ANY with _new_with_size()
      [texture] fix rounding when calculating update_fbo viewport offset
      [texture] switch to a new design for handling offscreen rendering
      [texture] split out fbo update code from cluter_texture_paint
      [texture] push/pop draw buffer when painting actors to a texture
      [texture] Avoid redundant use of cogl_clip_stack_save when drawing offscreen
      [cogl-draw-buffer] fix Cogl -> GL viewport coord conversion
      [cogl_clip_push_window_rect] fix Cogl -> GL coordinate conversion
      [matrix] Adds cogl_matrix_get_inverse API
      [debug] Adds a COGL_DEBUG=matrices debug option
      [cogl-matrix] Import Mesa's matrix manipulation code
      [cogl] avoid any state changes when cogl_set_backface_culling_enable is a nop
      [cogl] Use clockwise face winding for offscreen buffers with culling enabled
      ...

commit 61654a9ab448d17a03d5b65cacf667c7364f29b9
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sat Oct 31 00:01:44 2009 +0000

    [cogl-texture-2d-sliced] allow COGL_FORMAT_ANY with _new_with_size()
    
    It's useful when initialzing offscreen draw buffers to be able to ask
    Cogl to create a texture of a given size and with the default internal
    pixel format.

 cogl/cogl-texture-2d-sliced.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit f910ce2ee55b45d069febab9f78abe45bdb84872
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sat Oct 31 00:00:33 2009 +0000

    [cogl-draw-buffer] fix Cogl -> GL viewport coord conversion
    
    Before we call glViewport we need to convert Cogl viewport coordinates
    (where the origin is defined to be top left) to OpenGL coordinates
    (where the origin is defined to be bottom left)
    
    We weren't considering that offscreen rendering is always upside down
    and in this case Cogl coordinates == OpenGL coordinates.

 cogl/cogl-draw-buffer.c |   15 +++++++++++----
 1 files changed, 11 insertions(+), 4 deletions(-)

commit 57bd250a71742ca9ab704fb0a5466f4b210a6db8
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Oct 30 23:57:56 2009 +0000

    [cogl_clip_push_window_rect] fix Cogl -> GL coordinate conversion
    
    Firstly this now uses the draw buffer height not the viewport height
    when we need to perform a y = height - y conversion, since (as the
    name suggests) we are dealing with window coordinates not viewport
    coordinates.
    
    Secondly this skips any conversion when the current draw buffer is an
    offscreen draw buffer since offscreen rendering is always forced to be
    upside down and in this case Cogl window coordinates == GL window
    coordinates.

 cogl/cogl-clip-stack.c |   32 ++++++++++++++++++++++++++------
 1 files changed, 26 insertions(+), 6 deletions(-)

commit 28c7e940bf322f96233534f6b769ccd1bcd3b14e
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Oct 26 17:51:34 2009 +0000

    [matrix] Adds cogl_matrix_get_inverse API
    
    This new API takes advantage of the recently imported Mesa code to support
    inverse matrix calculation.  The matrix code keeps track (via internal
    flags) of the transformations a matrix represents so that it can select an
    optimized inversion function.
    
    Note: although other aspects of the Cogl matrix API have followed a similar
    style to Cairo's matrix API we haven't added a cogl_matrix_invert API
    because the inverse of a CoglMatrix is actually cached as part of the
    CoglMatrix structure meaning a destructive API like cogl_matrix_invert
    doesn't let users take advantage of this caching design.

 cogl/cogl-context.h      |    3 --
 cogl/cogl-matrix-stack.c |   11 ++++++++++
 cogl/cogl-matrix-stack.h |    3 ++
 cogl/cogl-matrix.c       |   33 ++++++++++++++++++++-----------
 cogl/cogl-matrix.h       |   21 ++++++++++++++++++++
 cogl/cogl.c              |   47 ++++++++-------------------------------------
 6 files changed, 65 insertions(+), 53 deletions(-)

commit 2126bf60fde7d0d1944fe217adb9eab17179493b
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Oct 26 11:01:33 2009 +0000

    [debug] Adds a COGL_DEBUG=matrices debug option
    
    This adds a COGL_DEBUG=matrices debug option that can be used to trace all
    matrix manipulation done using the Cogl API.  This can be handy when you
    break something in such a way that a trace is still comparable with a
    previous working version since you can simply diff a log of the broken
    version vs the working version to home in on the bug.

 cogl/cogl-debug.c          |    3 +-
 cogl/cogl-debug.h          |    3 +-
 cogl/cogl-matrix-private.h |   47 ++++++++++++++++++++++++++++++++++++++++++++
 cogl/cogl-matrix.c         |   20 ++++++++++++++++++
 cogl/cogl.c                |    5 ++++
 5 files changed, 76 insertions(+), 2 deletions(-)

commit 0a1db7c4d878b35dc5b3986b6392643f067b6ffa
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Oct 26 08:23:21 2009 +0000

    [cogl-matrix] Import Mesa's matrix manipulation code
    
    This pulls in code from Mesa to improve our matrix manipulation support. It
    includes support for calculating the inverse of matrices based on top of a
    matrix categorizing system that allows optimizing certain matrix types.
    (the main thing we were after) but also adds some optimisations for
    rotations.
    
    Changes compared to the original code from Mesa:
    
    - Coding style is consistent with the rest of Cogl
    - Instead of allocating matrix->m and matrix->inv using malloc, our public
      CoglMatrix typedef is large enough to directly contain the matrix, its
      inverse, a type and a set of flags.
    - Instead of having a _math_matrix_analyse which updates the type, flags and
      inverse, we have _math_matrix_update_inverse which essentially does the
      same thing (internally making use of _math_matrix_update_type_and_flags())
      but with additional guards in place to bail out when the inverse matrix is
      still valid.
    - When initializing a matrix with the identity matrix we don't immediately
      initialize the inverse matrix; rather we just set the dirty flag for the
      inverse (since it's likely the user won't request the inverse of the
      identity matrix)

 cogl/Makefile.am        |    2 +
 cogl/cogl-matrix-mesa.c | 1698 +++++++++++++++++++++++++++++++++++++++++++++++
 cogl/cogl-matrix-mesa.h |  226 +++++++
 cogl/cogl-matrix.c      |   39 ++-
 cogl/cogl-matrix.h      |    6 +-
 5 files changed, 1967 insertions(+), 4 deletions(-)

commit 8ca17f52627f6d6191973352ee5c2624bc0b93bf
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Oct 22 19:09:20 2009 +0100

    [cogl] avoid any state changes when cogl_set_backface_culling_enable is a nop
    
    This is a simple optimization to bail out of cogl_set_backface_culling_enable
    if it's not resulting in a change of state.

 cogl/cogl.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

commit 181bf920868847d523438e69cfb36c8975d5ccae
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Oct 22 19:01:52 2009 +0100

    [cogl] Use clockwise face winding for offscreen buffers with culling enabled
    
    Because Cogl defines the origin for texture as top left and offscreen draw
    buffers can be used to render to textures, we (internally) force all
    offscreen rendering to be upside down. (because OpenGL defines the origin
    to be bottom left)
    
    By forcing the users scene to be rendered upside down though we also reverse
    the winding order of all the drawn triangles which may interfere with the
    users use of backface culling.  This patch ensures that we reverse the
    winding order for a front face (if culling is in use) while rendering
    offscreen so we don't conflict with the users back face culling.

 cogl/cogl-context.c       |    2 ++
 cogl/cogl-context.h       |    1 +
 cogl/cogl-internal.h      |    9 +++++++++
 cogl/cogl-journal.c       |    1 +
 cogl/cogl-primitives.c    |    1 +
 cogl/cogl-vertex-buffer.c |    1 +
 cogl/cogl.c               |   33 +++++++++++++++++++++++++++++++++
 7 files changed, 48 insertions(+), 0 deletions(-)

commit 1acf5cc36f9ca8c92ea12f3f6d0e62c8e159804b
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Nov 3 12:54:45 2009 +0000

    [cogl_read_pixels] don't force a 4 byte pack alignment
    
    Technically this change shouldn't make a difference since we are
    calling glReadPixels with GL_RGBA GL_UNSIGNED_BYTE which is a 4
    byte format and it should always result in the same value according
    to how OpenGL calculates the location of sequential rows.
    
    i.e. k  = a/s * ceil(snl/a) where:
     a = alignment
     s = component size (1)
     n = number of components per pixel (4)
     l = number of pixels in a row
    gives:
    k = 4/1 * ceil(4l/4) and k = 1/1 * ceil(4l/1) which are equivalent
    
    I'm changing it because I've seen i915 driver code that bails out of
    hardware accelerated paths if the alignment isn't 1, and because
    conceptually we have no alignment constraints here so even if the current
    value has no effect, when we start reading back other formats it may upset
    things.

 cogl/cogl.c |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

commit f59180d073bf1a4e975367860b1f0030dcef3476
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Nov 2 01:11:21 2009 +0000

    [cogl_read_pixels] call cogl_flush() before changing glPixelStore state
    
    We were previously calling cogl_flush() after setting up the glPixelStore
    state for calling glReadPixels, but flushing the journal could itself
    change the glPixelStore state.

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

commit d1de286109a66797a0b3badd4fbb3064a5b1335f
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Nov 2 01:10:02 2009 +0000

    [cogl_read_pixels] ensure we flush the current draw buffer state before reading
    
    Make sure we call _cogl_draw_buffer_flush_state() before glReadPixels() to
    be sure we have bound the correct framebuffer.

 cogl/cogl.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

commit b8fe310b6d3b13d00d8380c28f24c1ecf59c8616
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Nov 2 01:12:10 2009 +0000

    [cogl_read_pixels] fixes for calculating the y offset when rendering offscreen
    
    Since offscreen rendering is forced to be upside down we don't need to do
    any conversion of the users coordinates to go from Cogl window coordinates
    to OpenGL window coordinates.

 cogl/cogl.c |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)

commit 800d18bc196e97d7fb606efe2adc69424effccb4
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Oct 22 16:55:07 2009 +0100

    [read-pixels] don't flip data when reading from offscreen draw buffers
    
    Since we do all offscreen rendering upside down (so that we can have the
    origin for texture coordinates be the top left of textures for the cases
    where offscreen draw buffers are bound to textures) we don't need to flip
    data read back from an offscreen framebuffer before we we return it to the
    user.

 cogl/cogl.c |    9 ++++++++-
 1 files changed, 8 insertions(+), 1 deletions(-)

commit 0f86470eefcf77794180e638d5f098b01bbfb020
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Oct 21 23:22:45 2009 +0100

    [clip-stack] tidy up transform_point() code
    
    I was originally expecting the code not to handle offset viewports or
    viewports with a different size to the framebuffer, but it turns out the
    code worked fine.  In the process though I think I made the code slightly
    more readable.

 cogl/cogl-clip-stack.c |   32 +++++++++++++++++++++-----------
 1 files changed, 21 insertions(+), 11 deletions(-)

commit 78ee3f71b2daad28fd686b5dfa9f056b65bd4238
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Nov 3 13:26:58 2009 +0000

    [cogl] deprecate cogl_viewport() in favour of cogl_set_viewport()
    
    cogl_viewport only accepted a viewport width and height, but there are times
    when it's also desireable to have a viewport offset so that a scene can be
    translated after projection but before hitting the framebuffer.

 cogl/cogl.c    |   12 ++++++------
 cogl/cogl.h.in |   22 +++++++++++++++++++++-
 2 files changed, 27 insertions(+), 7 deletions(-)

commit c2a982cf9c7ccd2c2b110c464d86881b5b1689d1
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Oct 21 23:24:28 2009 +0100

    [cogl_read_pixels] use buffer not viewport height to calculate y offset
    
    glReadPixel takes window coordinates not viewport coordinates so we
    shouldn't have been assuming that the viewport height == window height.

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

commit e4fe65552195ffd0e91c9a357731554b177acb03
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Oct 21 23:20:44 2009 +0100

    [draw-buffer] Adds cogl_draw_buffer_get_{width,height} API
    
    Simply adds missing API to query the width and height of any Cogl draw buffer.

 cogl/cogl-draw-buffer-private.h |    4 ++++
 cogl/cogl-draw-buffer.c         |   14 ++++++++++++++
 2 files changed, 18 insertions(+), 0 deletions(-)

commit b4770c1e9b27f7816572342b3899b117e5a91adb
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Oct 21 23:24:49 2009 +0100

    [cogl] Make sure Cogl always knows the current window geometry
    
    Because Cogl defines the origin of viewport and window coordinates to be
    top-left it always needs to know the size of the current window so that Cogl
    window/viewport coordinates can be transformed into OpenGL coordinates.
    
    This also fixes cogl_read_pixels to use the current draw buffer height
    instead of the viewport height to determine the OpenGL y coordinate to use
    for glReadPixels.

 cogl/cogl-context.c     |    2 +-
 cogl/cogl-context.h     |    2 +-
 cogl/cogl-draw-buffer.c |   36 +++++++++++++++++++++++++++++++-----
 cogl/cogl.h.in          |    3 +++
 4 files changed, 36 insertions(+), 7 deletions(-)

commit 2d610c230035d39cb6ebfa0bdd9af35f69bda347
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Oct 22 16:13:01 2009 +0100

    [cogl] Make sure we draw upside down to offscreen draw buffers
    
    First a few notes about Cogl coordinate systems:
    - Cogl defines the window origin, viewport origin and texture coordinates
    origin to be top left unlike OpenGL which defines them as bottom left.
    - Cogl defines the modelview and projection identity matrices in exactly the
    same way as OpenGL.
    - I.e. we believe that for 2D centric constructs: windows/framebuffers,
    viewports and textures developers are more used to dealing with a top left
    origin, but when modeling objects in 3D; an origin at the center with y
    going up is quite natural.
    
    The way Cogl handles textures is by uploading data upside down in OpenGL
    terms so that bottom left becomes top left.  (Note: This also has the
    benefit that we don't need to flip the data we get from image decoding
    libraries since they typically also consider top left to be the image
    origin.)
    
    The viewport and window coords are mostly handled with various y =
    height - y tweaks before we pass y coordinates to OpenGL.
    
    Generally speaking though the handling of coordinate spaces in Cogl is a bit
    fragile.  I guess partly because none of it was design to be, it just
    evolved from how Clutter defines its coordinates without much consideration
    or testing.  I hope to improve this over a number of commits; starting here.
    
    This commit deals with the fact that offscreen draw buffers may be bound to
    textures but we don't "upload" the texture data upside down, and so if you
    texture from an offscreen draw buffer you need to manually flip the texture
    coordinates to get it the right way around.  We now force offscreen
    rendering to be flipped upside down by tweaking the projection matrix right
    before we submit it to OpenGL to scale y by -1.  The tweak is entirely
    hidden from the user such that if you call cogl_get_projection you will not
    see this scale.

 cogl/cogl-context.c             |    4 ++++
 cogl/cogl-context.h             |    4 ++++
 cogl/cogl-draw-buffer-private.h |    3 +++
 cogl/cogl-matrix-stack.c        |   36 ++++++++++++++++++++++++++----------
 4 files changed, 37 insertions(+), 10 deletions(-)

commit 4bc947cfcc73f7a44d8e1c715471dc7805def9aa
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Oct 22 12:35:33 2009 +0100

    [cogl] Ensure features are initialized first in cogl_create_context
    
    Previously some context initializing was being done without valid feature
    flags.

 cogl/cogl-context.c |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

commit 49db9f4f775c2308c31bc3bacf64cd9263f70b55
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sat Oct 17 00:31:26 2009 +0100

    [clip-stack] Handle flipped rectangles in try_pushing_rect_as_window_rect()
    
    We were ignoring the possibility that the current modelview matrix may flip
    the incoming rectangle in which case we didn't calculate a valid scissor
    rectangle for clipping.
    
    This fixes: http://bugzilla.o-hand.com/show_bug.cgi?id=1809
    (Clipping doesn't work within an FBO)

 cogl/cogl-clip-stack.c |   18 ++++++++++++++++++
 1 files changed, 18 insertions(+), 0 deletions(-)

commit bb3a008318c97f573d98b09d7e8fe911548947fa
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Sep 25 14:34:34 2009 +0100

    [draw-buffers] First pass at overhauling Cogl's framebuffer management
    
    Cogl's support for offscreen rendering was originally written just to support
    the clutter_texture_new_from_actor API and due to lack of documentation and
    several confusing - non orthogonal - side effects of using the API it wasn't
    really possible to use directly.
    
    This commit does a number of things:
    - It removes {gl,gles}/cogl-fbo.{c,h} and adds shared cogl-draw-buffer.{c,h}
      files instead which should be easier to maintain.
    - internally CoglFbo objects are now called CoglDrawBuffers. A
      CoglDrawBuffer is an abstract base class that is inherited from to
      implement CoglOnscreen and CoglOffscreen draw buffers.  CoglOffscreen draw
      buffers will initially be used to support the
      cogl_offscreen_new_to_texture API, and CoglOnscreen draw buffers will
      start to be used internally to represent windows as we aim to migrate some
      of Clutter's backend code to Cogl.
    - It makes draw buffer objects the owners of the following state:
      - viewport
      - projection matrix stack
      - modelview matrix stack
      - clip state
    (This means when you switch between draw buffers you will automatically be
     switching to their associated viewport, matrix and clip state)
    
    Aside from hopefully making cogl_offscreen_new_to_texture be more useful
    short term by having simpler and well defined semantics for
    cogl_set_draw_buffer, as mentioned above this is the first step for a couple
    of other things:
    - Its a step toward moving ownership for windows down from Clutter backends
      into Cogl, by (internally at least) introducing the CoglOnscreen draw
      buffer.  Note: the plan is that cogl_set_draw_buffer will accept on or
      offscreen draw buffer handles, and the "target" argument will become
      redundant since we will instead query the type of the given draw buffer
      handle.
    - Because we have a common type for on and offscreen framebuffers we can
      provide a unified API for framebuffer management. Things like:
      - blitting between buffers
      - managing ancillary buffers (e.g. attaching depth and stencil buffers)
      - size requisition
      - clearing

 cogl/Makefile.am                       |    2 +
 cogl/cogl-clip-stack.c                 |  199 +++++++++----
 cogl/cogl-clip-stack.h                 |    9 +-
 cogl/cogl-context.c                    |   34 +--
 cogl/cogl-context.h                    |   20 +-
 cogl/cogl-draw-buffer-private.h        |  126 +++++++
 cogl/cogl-draw-buffer.c                |  555 ++++++++++++++++++++++++++++++++
 cogl/cogl-journal.c                    |   33 ++-
 cogl/cogl-primitives.c                 |   19 +-
 cogl/cogl-texture.c                    |   19 +-
 cogl/cogl-vertex-buffer.c              |   14 +-
 cogl/cogl.c                            |  220 ++++++++-----
 cogl/cogl.h.in                         |    1 +
 cogl/driver/gl/Makefile.am             |    2 -
 cogl/driver/gl/cogl-context-driver.c   |   19 +-
 cogl/driver/gl/cogl-context-driver.h   |   23 +-
 cogl/driver/gl/cogl-defines.h.in       |   28 +-
 cogl/driver/gl/cogl-fbo.c              |  315 ------------------
 cogl/driver/gl/cogl-fbo.h              |   39 ---
 cogl/driver/gl/cogl-primitives.c       |   99 ++++--
 cogl/driver/gl/cogl-texture-driver.c   |    2 +-
 cogl/driver/gl/cogl.c                  |  114 ++++----
 cogl/driver/gles/Makefile.am           |    2 -
 cogl/driver/gles/cogl-context-driver.c |   10 +
 cogl/driver/gles/cogl-context-driver.h |   17 +-
 cogl/driver/gles/cogl-defines.h.in     |   70 ++++
 cogl/driver/gles/cogl-fbo.c            |  328 -------------------
 cogl/driver/gles/cogl-fbo.h            |   39 ---
 cogl/driver/gles/cogl-primitives.c     |  121 ++++++--
 cogl/driver/gles/cogl.c                |   75 +++++
 30 files changed, 1469 insertions(+), 1085 deletions(-)

commit 6b2ff320cab3404a532e194cae853ee9823568f7
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Sep 15 22:19:01 2009 +0100

    [cogl-fbo] Bring the gles code more in line with gl code
    
    Over time the two cogl-fbo.c files have needlessly diverged as bug fixes or
    cleanups went into one version but not the other.  This tries to bring them
    back in line with each other.  It should actually be simple enough to move
    cogl-fbo.c to be a common file, and simply not build it for GLES 1.1, so
    maybe I'll follow up with such a patch soon.

 cogl/driver/gles/cogl-fbo.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

commit cc0af441f2fe3a731a5338d6fc2c585f4bc017f4
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Sep 15 22:15:03 2009 +0100

    [cogl-fbo] Remove poorly documented workaround for unknown driver/hardware
    
    The comment just said: "Some implementation require a clear before drawing
    to an fbo.  Luckily it is affected by scissor test." and did a scissored
    clear, which is clearly a driver bug workaround, but for what driver?  The
    fact that it was copied into the gles backend (or vica versa is also
    suspicious since it seems unlikely that the workaround is necessary for both
    backends.)
    
    We can easily restore the workaround with a better comment if this problem
    really still exists on current drivers, but for now I'd rather minimize
    hand-wavey workaround code that can't be tested.

 cogl/driver/gl/cogl-fbo.c   |   10 ----------
 cogl/driver/gles/cogl-fbo.c |   19 -------------------
 2 files changed, 0 insertions(+), 29 deletions(-)

commit df920a42df2ad112cc89fa780466b878a4f5b2f4
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Oct 30 12:11:19 2009 +0000

    build: Add missing gles/cogl-context-driver.h to dist
    
    The gles/cogl-context-driver.h header file is missing from the
    dist target, which means it's not in the tarballs.

 cogl/driver/gles/Makefile.am |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

commit 435d415a45862046ec3e4a16095887fe96c873b3
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Oct 27 13:18:51 2009 +0000

    [cogl_polygon] Enable COGL_ENABLE_BLEND when use_color is set
    
    Otherwise you can't use the alpha channel of the vertex colors unless
    the material has a texture with alpha or the material's color has
    alpha less than 255.

 cogl/cogl-primitives.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 67a896e5df5500112da2e144d7754301af825ad5
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Oct 27 12:38:10 2009 +0000

    build: Add $(top_buiddir)/clutter/cogl to the include path in clutter/cogl/cogl
    
    Some files try to include "cogl/cogl-defines-gl.h" so
    $(top_builddir)/clutter/cogl needs to be in the include path for out of
    tree builds to work.

 cogl/Makefile.am |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

commit be06fe0b757a08fd4b7ac74a340ab229ca52e774
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Oct 23 16:44:28 2009 +0100

    cogl: Avoid C99-isms
    
    Do not declare variables after statements.

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

commit edeca915cdbdf295cf38cd39f1e058520db1c00e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Oct 23 15:46:25 2009 +0100

    cogl: Remove cogl-current-matrix.c
    
    The cogl-current-matrix.c file is unused since commit
    5e5d94dfbed18bf2b4c8c7a7ff9847952b2c4ae2 and it's not compiled
    or distributed anymore.

 cogl/cogl-current-matrix.c |  409 --------------------------------------------
 1 files changed, 0 insertions(+), 409 deletions(-)

commit fcce83360627eb40b6ada3026f6d4dff264abd73
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Oct 23 12:15:25 2009 +0100

    build: Make COGL pass distcheck
    
    Some changes to make COGL pass distcheck with Automake 1.11 and
    anal-retentiveness turned up to 11.
    
    The "major" change is the flattening of the winsys/ part of COGL,
    which is built directly inside libclutter-cogl.la instead of an
    intermediate libclutter-cogl-winsys.la object.
    
    Ideally, the whole COGL should be flattened out using a
    quasi-non-recursive Automake layout; unfortunately, the driver/
    sub-section ships with identical targets and Automake cannot
    distinguish GL and GLES objects.

 cogl/Makefile.am        |  196 +++++++++++++++++++++++-----------------------
 cogl/winsys/Makefile.am |   43 ----------
 2 files changed, 98 insertions(+), 141 deletions(-)

commit 6cff24f437566e217fdb87beb6e178758a652072
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Oct 22 16:55:29 2009 +0100

    Fix some compilation errors in cogl-gles2-wrapper.c
    
    The changes in 74f2122b6 introduced some syntax errors which were
    preventing the GLES2 backend from compiling.

 cogl/driver/gles/cogl-gles2-wrapper.c |   27 ++++++++++++---------------
 1 files changed, 12 insertions(+), 15 deletions(-)

commit aeaf50ec114a15d15c18b92db650d8de3c5ffdd0
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Oct 22 15:39:30 2009 +0100

    Remove cogl/{gl,gles}/Makefile.am
    
    These are no longer used anywhere.

 gl/Makefile.am   |   62 --------------------------------------
 gles/Makefile.am |   88 ------------------------------------------------------
 2 files changed, 0 insertions(+), 150 deletions(-)

commit c02e10c68842be125a56b3f59b4c6e14bc0a51dd
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Sep 29 02:56:23 2009 +0100

    [gles2] remove lots of redundant matrix stack code
    
    Since we no longer depend on the GL matrix API in Cogl we can remove a lot
    of wrapper code from the GLES 2 backend.  This is particularly nice given
    that there was no code shared between the cogl-matrix-stack API and gles2
    wrappers so we had a lot of duplicated logic.

 cogl/driver/gles/cogl-gles2-wrapper.c |  287 ++++-----------------------------
 cogl/driver/gles/cogl-gles2-wrapper.h |    9 +-
 2 files changed, 34 insertions(+), 262 deletions(-)

commit eed247955632173f4628d6c18ece26e79e6be98c
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Oct 13 23:09:42 2009 +0100

    [cogl] Removes the cogl-current-matrix abstraction
    
    The indirection through this API isn't necessary since we no longer
    arbitrate between the OpenGL matrix API and Cogl's client side API.  Also it
    doesn't help to maintain an OpenGL style matrix mode API for internal use
    since it's awkward to keep restoring the MODELVIEW mode and easy enough to
    directly work with the matrix stacks of interest.
    
    This replaces use of the _cogl_current_matrix API with direct use of the
    _cogl_matrix_stack API.  All the unused cogl_current_matrix API is removed
    and the matrix utility code left in cogl-current-matrix.c was moved to
    cogl.c.

 cogl/Makefile.am                   |    2 -
 cogl/cogl-clip-stack.c             |   15 ++-
 cogl/cogl-context.c                |    8 +-
 cogl/cogl-context.h                |    4 +-
 cogl/cogl-current-matrix.h         |   95 ---------------
 cogl/cogl-internal.h               |   14 ++-
 cogl/cogl-material.c               |    2 +
 cogl/cogl-texture.c                |   28 ++---
 cogl/cogl-util.c                   |    1 -
 cogl/cogl.c                        |  228 ++++++++++++++++++++++++++++++-----
 cogl/driver/gl/cogl-fbo.c          |   26 ++---
 cogl/driver/gl/cogl-primitives.c   |   24 +---
 cogl/driver/gles/cogl-fbo.c        |   27 ++---
 cogl/driver/gles/cogl-primitives.c |   24 +---
 doc/reference/cogl/Makefile.am     |    1 -
 15 files changed, 271 insertions(+), 228 deletions(-)

commit 01887460f6051cb107b3a03934eee411ac382a3f
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Oct 14 10:53:48 2009 +0100

    [matrix-stack] Adds ctx->flushed_matrix_mode to cache the gl matrix mode
    
    This cache of the gl matrix mode lets us avoid repeat calls to glMatrixMode
    in _cogl_matrix_stack_flush_to_gl when we have lots of sequential modelview
    matrix modifications.

 cogl/cogl-context.c      |    1 +
 cogl/cogl-context.h      |    1 +
 cogl/cogl-matrix-stack.c |   30 ++++++++++++++++++------------
 3 files changed, 20 insertions(+), 12 deletions(-)

commit 43f8032a7f658245edee77133f3cc970aa6820ed
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Oct 6 12:36:32 2009 +0100

    matrix-stack: more optimization for load_identity case
    
    This goes a bit further than the previous patch, and as a special case
    we now simply represent identity matrices using a boolean, and only
    lazily initialize them when they need to be modified.

 cogl/cogl-matrix-stack.c |   82 +++++++++++++++++++++++++++++++++++++++------
 1 files changed, 71 insertions(+), 11 deletions(-)

commit d15331604501dae4d6071de4092b91e88c02b3f8
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Oct 6 10:52:07 2009 +0100

    [matrix-stack] avoid redundant clearing of matrix when using load_identity
    
    The journal always uses an identity matrix since it uses software
    transformation.  Currently it manually uses glLoadMatrix since previous
    experimentation showed that the cogl-matrix-stack gave bad performance, but
    it would be nice to fix performance so we only have to care about one path
    for loading matrices.
    
    For the common case where we do:
    cogl_matrix_stack_push()
    cogl_matrix_stack_load_identity()
    we were effectively initializing the matrix 3 times. Once due to use of
    g_slice_new0, then we had a cogl_matrix_init_identity in
    _cogl_matrix_state_new for good measure, and then finally in
    cogl_matrix_stack_load_identity we did another cogl_matrix_init_identity.
    
    We don't use g_slice_new0 anymore, _cogl_matrix_state_new is documented as
    not initializing the matrix (instead _cogl_matrix_stack_top_mutable now
    takes a boolean to choose if new stack entries should be initialised) and so
    we now only initialize once in cogl_matrix_stack_load_identity.

 cogl/cogl-matrix-stack.c |   54 ++++++++++++++++++++++-----------------------
 1 files changed, 26 insertions(+), 28 deletions(-)

commit 1402d1eb3c9fd2d9207b7089fb29b34eb594e059
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Sep 29 02:58:27 2009 +0100

    [current-matrix] Adds texture matrix stacks + removes GL matrix API usage
    
    This relates back to an earlier commitment to stop using the OpenGL matrix
    API which is considered deprecated. (ref 54159f5a1d029db)
    
    The new texture matrix stacks are hung from a list of (internal only)
    CoglTextureUnit structures which the CoglMaterial code internally references
    via _cogl_get_texure_unit ().
    
    So we would be left with only the cogl-matrix-stack code being responsible
    for glMatrixMode, glLoadMatrix and glLoadIdentity this commit updates the
    journal code so it now uses the matrix-stack API instead of GL directly.

 cogl/cogl-context.c        |    4 +
 cogl/cogl-context.h        |    5 +-
 cogl/cogl-current-matrix.c |  236 +++++++++-----------------------------------
 cogl/cogl-internal.h       |   12 +++
 cogl/cogl-journal.c        |   33 ++++---
 cogl/cogl-material.c       |   22 +++--
 cogl/cogl-matrix-stack.c   |   15 +++-
 cogl/cogl.c                |   59 +++++++++++
 8 files changed, 174 insertions(+), 212 deletions(-)

commit d8107c5ef52eb28b7e25626830bed20ab1cadea1
Merge: 861766f 76480b4
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Mon Oct 19 11:45:15 2009 +0100

    Merge branch 'layout-manager'
    
    * layout-manager: (50 commits)
      docs: Reword a link
      layout, docs: Add more documentation to LayoutManager
      layout, docs: Fix description of Bin properties
      layout, bin: Use ceilf() instead of casting to int
      layout, docs: Add long description for FlowLayout
      layout, box: Clean up
      layout, box: Write long description for Box
      layout, docs: Remove unused functions
      layout: Document BoxLayout
      layout: Add BoxLayout, a single line layout manager
      layout: Report the correct size of FlowLayout
      layout: Resizing the stage resizes the FlowLayout box
      layout: Use the get_request_mode() getter in BinLayout
      layout: Change the request-mode along with the orientation
      actor: Add set_request_mode() method
      [layout] Remove FlowLayout:wrap
      [layout] Rename BinLayout and FlowLayout interactive tests
      [layout] Skip invisible children in FlowLayout
      [layout] Clean up and document FlowLayout
      [layout] Snap children of FlowLayout to column/row
      ...

commit 861766f4ad8f8d984e37643dcb7db0914c2e9b1b
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Sep 16 14:01:57 2009 +0100

    [cogl-primitives] Split the journal out from cogl-primitives.c
    
    The Journal can be considered a standalone component, so even though
    it's currently only used to log quads, it seems better to split it
    out into its own file.

 cogl/Makefile.am            |    2 +
 cogl/cogl-context.c         |    1 +
 cogl/cogl-journal-private.h |   57 ++++
 cogl/cogl-journal.c         |  744 +++++++++++++++++++++++++++++++++++++++++++
 cogl/cogl-primitives.c      |  705 +----------------------------------------
 cogl/cogl-texture-private.h |   14 -
 6 files changed, 805 insertions(+), 718 deletions(-)

commit 5387aa0e9e509f962f6007f6860e1168db43583c
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Sep 23 15:11:55 2009 +0100

    [cogl-spans] split out cogl-spans code from cogl-texture-2d-sliced
    
    When we implement atlas textures we will probably want to use the spans API
    to handle texture repeating so it doesn't make sense to leave the code in
    cogl-texture-2d-sliced.c.  Since it's a standalone set of data structures
    and algorithms it also seems reasonable to split out from cogl-texture.

 cogl/Makefile.am                      |    2 +
 cogl/cogl-spans.c                     |  132 ++++++++++++++++++++++
 cogl/cogl-spans.h                     |   70 ++++++++++++
 cogl/cogl-texture-2d-sliced-private.h |   27 -----
 cogl/cogl-texture-2d-sliced.c         |  195 ++++++++-------------------------
 5 files changed, 248 insertions(+), 178 deletions(-)

commit 65015a137e8e1b2957e219c08dc9ae823ef5b527
Author: Vladimir Nadvornik <nadvornik@suse.cz>
Date:   Sun Aug 30 12:36:11 2009 +0200

    [cogl-texture] Split CoglTexture into an abstract class + CoglTexture2dSliced
    
    cogl-texture-2d-sliced provides an implementation of CoglTexture and this
    seperation lays the foundation for potentially supporting atlas textures,
    pixmap textures (as in GLX_EXT_texture_from_pixmap) and fast-path
    GL_TEXTURE_{1D,2D,3D,RECTANGLE} textures in a maintainable fashion.

 cogl/Makefile.am                       |    2 +
 cogl/cogl-context.c                    |    2 +
 cogl/cogl-context.h                    |    2 +
 cogl/cogl-handle.h                     |    4 +-
 cogl/cogl-texture-2d-sliced-private.h  |  191 ++++
 cogl/cogl-texture-2d-sliced.c          | 1871 +++++++++++++++++++++++++++++++
 cogl/cogl-texture-driver.h             |   12 +
 cogl/cogl-texture-private.h            |   80 +-
 cogl/cogl-texture.c                    | 1926 +++++++-------------------------
 cogl/driver/gl/cogl-texture-driver.c   |   97 +--
 cogl/driver/gles/cogl-context-driver.c |    2 -
 cogl/driver/gles/cogl-context-driver.h |    2 -
 cogl/driver/gles/cogl-texture-driver.c |  217 +----
 13 files changed, 2551 insertions(+), 1857 deletions(-)

commit c40d5ae9eaff0f7ace613a4c530a2219f6cbe6c3
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Sep 16 11:56:17 2009 +0100

    [cogl-texture] Seal CoglTexture internals from cogl-primitives.c
    
    cogl-primitives.c was previously digging right into CoglTextures so it could
    manually iterate the texture slices for texturing quads and polygons and
    because we were missing some state getters we were lazily just poking into
    the structures directly.
    
    This adds some extra state getter functions, and adds a higher level
    _cogl_texture_foreach_slice () API that hopefully simplifies the way in
    which sliced textures may be used to render primitives.  This lets you
    specify a rectangle in "virtual" texture coords and it will call a given
    callback for each slice that intersects that rectangle giving the virtual
    coords of the current slice and corresponding "real" texture coordinates for
    the underlying gl texture.
    
    At the same time a noteable bug in how we previously iterated sliced
    textures was fixed, whereby we weren't correctly handling inverted texture
    coordinates.  E.g.  with the previous code if you supplied texture coords of
    tx1=100,ty1=0,tx2=0,ty2=100 (inverted along y axis) that would result in a
    back-facing quad, which could be discarded if using back-face culling.

 cogl/cogl-material.c        |    9 +-
 cogl/cogl-primitives.c      |  736 +++++++++++++++++++++----------------------
 cogl/cogl-texture-private.h |   47 ++--
 cogl/cogl-texture.c         |  239 +++++++++++++-
 cogl/cogl-vertex-buffer.c   |    6 +-
 cogl/driver/gl/cogl-fbo.c   |   29 +-
 cogl/driver/gles/cogl-fbo.c |   29 +-
 7 files changed, 640 insertions(+), 455 deletions(-)

commit c943b34cbeda803c66783976c5aec80601901dca
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Jul 30 12:06:02 2009 +0100

    [docs] switch gl_handle+gl_target docs for cogl_texture_new_from_foreign
    
    The descriptions for gl_handle and gl_target were inverted.
    
    Thanks to Young-Ho Cha for spotting that.
    
    Signed-off-by: Robert Bragg <robert@linux.intel.com>

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

commit 17e899a49d7d657f57103804bc2c59f526528a34
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Jul 29 17:21:07 2009 +0100

    [cogl] move clutter/pango to clutter/cogl/pango
    
    As part of the re-organisation of Cogl; move clutter/pango to be part of the
    cogl sub-project.

 Makefile.am                     |    2 +-
 pango/Makefile.am               |   33 ++
 pango/cogl-pango-display-list.c |  417 +++++++++++++++++++++++
 pango/cogl-pango-display-list.h |   70 ++++
 pango/cogl-pango-fontmap.c      |  209 ++++++++++++
 pango/cogl-pango-glyph-cache.c  |  352 ++++++++++++++++++++
 pango/cogl-pango-glyph-cache.h  |   78 +++++
 pango/cogl-pango-private.h      |   38 +++
 pango/cogl-pango-render.c       |  697 +++++++++++++++++++++++++++++++++++++++
 pango/cogl-pango.h              |   85 +++++
 10 files changed, 1980 insertions(+), 1 deletions(-)

commit 0bce7eac5375936d9ac6486f13cef94298f8590e
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Jul 28 02:02:02 2009 +0100

    Intial Re-layout of the Cogl source code and introduction of a Cogl Winsys
    
    As part of an incremental process to have Cogl be a standalone project we
    want to re-consider how we organise the Cogl source code.
    
    Currently this is the structure I'm aiming for:
    cogl/
        cogl/
    	<put common source here>
    	winsys/
    	   cogl-glx.c
    	   cogl-wgl.c
    	driver/
    	    gl/
    	    gles/
    	os/ ?
        utils/
    	cogl-fixed
    	cogl-matrix-stack?
            cogl-journal?
            cogl-primitives?
        pango/
    
    The new winsys component is a starting point for migrating window system
    code (i.e.  x11,glx,wgl,osx,egl etc) from Clutter to Cogl.
    
    The utils/ and pango/ directories aren't added by this commit, but they are
    noted because I plan to add them soon.
    
    Overview of the planned structure:
    
    * The winsys/ API is the API that binds OpenGL to a specific window system,
      be that X11 or win32 etc.  Example are glx, wgl and egl. Much of the logic
      under clutter/{glx,osx,win32 etc} should migrate here.
    
    * Note there is also the idea of a winsys-base that may represent a window
      system for which there are multiple winsys APIs.  An example of this is
      x11, since glx and egl may both be used with x11.  (currently only Clutter
      has the idea of a winsys-base)
    
    * The driver/ represents a specific varient of OpenGL. Currently we have "gl"
      representing OpenGL 1.4-2.1 (mostly fixed function) and "gles" representing
      GLES 1.1 (fixed funciton) and 2.0 (fully shader based)
    
    * Everything under cogl/ should fundamentally be supporting access to the
      GPU.  Essentially Cogl's most basic requirement is to provide a nice GPU
      Graphics API and drawing a line between this and the utility functionality
      we add to support Clutter should help keep this lean and maintainable.
    
    * Code under utils/ as suggested builds on cogl/ adding more convenient
      APIs or mechanism to optimize special cases. Broadly speaking you can
      compare cogl/ to OpenGL and utils/ to GLU.
    
    * clutter/pango will be moved to clutter/cogl/pango
    
    How some of the internal configure.ac/pkg-config terminology has changed:
    backendextra -> CLUTTER_WINSYS_BASE # e.g. "x11"
    backendextralib -> CLUTTER_WINSYS_BASE_LIB # e.g. "x11/libclutter-x11.la"
    clutterbackend -> {CLUTTER,COGL}_WINSYS # e.g. "glx"
    CLUTTER_FLAVOUR -> {CLUTTER,COGL}_WINSYS
    clutterbackendlib -> CLUTTER_WINSYS_LIB
    CLUTTER_COGL -> COGL_DRIVER # e.g. "gl"
    
    Note: The CLUTTER_FLAVOUR and CLUTTER_COGL defines are kept for apps
    
    As the first thing to take advantage of the new winsys component in Cogl;
    cogl_get_proc_address() has been moved from cogl/{gl,gles}/cogl.c into
    cogl/common/cogl.c and this common implementation first trys
    _cogl_winsys_get_proc_address() but if that fails then it falls back to
    gmodule.

 Makefile.am                                      |   89 +-
 TODO                                             |   25 -
 cogl-bitmap.h                                    |   80 -
 cogl-color.h                                     |  261 --
 cogl-debug.h                                     |   79 -
 cogl-deprecated.h                                |   36 -
 cogl-fixed.h                                     |  782 -----
 cogl-material.h                                  |  781 -----
 cogl-matrix.h                                    |  290 --
 cogl-offscreen.h                                 |   96 -
 cogl-path.h                                      |  347 --
 cogl-shader.h                                    |  313 --
 cogl-texture.h                                   |  465 ---
 cogl-types.h                                     |  328 --
 cogl-vertex-buffer.h                             |  452 ---
 cogl.h.in                                        |  875 -----
 cogl.pc.in                                       |   15 -
 cogl/Makefile.am                                 |  161 +
 cogl/cogl-bitmap-fallback.c                      |  460 +++
 cogl/cogl-bitmap-pixbuf.c                        |  368 +++
 cogl/cogl-bitmap-private.h                       |  115 +
 cogl/cogl-bitmap.c                               |  208 ++
 cogl/cogl-bitmap.h                               |   80 +
 cogl/cogl-blend-string.c                         | 1005 ++++++
 cogl/cogl-blend-string.h                         |  138 +
 cogl/cogl-clip-stack.c                           |  503 +++
 cogl/cogl-clip-stack.h                           |   43 +
 cogl/cogl-color.c                                |  201 ++
 cogl/cogl-color.h                                |  261 ++
 cogl/cogl-context.c                              |  215 ++
 cogl/cogl-context.h                              |  131 +
 cogl/cogl-current-matrix.c                       |  549 ++++
 cogl/cogl-current-matrix.h                       |   95 +
 cogl/cogl-debug.c                                |  131 +
 cogl/cogl-debug.h                                |   79 +
 cogl/cogl-deprecated.h                           |   36 +
 cogl/cogl-enum-types.c.in                        |   41 +
 cogl/cogl-enum-types.h.in                        |   25 +
 cogl/cogl-fixed.c                                |  950 ++++++
 cogl/cogl-fixed.h                                |  782 +++++
 cogl/cogl-handle.h                               |  157 +
 cogl/cogl-internal.h                             |   88 +
 cogl/cogl-material-private.h                     |  255 ++
 cogl/cogl-material.c                             | 1972 +++++++++++
 cogl/cogl-material.h                             |  781 +++++
 cogl/cogl-matrix-stack.c                         |  363 +++
 cogl/cogl-matrix-stack.h                         |   82 +
 cogl/cogl-matrix.c                               |  282 ++
 cogl/cogl-matrix.h                               |  290 ++
 cogl/cogl-offscreen.h                            |   96 +
 cogl/cogl-path.h                                 |  347 ++
 cogl/cogl-primitives.c                           | 2329 +++++++++++++
 cogl/cogl-primitives.h                           |   62 +
 cogl/cogl-shader.h                               |  313 ++
 cogl/cogl-texture-driver.h                       |  157 +
 cogl/cogl-texture-private.h                      |  151 +
 cogl/cogl-texture.c                              | 1682 ++++++++++
 cogl/cogl-texture.h                              |  465 +++
 cogl/cogl-types.h                                |  328 ++
 cogl/cogl-util.c                                 |  252 ++
 cogl/cogl-util.h                                 |   30 +
 cogl/cogl-vertex-buffer-private.h                |  169 +
 cogl/cogl-vertex-buffer.c                        | 2016 ++++++++++++
 cogl/cogl-vertex-buffer.h                        |  452 +++
 cogl/cogl.c                                      |  879 +++++
 cogl/cogl.h.in                                   |  875 +++++
 cogl/cogl.pc.in                                  |   17 +
 cogl/driver/Makefile.am                          |    7 +
 cogl/driver/gl/Makefile.am                       |   39 +
 cogl/driver/gl/cogl-context-driver.c             |   84 +
 cogl/driver/gl/cogl-context-driver.h             |  103 +
 cogl/driver/gl/cogl-defines.h.in                 | 1053 ++++++
 cogl/driver/gl/cogl-fbo.c                        |  330 ++
 cogl/driver/gl/cogl-fbo.h                        |   39 +
 cogl/driver/gl/cogl-primitives.c                 |  282 ++
 cogl/driver/gl/cogl-program.c                    |  255 ++
 cogl/driver/gl/cogl-program.h                    |   39 +
 cogl/driver/gl/cogl-shader-private.h             |   39 +
 cogl/driver/gl/cogl-shader.c                     |  177 +
 cogl/driver/gl/cogl-texture-driver.c             |  454 +++
 cogl/driver/gl/cogl.c                            |  443 +++
 cogl/driver/gles/Makefile.am                     |   62 +
 cogl/driver/gles/cogl-context-driver.c           |   41 +
 cogl/driver/gles/cogl-context-driver.h           |   44 +
 cogl/driver/gles/cogl-defines.h.in               |  638 ++++
 cogl/driver/gles/cogl-fbo.c                      |  343 ++
 cogl/driver/gles/cogl-fbo.h                      |   39 +
 cogl/driver/gles/cogl-fixed-fragment-shader.glsl |   62 +
 cogl/driver/gles/cogl-fixed-vertex-shader.glsl   |   65 +
 cogl/driver/gles/cogl-gles2-wrapper.c            | 1635 ++++++++++
 cogl/driver/gles/cogl-gles2-wrapper.h            |  433 +++
 cogl/driver/gles/cogl-primitives.c               |  453 +++
 cogl/driver/gles/cogl-program.c                  |  338 ++
 cogl/driver/gles/cogl-program.h                  |   43 +
 cogl/driver/gles/cogl-shader-private.h           |   40 +
 cogl/driver/gles/cogl-shader.c                   |  221 ++
 cogl/driver/gles/cogl-texture-driver.c           |  481 +++
 cogl/driver/gles/cogl-util.c                     |   49 +
 cogl/driver/gles/cogl-util.h                     |   30 +
 cogl/driver/gles/cogl.c                          |   64 +
 cogl/driver/gles/stringify.sh                    |   94 +
 cogl/stb_image.c                                 | 3772 ++++++++++++++++++++++
 cogl/winsys/Makefile.am                          |   43 +
 cogl/winsys/cogl-eglnative.c                     |   35 +
 cogl/winsys/cogl-eglx.c                          |   35 +
 cogl/winsys/cogl-fruity.c                        |   35 +
 cogl/winsys/cogl-glx.c                           |   78 +
 cogl/winsys/cogl-osx.c                           |   35 +
 cogl/winsys/cogl-sdl.c                           |   35 +
 cogl/winsys/cogl-win32.c                         |   35 +
 cogl/winsys/cogl-winsys.h                        |   30 +
 common/Makefile.am                               |   96 -
 common/cogl-bitmap-fallback.c                    |  460 ---
 common/cogl-bitmap-pixbuf.c                      |  368 ---
 common/cogl-bitmap-private.h                     |  115 -
 common/cogl-bitmap.c                             |  208 --
 common/cogl-blend-string.c                       | 1005 ------
 common/cogl-blend-string.h                       |  138 -
 common/cogl-clip-stack.c                         |  503 ---
 common/cogl-clip-stack.h                         |   43 -
 common/cogl-color.c                              |  201 --
 common/cogl-context.c                            |  215 --
 common/cogl-context.h                            |  131 -
 common/cogl-current-matrix.c                     |  549 ----
 common/cogl-current-matrix.h                     |   95 -
 common/cogl-debug.c                              |  131 -
 common/cogl-enum-types.c.in                      |   41 -
 common/cogl-enum-types.h.in                      |   25 -
 common/cogl-fixed.c                              |  950 ------
 common/cogl-handle.h                             |  157 -
 common/cogl-internal.h                           |   88 -
 common/cogl-material-private.h                   |  255 --
 common/cogl-material.c                           | 1972 -----------
 common/cogl-matrix-stack.c                       |  363 ---
 common/cogl-matrix-stack.h                       |   81 -
 common/cogl-matrix.c                             |  282 --
 common/cogl-primitives.c                         | 2329 -------------
 common/cogl-primitives.h                         |   62 -
 common/cogl-texture-driver.h                     |  157 -
 common/cogl-texture-private.h                    |  151 -
 common/cogl-texture.c                            | 1682 ----------
 common/cogl-util.c                               |  252 --
 common/cogl-util.h                               |   30 -
 common/cogl-vertex-buffer-private.h              |  169 -
 common/cogl-vertex-buffer.c                      | 2016 ------------
 common/cogl.c                                    |  858 -----
 common/stb_image.c                               | 3772 ----------------------
 doc/reference/cogl/Makefile.am                   |   11 +-
 gl/cogl-context-driver.c                         |   84 -
 gl/cogl-context-driver.h                         |  103 -
 gl/cogl-defines.h.in                             | 1053 ------
 gl/cogl-fbo.c                                    |  330 --
 gl/cogl-fbo.h                                    |   39 -
 gl/cogl-primitives.c                             |  282 --
 gl/cogl-program.c                                |  255 --
 gl/cogl-program.h                                |   39 -
 gl/cogl-shader-private.h                         |   39 -
 gl/cogl-shader.c                                 |  177 -
 gl/cogl-texture-driver.c                         |  454 ---
 gl/cogl.c                                        |  515 ---
 gles/cogl-context-driver.c                       |   41 -
 gles/cogl-context-driver.h                       |   44 -
 gles/cogl-defines.h.in                           |  638 ----
 gles/cogl-fbo.c                                  |  343 --
 gles/cogl-fbo.h                                  |   39 -
 gles/cogl-fixed-fragment-shader.glsl             |   62 -
 gles/cogl-fixed-vertex-shader.glsl               |   65 -
 gles/cogl-gles2-wrapper.c                        | 1635 ----------
 gles/cogl-gles2-wrapper.h                        |  433 ---
 gles/cogl-primitives.c                           |  453 ---
 gles/cogl-program.c                              |  338 --
 gles/cogl-program.h                              |   43 -
 gles/cogl-shader-private.h                       |   40 -
 gles/cogl-shader.c                               |  221 --
 gles/cogl-texture-driver.c                       |  481 ---
 gles/cogl-util.c                                 |   49 -
 gles/cogl-util.h                                 |   30 -
 gles/cogl.c                                      |   74 -
 gles/stringify.sh                                |   94 -
 179 files changed, 34125 insertions(+), 33762 deletions(-)

commit b85af722f4890e5d22ccd429441b6c6b82d2a391
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Jul 28 01:34:33 2009 +0100

    Make the CoglContext structure a bit more maintainable
    
    This moves most of cogl-context.{c.h} to cogl/common with some driver
    specific members now living in a CoglContextDriver struct.  Driver specific
    context initialization and typedefs now live in
    cogl/{gl,gles}/cogl-context-driver.{c,h}
    
    Driver specific members can be found under ctx->drv.stuff

 common/Makefile.am          |    2 +
 common/cogl-blend-string.c  |    2 +-
 common/cogl-context.c       |  215 +++++++++++++++++++++++++++++++++++
 common/cogl-context.h       |  131 ++++++++++++++++++++++
 common/cogl-material.c      |   14 +-
 common/cogl-primitives.c    |   12 +-
 common/cogl-vertex-buffer.c |   26 ++--
 common/cogl.c               |    2 +-
 gl/Makefile.am              |    2 +-
 gl/cogl-context-driver.c    |   84 ++++++++++++++
 gl/cogl-context-driver.h    |  103 +++++++++++++++++
 gl/cogl-context.c           |  259 -------------------------------------------
 gl/cogl-context.h           |  197 --------------------------------
 gl/cogl-fbo.c               |   24 ++--
 gl/cogl-primitives.c        |    2 +-
 gl/cogl-program.c           |   50 ++++----
 gl/cogl-shader.c            |   12 +-
 gl/cogl-texture-driver.c    |    2 +-
 gl/cogl.c                   |  224 +++++++++++++++++++-------------------
 gles/Makefile.am            |    2 +-
 gles/cogl-context-driver.c  |   41 +++++++
 gles/cogl-context-driver.h  |   44 ++++++++
 gles/cogl-context.c         |  214 -----------------------------------
 gles/cogl-context.h         |  136 ----------------------
 gles/cogl-fbo.c             |    8 +-
 gles/cogl-gles2-wrapper.c   |    2 +-
 gles/cogl-program.c         |   16 ++--
 gles/cogl-texture-driver.c  |   14 +-
 28 files changed, 828 insertions(+), 1012 deletions(-)

commit 739b460c7a16693fb98fea5af4dc0daa9688c47a
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Jul 28 00:37:11 2009 +0100

    Improve cogl-texture maintainability by moving 90% into cogl/common
    
    This splits the limited components that differed between
    cogl/{gl,gles}/cogl-texture.c into new {gl,gles}/cogl-texture-driver.c files
    and the rest that can now be shared into cogl/common/cogl-texture.c

 common/Makefile.am            |    3 +
 common/cogl-internal.h        |    1 +
 common/cogl-texture-driver.h  |  157 ++++
 common/cogl-texture-private.h |  151 +++
 common/cogl-texture.c         | 1682 +++++++++++++++++++++++++++++++++
 gl/Makefile.am                |    3 +-
 gl/cogl-texture-driver.c      |  454 +++++++++
 gl/cogl-texture-private.h     |  145 ---
 gl/cogl-texture.c             | 1996 ---------------------------------------
 gles/Makefile.am              |    3 +-
 gles/cogl-gles2-wrapper.h     |    1 +
 gles/cogl-texture-driver.c    |  481 ++++++++++
 gles/cogl-texture-private.h   |  144 ---
 gles/cogl-texture.c           | 2066 -----------------------------------------
 14 files changed, 2932 insertions(+), 4355 deletions(-)

commit 4f5e6b77d51b902bb7b54eee0d153492544e1b25
Merge: 4221e13 76480b4
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Fri Oct 16 15:55:05 2009 +0100

    Merge branch 'bug-1846'
    
    * bug-1846:
      Fix warning message in the ParamSpec validation

commit 4221e13feb3d5a6e49cc3f4a57e76b14fe04bcb2
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Fri Oct 16 15:55:04 2009 +0100

    Merge branch 'bug-1845'
    
    * bug-1845:
      Add a warning when ClutterInterval can't compute progress

commit 76480b466f61f8938d0c424685218ac9e351be1d
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Wed Oct 7 17:35:11 2009 +0100

    docs: Add the "clipping" section to the COGL API reference
    
    All the clip-related API in COGL is missing from the API reference
    because the cogl-clipping section is not included inside the main
    index file.

 doc/reference/cogl/cogl-docs.xml.in  |    1 +
 doc/reference/cogl/cogl-sections.txt |    3 ++-
 2 files changed, 3 insertions(+), 1 deletions(-)

commit b5c120dda328c308bd30e44cd4f877bb7cc5328b
Merge: c21f73f 0b4837d
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Mon Oct 5 12:37:08 2009 +0100

    Merge branch 'stage-window-object'
    
    * stage-window-object:
      [x11] Fix Stage user-initiated resize
      [x11] Remove a useless forced paint
      [stage] Rework the Stage implementation class

commit c21f73ff884e87b399cfe6dc4a819b5d288f2720
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Jul 28 00:40:29 2009 +0100

    [cogl-debug] avoid warnings when using COGL_NOTE with unbraced else clauses
    
    When not building a debug build the compiler was warning about empty
    else clauses with no braces due to code like:
      if (blah)
    	do_foo();
      else
    	COGL_NOTE (DRAW, "a-wibble");
    
    This simply ensures that even for non debug builds COGL_NOTE will expand to
    a single statement.

 cogl-debug.h |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 61e6c57bdd95ec22a04c440ec6087e4bb24c2095
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Sep 24 17:34:26 2009 +0100

    [cogl-vertex-buffer] fix n_components validation for GL's builtin attributes
    
    glVertexPointer expects positions with 2, 3 or 4 components, glColorPointer
    expects colors with 3 or 4 components and glNormalPointer expects normals
    with three components so when adding vertex buffer atributes with the names
    "gl_Vertex", "gl_Color" or "gl_Normal" we assert these constraints and print
    an explanation to the developer if not met.
    
    This also fixes the previosly incorrect constraint that gl_Normal attributes
    must have n_components == 1; thanks to Cat Sidhe for reporting this:
    
    Bug: http://bugzilla.openedhand.com/show_bug.cgi?id=1819

 common/cogl-vertex-buffer.c |   19 +++++++++++++++----
 1 files changed, 15 insertions(+), 4 deletions(-)

commit 84441610de4e58d358f9a94c568609d79c8ce8fb
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Mon Sep 21 15:21:21 2009 +0100

    Add a few annotations on Cogl primitives functions
    
    By default, float * is considered as an out argument by gobject
    introspection which is wrong for quite a few Cogl symbols. Start adding
    annotations to fix that for the ones in the "Primitives" gtk-doc
    section.

 cogl-path.h    |    8 ++++----
 cogl-texture.h |   15 ++++++++-------
 2 files changed, 12 insertions(+), 11 deletions(-)

commit e7ee24048343269244651ec024db6918558046d1
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Sep 17 18:29:03 2009 +0100

    [cogl] Remove CoglContext->journal_vbo{,_len}
    
    The lifetime of the journal VBO is entirely within the scope of the
    cogl_journal_flush function so there is no need to store it globally
    in the Cogl context. Instead, upload_vertices_to_vbo just returns the
    new VBO. cogl_journal_flush stores this in a local variable and
    destroys it before returning.
    
    This also fixes an assertion when using the GLES backend which was
    caused by nothing initialising the journal_vbo variable.

 common/cogl-primitives.c |   20 ++++++++++----------
 gl/cogl-context.c        |    2 --
 gl/cogl-context.h        |    2 --
 gles/cogl-context.h      |    1 -
 4 files changed, 10 insertions(+), 15 deletions(-)

commit 83fc188f73fa23345fc593d66cee965f1991e1ea
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Sep 16 17:43:58 2009 +0100

    [build] Split out the custom silent rules
    
    The silent rules we use for custom targets should be moved into a
    separate Makefile.am that gets included from all the others.

 Makefile.am        |    8 ++------
 common/Makefile.am |    8 ++------
 gl/Makefile.am     |    2 ++
 gles/Makefile.am   |    2 ++
 4 files changed, 8 insertions(+), 12 deletions(-)

commit eb6728f0623955207bcbccc49bf6cf4da8095fd1
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Sep 15 16:27:45 2009 +0100

    [cogl-fbo] Disable mipmap filters before calling glCheckFramebufferStatusEXT
    
    The framebuffer_object spec isn't clear in defining whether attaching a
    texture as a renderbuffer with mipmap filtering enabled while the mipmaps
    have not been uploaded should result in an incomplete framebuffer object.
    (different drivers make different decisions)
    
    To avoid an error with drivers that do consider this a problem we explicitly
    set non mipmapped filters before calling glCheckFramebufferStatusEXT.  The
    filters will later be reset when the texture is actually used for rendering
    according to the filters set on the corresponding CoglMaterial.

 gl/cogl-fbo.c |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)

commit d07ab704d4a0d9b6d6d6827aae30315f7b21577e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Sep 7 11:44:44 2009 +0100

    [docs] Small annotation fixes

 cogl-material.h |   29 ++++++++++++++++++-----------
 cogl-texture.h  |    7 ++++---
 2 files changed, 22 insertions(+), 14 deletions(-)

commit 0b4837d8a299d9c7702c6e73aabbc4a8091f6737
Author: Samuel Degrande <samuel.degrande@lifl.fr>
Date:   Wed Sep 2 16:27:22 2009 +0100

    DOT3_RGB[A] cannot be used in a Blend String
    
    The blend string compiler checks that the syntax of a function name is
    [A-Za-z_]*, preventing the use of DOT3_RGB[A].
    
    Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>

 common/cogl-blend-string.c |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

commit e72747cbb879b23b26a1f89433a7b7c202481c4f
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Aug 24 12:50:57 2009 +0100

    [cogl-texture] Set GL_PACK_ROW_LENGTH when downloading texture data
    
    Otherwise the rowstride passed in from an application is not used
    correctly so you can not download to an area with a much larger
    rowstride.

 gl/cogl-texture.c |   14 +++++++++++---
 1 files changed, 11 insertions(+), 3 deletions(-)

commit 5f566c2833c096d890f6c73695d28b70e43ec209
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Aug 20 12:53:32 2009 +0100

    Revert "[cogl] Allow Cogl to create NPOT textures for GLES2"
    
    This reverts commit 3c47a3beb51462ef8af1070b75123660059e97d0.
    
    Of course I remembered just after pushing the patch why we hadn't done
    this before :-) If you look in the glsl spec:
    http://www.khronos.org/registry/gles/specs/2.0/es_full_spec_2.0.24.pdf
    Section 3.7.10 Texture Completeness and Non-Power-Of-Two Textures
    you can see GLES 2.0 doesn't support mipmaps for npot textures.
    
    There is possibly some way we could support this in Cogl but at least
    it's not as simple as or-ing in the feature flag, sadly.

 gles/cogl.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

commit bf1ed7d67e86a3ed19e8ce1e57d38129ff7263a1
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Aug 20 12:15:21 2009 +0100

    [cogl] Allow Cogl to create NPOT textures for GLES2
    
    The core GLES2 API supports NPOT textures, i.e. there is no extension as for
    OpenGL, so we now add COGL_FEATURE_TEXTURE_NPOT to the feature flags in
    _cogl_features_init.
    
    Thanks to Gordon Williams for spotting this.

 gles/cogl.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

commit 391477e67ba76ee7119b71a23350e2c1c4752811
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Aug 19 15:38:25 2009 +0100

    [cogl] %.c: %.glsl codegen: use BUILT_SOURCES var + fix stringify.sh
    
    Don't let stringify.sh write to the $srcdir + use the BUILT_SOURCES var in
    Makefile.am so as to ensure all .c.  and .h files get generated from their
    corresponding .glsl files before building other targets.

 gles/Makefile.am  |   14 +++++++++-----
 gles/stringify.sh |   40 +++++++++++++++++++---------------------
 2 files changed, 28 insertions(+), 26 deletions(-)

commit 0aa31b4ebc4938627a9993e109043da6184939ad
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Aug 10 12:45:44 2009 +0200

    Use AM_SILENT_RULES if automake >= 1.11 is installed
    
    Fixes bug:
    
      http://bugzilla.openedhand.com/show_bug.cgi?id=1756
    
    Based on a patch by: Javier Jardón <javierjc1982@gmail.com>

 Makefile.am        |    6 ++++--
 common/Makefile.am |    7 ++++---
 2 files changed, 8 insertions(+), 5 deletions(-)

commit 9a55b0c3ff10d940fae95fd66501a93e32da95b9
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Aug 18 16:13:13 2009 +0100

    [cogl-material] Fix some brackets in _layer_flush_gl_sampler_state
    
    The wrong part of an expression was bracketed in the test to determine
    when a new texture matrix needed to be loaded which resulted in the
    first pass through _cogl_material_layer_flush_gl_sampler_state
    not uploading any user matrix.

 common/cogl-material.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

commit ffd47f5b56fe2f02a4ee350be913f2ba5fdf3d51
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Aug 18 11:11:29 2009 +0100

    [docs] texture_polygon() is called polygon()
    
    Remove the mentions to the old name of cogl_polygon().

 cogl-types.h |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

commit 7f1659f9c78ab58c311839da573189400af250b0
Author: Götz Waschk <waschk@mandriva.org>
Date:   Mon Aug 17 14:12:21 2009 +0100

    Update Clutter to use G-I 0.6.4
    
    Following bug #1762, the syntax of g-ir-scanner was changed in
    gobject-introspection, so Clutter does not build anymore with 0.6.4.
    
    See the bugzilla bug:
    
      http://bugzilla.gnome.org/show_bug.cgi?id=591669
    
    GObject-Introspection now uses a different mechanism to extract the
    SONAME when building the gir file and it needs the libtool archive as
    option.
    
    Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>

 Makefile.am |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 7feae6702696e70bb0f98ba58682772833b25fb3
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Aug 13 16:15:04 2009 +0100

    [docs] Remove the version number from the title
    
    The version number in the title made sense when we were breaking
    API with every minor release. Now that we're API stable we can
    drop that and make the output in Devhelp and on the website slightly
    more good looking.

 doc/reference/cogl/cogl-docs.xml.in |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)

commit c460786e9e43698d6fbe45c52dda7d1398096c3d
Author: zhou jiangwei <dyllan.zhou@samsung.com>
Date:   Tue Aug 11 14:17:28 2009 +0100

    [cogl] Fix the GLES 2.0 backend
    
    Update the GLES 2.0 backend to the new COGL API after the breakage
    introduced by the journal.
    
    Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>

 common/cogl-primitives.c    |    5 +++--
 gles/cogl-context.h         |    5 ++++-
 gles/cogl-gles2-wrapper.h   |    5 +++++
 gles/cogl-primitives.c      |   10 +++++-----
 gles/cogl-texture-private.h |    3 +++
 5 files changed, 20 insertions(+), 8 deletions(-)

commit 1bdfb9e6d4740c8de9fd0490d5b08676ce6b2441
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Aug 11 13:49:12 2009 +0100

    [cogl_clear] Also pass the alpha component of the CoglColor to glClearColor
    
    Previously we were passing a constant of 0.0 for the alpha component which
    wasn't as flexible.

 common/cogl.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 23bd5ecd47c02d54bb616efcaa78c207ba10d6cc
Merge: ac5314c 5d43728
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Aug 10 17:21:20 2009 +0100

    Merge branch 'system-json-glib'
    
    * system-json-glib:
      [script] Simplify the parser code
      Update JSON-GLib dependency

commit ac5314c6d2e550aebe99afcfadd62197956952f3
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Aug 4 11:38:48 2009 +0100

    [docs] Fix a missing parameter

 cogl-vertex-buffer.h |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit ff833fa068ba0ba3125485159ad53302edf40ca6
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Aug 4 11:10:55 2009 +0100

    [cogl] Expose cogl_is_vertex_buffer()
    
    The function is public and available in the shared object, but
    it's not present in the header, so this is not an API/ABI change.

 cogl-vertex-buffer.h                 |   14 ++++++++++++++
 doc/reference/cogl/cogl-sections.txt |    1 +
 2 files changed, 15 insertions(+), 0 deletions(-)

commit 68f3c87f967c37c1fa98a3f57a14191f37b70921
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Jul 28 13:57:07 2009 +0100

    Fix compiler warnings when COGL debug level=minimum

 common/cogl-debug.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 05dabd1aa5d03af64248ba2114a90f3ac984e938
Author: Ole André Vadla Ravnås <ole.andre.ravnas@tandberg.com>
Date:   Tue Jul 7 20:02:25 2009 +0200

    Avoid near/far identifier names.
    
    Leads to conflict with system headers on Windows, where macros named
    "near" and "far" are defined.

 common/cogl-matrix.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

commit 237553984e6e45a2e93bc6c6c803fedc664af278
Author: Ole André Vadla Ravnås <oleavr@gmail.com>
Date:   Wed Jul 1 16:27:11 2009 +0200

    Call glClientActiveTexture() through COGL context.
    
    Fixes build issues on systems with OpenGL header older than 1.3.

 common/cogl.c        |    4 ++++
 gl/cogl-primitives.c |    2 ++
 2 files changed, 6 insertions(+), 0 deletions(-)

commit 243b22640dcdd10a75d3b1f2910be6405ace0f52
Author: Ole André Vadla Ravnås <ole.andre.ravnas@tandberg.com>
Date:   Tue Jun 16 22:29:21 2009 +0200

    Avoid C99 to fix compilation with compilers like MSVC.

 common/cogl-blend-string.c |   20 ++++++++++----------
 common/cogl-primitives.c   |    8 ++++++--
 common/cogl.c              |    4 +++-
 3 files changed, 19 insertions(+), 13 deletions(-)

commit 584eca5eee1d1febc486594b1f8c7ac218fcf45c
Author: Haakon Sporsheim <haakon.sporsheim@gmail.com>
Date:   Tue Mar 31 14:37:07 2009 +0200

    Reposition variable declarations to avoid C99.

 common/cogl-material.c |    3 ++-
 common/cogl-matrix.c   |    6 ++++--
 2 files changed, 6 insertions(+), 3 deletions(-)

commit ab88c0a8885bcfccd7c56cef0d81b4147a24c31d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Jul 27 16:51:14 2009 +0100

    [build] Use API_VERSION, not MAJORMINOR
    
    The correct macro for Clutter's API version is CLUTTER_API_VERSION,
    not CLUTTER_MAJORMINOR anymore.

 doc/reference/cogl/Makefile.am |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit d1b8cab65d25ae00dc919390b231ad9c9b4f41ba
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Jul 20 12:49:35 2009 +0100

    [doc] Miscellaneous documentation fixes
    
    Remove private symbols, and add missing public ones.

 cogl-material.h                      |   79 ++++++++++++++++++---------------
 cogl-types.h                         |   16 +++++++
 cogl.h.in                            |   31 +++++++------
 doc/reference/cogl/Makefile.am       |    7 +++
 doc/reference/cogl/cogl-sections.txt |   22 +---------
 5 files changed, 83 insertions(+), 72 deletions(-)

commit 1da8ce3429d95228eb46326f6f796c0a13deaaf9
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Jul 20 12:47:53 2009 +0100

    [cogl] Make the blend string error domain public
    
    The error domain and codes must present in a publicly installed header
    otherwise they won't be usable to match a GError.

 cogl-types.h               |   11 +++++++++++
 common/cogl-blend-string.c |    2 +-
 common/cogl-blend-string.h |   13 -------------
 3 files changed, 12 insertions(+), 14 deletions(-)

commit afe10f9897b1789685ee9173c82db680fc5a84f9
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sun Jul 19 10:08:32 2009 +0100

    [doc] Remove references to cogl_vertex_buffer_delete_indices
    
    These referencese were left over from before indices got CoglHandles to
    uniquely identify them.  cogl_handle_unref can be used to delete indices
    now.

 cogl-vertex-buffer.h                 |   14 --------------
 doc/reference/cogl/cogl-sections.txt |    1 -
 2 files changed, 0 insertions(+), 15 deletions(-)

commit c570014360d9e5725d843e9cebb9dd8f88cec32a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sat Jul 18 16:59:54 2009 +0100

    [cogl/gles] Fix missing symbols in CoglContext
    
    Keep the CoglContext in sync between GL and GLES backends. We ought
    to find a way to have a generic context, though, and have backend
    specific sections.
    
    Fixes bug:
    
      http://bugzilla.openedhand.com/show_bug.cgi?id=1698

 gles/cogl-context.h |   11 +++++++----
 1 files changed, 7 insertions(+), 4 deletions(-)

commit b00fb8598ae06f34805eab2981f87b6931fda55a
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date:   Fri Jul 17 15:10:06 2009 -0400

    Fix building introspection when dolt is not in use
    
    On some platforms (anything but Linux, and on obscure Linux
    architectures) dolt isn't used, so $(top_builddir)/doltlibtool
    won't exist. $(top_builddir)/libtool will always be generated
    even if dolt is used, so just use that unconditionally. We don't
    need the extra speed when linking the single program for
    introspection.
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=1699
    
    Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>

 Makefile.am |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit ec89082e4bf9b5c1dbcfff42e794a9cd7b343f5f
Author: Evan Martin <martine@danga.com>
Date:   Sun Jul 12 01:38:40 2009 +0100

    [docs] Fix typos and remove mentions of SVN
    
    Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>

 cogl-path.h |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit af49769b33a4596208cc5496883051ffbba0c0f9
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Jul 7 16:16:56 2009 +0100

    [cogl] Fix more brokeness with _cogl_material_equal
    
    commit e2c4a2a9f83 fixed one thing but broke many others things :-/
    hopfully this fixes that.
    
    It turned out that the journal was mistakenly setting the OVERRIDE_LAYER0
    flush option for all entries, but some other logic errors were also
    uncovered in _cogl_material_equal.

 common/cogl-material.c   |   73 +++++++++++++++++++++++++++++++++------------
 common/cogl-primitives.c |    7 +++-
 2 files changed, 58 insertions(+), 22 deletions(-)

commit a8e93e8588ef57f5a176f7e2e84f481b696fae8b
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sat Jul 4 00:15:49 2009 +0100

    [cogl] Fix drawing with sliced textures using material layer0 overrides
    
    To help us handle sliced textures; When flushing materials there is an
    override option that can be given to replace the texture name for layer0
    so we may iterate the slices without needing to modify the material
    in use.
    
    Since improving the journal's ability to batch state changes we added a
    _cogl_material_equals function that is used by the journal to compare
    materials and identify when a state change is required, but this wasn't
    correctly considering the layer0 override resulting in false positives that
    meant the journal wouldn't update the GL state and the first texture name
    was used for all slices.

 common/cogl-material-private.h |    3 +-
 common/cogl-material.c         |  208 +++++++++++++++++++++++++++-------------
 common/cogl-primitives.c       |    3 +-
 3 files changed, 144 insertions(+), 70 deletions(-)

commit fffcf579d5c7e3d97f1641b0cb0433c23700f484
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Jul 3 00:34:10 2009 +0100

    [cogl matrix stack] Create a client side matrix stack for the projection matrix
    
    The cost of glGetFloatv with Mesa is still representing a majority of our
    time in OpenGL for some applications, and the last thing left using this is
    the current-matrix API when getting the projection matrix.
    
    This adds a matrix stack for the projection matrix, so all getting, setting
    and modification of the projection matrix is now managed by Cogl and it's only
    when we come to draw that we flush changes to the matrix to OpenGL.
    
    This also brings us closer to being able to drop internal use of the
    deprecated OpenGL matrix functions, re: commit 54159f5a1d02

 common/cogl-current-matrix.c |  105 +++++++++++++++++++++++++----------------
 common/cogl-current-matrix.h |    2 +
 common/cogl-matrix-stack.c   |    8 +---
 common/cogl-matrix.c         |    1 +
 common/cogl-primitives.c     |   10 +++-
 common/cogl-vertex-buffer.c  |    4 +-
 common/cogl.c                |    7 ++-
 gl/cogl-context.h            |    1 +
 gl/cogl-primitives.c         |    6 +-
 9 files changed, 85 insertions(+), 59 deletions(-)

commit fcc3d56209f5783f21388599ebe2b9c262a07291
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Jul 1 12:34:54 2009 +0100

    Split the typdef to avoid confusing scanners
    
    Scanners like gtk-doc and g-ir-scanner get confused by:
    
      typedef struct _Foo {
        ...
      } Foo;
    
    And expect instead:
    
      typedef struct _Foo Foo;
    
      struct _Foo {
        ...
      };
    
    CoglMatrix definition should be changed to avoid the former type.

 cogl-matrix.h |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

commit a6880643a08d8387bbbae84a040758d283520e38
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Jun 25 14:39:57 2009 +0100

    Add debug notes for calls to glViewport()
    
    In order to validate the sequence of:
    
            XResizeWindow
            ConfigureNotify
            glViewport
    
    that should happen on X11 we need to add debug annotations to the
    calls to glViewport() done through COGL.

 common/cogl.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

commit 82ef6b51b9876c82e72d514ef7d8932cdf409e41
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Jul 1 12:57:30 2009 +0100

    [cogl] cache the viewport width and height
    
    This avoids some calls to glGetFloatv, which have at least proven to be very
    in-efficient in mesa at this point in time, since it always updates all derived
    state even when it may not relate to the state being requested.

 common/cogl.c     |   30 ++++++++++++++++--------------
 gl/cogl-context.c |    3 +++
 gl/cogl-context.h |    3 +++
 gl/cogl-fbo.c     |    2 +-
 4 files changed, 23 insertions(+), 15 deletions(-)

commit fdc048ddd0c91de5929ec36b2ec05b1091704a64
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Jun 19 12:15:12 2009 +0100

    [cogl] Ensure well defined semantics for COGL_INVALID_HANDLE material layers
    
    Fixes and adds a unit test for creating and drawing using materials with
    COGL_INVALID_HANDLE texture layers.
    
    This may be valid if for example the user has set a texture combine string
    that only references a constant color.
    
    _cogl_material_flush_layers_gl_state will bind the fallback texture for any
    COGL_INVALID_HANDLE layer, later though we could explicitly check when the
    current blend mode does't actually reference a texture source in which case
    binding the fallback texture is redundant.
    
    This tests drawing using cogl_rectangle, cogl_polygon and
    cogl_vertex_buffer_draw.

 common/cogl-material.c      |    8 +++++++-
 common/cogl-primitives.c    |   35 ++++++++++++++++++++++++++++-------
 common/cogl-vertex-buffer.c |   10 ++++++++--
 3 files changed, 43 insertions(+), 10 deletions(-)

commit 4d55d146b3974f919d7f46515573ee0cfc029247
Merge: 096c1df b4bc9eb
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Jun 30 17:17:30 2009 +0100

    Merge branch 'cogl-journal-batching'
    
    [cogl] Improve ability to break out into raw OpenGL via begin/end mechanism
    Adds a cogl_flush() to give developers breaking into raw GL a fighting chance
    [cogl-material] Be more carefull about flushing in cogl_material_remove_layer
    Revert "[rectangle] Avoid modifying materials mid scene"
    Revert "[actor] Avoid modifying materials mid-scene to improve journal batching"
    [cogl-vertex-buffer] Disable unused client tex coord arrays
    [cogl] disable all client tex coord arrays in _cogl_add_path_to_stencil_buffer
    [cogl] flush matrices in _cogl_add_path_to_stencil_buffer
    [journal] Don't resize a singlton VBO; create and destroy a VBO each flush
    [cogl] avoid using the journal in _cogl_add_path_to_stencil_buffer
    [pango-display-list] Use the Cogl journal for short runs of text
    [material] _cogl_material_equal: catch the simplest case of matching handles
    [material] avoid flushing the journal when just changing the color
    [cogl journal] Perform software modelview transform on logged quads.
    [Cogl journal] use G_UNLIKLEY around runtime debugging conditions
    [cogl journal] Adds a --cogl-debug=batching option to trace batching
    [Cogl journal] Adds a --cogl-debug=journal option for tracing the journal
    [cogl] Adds a debug option for disabling use of VBOs --cogl-debug=disable-vbos
    [cogl] Force Cogl to always use the client side matrix stack
    [cogl-debug] Adds a "client-side-matrices" Cogl debug option
    [cogl-color] Adds a cogl_color_equal() function
    [cogl material] optimize logging of material colors in the journal
    [rectangle] Avoid modifying materials mid scene
    [actor] Avoid modifying materials mid-scene to improve journal batching
    [journal] Always pad our vertex data as if at least 2 layers are enabled
    [cogl] Improving Cogl journal to minimize driver overheads + GPU state changes
    
    The Cogl journal is a mechanism Cogl uses to batch geometry resulting from
    any of the cogl_rectangle* functions before sending it to OpenGL.  This aims
    to improve the Cogl journal so that it can reduce the number of state
    changes and draw calls we issue to the OpenGL driver and hopfully improve
    performance.
    
    Previously each call to any of the cogl_rectangle* functions would imply an
    immediate GL draw call, as well as a corresponding modelview change;
    material state changes and gl{Vertex,Color,TexCoord}Pointer calls.  Now
    though we have tried to open the scope for batching up as much as possible
    so we only have to flush the geometry either before calling glXSwapBuffers,
    or when we change state that isn't tracked by the journal.
    
    As a basic example, it's now possible for us to batch typical picking
    renders into a single draw call for the whole scene.
    
    Some key points about this change:
    - We now perform transformations of quads in software (except for long runs of
      text which continue to use VBOs)
        * It might seem surprising at first, but when you consider that so many
          Clutter actors are little more than textured quads and each actor
          typically implies a modelview matrix change; the costs involved in
          setting up the GPU with the new modelview can easily out weigh the cost
          of simply transforming 4 vertices.
    - We always use Cogl's own client side matrix API now.
        * We found the performance of querying the OpenGL driver for matrix state
          was often worse than using the client matrix code, and also - discussing
          with Mesa developers - agreed that since khronos has essentially
          deprecated the GL matrix API (by removing it from OpenGL 3 and
          OpenGL-ES 2) it was appropriate to take full responsibility for all our
          matrix manipulation.
    - Developers should avoid modifying materials mid-scene.
        * With the exception of material color changes, if you try and modify a
          material that is referenced in the journal we will currently force a
          journal flush. Note: you can assume that re-setting the same value for
          a material property won't require a flush though.
    - Several new --cogl-debug options have been added
        * "disable-batching" can be used to identify bugs in the way that the
          journal does its batching; of could this shouldn't ever be needed :-)
        * "disable-vbos" can be used to test the VBO fallback paths where we
          simply use malloc()'d buffers instead.
        * "batching" lets you get an overview of how the journal is batching
          your geometry and may help you identify ways to improve your
          application performance.
        * "journal" lets you trace all the geometry as it gets logged in the
          journal, and all the geometry as its flushed from the journal.
          Obviously an inconsistency can identify a bug, but the numbers may
          help you verify application logic too.
        * "disable-software-transform" as implied will instead use the driver
          /GPU to transform quads by the modelview matrix.
        Although committed separately a --clutter-debug=nop-picking option was
        also added that lets you remove picking from the equation, which can
        sometimes help make problem analysis more deterministic.

commit b4bc9eb458f6cad450c0c7b8dc726ff275c7e21d
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Jun 29 22:32:05 2009 +0100

    [cogl] Improve ability to break out into raw OpenGL via begin/end mechanism
    
    Although we wouldn't recommend developers try and interleve OpenGL drawing
    with Cogl drawing - we would prefer patches that improve Cogl to avoid this
    if possible - we are providing a simple mechanism that will at least give
    developers a fighting chance if they find it necissary.
    
    Note: we aren't helping developers change OpenGL state to modify the
    behaviour of Cogl drawing functions - it's unlikley that can ever be
    reliably supported - but if they are trying to do something like:
    
       - setup some OpenGL state.
       - draw using OpenGL (e.g. glDrawArrays() )
       - reset modified OpenGL state.
       - continue using Cogl to draw
    
    They should surround their blocks of raw OpenGL with cogl_begin_gl() and
    cogl_end_gl():
    
       cogl_begin_gl ();
       - setup some OpenGL state.
       - draw using OpenGL (e.g. glDrawArrays() )
       - reset modified OpenGL state.
       cogl_end_gl ();
       - continue using Cogl to draw
    
    Again; we aren't supporting code like this:
       - setup some OpenGL state.
       - use Cogl to draw
       - reset modified OpenGL state.
    When the internals of Cogl evolves, this is very liable to break.
    
    cogl_begin_gl() will flush all internally batched Cogl primitives, and emit
    all internal Cogl state to OpenGL as if it were going to draw something
    itself.
    
    The result is that the OpenGL modelview matrix will be setup; the state
    corresponding to the current source material will be setup and other world
    state such as backface culling, depth and fogging enabledness will be also
    be sent to OpenGL.
    
    Note: no special material state is flushed, so if developers want Cogl to setup
    a simplified material state it is the their responsibility to set a simple
    source material before calling cogl_begin_gl. E.g. by calling
    cogl_set_source_color4ub().
    
    Note: It is the developers responsibility to restore any OpenGL state that they
    modify to how it was after calling cogl_begin_gl() if they don't do this then
    the result of further Cogl calls is undefined.

 cogl.h.in                            |   79 ++++++++++++++++++++++++++++++++++
 common/cogl.c                        |   75 ++++++++++++++++++++++++++++++++
 doc/reference/cogl/cogl-sections.txt |    2 +
 gl/cogl-context.c                    |    2 +
 gl/cogl-context.h                    |    2 +
 5 files changed, 160 insertions(+), 0 deletions(-)

commit 99f53c392244d75fafe3e79051b038974e19b4c0
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Jun 29 17:10:34 2009 +0100

    Adds a cogl_flush() to give developers breaking into raw GL a fighting chance
    
    This function should only need to be called in exceptional circumstances
    since Cogl can normally determine internally when a flush is necessary.
    
    As an optimization Cogl drawing functions may batch up primitives
    internally, so if you are trying to use raw GL outside of Cogl you stand a
    better chance of being successful if you ask Cogl to flush any batched
    geometry before making your state changes.
    
    cogl_flush() ensures that the underlying driver is issued all the commands
    necessary to draw the batched primitives.  It provides no guarantees about
    when the driver will complete the rendering.
    
    This provides no guarantees about the GL state upon returning and to avoid
    confusing Cogl you should aim to restore any changes you make before
    resuming use of Cogl.
    
    If you are making state changes with the intention of affecting Cogl drawing
    primitives you are 100% on your own since you stand a good chance of
    conflicting with Cogl internals.  For example clutter-gst which currently
    uses direct GL calls to bind ARBfp programs will very likely break when Cogl
    starts to use ARBfb programs internally for the material API, but for now it
    can use cogl_flush() to at least ensure that the ARBfp program isn't applied
    to additional primitives.
    
    This does not provide a robust generalized solution supporting safe use of
    raw GL, its use is very much discouraged.

 cogl.h.in                            |   42 ++++++++++++++++++++++-----------
 common/cogl.c                        |    4 +-
 doc/reference/cogl/cogl-sections.txt |    3 ++
 3 files changed, 33 insertions(+), 16 deletions(-)

commit cf621948a72cdac0f300d49dece427e2b720f1bb
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Jun 24 18:34:06 2009 +0100

    [cogl-material] Be more carefull about flushing in cogl_material_remove_layer
    
    Previously we would call _cogl_material_pre_change_notify unconditionally, but
    now we wait until we really know we are removing a layer before notifying the
    change, which will require a journal flush.
    
    Since the convenience functions cogl_set_source_color4ub and
    cogl_set_source_texture share a single material, cogl_set_source_color4ub
    always calls cogl_material_remove_layer.  Often this is a NOP though and
    shouldn't require a journal flush.
    
    This gets performance back to where it was before reverting the per-actor
    material commits.

 common/cogl-material.c |   12 +++++++++---
 1 files changed, 9 insertions(+), 3 deletions(-)

commit 2ae3d4b1c13047f4d866111ac4d52c3ec2efd46f
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Jun 24 18:10:50 2009 +0100

    [cogl-vertex-buffer] Disable unused client tex coord arrays
    
    Before any cogl vertex buffer drawing we call
    enable_state_for_drawing_buffer which sets up the GL state, but we weren't
    disabling unsed client texture coord arrays.

 common/cogl-vertex-buffer.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

commit 186a26eb266d564086b6867885b395fb6327fc50
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Jun 22 01:29:39 2009 +0100

    [cogl] disable all client tex coord arrays in _cogl_add_path_to_stencil_buffer
    
    After flushing the journal an unknown number of client side texture arrays
    may be left enabled. Disable them all before using glDrawArrays.

 gl/cogl-primitives.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

commit 4dada4c49ea7347ac5e236aae9a103e351339ec8
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Jun 22 00:49:20 2009 +0100

    [cogl] flush matrices in _cogl_add_path_to_stencil_buffer
    
    Before calling glRectf we need to ensure we flush the modelview and
    projection matrices.

 gl/cogl-primitives.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

commit a7974f8e6f56dcdec20741cb3b2a26c759142d9f
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Jun 22 00:11:41 2009 +0100

    [journal] Don't resize a singlton VBO; create and destroy a VBO each flush
    
    This simplifies the vertex data uploading in the journal, and could improve
    performance.  Modifying a VBO mid-scene could reqire synchronizing with the
    GPU or some form of shadowing/copying to avoid modifying data that the GPU
    is currently processing; the buffer was also being marked as GL_STATIC_DRAW
    which could have made things worse.
    
    Now we simply create a GL_STATIC_DRAW VBO for each flush and and delete it
    when we are finished.

 common/cogl-primitives.c |   40 ++++++++++++----------------------------
 1 files changed, 12 insertions(+), 28 deletions(-)

commit 1ecfd72936eedda3c75257d47f6b73b2648bfd47
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Jun 22 00:05:02 2009 +0100

    [cogl] avoid using the journal in _cogl_add_path_to_stencil_buffer
    
    Using cogl_rectangle (and thus the journal) in
    _cogl_add_path_to_stencil_buffer means we have to consider all the state
    that the journal may change in case it may interfer with the direct GL calls
    used.  This has proven to be error prone and in this case the journal is an
    unnecissary overhead.  We now simply call glRectf instead of using
    cogl_rectangle.

 gl/cogl-primitives.c |   16 ++++++----------
 1 files changed, 6 insertions(+), 10 deletions(-)

commit ac4f7f0bfe945f7bb04e2c3bd3d1d9d916ac44bb
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Jun 17 23:31:40 2009 +0100

    [material] _cogl_material_equal: catch the simplest case of matching handles
    
    We were missing the simplest test of all: are the two CoglHandles equal and
    are the flush option flags for each material equal?  This should improve
    batching for some common cases.

 common/cogl-material.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

commit 3369c5138bd81a43ff24bd7533c67df0c774f5bd
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Jun 17 23:31:11 2009 +0100

    [material] avoid flushing the journal when just changing the color
    
    Whenever we modify a material we call _cogl_material_pre_change_notify which
    checks to see if the material is referenced by the journal and if so flushes
    if before we modify the material.
    
    Since the journal logs material colors directly into a vertex array (to
    avoid us repeatedly calling glColor) then we know we never need to flush
    the journal when material colors change.

 common/cogl-material.c |   80 +++++++++++++++++++++++++++++++-----------------
 1 files changed, 52 insertions(+), 28 deletions(-)

commit f2f4f5f06f1051012bb643b822b29f7ec1bd28f6
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Jun 17 01:31:36 2009 +0100

    [cogl journal] Perform software modelview transform on logged quads.
    
    Since most Clutter actors aren't much more than textured quads; flushing the
    journal typically involves lots of 'change modelview; draw quad' sequences.
    
    The amount of overhead involved in uploading a new modelview and queuing
    that primitive is huge in comparison to simply transforming 4 vertices by
    the current modelview when logging quads.  (Note if your GPU supports HW
    vertex transform, then it still does the projective and viewport transforms)
    
    At the same time a --cogl-debug=disable-software-transform option has been
    added for comparison and debugging.
    
    This change allows typical pick scenes to be batched into a single draw call
    and I'm seeing test-pick run over 200% faster with this.  (i965 + Mesa
    7.6-devel)

 cogl-debug.h             |    3 +-
 common/cogl-debug.c      |    3 +-
 common/cogl-primitives.c |  158 +++++++++++++++++++++++++++++++++------------
 3 files changed, 120 insertions(+), 44 deletions(-)

commit 9d1bd46dafcc9fb266941254556349a71a572b12
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Jun 17 01:30:24 2009 +0100

    [Cogl journal] use G_UNLIKLEY around runtime debugging conditions
    
    May as well improve the branch prediction around runtime debugging code.

 common/cogl-primitives.c |   16 ++++++++--------
 1 files changed, 8 insertions(+), 8 deletions(-)

commit 839c466d62a501da21b0f8d778efdf4319a5a275
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Jun 11 11:54:01 2009 +0100

    [cogl journal] Adds a --cogl-debug=batching option to trace batching
    
    Enabling this option makes Cogl trace how the journal is managing to batch
    your rectangles.  The journal staggers how it emmits state to the GL driver
    and the batches will normally get smaller for each stage, but ideally you
    don't want to be in a situation where Cogl is only able to draw one quad per
    modelview change and draw call.
    
    E.g. this is a fairly ideal example:
    BATCHING: journal len = 101
    BATCHING:  vbo offset batch len = 101
    BATCHING:   material batch len = 101
    BATCHING:    modelview batch len = 101
    
    This isn't:
    BATCHING: journal len = 1
    BATCHING:  vbo offset batch len = 1
    BATCHING:   material batch len = 1
    BATCHING:    modelview batch len = 1
    BATCHING: journal len = 1
    BATCHING:  vbo offset batch len = 1
    BATCHING:   material batch len = 1
    BATCHING:    modelview batch len = 1
    <repeat>

 cogl-debug.h             |    5 +++--
 common/cogl-debug.c      |    3 ++-
 common/cogl-primitives.c |   17 ++++++++++++-----
 3 files changed, 17 insertions(+), 8 deletions(-)

commit 121bcd6dfe9aa7126dfa5d88aa0cf5b5c61a456d
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Jun 17 01:59:28 2009 +0100

    [Cogl journal] Adds a --cogl-debug=journal option for tracing the journal
    
    When this option is used Cogl will print a trace of all quads that get
    logged into the journal, and a trace of quads as they get flushed.
    
    If you are seeing a bug with the geometry being drawn by Cogl this may give
    some clues by letting you sanity check the numbers being logged vs the
    numbers being emitted.

 cogl-debug.h             |    3 ++-
 common/cogl-debug.c      |    3 ++-
 common/cogl-primitives.c |   36 +++++++++++++++++++++++-------------
 3 files changed, 27 insertions(+), 15 deletions(-)

commit 540a91c7fc32b631488255ae5d17562c74c0e05f
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Jun 17 01:46:06 2009 +0100

    [cogl] Adds a debug option for disabling use of VBOs --cogl-debug=disable-vbos
    
    For testing the VBO fallback paths it helps to be able to disable the
    COGL_FEATURE_VBOS feature flag.  When VBOs aren't available Cogl should use
    client side malloc()'d buffers instead.

 cogl-debug.h        |    3 ++-
 common/cogl-debug.c |    3 ++-
 common/cogl.c       |    3 +++
 3 files changed, 7 insertions(+), 2 deletions(-)

commit 491ceaae07f57b4fcc579add6c43a495be7110ba
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Jun 17 01:37:39 2009 +0100

    [cogl] Force Cogl to always use the client side matrix stack
    
    Previously we only used the Cogl matrix stack API for indirect contexts, but
    it's too costly to keep on requesting modelview matrices from GL (for
    logging in the journal) even for direct rendering.
    
    I also experimented with a patch for mesa to improve performance and
    discussed this with upstream, but we agreed to consider the GL matrix API
    essentially deprecated.  (For reference the GLES 2 and GL 3 specs have
    removed the matrix APIs)

 common/cogl-current-matrix.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

commit f4516e4057f0b7f06e1cc6b26e6de7e846644678
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Jun 5 13:50:00 2009 +0100

    [cogl-debug] Adds a "client-side-matrices" Cogl debug option
    
    This allows us to force Cogl to use the client side matrix stack even when
    direct rendering.

 cogl-debug.h                 |    3 ++-
 common/cogl-current-matrix.c |    3 ++-
 common/cogl-debug.c          |    3 ++-
 3 files changed, 6 insertions(+), 3 deletions(-)

commit 7b85da8b287ebb6b324848ee8136dc2f66f9759f
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Jun 5 12:58:31 2009 +0100

    [cogl-color] Adds a cogl_color_equal() function
    
    CoglColors shouldn't be compared using memcmp since they may contain
    uninitialized padding bytes.
    
    The prototype is also suitable for passing to g_hash_table_new as the
    key_equal_func.
    
    _cogl_pango_display_list_add_texture now uses this instead of memcmp.

 cogl-color.h        |   16 ++++++++++++++++
 common/cogl-color.c |   15 +++++++++++++++
 2 files changed, 31 insertions(+), 0 deletions(-)

commit 827798233a5afae073893d14a1ba72935d4fca09
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Jun 4 14:23:16 2009 +0100

    [cogl material] optimize logging of material colors in the journal
    
    We now put the color of materials into the vertex array used by the journal
    instead of calling glColor() but the number of requests for the material
    color were quite expensive so we have changed the material color to
    internally be byte components instead of floats to avoid repeat conversions
    and added _cogl_material_get_colorubv as a fast-path for the journal to
    copy data into the vertex array.

 common/cogl-material-private.h |   21 ++++-----------
 common/cogl-material.c         |   51 +++++++++++++++++++++++----------------
 common/cogl-primitives.c       |   26 ++++++++-----------
 gles/cogl-gles2-wrapper.c      |    7 +++++
 gles/cogl-gles2-wrapper.h      |    2 +
 5 files changed, 56 insertions(+), 51 deletions(-)

commit 2f367cc8021b3b55b74c0667132c89fddf298803
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Jun 10 13:59:45 2009 +0100

    [journal] Always pad our vertex data as if at least 2 layers are enabled
    
    The number of material layers enabled when logging a quad in the journal
    determines the stride of the corresponding vertex data (since we need a set
    of texture coordinates for each layer.) By padding data in the case where we
    have only one layer we can avoid a change in stride if we are mixing single
    and double layer primitives in a scene (e.g.  relevent for a composite
    manager that may use 2 layers for all shaped windows) Avoiding stride
    changes means we can minimize calls to gl{Vertex,Color}Pointer when flushing
    the journal.
    
    Since we need to update the texcoord pointers when the actual number of
    layers changes, this adds another batch_and_call() stage to deal with
    glTexCoordPointer and enabling/disabling the client arrays.

 common/cogl-primitives.c |  108 +++++++++++++++++++++++++++++++++-------------
 1 files changed, 78 insertions(+), 30 deletions(-)

commit 2b9478a665c5ababf6602461bdc1ec4c7e4f1625
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Jun 17 18:46:42 2009 +0100

    [cogl] Improving Cogl journal to minimize driver overheads + GPU state changes
    
    Previously the journal was always flushed at the end of
    _cogl_rectangles_with_multitexture_coords, (i.e.  the end of any
    cogl_rectangle* calls) but now we have broadened the potential for batching
    geometry.  In ideal circumstances we will only flush once per scene.
    
    In summary the journal works like this:
    
    When you use any of the cogl_rectangle* APIs then nothing is emitted to the
    GPU at this point, we just log one or more quads into the journal.  A
    journal entry consists of the quad coordinates, an associated material
    reference, and a modelview matrix.  Ideally the journal only gets flushed
    once at the end of a scene, but in fact there are things to consider that
    may cause unwanted flushing, including:
    
    - modifying materials mid-scene
        This is because each quad in the journal has an associated material
        reference (i.e. not copy), so if you try and modify a material that is
        already referenced in the journal we force a flush first)
    
        NOTE: For now this means you should avoid using cogl_set_source_color()
    	      since that currently uses a single shared material. Later we
    	  should change it to use a pool of materials that is recycled
    	  when the journal is flushed.
    
    - modifying any state that isn't currently logged, such as depth, fog and
      backface culling enables.
    
    The first thing that happens when flushing, is to upload all the vertex data
    associated with the journal into a single VBO.
    
    We then go through a process of splitting up the journal into batches that
    have compatible state so they can be emitted to the GPU together.  This is
    currently broken up into 3 levels so we can stagger the state changes:
    
    1) we break the journal up according to changes in the number of material layers
       associated with logged quads. The number of layers in a material determines
       the stride of the associated vertices, so we have to update our vertex
       array offsets at this level. (i.e. calling gl{Vertex,Color},Pointer etc)
    2) we further split batches up according to material compatability. (e.g.
       materials with different textures) We flush material state at this level.
    3) Finally we split batches up according to modelview changes. At this level
       we update the modelview matrix and actually emit the actual draw command.
    
    This commit is largely about putting the initial design in-place; this will be
    followed by other changes that take advantage of the extended batching.

 cogl-debug.h                   |   21 +-
 cogl-material.h                |   19 +-
 cogl.h.in                      |   14 +
 common/cogl-clip-stack.c       |    4 +
 common/cogl-debug.c            |    3 +-
 common/cogl-material-private.h |   99 +++++--
 common/cogl-material.c         |  318 +++++++++++++++++--
 common/cogl-primitives.c       |  667 +++++++++++++++++++++++++++++-----------
 common/cogl-primitives.h       |    2 +
 common/cogl-vertex-buffer.c    |   28 +-
 common/cogl.c                  |   38 +++-
 gl/cogl-context.c              |    4 +
 gl/cogl-context.h              |    4 +
 gl/cogl-fbo.c                  |    2 +
 gl/cogl-primitives.c           |   44 ++-
 gl/cogl-program.c              |    5 +
 gl/cogl-texture-private.h      |   12 +-
 gl/cogl-texture.c              |    3 +-
 18 files changed, 992 insertions(+), 295 deletions(-)

commit 096c1df0f466585af8793aed03770663aa22f730
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Jun 22 00:58:32 2009 +0100

    [clip-stack] Use signed integers while combining window space clip rectangles
    
    Use signed integers while combining window space clip rectangles, so we avoid
    arithmatic errors later resulting in glScissor getting negative width and
    height arguments.

 common/cogl-clip-stack.c |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

commit 21d02307eb732474a4338f85972c3a79820d971c
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Jun 22 00:00:04 2009 +0100

    [cogl] Remove unused ctx->polygon_vertices array
    
    This array used to be used by cogl_polygon but was changed to use
    ctx->logged_vertices some time ago.

 gl/cogl-context.c |    4 ----
 gl/cogl-context.h |    1 -
 2 files changed, 0 insertions(+), 5 deletions(-)

commit 238e59060647620f264313cf6397fd53eccdedd2
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Jun 23 15:24:42 2009 +0100

    [cogl] Give the default (fallback) texture a format of RGBA_8888_PRE
    
    Previously this was RGBA_8888. It souldn't really make a difference but for
    consistency we expect almost all textures in use to have an internaly
    premultiplied pixel format.

 gl/cogl-context.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

commit f5a8e693c81e85ba4d68d7d081ed0f4920af3662
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Jun 19 16:39:37 2009 +0100

    [cogl-texture] use the right format when downloading sliced textures from GL
    
    _cogl_texture_download_from_gl needs to create transient CoglBitmaps when
    downloading sliced textures from GL, and then copies these as subregions
    into the final target_bitmap. _cogl_texture_download_from_gl also supports
    target_bitmaps with a different format to the source CoglTexture being
    downloaded.
    
    The problem was that in the case of slice textures we were always looking
    at the format of the CoglTexture, not of the target_bitmap when setting
    up the transient slice bitmap.

 gl/cogl-texture.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 606fb8f56ffa3be522d1a3e1709c2f1986740f2e
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Jun 17 14:30:44 2009 +0100

    [cogl] Adds cogl_read_pixels to replace direct use of glReadPixels
    
    To allow for flushing of batched geometry within Cogl we can't support users
    directly calling glReadPixels.  glReadPixels is also awkward, not least
    because it returns upside down image data.
    
    All the unit tests have been swithed over and clutter_stage_read_pixels now
    sits on top of this too.

 cogl.h.in                            |   33 ++++++++++++++++++++
 common/cogl.c                        |   56 ++++++++++++++++++++++++++++++++++
 doc/reference/cogl/cogl-sections.txt |    4 ++
 3 files changed, 93 insertions(+), 0 deletions(-)

commit 3d79cfaba1a09c0e0ce3e1933478977af77da8f2
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Jun 17 02:08:31 2009 +0100

    [cogl matrix] Adds ability to dirty state cached by the client matrix apis
    
    To be able to load matrices to GL manually within Cogl we need a way to
    dirty the state cached by the client matrix stack API.

 common/cogl-current-matrix.c |   15 +++++++++++++++
 common/cogl-current-matrix.h |    1 +
 common/cogl-matrix-stack.c   |    7 +++++++
 common/cogl-matrix-stack.h   |    1 +
 4 files changed, 24 insertions(+), 0 deletions(-)

commit 46866f8e94cc3adc9677579bd03b43f1826100a7
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Jun 16 22:48:21 2009 +0100

    [cogl_polygon] fixes a buffer overrun and color format bug
    
    We were calculating our vertex stride and allocating our vertex array
    differently depending on whether the user passed TRUE for use_color or not.
    The problem was that we were always writting color data to the array
    regardless of use_color.
    
    There was also a bug with _cogl_texture_sliced_polygon in that it was
    writing byte color components but we were expecting float components.  We
    now use byte components in _cogl_multitexture_unsliced_polygon too and pass
    GL_UNSIGNED_BYTE to glColorPointer.

 common/cogl-primitives.c |   40 +++++++++++++++++++++++-----------------
 1 files changed, 23 insertions(+), 17 deletions(-)

commit 14d1c4a7672fa0c8ebc58e87ba991051da25e13c
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Jun 17 15:03:33 2009 +0100

    [vertex-buffer] Add cogl_vertex_buffer_indices_get_type API
    
    cogl_vertex_buffer_indices lets you query back the data type used for the
    given indices handle.

 cogl-vertex-buffer.h        |   11 +++++++++++
 common/cogl-vertex-buffer.c |   21 +++++++++++++++++++++
 2 files changed, 32 insertions(+), 0 deletions(-)

commit 8aa80eb55fdfbcfdb85b9e56bebd183123f98871
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Jun 17 15:02:56 2009 +0100

    [vertex-buffer] Remove the COGL_INDICES_TYPE_UNSIGNED_INT indicies type
    
    Since some embedded GPUs may not support 32bit integer indices we wont
    include it until there is a particular need.

 cogl-vertex-buffer.h |    2 --
 1 files changed, 0 insertions(+), 2 deletions(-)

commit efc5c4f0e56bc24df611fd6a9a899415979eff96
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Thu Jun 25 16:06:41 2009 +0200

    [cogl] Add COGL_HAS_GL and COGL_HAS_GLES
    
    Cogl already add similar defines but with the CLUTTER namespace
    (CLUTTER_COGL_HAS_GL and CLUTTER_COGL_HAS_GLES). Let's just add two
    similar defines with the COGL namespace. Removing the CLUTTER_COGL ones
    could break applications silently for no real good reason.

 gl/cogl-defines.h.in   |    1 +
 gles/cogl-defines.h.in |    1 +
 2 files changed, 2 insertions(+), 0 deletions(-)

commit 5d437281ec0411d513e94ff3417d2c9a2d853559
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Mon Jun 15 14:15:27 2009 +0100

    Public headers should not have #ifdefs relying on private defines
    
    HAVE_COGL_GLES2 is defined in config.h through the configure script and
    should not be used in public headers.
    
    The patch makes configure generate the right define that can be used
    later in the header.

 gles/cogl-defines.h.in |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

commit c60a974ec0365e96540bb342de0970d655f6cd18
Author: Colin Walters <walters@verbum.org>
Date:   Tue Jun 16 10:34:13 2009 -0400

    Plug minor memory leak in cogl_vertex_buffer_submit_real
    
    Free a temporary list.

 common/cogl-vertex-buffer.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

commit 67014764c9be1cdd393116292611b5835f45fb0d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Jun 15 10:48:56 2009 +0100

    Disable single header inclusion for GLib
    
    In order to be ready for the next major version of GLib we need to
    disable single header inclusion by using the G_DISABLE_SINGLE_INCLUDES
    define in the build process.

 common/Makefile.am |    1 +
 gl/Makefile.am     |    1 +
 gles/Makefile.am   |    1 +
 3 files changed, 3 insertions(+), 0 deletions(-)

commit 101b88192d21c17fe7a72349881e400705216a29
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Jun 8 17:43:34 2009 +0100

    [_cogl_texture_bitmap_prepare] use bitmap format for FORMAT_ANY + no alpha
    
    My patch to choose a premultiplied format when the user gives
    COGL_PIXEL_FORMAT_ANY for the internal_format broke the case where the data
    in question doesn't have and alpha channel.
    
    This was accidentally missed when merging the premultiplication branch
    since I merged a local version of the branch that missed this commit.

 gl/cogl-texture.c   |    2 ++
 gles/cogl-texture.c |    2 ++
 2 files changed, 4 insertions(+), 0 deletions(-)

commit 14cef5748015d5e6010a4bb45c549d56029ecda6
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Jun 8 12:18:34 2009 +0100

    [cogl] Don't allow calling cogl_set_source_texture with an INVALID_HANDLE
    
    Although the underlying materials should allow layers with INVALID_HANDLES
    it shouldn't be necissary to expose that via cogl_set_source_texture() and
    it's easier to resolve a warning/crash here than odd artefacts/crashes later
    in the pipeline.

 common/cogl-material.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

commit c52eda67158747229026c12614e322815bf763ed
Merge: bc0cd14 9d7a93f
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Jun 11 15:16:27 2009 +0100

    Bug 1406 - Handling of premultiplication in clutter
    
    Merge branch 'premultiplication'
    
    [cogl-texture docs] Improves the documentation of the internal_format args
    [test-premult] Adds a unit test for texture upload premultiplication semantics
    [fog] Document that fogging only works with opaque or unmultipled colors
    [test-blend-strings] Explicitly request RGBA_888 tex format for test textures
    [premultiplication] Be more conservative with what data gets premultiplied
    [bitmap] Fixes _cogl_bitmap_fallback_unpremult
    [cogl-bitmap] Fix minor copy and paste error in _cogl_bitmap_fallback_premult
    Avoid unnecesary unpremultiplication when saving to local data
    Don't unpremultiply Cairo data
    Default to a blend function that expects premultiplied colors
    Implement premultiplication for CoglBitmap
    Use correct texture format for pixmap textures and FBO's
    Add cogl_color_premultiply()

commit 9d7a93f641144f928e404c8feda6adf51ddba519
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Jun 11 14:31:01 2009 +0100

    [cogl-texture docs] Improves the documentation of the internal_format args
    
    Clarifies that if you give COGL_PIXEL_FORMAT_ANY as the internal format for
    cogl_texture_new_from_file or cogl_texture_new_from_data then Cogl will
    choose a premultiplied internal format.

 cogl-texture.h |   16 ++++++++++++++--
 1 files changed, 14 insertions(+), 2 deletions(-)

commit 58fa6917c266d24eb84d008191b230054ee5e63c
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sun Jun 7 11:54:05 2009 +0100

    [fog] Document that fogging only works with opaque or unmultipled colors
    
    The fixed function fogging provided by OpenGL only works with unmultiplied
    colors (or if the color has an alpha of 1.0) so since we now premultiply
    textures and colors by default a note to this affect has been added to
    clutter_stage_set_fog and cogl_set_fog.
    
    test-depth.c no longer uses clutter_stage_set_fog for this reason.
    
    In the future when we can depend on fragment shaders we should also be
    able to support fogging of premultiplied primitives.

 cogl.h.in |   23 ++++++++++++++++-------
 1 files changed, 16 insertions(+), 7 deletions(-)

commit e6da6df8a8d7d5e0ccf88b71dd2a0ad764b0bf6a
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sat Jun 6 21:45:05 2009 +0100

    [premultiplication] Be more conservative with what data gets premultiplied
    
    We don't want to force texture data to be premultipled if the user
    explicitly specifies a non premultiplied internal_format such as
    COGL_PIXEL_FORMAT_RGBA_8888.  So now Cogl will only automatically
    premultiply data when COGL_PIXEL_FORMAT_ANY is given for the
    internal_format, or a premultiplied internal format such as
    COGL_PIXEL_FORMAT_RGBA_8888_PRE is requested but non-premultiplied source
    data is given.
    
    This approach is consistent with OpenVG image formats which have already
    influenced Cogl's pixel format semantics.

 gl/cogl-texture.c   |   24 +++++++++++-------------
 gles/cogl-texture.c |   24 +++++++++++-------------
 2 files changed, 22 insertions(+), 26 deletions(-)

commit 7cb4b934321285f9f46ba72aefc0feda32123f03
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sun Jun 7 15:58:56 2009 +0100

    [bitmap] Fixes _cogl_bitmap_fallback_unpremult
    
    The _cogl_unpremult_alpha_{first,last} functions which
    _cogl_bitmap_fallback_unpremult depends on were incorrectly casting each
    of the byte components of a texel to a gulong and performing shifts as
    if it were dealing with the whole texel.
    
    It now just uses array indexing to access the byte components without
    needing to cast or manually shift any bits around.
    
    Even though we used to depend on unpremult whenever we used a
    ClutterCairoTexture, clutter_cairo_texture_context_destroy had it's own
    unpremult code which worked which is why this bug wouldn't have been noticed
    before.

 common/cogl-bitmap-fallback.c |   60 ++++++++++++++++++++--------------------
 1 files changed, 30 insertions(+), 30 deletions(-)

commit dde3257b6c032dbcc0711fcb59900aa226bd0425
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sun Jun 7 20:29:13 2009 +0100

    [cogl-bitmap] Fix minor copy and paste error in _cogl_bitmap_fallback_premult
    
    The returned bitmap format should include the COGL_PREMULT_BIT flag not
    have it explicitly removed as for _cogl_bitmap_fallback_unpremult.

 common/cogl-bitmap-fallback.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit f0de41331a19bf9da1b6e7f27388d4f062fec8d2
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date:   Sat May 9 14:39:01 2009 -0400

    Default to a blend function that expects premultiplied colors
    
    Many operations, like mixing two textures together or alpha-blending
    onto a destination with alpha, are done most logically if texture data
    is in premultiplied form. We also have many sources of premultiplied
    texture data, like X pixmaps, FBOs, cairo surfaces. Rather than trying
    to work with two different types of texture data, simplify things by
    always premultiplying texture data before uploading to GL.
    
    Because the default blend function is changed to accommodate this,
    uses of pure-color CoglMaterial need to be adapted to add
    premultiplication.
    
    gl/cogl-texture.c gles/cogl-texture.c: Always premultiply
      non-premultiplied texture data before uploading to GL.
    
    cogl-material.c cogl-material.h: Switch the default blend functions
      to ONE, ONE_MINUS_SRC_ALPHA so they work correctly with premultiplied
      data.
    
    cogl.c: Make cogl_set_source_color() premultiply the color.
    
    cogl.h.in color-material.h: Add some documentation about
      premultiplication and its interaction with color values.
    
    cogl-pango-render.c clutter-texture.c tests/interactive/test-cogl-offscreen.c:
      Use premultiplied colors.
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=1406
    
    Signed-off-by: Robert Bragg <robert@linux.intel.com>

 cogl-material.h        |   10 ++++++++++
 cogl.h.in              |    9 +++++++--
 common/cogl-material.c |    2 +-
 common/cogl.c          |    7 ++++++-
 gl/cogl-texture.c      |   22 ++++++++++++----------
 gles/cogl-texture.c    |   23 +++++++++++++----------
 6 files changed, 49 insertions(+), 24 deletions(-)

commit b0887a0d7593fdcacb2d5ac626fcc074cc4f722a
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date:   Sat May 9 14:39:01 2009 -0400

    Implement premultiplication for CoglBitmap
    
    cogl-bitmap.c cogl-bitmap-pixbuf.c cogl-bitmap-fallback.c cogl-bitmap-private.h:
      Add _cogl_bitmap_can_premult(), _cogl_bitmap_premult() and implement
      a reasonably fast implementation in the "fallback" code.
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=1406
    
    Signed-off-by: Robert Bragg <robert@linux.intel.com>

 common/cogl-bitmap-fallback.c |   93 +++++++++++++++++++++++++++++++++++++++++
 common/cogl-bitmap-pixbuf.c   |   13 ++++++
 common/cogl-bitmap-private.h  |   14 ++++++
 common/cogl-bitmap.c          |   26 +++++++++---
 4 files changed, 140 insertions(+), 6 deletions(-)

commit dcc4f1416995f9d16363e77b71d851e25bf53dab
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date:   Sat May 9 14:39:01 2009 -0400

    Add cogl_color_premultiply()
    
    Add a convenience function to convert an ARGB color from
    non-premultiplied to premultiplied form.
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=1406
    
    Signed-off-by: Robert Bragg <robert@linux.intel.com>

 cogl-color.h        |   12 ++++++++++++
 common/cogl-color.c |    8 ++++++++
 2 files changed, 20 insertions(+), 0 deletions(-)

commit bc0cd145e53fdb951134816c18a2dc32e5c48962
Merge: e0adc98 fd9d87b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Jun 11 13:01:34 2009 +0100

    Bug 1637 - Master clock improvements
    
    Merge branch 'master-clock-updates'
    
    * master-clock-updates: (22 commits)
      Change the paint forcing on the Text cache text
      [timelines] Improve marker hit check and don't fudge the delta
      Revert "[timeline] Don't clamp the elapsed time when a looping tl reaches the end"
      [tests] Don't add a newline to the end of g_test_message calls
      [test-timeline] Add a marker at the beginning of the timeline
      [timeline] Don't clamp the elapsed time when a looping tl reaches the end
      [master-clock] Throttle if no redraw was performed
      [docs] Update Clutter's API reference
      Force a paint instead of calling clutter_redraw()
      Fix clutter_redraw() to match the redraw cycle
      Run the repaint functions inside the redraw cycle
      Remove useless manual timeline ticking
      Move elapsed-time calculations into ClutterTimeline
      Limit the frame rate when not syncing to VBLANK
      Decrease the main-loop priority of the frame cycle
      Avoid motion-compression in test-picking test
      Compress events as part of the frame cycle
      Remove stage update idle and do updates from the master clock
      Call g_main_context_wakeup() when we start running timelines
      Remove unused msecs_delta member
      ...

commit e0adc985adda9ab8720d68f6da8101efdb655dae
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Jun 10 12:50:45 2009 +0100

    [docs] Various gtk-doc fixes for COGL
    
    Try to keep the gtk-doc errors down to a minimum.

 cogl-bitmap.h                        |    8 ++-
 cogl-material.h                      |   24 ++++++----
 cogl-matrix.h                        |   32 +++++++------
 cogl-offscreen.h                     |    4 +-
 cogl-vertex-buffer.h                 |    9 +++-
 cogl.h.in                            |    6 +-
 doc/reference/cogl/Makefile.am       |    2 -
 doc/reference/cogl/cogl-sections.txt |   83 +++++++++++++++++++++++++++++++--
 8 files changed, 126 insertions(+), 42 deletions(-)

commit fd9d87bc3adff3de9b08fc9d14b99268aef3060f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Jun 9 12:40:06 2009 +0100

    [introspection] Add --c-include to g-ir-scanner
    
    Since Clutter has a single-include header policy we need to put
    the header to be included inside the GIR file.

 Makefile.am |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

commit e521638f910314e5a31fe755c38bf7bf07a79980
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Jun 9 11:13:11 2009 +0100

    [CoglTexture] Initialise tex->first_pixels to NULL in all constructors
    
    Otherwise if there is an error before the slices are created it will
    try to free the first_pixels array and crash.
    
    It now also checks whether first_pixels has been created before using
    it to update the mipmaps. This should only happen for
    cogl_texture_new_from_foreign and doesn't matter if the FBO extension
    is available. It would be better in this case to fetch the first pixel
    using glGetTexImage as Owen mentioned in the last commit.

 gl/cogl-texture.c   |    6 +++++-
 gles/cogl-texture.c |    6 +++++-
 2 files changed, 10 insertions(+), 2 deletions(-)

commit ae07dea93d3f3fb0559bbe0f71183a9cc95d7f75
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date:   Mon Jun 8 16:45:43 2009 -0400

    Fix unitialized first_pixels for foreign textures
    
    tex->first_pixels was never set for foreign textures, leading
    to a crash when the texture object is freed.
    
    As a quick fix, simply set to NULL. A more complete fix would
    require remembering if we had ever seen the first pixel uploaded,
    and if not, doing a glReadPixel to get it before triggering the
    mipmap update.
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=1645
    
    Signed-off-by: Neil Roberts <neil@linux.intel.com>

 gl/cogl-texture.c   |    2 ++
 gles/cogl-texture.c |    2 ++
 2 files changed, 4 insertions(+), 0 deletions(-)

commit a5b56910821436848216aff6b03749a88bdae52a
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date:   Mon Jun 8 09:26:57 2009 -0400

    On bad blend strings, print the error if not returning it
    
    It's very common that there's no reasonable fallback to do if the
    blend or combine string you set isn't supported. So, rather than
    requiring everybody to pass in a GError purely to catch syntax erorrs,
    automatically g_warning() if a parse error is encountered and @error
    is NULL.
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=1642
    
    Signed-off-by: Robert Bragg <robert@linux.intel.com>

 cogl-material.h        |    5 ++++-
 common/cogl-material.c |   30 ++++++++++++++++++++++++++----
 2 files changed, 30 insertions(+), 5 deletions(-)

commit 8a31263274a87ba4169c9e8ad266285884778cbf
Author: Johan Bilien <jobi@via.ecp.fr>
Date:   Wed Jun 3 22:08:17 2009 +0100

    Fix the leak of the GList of layers in CoglMaterial
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=1624
    
    Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>

 common/cogl-material.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

commit fdb66d1076a1256ebd2bb8cfd491610ee30e8b23
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sat Apr 4 19:21:22 2009 +0100

    [cogl] cogl_material_set_layer does nothing if resetting the same texture
    
    This avoids dirtying the layer, and should avoid some uneeded state changes

 common/cogl-material.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

commit 6989ce1434edc24c16eb0623e1fa081c9652d9fd
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Jun 5 16:46:12 2009 +0100

    [build] Fix compiler warnings
    
    Silence GCC

 common/cogl-blend-string.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

commit 133fc2e3571378859fffc100b28b33876baf1513
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Jun 5 15:18:43 2009 +0100

    Fix a compiler warning

 common/cogl-vertex-buffer.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 805fb0620a71045c3289209e7b0d83411d60353c
Merge: b184bd0 bb5a99a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Jun 5 12:41:42 2009 +0100

    Merge branch '1.0-integration'
    
    * 1.0-integration: (138 commits)
      [x11] Disable XInput by default
      [xinput] Invert the XI extension version check
      [cogl-primitives] Fix an unused variable warning when building GLES
      [clutter-stage-egl] Pass -1,-1 to clutter_stage_x11_fix_window_size
      Update the GLES backend to have the layer filters in the material
      [gles/cogl-shader] Add a missing semicolon
      [cogl] Move the texture filters to be a property of the material layer
      [text] Fix Pango unit to pixels conversion
      [actor] Force unrealization on destroy only for non-toplevels
      [x11] Rework map/unmap and resizing
      [xinput] Check for the XInput entry points
      [units] Validate units against the ParamSpec
      [actor] Add the ::allocation-changed signal
      [actor] Use flags to control allocations
      [units] Rework Units into logical distance value
      Remove a stray g_value_get_int()
      Remove usage of Units and macros
      [cogl-material] Allow setting a layer with an invalid texture handle
      [timeline] Remove the concept of frames from timelines
      [gles/cogl-shader] Fix parameter spec for cogl_shader_get_info_log
      ...
    
    Conflicts:
    	configure.ac

commit bb5a99a3cef248cf76bc243d6840cf99adbe41f4
Merge: b177d24 8909d6a
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Jun 5 12:20:41 2009 +0100

    Merge branch 'timeline-no-fps' into 1.0-integration

commit b177d24667a7be2f1a54297b8e7641ca58ff0321
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Jun 4 22:20:18 2009 +0100

    [cogl-primitives] Fix an unused variable warning when building GLES
    
    The 'tex' variable is only used if #ifdef'd GL code so it was throwing
    an error under GLES. The variable is now moved into a block inside the
    #ifdef.

 common/cogl-primitives.c |   14 ++++++++------
 1 files changed, 8 insertions(+), 6 deletions(-)

commit f259deafce304b846313305f6fa8cdb235d5a4cc
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Jun 4 22:12:33 2009 +0100

    Update the GLES backend to have the layer filters in the material
    
    This reflects the changes made in 54d8aadf1d86 for the GLES backend.

 gles/cogl-texture-private.h |   31 +++++++-
 gles/cogl-texture.c         |  182 ++++++++++++++++++++++++++----------------
 2 files changed, 142 insertions(+), 71 deletions(-)

commit c2759846dd79eb7b8380476963b8f74ae0e3bf89
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Jun 4 22:10:33 2009 +0100

    [gles/cogl-shader] Add a missing semicolon
    
    cogl_shader_get_info_log was missing a semicolon which broke the build
    on GLES 2.

 gles/cogl-shader.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit e7e897802925346fdd3e212c425acbf2017027c2
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Jun 4 16:04:57 2009 +0100

    [cogl] Move the texture filters to be a property of the material layer
    
    The texture filters are now a property of the material layer rather
    than the texture object. Whenever a texture is painted with a material
    it sets the filters on all of the GL textures in the Cogl texture. The
    filter is cached so that it won't be changed unnecessarily.
    
    The automatic mipmap generation has changed so that the mipmaps are
    only generated when the texture is painted instead of every time the
    data changes. Changing the texture sets a flag to mark that the
    mipmaps are dirty. This works better if the FBO extension is available
    because we can use glGenerateMipmap. If the extension is not available
    it will temporarily enable automatic mipmap generation and reupload
    the first pixel of each slice. This requires tracking the data for the
    first pixel.
    
    The COGL_TEXTURE_AUTO_MIPMAP flag has been replaced with
    COGL_TEXTURE_NO_AUTO_MIPMAP so that it will default to
    auto-mipmapping. The mipmap generation is now effectively free if you
    are not using a mipmap filter mode so you would only want to disable
    it if you had some special reason to generate your own mipmaps.
    
    ClutterTexture no longer has to store its own copy of the filter
    mode. Instead it stores it in the material and the property is
    directly set and read from that. This fixes problems with the filters
    getting out of sync when a cogl handle is set on the texture
    directly. It also avoids the mess of having to rerealize the texture
    if the filter quality changes to HIGH because Cogl will take of
    generating the mipmaps if needed.

 cogl-material.h                      |   80 +++++++++++++++
 cogl-texture.h                       |   80 ---------------
 cogl-types.h                         |   13 ++-
 common/cogl-material-private.h       |    3 +
 common/cogl-material.c               |   59 +++++++++++
 common/cogl-primitives.c             |    3 +-
 doc/reference/cogl/cogl-sections.txt |    7 +-
 gl/cogl-context.h                    |    1 +
 gl/cogl-defines.h.in                 |    4 +
 gl/cogl-texture-private.h            |   31 ++++++-
 gl/cogl-texture.c                    |  179 ++++++++++++++++++++++------------
 gl/cogl.c                            |    7 +-
 12 files changed, 313 insertions(+), 154 deletions(-)

commit b7c8f8111e86be48eb440358d13e677ccc29cf19
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Jun 3 15:22:42 2009 +0100

    [cogl-material] Allow setting a layer with an invalid texture handle
    
    It was previously possible to create a material layer with no texture
    by setting some property on it such as the matrix. However it was not
    possible to get back to that state without removing the layer and
    recreating it. It is useful to be able to remove the texture to free
    resources without forgetting the state of the layer so we can put a
    different texture in later.

 common/cogl-material.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

commit 8909d6a1298fb756f98bd22a870ee4091bb6414a
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Jun 4 12:04:47 2009 +0100

    [gles/cogl-shader] Fix parameter spec for cogl_shader_get_info_log
    
    The stub version of cogl_shader_get_info_log needed to be updated to
    match the changes to the function signature in 61deeafa.

 gles/cogl-shader.c |    7 +++----
 1 files changed, 3 insertions(+), 4 deletions(-)

commit 00ac53042e810d10fe34422d0bf8ec2d4831365b
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Jun 4 11:50:06 2009 +0100

    Load glBlendEquation and glBlendColor using cogl_get_proc_address
    
    These are defined since OpenGL 1.2 and since Windows doesn't export
    any functions defined after 1.1 we need to load them dynamically.

 common/cogl-material.c |    2 ++
 gl/cogl-context.h      |    2 ++
 gl/cogl-defines.h.in   |   11 +++++++++++
 gl/cogl.c              |    7 +++++++
 4 files changed, 22 insertions(+), 0 deletions(-)

commit db4fb91fe391d9da822c1427b8c364a416d80a80
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Jun 4 11:48:51 2009 +0100

    Rename 'near' and 'far' variables to 'z_near' and 'z_far'
    
    The Windows headers define near and far to be empty so it breaks the
    build.

 cogl-matrix.h                |   12 ++++++------
 common/cogl-current-matrix.c |   18 +++++++++---------
 2 files changed, 15 insertions(+), 15 deletions(-)

commit b184bd04e8d9609cba4a88e95b3a20187367d26d
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Jun 2 18:01:18 2009 +0100

    [cogl-texture] Don't take ownership of the data in cogl_texture_new_from_bitmap
    
    When creating a Cogl texture from a Cogl bitmap it would steal the
    data by setting the bitmap_owner flag and clearing the data pointer
    from the bitmap. The data would be freed by the time the
    new_from_bitmap is finished. There is no reason to do this because the
    data will be freed when the Cogl bitmap is unref'd and it is confusing
    not to be able to reuse the bitmap for creating multiple textures.

 gl/cogl-texture.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

commit b900c314b704ef0f2597893cbe1cacfb7a61e294
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Jun 1 17:35:41 2009 +0100

    [docs] Rework the API reference version generation
    
    Clutter copies the gtk-doc from the usual gtk+ template, and
    has a version.xml.in containing only:
    
      @VERSION@
    
    Without a newline at the end. Unfortunately, it appears that
    autoconf has started adding a newline to the generated version.xml
    which then is used as the payload for the "version" XML entity.
    
    Instead of using a secondary file we can make configure generate
    the whole clutter-docs.xml and cogl-docs.xml files from a template;
    this way we also get the ability to substitute more autoconf variables
    into the documentation -- if needs be.

 doc/reference/cogl/Makefile.am      |    2 -
 doc/reference/cogl/cogl-docs.xml    |  107 -----------------------------------
 doc/reference/cogl/cogl-docs.xml.in |  107 +++++++++++++++++++++++++++++++++++
 doc/reference/cogl/version.xml.in   |    1 -
 4 files changed, 107 insertions(+), 110 deletions(-)

commit c0c7565ffcdd3927279ddb69a84c46034de79fa9
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Jun 1 16:31:32 2009 +0100

    [cogl-shader] Make get_info_log() slightly nicer
    
    The cogl_shader_get_info_log() function is very inconvenient for
    language bindings and for regular use, as it requires a static
    buffer to be filled -- basically just providing a wrapper around
    glGetInfoLogARB().
    
    Since COGL aims to be a more convenient API than raw GL we should
    just make cogl_shader_get_info_log() return an allocated string
    with the GLSL compiler log.

 cogl-shader.h      |   13 ++++++-------
 gl/cogl-shader.c   |   15 ++++++++-------
 gles/cogl-shader.c |   15 ++++++++-------
 3 files changed, 22 insertions(+), 21 deletions(-)

commit 9d41a27f61d1298aaac0a15fc2fbbab8fbb8a15d
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Jun 1 17:10:22 2009 +0100

    Use GL_QUADS for flushing a quad batch
    
    Instead of using GL_TRIANGLES and uploading the indices every time, it
    now uses GL_QUADS instead on OpenGL. Under GLES it still uses indices
    but it uses the new cogl_vertex_buffer_indices_get_for_quads function
    to avoid uploading the vertices every time.
    
    This requires the _cogl_vertex_buffer_indices_pointer_from_handle
    function to be exposed privately to the rest of Cogl.
    
    The static_indices array has been removed from the Cogl context.

 common/cogl-primitives.c            |   79 +++++++++++------------------------
 common/cogl-vertex-buffer-private.h |    4 ++
 gl/cogl-context.c                   |    3 -
 gl/cogl-context.h                   |    1 -
 gles/cogl-context.c                 |    3 -
 gles/cogl-context.h                 |    1 -
 6 files changed, 29 insertions(+), 62 deletions(-)

commit 39cb36ba0110a65696cff9461caf52227762be34
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu May 28 13:47:18 2009 +0100

    [cogl-vertex-buffer] Add cogl_vertex_buffer_indices_get_for_quads
    
    This function can be used as an efficient way of drawing groups of
    quads without using GL_QUADS. It generates a VBO containing the
    indices needed to render using pairs of GL_TRIANGLES. The VBO is
    globally cached so that it only needs to be uploaded whenever more
    indices are requested than ever before.

 cogl-vertex-buffer.h                 |   40 +++++++++++++++++
 common/cogl-vertex-buffer.c          |   80 ++++++++++++++++++++++++++++++++++
 doc/reference/cogl/cogl-sections.txt |    1 +
 gl/cogl-context.c                    |    9 ++++
 gl/cogl-context.h                    |    6 +++
 gles/cogl-context.c                  |    9 ++++
 gles/cogl-context.h                  |    7 +++-
 7 files changed, 151 insertions(+), 1 deletions(-)

commit 2f319ad839972a393569d53c87689bdc4a5f55b7
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri May 29 17:50:58 2009 +0100

    [build] Remove cogl-enum-types.h on distclean
    
    The cogl-enum-types.h file is created by glib-mkenums under
    /clutter/cogl/common, and then copied in /clutter/cogl in order
    to make the inclusion of that file work inside cogl.h.
    
    Since we're copying it in a different location, the Makefile
    for that location has to clean up the copy.

 Makefile.am |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

commit 5888e45fd73b3f11de1d0a100cc6072ceb80c1df
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri May 29 17:10:27 2009 +0100

    [build] Fix dist issues
    
    * cogl-deprecated.h is not being installed
    
    * cogl-enum-types.c.in is not part of the dist

 Makefile.am        |    1 +
 common/Makefile.am |    2 +-
 2 files changed, 2 insertions(+), 1 deletions(-)

commit 93a9613b59324a8cb332036aa2b15fe98c311c63
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri May 29 14:27:55 2009 +0100

    [build] Copy cogl-enum-types.h under the guard
    
    We avoid rebuilding cogl-enum-types.h and cogl-enum-types.c by
    using a "guard" -- a stamp file that will block Makefile. Since
    we need cogl-enum-types.h into /clutter/cogl as well for the
    cogl.h include to work, if we copy the cogl-enum-types.h
    unconditionally it will cause a rebuild of the whole COGL; which
    will cause a full rebuild.
    
    To solve this, we can copy the header file when generating it
    under the stamp file.

 common/Makefile.am |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

commit 1c8a6bc09b8fa877ff337fefa54c53db20599e2f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri May 29 12:50:48 2009 +0100

    [build] Encode the target into the backend library
    
    The libclutter-cogl internal object should be the only dependency
    for Clutter, since we are already copying it inside clutter/cogl
    for the introspection scanner. For this reason, the backend-specific,
    real internal object should be built with the backend encoded into
    the file name, like libclutter-common. This makes the build output
    a little bit more clear: instead of having two:
    
      LINK libclutter-cogl-common.la
      ...
      LINK libclutter-cogl.la
      LINK libclutter-cogl.la
    
    We'll have:
    
      LINK libclutter-cogl-common.la
      ...
      LINK libclutter-cogl-gl.la
      LINK libclutter-cogl.la
    
    Same applies for the GLES backend.

 Makefile.am      |    4 ++--
 gl/Makefile.am   |   10 +++++-----
 gles/Makefile.am |   12 ++++++------
 3 files changed, 13 insertions(+), 13 deletions(-)

commit 99b2f14d6014c8b855ea85185b8026af079ae690
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri May 29 12:40:23 2009 +0100

    Use g_once when registering enumeration types
    
    Just like we do with GObject types and G_DEFINE_TYPE, we should
    use the g_once_init_enter/g_once_init_leave mechanism to make the
    GType registration of enumeration types thread safe.

 common/cogl-enum-types.c.in |   18 +++++++++++++-----
 1 files changed, 13 insertions(+), 5 deletions(-)

commit 34b5352bb5e8d728e89923a7059da90715214b63
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri May 29 12:31:47 2009 +0100

    [cogl] Generate enumeration GTypes
    
    COGL is starting to have more enumerations than I can handle
    by hand. Let's use glib-mkenums and be done with it.

 Makefile.am                 |   40 +++++++----
 cogl-shader.h               |    5 +-
 cogl-types.h                |   83 ++++-------------------
 cogl.h.in                   |   11 ++--
 common/Makefile.am          |   53 ++++++++++++++-
 common/cogl-enum-types.c.in |   33 +++++++++
 common/cogl-enum-types.h.in |   25 +++++++
 common/cogl-util.c          |  154 -------------------------------------------
 gl/Makefile.am              |    5 --
 9 files changed, 158 insertions(+), 251 deletions(-)

commit ae9b871b38dd1c581c4ed7e1629d06697d7b25b1
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu May 28 17:18:13 2009 +0100

    [docs] Fixes for the API reference
    
    * Add unused symbols
    
    * Document and sync argument names with their gtk-doc counterpart
    
    * Add missing descriptions

 cogl-material.h                      |    5 +++++
 cogl-shader.h                        |   14 +++++++++++---
 cogl-vertex-buffer.h                 |   33 +++++++++++++++++++++------------
 cogl.h.in                            |    4 ++++
 doc/reference/cogl/cogl-sections.txt |    6 ------
 5 files changed, 41 insertions(+), 21 deletions(-)

commit a5eb2a9abad41f26a8882065c3771ac6066c48de
Merge: 5ed1b03 c73d340
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu May 28 15:53:56 2009 +0100

    Merge branch 'master' into 1.0-integration
    
    * master:
      [test-text-perf] Use queue_redraw instead of painting the stage directly
      [actor] In paint when opacity == 0, clear the queued_redraw flag

commit 5ed1b03a91f2a43f8f39bb7eb89608f7cf17c22c
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu May 28 13:03:19 2009 +0100

    [cogl] Make cogl_setup_viewport() a private function
    
    The setup_viewport() function should only be used by Clutter and
    not by application code.
    
    It can be emulated by changing the Stage size and perspective and
    requeueing a redraw after calling clutter_stage_ensure_viewport().

 cogl.h.in     |   10 ++++++----
 common/cogl.c |   16 ++++++++--------
 2 files changed, 14 insertions(+), 12 deletions(-)

commit b9e1c8258779b3327ddcbab2db8ebc60b232ecc2
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu May 28 12:52:00 2009 +0100

    [cogl deprecated] Add backface culling deprecation
    
    The backface culling enabling function was split and renamed, just
    like the depth testing one, so we need to add the macro to the
    cogl-deprecated.h header.

 cogl-deprecated.h |   13 ++++++-------
 1 files changed, 6 insertions(+), 7 deletions(-)

commit 2367e7d27140df826829177b236534ee1a01be15
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu May 28 12:49:29 2009 +0100

    [cogl vertex buffers] Give indices a CoglHandle so they are shareable
    
    Previously indices were tightly bound to a particular Cogl vertex buffer
    but we would like to be able to share indices so now we have
    cogl_vertex_buffer_indices_new () which returns a CoglHandle.
    
    In particular we could like to have a shared set of indices for drawing
    lists of quads that can be shared between the pango renderer and the
    Cogl journal.

 cogl-vertex-buffer.h                |   34 +++++--------
 common/cogl-vertex-buffer-private.h |    7 +--
 common/cogl-vertex-buffer.c         |   97 ++++++++--------------------------
 3 files changed, 38 insertions(+), 100 deletions(-)

commit 43623a6c44a9c4778cd72fefde3e76d24762cbdb
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu May 28 02:03:16 2009 +0100

    [cogl journal] If we are only flushing one quad use a TRIANGLE_FAN
    
    At the moment Cogl doesn't do much batching of quads so most of the time we
    are flushing a single quad at a time.  This patch simplifies how we submit
    those quads to OpenGL by using glDrawArrays with GL_TRIANGLE_FAN mode
    instead of sending indexed vertices using GL_TRIANGLES mode.
    
    Note: I hope to follow up soon with changes that improve our batching and
    also move the indices into a VBO so they don't need to be re-validated every
    time we call glDrawElements.

 common/cogl-primitives.c |   80 ++++++++++++++++++++++++++-------------------
 1 files changed, 46 insertions(+), 34 deletions(-)

commit 4b105deb3581ebfa8acbc7992f24477d382ad993
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue May 26 18:25:00 2009 +0100

    [deprecated defines] Adds some missing cogl_texture_* deprecated defines
    
    To assist people porting code from 0.8, the cogl_texture_* functions that
    have been replaced now have defines that give some hint as to how they
    should be replaced.

 cogl-deprecated.h |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

commit 2f0bda49fc4ba19fc2d853f79f48a8bb2e095bac
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue May 26 16:55:11 2009 +0100

    [cogl] renamed cogl_enable_* to cogl_set_*_enabled + added getters
    
    cogl_enable_depth_test and cogl_enable_backface_culling have been renamed
    and now have corresponding getters, the new functions are:
      cogl_set_depth_test_enabled
      cogl_get_depth_test_enabled
      cogl_set_backface_culling_enabled
      cogl_get_backface_culling_enabled

 cogl-deprecated.h                    |    1 +
 cogl.h.in                            |   27 +++++++++++++++++++++++----
 common/cogl.c                        |   25 +++++++++++++++++--------
 doc/reference/cogl/cogl-sections.txt |    6 ++++--
 4 files changed, 45 insertions(+), 14 deletions(-)

commit 18193e5322500b9cd3f372223b33581558758312
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue May 26 11:33:54 2009 +0100

    [cogl matrix] Support ortho and perspective projections.
    
    This adds cogl_matrix api for multiplying matrices either by a perspective
    or ortho projective transform.  The internal matrix stack and current-matrix
    APIs also have corresponding support added.
    
    New public API:
    cogl_matrix_perspective
    cogl_matrix_ortho
    cogl_ortho
    cogl_set_modelview_matrix
    cogl_set_projection_matrix

 cogl-matrix.h                        |   70 +++++++++--
 cogl.h.in                            |   39 ++++++
 common/cogl-current-matrix.c         |  215 +++++++++++++++++++---------------
 common/cogl-matrix-stack.c           |   68 ++++++++---
 common/cogl-matrix-stack.h           |   20 +++-
 common/cogl-matrix.c                 |   87 +++++++++++---
 doc/reference/cogl/cogl-sections.txt |   19 ++--
 7 files changed, 370 insertions(+), 148 deletions(-)

commit 25b3c84a5ac8867790669ee22c7f588e6eca66a6
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue May 26 15:41:53 2009 +0100

    [cogl] Remove cogl_{create,destroy}_context from the public API
    
    cogl_create_context is dealt with internally when _cogl_get_default context
    is called, and cogl_destroy_context is currently never called.
    
    It might be nicer later to get an object back when creating a context so
    Cogl can support multiple contexts, so these functions are being removed
    from the API until we get a chance to address context management properly.
    
    For now cogl_destroy_context is still exported as _cogl_destroy_context so
    Clutter could at least install a library deinit handler to call it.

 cogl.h.in                            |   28 ++++++++++++----------------
 doc/reference/cogl/cogl-sections.txt |    3 ---
 gl/cogl-context.c                    |    4 ++--
 gles/cogl-context.c                  |    4 ++--
 4 files changed, 16 insertions(+), 23 deletions(-)

commit 1669fd7332ca760f3363c3dfe4afdc8949a6a3cd
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue May 26 16:27:36 2009 +0100

    [vbo indices] tweak add_indices api to return an id and add delete_indices api
    
    Originally cogl_vertex_buffer_add_indices let the user pass in their own unique
    ID for the indices; now the Id is generated internally and returned to the
    caller.

 cogl-vertex-buffer.h                 |   30 ++++++++++++++-----
 common/cogl-vertex-buffer.c          |   52 ++++++++++++++++++++++------------
 doc/reference/cogl/cogl-sections.txt |    1 +
 3 files changed, 57 insertions(+), 26 deletions(-)

commit e4d820b75d1b09b952fd78fd161a25da4425c0d3
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sun May 24 11:33:29 2009 +0100

    [cogl-vertex-buffer] Seal GL types from the public API
    
    We now have CoglAttributeType and CoglVerticesMode typedefs to replace the
    use of GLenum in the public API.

 cogl-vertex-buffer.h        |  118 +++++++++++++++++++++++++------------------
 common/cogl-vertex-buffer.c |   48 +++++++++---------
 2 files changed, 93 insertions(+), 73 deletions(-)

commit 58b89eabdf342b2bc1b684b28fd19dc8774f4795
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sun May 24 04:04:38 2009 +0100

    [cogl-vertex-buffers] Support putting index arrays into VBOS
    
    It's now possible to add arrays of indices to a Cogl vertex buffer and
    they will be put into an OpenGL vertex buffer object. Since it's quite
    common for index arrays to be static it saves the OpenGL driver from
    having to validate them repeatedly.
    
    This changes the cogl_vertex_buffer_draw_elements API: It's no longer
    possible to provide a pointer to an index array at draw time. So
    cogl_vertex_buffer_draw_elements now takes an indices identifier that
    should correspond to an idendifier returned when calling
    cogl_vertex_buffer_add_indices ()

 cogl-vertex-buffer.h                 |   79 +++++++++++++----
 common/cogl-vertex-buffer-private.h  |   33 +++++--
 common/cogl-vertex-buffer.c          |  159 +++++++++++++++++++++++++++++++---
 doc/reference/cogl/cogl-sections.txt |    2 +
 4 files changed, 231 insertions(+), 42 deletions(-)

commit 02faadae8bc89324431406d4fc617eb8b54e2821
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sat May 23 17:52:18 2009 +0100

    [cogl] Remove cogl_flush_gl_state from the API
    
    This is being removed before we release Clutter 1.0 since the implementation
    wasn't complete, and so we assume no one is using this yet.  Util we have
    someone with a good usecase, we can't pretend to support breaking out into
    raw OpenGL.

 cogl.h.in     |    8 +++++++-
 common/cogl.c |    2 ++
 2 files changed, 9 insertions(+), 1 deletions(-)

commit 492f0e5d14fd0622626108468a71436bc1c86f6a
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sat May 23 17:42:10 2009 +0100

    [material] Reduce the material API in preperation for releasing Clutter 1.0
    
    There were a number of functions intended to support creating of new
    primitives using materials, but at this point they aren't used outside of
    Cogl so until someone has a usecase and we can get feedback on this
    API, it's being removed before we release Clutter 1.0.

 cogl-material.h                      |  129 +++++-----------------------------
 common/cogl-handle.h                 |   17 +++--
 common/cogl-material-private.h       |   86 ++++++++++++++++++++++
 common/cogl-material.c               |    6 +-
 common/cogl-primitives.c             |   50 +++++++-------
 common/cogl-vertex-buffer.c          |   15 ++--
 common/cogl.c                        |    3 +-
 doc/reference/cogl/cogl-sections.txt |    3 +
 gl/cogl-context.c                    |    4 +-
 gl/cogl-primitives.c                 |   15 ++--
 gles/cogl-context.c                  |    4 +-
 gles/cogl-primitives.c               |   15 ++--
 12 files changed, 174 insertions(+), 173 deletions(-)

commit 2dc882f685a282000a1998f98edcb387953c5ac5
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sat May 23 16:23:00 2009 +0100

    [cogl-material] Removes all the API made redundant by the blend strings API
    
    This removes the following API:
      cogl_material_set_blend_factors
      cogl_material_set_layer_combine_function
      cogl_material_set_layer_combine_arg_src
      cogl_material_set_layer_combine_arg_op
    
    These were rather awkward to use, so since it's expected very few people are
    using them at this point and it should be straight forward to switch over
    to blend strings, the API is being removed before we release Clutter 1.0.

 cogl-material.h                      |  293 ----------------------------------
 common/cogl-material-private.h       |   20 ++--
 common/cogl-material.c               |  176 +++------------------
 doc/reference/cogl/cogl-sections.txt |   11 --
 4 files changed, 34 insertions(+), 466 deletions(-)

commit bc8a18ebc38fb5bde2bd23e080b2d2228a9a9f08
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon May 11 00:40:41 2009 +0100

    [cogl-material] Support string based blending and layer combine descriptions
    
    Setting up layer combine functions and blend modes is very awkward to do
    programatically.  This adds a parser for string based descriptions which are
    more consise and readable.
    
    E.g. a material layer combine function could now be given as:
      "RGBA = ADD (TEXTURE[A], PREVIOUS[RGB])"
    or
      "RGB = REPLACE (PREVIOUS)"
      "A = MODULATE (PREVIOUS, TEXTURE)"
    
    The simple syntax and grammar are only designed to expose standard fixed
    function hardware, more advanced combining must be done with shaders.
    
    This includes standalone documentation of blend strings covering the aspects
    that are common to blending and texture combining, and adds documentation
    with examples specific to the new cogl_material_set_blend() and
    cogl_material_layer_set_combine() functions.
    
    Note: The hope is to remove the now redundant bits of the material API
    before 1.0

 cogl-debug.h                         |   20 +-
 cogl-material.h                      |  244 +++++++--
 common/Makefile.am                   |    2 +
 common/cogl-blend-string.c           |  999 ++++++++++++++++++++++++++++++++++
 common/cogl-blend-string.h           |  151 +++++
 common/cogl-debug.c                  |    3 +-
 common/cogl-material-private.h       |   13 +-
 common/cogl-material.c               |  406 ++++++++++++++-
 doc/reference/cogl/Makefile.am       |    9 +-
 doc/reference/cogl/blend-strings.xml |  130 +++++
 doc/reference/cogl/cogl-docs.xml     |    1 +
 doc/reference/cogl/cogl-sections.txt |    4 +
 gl/cogl-context.c                    |    3 +
 gl/cogl-context.h                    |    3 +
 gl/cogl-defines.h.in                 |   12 +
 gl/cogl.c                            |   10 +
 gles/cogl-gles2-wrapper.c            |    9 +-
 gles/cogl-gles2-wrapper.h            |    5 +-
 gles/cogl-texture.c                  |   49 +-
 19 files changed, 1990 insertions(+), 83 deletions(-)

commit 344dc626386de4f53d162215370fe3d65170ca95
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed May 27 23:39:18 2009 +0100

    [build] Fixes some compiler warnings when building for GLES 2
    
    There were a number of variables shadowing other symbols, and an unused
    display variable.

 gles/cogl-gles2-wrapper.c |   20 ++++++++++----------
 gles/cogl-primitives.c    |   36 ++++++++++++++++++------------------
 2 files changed, 28 insertions(+), 28 deletions(-)

commit c56d5b1468e411450f0370070196abec0ccec7d6
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sat May 23 19:18:18 2009 +0100

    [cogl] Remove max_waste argument from Texture ctors
    
    The CoglTexture constructors expose the "max-waste" argument for
    controlling the maximum amount of wasted areas for slicing or,
    if set to -1, disables slicing.
    
    Slicing is really relevant only for large images that are never
    repeated, so it's a useful feature only in controlled use cases.
    Specifying the amount of wasted area is, on the other hand, just
    a way to mess up this feature; 99% the times, you either pull this
    number out of thin air, hoping it's right, or you try to do the
    right thing and you choose the wrong number anyway.
    
    Instead, we can use the CoglTextureFlags to control whether the
    texture should not be sliced (useful for Clutter-GST and for the
    texture-from-pixmap actors) and provide a reasonable value for
    enabling the slicing ourself. At some point, we might even
    provide a way to change the default at compile time or at run time,
    for particular platforms.
    
    Since max_waste is gone, the :tile-waste property of ClutterTexture
    becomes read-only, and it proxies the cogl_texture_get_max_waste()
    function.
    
    Inside Clutter, the only cases where the max_waste argument was
    not set to -1 are in the Pango glyph cache (which is a POT texture
    anyway) and inside the test cases where we want to force slicing;
    for the latter we can create larger textures that will be bigger than
    the threshold we set.
    
    Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
    Signed-off-by: Robert Bragg <robert@linux.intel.com>
    Signed-off-by: Neil Roberts <neil@linux.intel.com>

 cogl-texture.h      |   34 +++++++--------------
 cogl-types.h        |    4 ++-
 common/cogl-util.c  |    1 +
 gl/cogl-context.c   |    6 +--
 gl/cogl-texture.c   |   81 ++++++++++++++++++++++++++------------------------
 gles/cogl-context.c |    6 +--
 gles/cogl-texture.c |   60 ++++++++++++++++++++++----------------
 7 files changed, 97 insertions(+), 95 deletions(-)

commit 3db47a8da3419dd63b4866ba64df30b93be84ab2
Merge: afa6451 c73d340
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri May 22 12:00:33 2009 +0100

    Merge branch 'master' into 1.0-integration
    
    * master:
      [cogl-vertex-buffer] Ensure the clip state before rendering
      [test-text-perf] Small fix-ups
      Add a test for text performance
      [build] Ensure that cogl-debug is disabled by default
      [build] The cogl GE macro wasn't passing an int according to the format string
      Use the right internal format for GL_ARB_texture_rectangle
      [actor_paint] Ensure painting is a NOP for actors with opacity = 0
      Make backface culling work with vertex buffers

commit c73d3404483c67b2d15eac17ef95cb9cabadf29f
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri May 22 11:41:02 2009 +0100

    [cogl-vertex-buffer] Ensure the clip state before rendering
    
    Before any rendering is done by Cogl it needs to ensure the clip stack
    is set up correctly by calling cogl_clip_ensure. This was not being
    done for the Cogl vertex buffer so it would still use the clip from
    the previous render.

 common/cogl-vertex-buffer.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

commit afa6451befe8a25357f153af28104b120c58a316
Merge: b9cde2c 598939c
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu May 21 16:51:16 2009 +0100

    Merge branch 'pango-vbo' into 1.0-integration
    
    This makes it cache the geometry of PangoLayouts into a VBO as
    described in bug #1572.

commit 2e6bb11201eb900a889474e95999c38e171b584d
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu May 21 15:04:38 2009 +0100

    [build] The cogl GE macro wasn't passing an int according to the format string
    
    This patch simply updates the arguments passed to g_warning inline with the
    given format string.

 common/cogl-internal.h |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

commit c83ad109db36a07342a0e4575036cf8410c5f1d4
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu May 21 14:56:38 2009 +0100

    Make backface culling work with vertex buffers
    
    Backface culling is enabled as part of cogl_enable so the different
    rendering functions in Cogl need to explicitly opt-in to have backface
    culling enabled. Cogl vertex buffers should allow backface culling so
    they should check whether it is enabled and then set the appropriate
    cogl_enable flag.

 cogl.h.in                   |    6 +++---
 common/cogl-vertex-buffer.c |    3 +++
 2 files changed, 6 insertions(+), 3 deletions(-)

commit b9cde2c6f41cfe456b7cfb0e4d798e71667dd3a5
Merge: 8eb66da 320bcd9
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed May 20 16:49:22 2009 +0100

    Merge commit 'origin/master' into 1.0-integration
    
    Conflicts:
    	clutter/clutter-texture.c
    	clutter/cogl/gl/cogl-fbo.c

commit 320bcd9230992567c3e5c569277099d9c10e6594
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed May 20 15:15:25 2009 +0100

    [cogl] Do no include gprintf.h
    
    We are not using any of the g_printf* family of functions, so we
    can import glib.h instead.

 common/cogl-vertex-buffer.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

commit 2fdc7e6a1b3bcbdd5ad147e986bb0495578afd1b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue May 19 16:00:18 2009 +0100

    [cogl] Move debugging to a configure-time switch
    
    Currently, COGL depends on defining debug symbols by manually
    modifying the source code. When it's done, it will forcefully
    print stuff to the console.
    
    Since COGL has also a pretty, runtime selectable debugging API
    we might as well switch everything to it.
    
    In order for this to happen, configure needs a new:
    
            --enable-cogl-debug
    
    command line switch; this will enable COGL debugging, the
    CoglHandle debugging and will also turn on the error checking
    for each GL operation.
    
    The default setting for the COGL debug defines is off, since
    it slows down the GL operations; enabling it for a particular
    debug build is trivial, though.

 cogl-debug.h           |    3 ++-
 common/Makefile.am     |    2 +-
 common/cogl-debug.c    |    3 ++-
 common/cogl-handle.h   |   23 ++++++++++++-----------
 common/cogl-internal.h |    7 +++----
 gl/Makefile.am         |    2 +-
 gles/Makefile.am       |    2 +-
 7 files changed, 22 insertions(+), 20 deletions(-)

commit cf4a49061aa707a94dee85dfe2d2c0ddb0eacd4a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue May 19 14:44:29 2009 +0100

    [cogl] Rework the debug messages
    
    COGL has a debug message system like Clutter's own. In parallel,
    it also uses a coupld of #defines. Spread around there are also
    calls to printf() instead to the more correct g_log* wrappers.
    
    This commit tries to unify and clean up the macros and the
    debug message handling inside COGL to be more consistent.

 common/cogl-handle.h     |  145 ++++++++++++++++++++++------------------------
 common/cogl-internal.h   |   43 ++++++--------
 common/cogl-primitives.c |   30 +++++-----
 common/cogl.c            |   31 +++++++---
 gl/cogl-texture.c        |   22 ++------
 gles/cogl-texture.c      |   11 ----
 6 files changed, 131 insertions(+), 151 deletions(-)

commit e73a3899e55208f9930231ffd9943f1ac64c8db4
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue May 19 14:42:37 2009 +0100

    Remove duplicate cogl-internal.h header
    
    The cogl-internal.h header has been moved inside cogl/common in
    commit 8a1b4f8326 but has been left behind inside cogl/gl and
    cogl/gles.

 gl/Makefile.am       |    1 -
 gl/cogl-internal.h   |   66 -----------------------------------
 gles/Makefile.am     |    1 -
 gles/cogl-internal.h |   93 --------------------------------------------------
 4 files changed, 0 insertions(+), 161 deletions(-)

commit 64b727d329c72fdf88c4430500638e480a5deeee
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon May 18 19:38:03 2009 +0100

    [cogl] Rework the GL-error-to-string conversion
    
    The code for the conversion of the GL error enumeration code
    into a string is not following the code style and conventions
    we follow in Clutter and COGL.
    
    The GE() macro is also using fprintf(stderr) directly instead
    of using g_warning() -- which is redirectable to an alternative
    logging system using the g_log* API.

 common/cogl-internal.h |   22 ++++++++++----------
 common/cogl.c          |   52 ++++++++++++++++++++++++-----------------------
 2 files changed, 38 insertions(+), 36 deletions(-)

commit 642f55132159f01907814cfeecab4b14b69d9eac
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu May 14 23:23:00 2009 +0100

    [build] Link Cogl against -lm
    
    We use math routines inside Cogl, so it's correct to have it in
    the LIBADD line. In normal usage something else was pulling in
    -lm, but the introspection is relying on linking against the
    convenience library.
    
    Based on a patch by: Colin Walters <walters@verbum.org>
    
    Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>

 common/Makefile.am |   10 +++-------
 gl/Makefile.am     |    9 +++------
 gles/Makefile.am   |   13 ++++---------
 3 files changed, 10 insertions(+), 22 deletions(-)

commit cbe4767796e21b2c64017fa6d723f928f77c388a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu May 14 19:51:03 2009 +0100

    [build] List cogl-internal.h
    
    During the Makefile clean up, cogl-internal.h got lost and this
    broke the dist. Let's put it back in.

 common/Makefile.am |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

commit 8f161a1e116ceec091d3b1a994d5244e784ad90e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu May 14 10:02:06 2009 +0100

    [build] Fix with --disable-introspection
    
    The required "fake" libclutter-cogl.la upon with the main clutter
    shared object depends is only built with introspection enabled
    instead of being built unconditionally.

 Makefile.am |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 38f6fb70acc14252b026230f7e760c49d0ff410f
Author: Owen W. Taylor <otaylor@redhat.com>
Date:   Wed May 13 23:14:24 2009 +0100

    Don't build Cogl.gir against installed Clutter library
    
    Passing:
    
     --library=clutter-@CLUTTER_FLAVOUR@-@CLUTTER_API_VERSION@
    
    to g-ir-scanner, when building Cogl was causing g-ir-scanner to
    link the introspection program against the installed clutter library,
    if it existed or fail otherwise. Instead copy the handling from
    the json/ directory where we link against the convenience library
    to scan, and do the generation of the typelib later in the
    main clutter/directory.
    
    Fixes bug:
    
      http://bugzilla.openedhand.com/show_bug.cgi?id=1594
    
    Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>

 Makefile.am |   29 +++++++++++------------------
 1 files changed, 11 insertions(+), 18 deletions(-)

commit aeb1516a89ba04b7900de66a19de2ad7505000db
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri May 8 16:32:01 2009 +0100

    [cogl-clip-stack] Support pushing rectangles onto the stack using window coords
    
    Previously clipping could only be specified in object coordinates, now
    rectangles can also be pushed in window coordinates.
    
    Internally rectangles pushed this way are intersected and then clipped using
    scissoring.  We also transparently try to convert rectangles pushed in
    object coordinates into window coordinates as we anticipate the scissoring
    path will be faster then the clip planes and undoubtably it will be faster
    than using the stencil buffer.

 cogl.h.in                |   21 ++++++
 common/cogl-clip-stack.c |  165 +++++++++++++++++++++++++++++++++++++++++++--
 common/cogl.c            |    2 +
 3 files changed, 180 insertions(+), 8 deletions(-)

commit 6db0d421933f5f8e1759257d2622f9a24dc5b1ea
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue May 12 14:15:18 2009 +0100

    [cogl] Remove the COGL{enum,int,uint} typedefs
    
    COGLenum, COGLint and COGLuint which were simply typedefs for GL{enum,int,uint}
    have been removed from the API and replaced with specialised enum typedefs, int
    and unsigned int. These were causing problems for generating bindings and also
    considered poor style.
    
    The cogl texture filter defines CGL_NEAREST and CGL_LINEAR etc are now replaced
    by a namespaced typedef 'CoglTextureFilter' so they should be replaced with
    COGL_TEXTURE_FILTER_NEAREST and COGL_TEXTURE_FILTER_LINEAR etc.
    
    The shader type defines CGL_VERTEX_SHADER and CGL_FRAGMENT_SHADER are handled by
    a CoglShaderType typedef and should be replaced with COGL_SHADER_TYPE_VERTEX and
    COGL_SHADER_TYPE_FRAGMENT.
    
    cogl_shader_get_parameteriv has been replaced by cogl_shader_get_type and
    cogl_shader_is_compiled. More getters can be added later if desired.

 cogl-shader.h                        |   81 ++++++++++++++++++------------
 cogl-texture.h                       |   54 +++++++++++++++++++--
 doc/reference/cogl/cogl-sections.txt |    3 +-
 gl/cogl-defines.h.in                 |   13 -----
 gl/cogl-program.c                    |   14 +++---
 gl/cogl-shader.c                     |   73 ++++++++++++++++++++++-----
 gl/cogl-texture-private.h            |    4 +-
 gl/cogl-texture.c                    |   20 ++++----
 gles/cogl-defines.h.in               |   16 ------
 gles/cogl-program.c                  |   26 +++++-----
 gles/cogl-shader.c                   |   90 +++++++++++++++++++++++++---------
 gles/cogl-texture-private.h          |    4 +-
 gles/cogl-texture.c                  |    8 ++--
 13 files changed, 263 insertions(+), 143 deletions(-)

commit 58918f0201ba880f8680bfb83637cc21f36da940
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue May 12 14:15:37 2009 +0100

    [build] Fix out-of-tree builds for Cogl
    
    Commit 43fa38fcf5 broke out-of-tree builds by removing some of the
    builddir directories from the include path. builddir/clutter/cogl and
    builddir/clutter are needed because cogl.h and cogl-defines-gl.h are
    automatically generated by the configure script. The main clutter
    headers are in the srcdir so this needs to be in the path too.

 gl/Makefile.am |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

commit ddd0392f71e67df436c538a7724bcdbcd89ab34f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sun May 10 00:41:17 2009 +0100

    [build] Unbreak compilation
    
    When building Clutter with introspection enabled everything stops
    at Cogl GIR generation because it depends on the installed library
    to work. Since we still require some changes in the API to be able
    to build the GIR and the typelib for Cogl we should disable the
    generation of the GIR as well.

 Makefile.am |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

commit 4c2e593266b64a5df1b35af35ee62ba74035212e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed May 6 11:18:31 2009 +0100

    [build] Build Cogl introspection data
    
    Currently, the introspection data for Cogl is built right into
    Clutter's own typelib. This makes functions like:
    
      cogl_path_round_rectangle()
    
    Appear as:
    
      Clutter.cogl_path_round_rectangle()
    
    It should be possible, instead, to have a Cogl namespace and:
    
      Cogl.path_round_rectangle()
    
    This means building introspection data for Cogl alone. Unfortunately,
    there are three types defined in Cogl that confuse the introspection
    scanner, and make it impossible to build a typelib:
    
      COGLint
      COGLuint
      COGLenum
    
    These three types should go away before 1.0, substituted by int,
    unsigned int and proper enumeration types. For this reason, we can
    just set up the GIR build and wait until the last moment to create
    the typelib. Once that has been done, we will be able to safely
    remove the Cogl API from the Clutter GIR and typelib and let
    people import Cogl if they want to use the Cogl API via introspection.

 Makefile.am |   57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 57 insertions(+), 0 deletions(-)

commit 39d39ba14bce64a040d3a4b0b6738afc9c7eba57
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed May 6 10:55:17 2009 +0100

    [build] Clean up the makefile
    
    Split out the files into their own variables to clean up the
    Makefile template; also use top_srcdir with the header files
    instead of top_builddir.

 gl/Makefile.am |  102 ++++++++++++++++++++++++++++----------------------------
 1 files changed, 51 insertions(+), 51 deletions(-)

commit 3bde41c63cab00fb5e20a3ee1266f1bc18ac0f9b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed May 6 10:35:28 2009 +0100

    Fix inclusion guards and headers
    
    The C++ inclusion guards G_BEGIN_DECLS and G_END_DECLS are
    defined by GLib; so we need to include glib.h before using
    them.

 cogl-bitmap.h          |    4 ++--
 cogl-shader.h          |    2 +-
 cogl-texture.h         |    4 ++--
 gl/cogl-defines.h.in   |    1 +
 gles/cogl-defines.h.in |    1 +
 5 files changed, 7 insertions(+), 5 deletions(-)

commit 93c57697221d0e66135cb14890a06089d81a6761
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri May 1 09:53:20 2009 +0100

    [cogl-material] Adds a cogl_material_set_color4f convenience function
    
    This is simply a wrapper around cogl_color_set_from_4f and
    cogl_material_set_color. We already had a prototype for this, it was
    an oversight that it wasn't already implemented.

 cogl-material.h        |    4 ++--
 common/cogl-material.c |   12 ++++++++++++
 2 files changed, 14 insertions(+), 2 deletions(-)

commit 869a2b4167cb56131a6c89a2f6b043001891aadd
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Apr 30 22:19:43 2009 +0100

    [cogl-offscreen] Cleans up the cogl offscreen API and adds documentation
    
    There were several functions I believe no one is currently using that were
    only implemented in the GL backend (cogl_offscreen_blit_region and
    cogl_offscreen_blit) that have simply been removed so we have a chance to
    think about design later with a real use case.
    
    There was one nonsense function (cogl_offscreen_new_multisample) that
    sounded exciting but in all cases it just returned COGL_INVALID_HANDLE
    (though at least for GL it checked for multisampling support first!?)
    it has also been removed.
    
    The MASK draw buffer type has been removed. If we want to expose color
    masking later then I think it at least would be nicer to have the mask be a
    property that can be set on any draw buffer.
    
    The cogl_draw_buffer and cogl_{push,pop}_draw_buffer function prototypes
    have been moved up into cogl.h since they are for managing global Cogl state
    and not for modifying or creating the actual offscreen buffers.
    
    This also documents the API so for example desiphering the semantics of
    cogl_offscreen_new_to_texture() should be a bit easier now.

 cogl-offscreen.h                     |   97 +++++++-----------------------
 cogl-types.h                         |    4 +-
 cogl.h.in                            |   29 +++++++++
 common/cogl-util.c                   |    1 -
 doc/reference/cogl/cogl-sections.txt |    4 +-
 gl/cogl-fbo.c                        |  109 ++-------------------------------
 gles/cogl-fbo.c                      |   91 ++--------------------------
 gles/cogl-texture.c                  |    5 --
 8 files changed, 68 insertions(+), 272 deletions(-)

commit cb344560dcf363fdd4ac830db6f59426ceae8c3b
Author: Havoc Pennington <hp@pobox.com>
Date:   Thu Feb 19 22:37:08 2009 -0500

    add cogl_push_draw_buffer() and cogl_pop_draw_buffer()
    
    These are necessary if nesting redirections to an fbo,
    otherwise there's no way to know how to restore
    previous state.
    
    glPushAttrib(GL_COLOR_BUFFER_BIT) would save draw buffer
    state, but also saves a lot of other stuff, and
    cogl_draw_buffer() relies on knowing about all draw
    buffer state changes. So we have to implement a
    draw buffer stack ourselves.
    
    Signed-off-by: Robert Bragg <robert@linux.intel.com>

 cogl-offscreen.h    |   14 +++++++++
 gl/cogl-context.c   |    7 ++++-
 gl/cogl-context.h   |    8 +++++-
 gl/cogl-fbo.c       |   75 ++++++++++++++++++++++++++++++++++++++++++++++++--
 gles/cogl-context.c |    7 ++++-
 gles/cogl-context.h |    8 +++++-
 gles/cogl-fbo.c     |   75 ++++++++++++++++++++++++++++++++++++++++++++++++--
 7 files changed, 184 insertions(+), 10 deletions(-)

commit c8862e35cc9de3398c942410a4b4c88872837bec
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Apr 30 18:00:22 2009 +0100

    [cogl] Only expose CoglBitmap as a CoglHandle
    
    It was inconsistent that we exposed the CoglBitmap struct instead of an
    opaque CoglHandle.

 cogl-bitmap.h                        |   78 ++++++++++++++++++++++++++
 cogl-texture.h                       |   45 +--------------
 cogl-types.h                         |    7 --
 cogl.h.in                            |    1 +
 common/Makefile.am                   |    2 +-
 common/cogl-bitmap-fallback.c        |    2 +-
 common/cogl-bitmap-pixbuf.c          |    2 +-
 common/cogl-bitmap-private.h         |  101 ++++++++++++++++++++++++++++++++++
 common/cogl-bitmap.c                 |   25 +++++---
 common/cogl-bitmap.h                 |   98 ---------------------------------
 doc/reference/cogl/cogl-sections.txt |   13 ++--
 gl/Makefile.am                       |    2 +
 gl/cogl-texture-private.h            |    2 +-
 gl/cogl-texture.c                    |   13 +++-
 gles/Makefile.am                     |    2 +
 gles/cogl-texture-private.h          |    2 +-
 gles/cogl-texture.c                  |   12 ++--
 17 files changed, 231 insertions(+), 176 deletions(-)

commit 66cb117056d71e694765e7e8e4c4098b48351106
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Apr 29 19:49:09 2009 +0100

    [cogl-material] make _cogl_material_layer_free check for an invalid texture handle
    
    It is valid in some situations to have a material layer with an invalid texture
    handle (e.g. if you setup a texture combine mode before setting the texture)
    and so _cogl_material_layer_free needs to check for a valid handle before
    attempting to unref it.

 common/cogl-material.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

commit 7e9685294e266e88bb8eaf5ac303d0a58e89ba07
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Apr 27 15:48:12 2009 +0100

    [cogl] Updates all file headers and removes lots of trailing white space
    
    Adds missing notices, and ensures all the notices are consistent. The Cogl
    blurb also now reads:
    
     * Cogl
     *
     * An object oriented GL/GLES Abstraction/Utility Layer

 cogl-color.h                        |   12 ++-
 cogl-debug.h                        |   23 +++++++
 cogl-deprecated.h                   |   23 +++++++
 cogl-fixed.h                        |   14 +++--
 cogl-material.h                     |   23 +++++++
 cogl-matrix.h                       |   26 ++++++++
 cogl-offscreen.h                    |   14 +++--
 cogl-path.h                         |   12 ++-
 cogl-shader.h                       |   12 ++-
 cogl-texture.h                      |   12 ++-
 cogl-types.h                        |   21 ++++---
 cogl-vertex-buffer.h                |   17 +++--
 cogl.h.in                           |    9 +--
 common/cogl-bitmap-fallback.c       |   52 +++++++--------
 common/cogl-bitmap-pixbuf.c         |   38 +++++------
 common/cogl-bitmap.c                |   40 ++++++------
 common/cogl-clip-stack.c            |    8 +--
 common/cogl-clip-stack.h            |    8 +--
 common/cogl-color.c                 |   23 +++++++
 common/cogl-current-matrix.c        |   11 ++--
 common/cogl-current-matrix.h        |   11 ++--
 common/cogl-debug.c                 |   23 +++++++
 common/cogl-fixed.c                 |   23 +++++++
 common/cogl-handle.h                |    8 +--
 common/cogl-internal.h              |    5 +-
 common/cogl-material-private.h      |   26 ++++++++
 common/cogl-material.c              |   25 +++++++
 common/cogl-matrix-stack.c          |   11 ++--
 common/cogl-matrix-stack.h          |   11 ++--
 common/cogl-matrix.c                |   26 ++++++++
 common/cogl-primitives.c            |  122 +++++++++++++++++------------------
 common/cogl-primitives.h            |    8 +--
 common/cogl-util.c                  |   16 ++---
 common/cogl-util.h                  |   10 +--
 common/cogl-vertex-buffer-private.h |   15 +++--
 common/cogl-vertex-buffer.c         |   17 +++--
 common/cogl.c                       |    5 +-
 gl/cogl-context.c                   |    8 +--
 gl/cogl-context.h                   |    8 +--
 gl/cogl-defines.h.in                |   22 +++----
 gl/cogl-fbo.c                       |   84 ++++++++++++------------
 gl/cogl-fbo.h                       |    8 +--
 gl/cogl-internal.h                  |    8 +--
 gl/cogl-primitives.c                |    8 +--
 gl/cogl-program.c                   |   16 ++---
 gl/cogl-program.h                   |    8 +--
 gl/cogl-shader-private.h            |    8 +--
 gl/cogl-shader.c                    |   10 +--
 gl/cogl-texture-private.h           |    8 +--
 gl/cogl-texture.c                   |   13 ++--
 gl/cogl.c                           |    4 +-
 gles/cogl-context.c                 |    8 +--
 gles/cogl-context.h                 |    8 +--
 gles/cogl-fbo.c                     |    8 +--
 gles/cogl-fbo.h                     |    8 +--
 gles/cogl-gles2-wrapper.c           |   10 +--
 gles/cogl-gles2-wrapper.h           |    8 +--
 gles/cogl-internal.h                |    8 +--
 gles/cogl-primitives.c              |    8 +--
 gles/cogl-program.c                 |   12 ++--
 gles/cogl-program.h                 |    8 +--
 gles/cogl-shader-private.h          |    8 +--
 gles/cogl-shader.c                  |   10 +--
 gles/cogl-texture-private.h         |    8 +--
 gles/cogl-texture.c                 |    8 +--
 gles/cogl-util.c                    |   10 +--
 gles/cogl-util.h                    |   10 +--
 gles/cogl.c                         |    4 +-
 gles/stringify.sh                   |   30 +++++++--
 69 files changed, 684 insertions(+), 463 deletions(-)

commit 2d94b3f46f1a783c0e1562da604d920affbadc43
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Apr 24 18:09:52 2009 +0100

    [cogl] Adds a bitfield argument to cogl_clear for specifying which buffers to clear
    
    Redundant clearing of depth and stencil buffers every render can be very
    expensive, so cogl now gives control over which auxiliary buffers are
    cleared.
    
    Note: For now clutter continues to clear the color, depth and stencil buffer
    each paint.

 cogl.h.in     |   21 ++++++++++++++++++---
 common/cogl.c |   46 +++++++++++++++++++++++++---------------------
 2 files changed, 43 insertions(+), 24 deletions(-)

commit 8eb66da6b0fbb022028d012a428a399892a0c0f3
Author: Johan Bilien <jobi@via.ecp.fr>
Date:   Fri Apr 24 15:07:49 2009 +0100

    Unnecessary glColorMask on alpha drops performance
    
    Bug 1228 - Unnecessary glColorMask on alpha drops performance
    
    With DRI2, alpha is allowed in the window's framebuffer
    
    Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>

 gl/cogl-fbo.c |    8 +-------
 1 files changed, 1 insertions(+), 7 deletions(-)

commit 598939cee1dc8d5235b25830803a5ebcc3c4d5ad
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Apr 20 12:36:43 2009 +0100

    [gl/cogl.c] #include <gmodule.h> for OS X builds
    
    In unifying the {gl,gles}/cogl.c code recently, moving most of the code into
    common/cogl.c the gmodule.h include was also mistakenly moved.
    
    Thanks to Felix Rabe for reporting this issue.
    
    Note: I haven't tested this fix myself, as I'm not set up to be able to
    build for OS X

 common/cogl.c |    1 -
 gl/cogl.c     |    1 +
 2 files changed, 1 insertions(+), 1 deletions(-)

commit c1afd0de6907d03821a2696c89b197c88b3580ef
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Apr 15 19:25:55 2009 +0100

    [cogl vertex buffers] Adds fallbacks for drivers without VBO support
    
    Buffer objects aren't currently available for glx indirect contexts, so we
    now have a fallback that simply allocates fake client side vbos to store the
    attributes.

 common/cogl-vertex-buffer-private.h |    5 +-
 common/cogl-vertex-buffer.c         |  149 +++++++++++++++++++++++++++--------
 gles/cogl.c                         |    2 +
 3 files changed, 121 insertions(+), 35 deletions(-)

commit bf4a0fa03ff97b9e233129c11d237e9275caabe6
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Apr 17 15:10:55 2009 +0100

    [cogl debug] --cogl-debug=rectangles now outlines all cogl rectangles
    
    This makes the #if 0'd debug code that was in _cogl_journal_flush_quad_batch
    - which we have repeatedly found usefull for debugging various geometry
    issues in Clutter apps - a runtime debug option.
    
    The outline colors rotate in order from red to green to blue which can also
    help confirm the order that your geometry really drawn.
    
    The outlines are not affected by the current material state, so if you e.g.
    have a blending bug where geometry mysteriously disappears this can confirm
    if the underlying rectangles are actually being emitted but blending is
    causing them to be invisible.

 cogl-debug.h             |   15 ++++++++-------
 common/cogl-debug.c      |    3 ++-
 common/cogl-primitives.c |    7 +++----
 3 files changed, 13 insertions(+), 12 deletions(-)

commit ccb334452edf61f9bef521093d345a7c413e8efd
Merge: 458e6e0 4aea0d6
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Apr 15 18:08:14 2009 +0100

    Merge branch 'text-actor-layout-height'
    
    * text-actor-layout-height:
      [clutter-text] Fix ellipsizing
      Support pango_layout_set_height() in ClutterText
    
    Conflicts:
    	clutter/clutter-text.c

commit 458e6e0356a2e3c25a7b133f6e6dfcc052b9c67a
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Apr 6 12:43:16 2009 +0100

    [cogl-handle] Fix the broken debug macros
    
    The debug macros for tracking reference counting of CoglHandles had
    some typos introduced in c3d9f0 which meant it failed to compile when
    COGL_DEBUG is 1.

 common/cogl-handle.h |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

commit 6a3588101b59aada63481440cb5e43a1933f1a21
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sat Apr 4 19:02:01 2009 +0100

    [cogl] cogl_is_*(): Don't dereference an invalid handle; just return FALSE
    
    An invalid handle is implicitly not of any type.

 common/cogl-handle.h |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

commit ed272213f002bde9ae947f0dea9aea343bd4d795
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Apr 1 17:16:44 2009 +0100

    [cogl-handle] Optimize how we define cogl handles
    
    The cogl_is_* functions were showing up quite high on profiles due to
    iterating through arrays of cogl handles.
    
    This does away with all the handle arrays and implements a simple struct
    inheritance scheme. All cogl objects now add a CoglHandleObject _parent;
    member to their main structures. The base object includes 2 members a.t.m; a
    ref_count, and a klass pointer. The klass in turn gives you a type and
    virtual function for freeing objects of that type.
    
    Each handle type has a _cogl_##handle_type##_get_type () function
    automatically defined which returns a GQuark of the handle type, so now
    implementing the cogl_is_* funcs is just a case of comparing with
    obj->klass->type.
    
    Another outcome of the re-work is that cogl_handle_{ref,unref} are also much
    more efficient, and no longer need extending for each handle type added to
    cogl. The cogl_##handle_type##_{ref,unref} functions are now deprecated and
    are no longer used internally to Clutter or Cogl. Potentially we can remove
    them completely before 1.0.

 common/cogl-handle.h                |  171 ++++++++++++++++++-----------------
 common/cogl-material-private.h      |    5 +-
 common/cogl-material.c              |   31 +++----
 common/cogl-util.c                  |   45 +++------
 common/cogl-vertex-buffer-private.h |    7 ++-
 common/cogl-vertex-buffer.c         |    7 +--
 gl/cogl-context.c                   |   25 +-----
 gl/cogl-context.h                   |   13 ---
 gl/cogl-fbo.c                       |    5 +-
 gl/cogl-fbo.h                       |    6 +-
 gl/cogl-program.c                   |    5 +-
 gl/cogl-program.h                   |    4 +-
 gl/cogl-shader-private.h            |    4 +-
 gl/cogl-shader.c                    |    5 +-
 gl/cogl-texture-private.h           |    3 +-
 gl/cogl-texture.c                   |   16 +---
 gles/cogl-context.c                 |   25 +-----
 gles/cogl-context.h                 |   13 ---
 gles/cogl-fbo.c                     |    5 +-
 gles/cogl-fbo.h                     |    6 +-
 gles/cogl-program.c                 |    9 +--
 gles/cogl-program.h                 |    3 +-
 gles/cogl-shader-private.h          |    4 +-
 gles/cogl-shader.c                  |    5 +-
 gles/cogl-texture-private.h         |    3 +-
 gles/cogl-texture.c                 |   16 +---
 26 files changed, 165 insertions(+), 276 deletions(-)

commit 4b484d6496b77112177b791925d3e13fcb27be96
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Apr 2 11:50:44 2009 +0100

    [cogl] handle_automatic_blend_enable(): consider layers with invalid textures
    
    A layer object may be instantiated when setting a combine mode, but before a
    texture is associated. (e.g. this is done by the pango renderer) if this is the
    case we shouldn't call cogl_texture_get_format() with an invalid cogl handle.
    
    This patch skips over layers without a texture handle when determining if any
    textures have an alpha channel.

 common/cogl-material.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

commit c2afbd415e7d5e8f9c50123afb4a1821655f8aee
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Mar 30 17:07:31 2009 +0100

    Unifies 90% of the code in {gl,gles}/cogl.c in common/cogl.c
    
    This code keeps on diverging and we get bugs and fixes in one version but
    not the other. This should make things a bit more maintainable.

 common/Makefile.am     |    1 +
 common/cogl-internal.h |   95 +++++++
 common/cogl.c          |  640 ++++++++++++++++++++++++++++++++++++++++++++++++
 gl/cogl.c              |  608 +---------------------------------------------
 gles/cogl-internal.h   |    3 +
 gles/cogl.c            |  584 +-------------------------------------------
 6 files changed, 749 insertions(+), 1182 deletions(-)

commit 8a2145eb8bb35679092b1c89268b103d00aa0605
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Mar 30 16:41:02 2009 +0100

    Removes cogl_blend_func prototype from cogl-internal.h
    
    cogl_blend_func was removed a while ago so this was just a left over from then

 gl/cogl-internal.h   |    4 ----
 gles/cogl-internal.h |    4 ----
 2 files changed, 0 insertions(+), 8 deletions(-)

commit f8ca841a8b2b29d9d4a0977e7116d4c361ea3311
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Mar 25 14:53:58 2009 +0000

    [doc] Fix two small typos in cogl-vertex-buffer
    
    The symbol name for cogl_vertex_buffer_draw_elements was wrong so it
    ended up with no documentation. The name for the vertex attribute was
    incorrect in cogl_vertex_buffer_add.

 cogl-vertex-buffer.h |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

commit 935db8eec29b5961856ba5454286fe0be63cc575
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Mar 23 12:46:20 2009 +0000

    [build] Fixes a cogl-vertex-buffer.c warning when building for GLES
    
    GLES 1 doesn't support GLSL so it never needs to use the generic_index
    variable for generic attributes which was flagging a warning.

 common/cogl-vertex-buffer.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

commit d7c5fa4b610238eeaf000396fa5468c3a6a1265f
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Mar 23 12:29:15 2009 +0000

    [cogl] Move rect and poly drawing code from cogl-texture.c to cogl-primitives.c
    
    None of this code directly related to implementing CoglTextures, and the
    code was needlessly duplicated between the GL and GLES backends. This moves
    the cogl_rectangle* and cogl_polygon* code into common/cogl-primitives.c
    makes which makes lot of sense since the two copies keep needlessly
    diverging introducing or fixing bugs in one but not the other. For instance
    I came accross one such bug regarding the enabling of texture units when
    unifying the code.

 common/cogl-primitives.c    | 1256 ++++++++++++++++++++++++++++++++++++++++++-
 gl/cogl-texture-private.h   |   34 ++
 gl/cogl-texture.c           | 1261 +------------------------------------------
 gles/cogl-texture-private.h |   34 ++
 gles/cogl-texture.c         | 1244 +------------------------------------------
 5 files changed, 1331 insertions(+), 2498 deletions(-)

commit c797d564b2c0939137876730ac9fe08a838a1b8d
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Mar 23 11:39:40 2009 +0000

    [cogl_rectangles] A minor doc fix, and missing newline between functions
    
    The gtk-doc had a copy and paste error, saying the float array should be 8
    elements per rectangle instead of 4. There was also no newline in the gles
    code before the new function.

 cogl-texture.h      |    2 +-
 gles/cogl-texture.c |    1 +
 2 files changed, 2 insertions(+), 1 deletions(-)

commit 7b7ece9eda72797b897e16de19e6f439a8ae1829
Author: Johan Bilien <jobi@litl.com>
Date:   Fri Mar 20 19:22:23 2009 +0000

    Allow using array of vertices even without textures
    
    It's often nice to be able to draw a batch of vertices, even if these
    have no texture coordinates. This add a cogl_rectangles, similar to
    cogl_rectangles_with_texture_coords, only without.

 cogl-texture.h      |   21 +++++++++++++++++++++
 gl/cogl-texture.c   |   20 ++++++++++++++++++++
 gles/cogl-texture.c |   19 +++++++++++++++++++
 3 files changed, 60 insertions(+), 0 deletions(-)

commit bb761e760aebe4c61bc61c6736ca98f6fa6058e1
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Mar 19 16:46:07 2009 +0000

    Removes a hack in gles/cogl.c that was already fixed in gl/cogl.c
    
    It removes the need to cast a CoglMatrix to a float * for transforming
    a vertex manually instead of using cogl_matrix_transform_point.

 gles/cogl.c |   43 ++++++++++++-------------------------------
 1 files changed, 12 insertions(+), 31 deletions(-)

commit d176e16b4b41ef773f2d5bf55d4f8f0adebf47d1
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Mar 17 14:12:01 2009 +0000

    Remove usage of the grave accent as quotation mark
    
    See:
    
      http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
    
    This should make Thomas happy.

 common/cogl-util.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit f536398d00e65fc0911071ca19bffc70f9e37f0f
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Mar 17 00:12:27 2009 +0000

    [cogl] Apply the fix from 2c1c836417 (Flush matrix before clip planes) to GLES
    
    glClipPlane() is affected by modelview matrix so we need to flush before
    calling it.

 gles/cogl.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

commit 9611f33dd648fe21a9f59dc7ee910bc5ee27d3d1
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Mar 16 14:58:00 2009 +0000

    [cogl] Don't endlessly print the same warning regarding layer fallbacks
    
    There are various constraints for when we can support multi-texturing and
    when they can't be met we try and print a clear warning explaining why the
    operation isn't supported, but we shouldn't endlessly repeat the warning for
    every primitive of every frame. This patch fixes that.

 gl/cogl-texture.c   |   94 ++++++++++++++++++++++++++++++--------------------
 gles/cogl-texture.c |   90 ++++++++++++++++++++++++++++--------------------
 2 files changed, 109 insertions(+), 75 deletions(-)

commit 2866b0e33b0eec23a5e0547676034eb18c6009e4
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Mar 9 10:26:31 2009 +0000

    [cogl-vertex-buffer] fix cogl_vertex_buffer_draw_elements prototype
    
    This function was renamed a while ago in the .c file from
    cogl_vertex_buffer_draw_range_elements  but the corresponding .h and
    doc/reference/cogl changes weren't made.

 cogl-vertex-buffer.h                 |   14 +++++++-------
 doc/reference/cogl/cogl-sections.txt |    2 +-
 2 files changed, 8 insertions(+), 8 deletions(-)

commit a76e333f50aebdb474c9c50d41307c9b8429a6d3
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sat Feb 28 17:39:38 2009 +0000

    [cogl-vertex-buffer] Allow querying back the number of vertices a buffer represents
    
    This may be convenient e.g. at draw time if you are simply drawing all vertices

 cogl-vertex-buffer.h                 |    9 +++++++++
 common/cogl-vertex-buffer.c          |   13 +++++++++++++
 doc/reference/cogl/cogl-sections.txt |    1 +
 3 files changed, 23 insertions(+), 0 deletions(-)

commit 39227def4b2289cd64669831e3d692debbf1c07c
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sat Feb 28 17:36:25 2009 +0000

    [cogl-vertex-buffer] Add a flush of attribute changes in the *_draw() functions
    
    For convenience it is now valid to avoid a seperate call to
    cogl_vertex_buffer_submit() and assume that the _draw() calls will do this
    for you (though of course if you do this you still need to ensure the
    attribute pointers remain valid until your draw call.)

 cogl-vertex-buffer.h        |   38 ++++++++++++++++++++++++--------------
 common/cogl-vertex-buffer.c |   25 +++++++++++++++++++------
 2 files changed, 43 insertions(+), 20 deletions(-)

commit 7598c551a2621129ac85b944eb6ebdc09c9c3e74
Author: Havoc Pennington <hp@pobox.com>
Date:   Mon Mar 16 15:09:33 2009 +0000

    [cogl] Flush matrix before clip planes
    
    glClipPlane() is affected by modelview matrix so we need to flush
    before calling it.
    
    Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>

 gl/cogl.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

commit f0775b8278b69d376a9476504f3ecd1d4cd2341e
Merge: b6ee8fe bcbc0c7
Author: Øyvind Kolås <pippin@linux.intel.com>
Date:   Mon Mar 16 00:40:27 2009 +0000

    Merge branch 'async-texture-thread-pool'

commit b6ee8fe8e4e4666cc8a7eaf00f5b6a9da66a8209
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Mar 13 15:43:19 2009 +0000

    [cogl-path] Minor fix to gtk-doc
    
    Fix the parameters in cogl_path_curve_to and cogl_path_rel_curve_to to
    match the actual names otherwise they won't appear correctly in the
    docs.

 cogl-path.h |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

commit b29e1b2f2ab134c5d4fa9718efdfd39ceaf02e5a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Mar 13 15:28:20 2009 +0000

    [cogl] Avoid shadowing math.h symbols
    
    As usual, y1 and y2 end up shadowing symbols exported by math.h.

 cogl-path.h              |  108 +++++++++++++++++++++++-----------------------
 common/cogl-primitives.c |   30 ++++++------
 2 files changed, 69 insertions(+), 69 deletions(-)

commit 367dbd176ff44571f5dd595e526c22dafef7afc2
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Mar 13 12:20:26 2009 +0000

    Change cogl_path_rectangle and cogl_path_round_rectangle to take x1,y1,x2,y2
    
    This matches the changes to cogl_rectangle to improve consistency.

 cogl-path.h              |   34 +++++++++++++++++-----------------
 common/cogl-primitives.c |   30 +++++++++++++++---------------
 2 files changed, 32 insertions(+), 32 deletions(-)

commit 5af7c85fa2c3997985486c54fa5b716a75873ff8
Merge: a06dd94 e1b8e94
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Mar 12 18:59:20 2009 +0000

    Merge branch 'cogl-client-matrix-stacks'
    
    * cogl-client-matrix-stacks:
      Maintain the Cogl assumption that the modelview matrix is normally current
      Finish GLES{1,2} support for client side matrix stacks
      Explicitly make the modelview-matrix current in cogl_{rotate,transform,etc}
      Avoid casting CoglMatrix to a GLfloat * when calling glGetFloatv
      Removes need for casting const float * in _cogl_set_clip_planes
      Virtualize GL matrix operations and use a client-side matrix when GL is indirect

commit e1b8e9445d8036dc682a4f8d9eca926ff10ec4f4
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Mar 12 14:16:48 2009 +0000

    Maintain the Cogl assumption that the modelview matrix is normally current
    
    _cogl_add_path_to_stencil_buffer and _cogl_add_stencil_clip were leaving
    the projection matrix current when calling cogl_rectangle which was
    upsetting _cogl_current_matrix_state_flush.

 gl/cogl-primitives.c   |   14 ++++++++++++--
 gl/cogl.c              |   16 ++++++++++++++--
 gles/cogl-primitives.c |   14 ++++++++++++--
 gles/cogl.c            |   16 ++++++++++++++--
 4 files changed, 52 insertions(+), 8 deletions(-)

commit dc94a11963180757170808eaea0a1a8f57e0721d
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Mar 12 13:34:36 2009 +0000

    Finish GLES{1,2} support for client side matrix stacks
    
    Adds glFrustum wrappers (GLES only accepts floats not doubles, and GLES2
    needs to use our internal cogl_wrap_glFrustumf)
    
    Adds GL_TEXTURE_MATRIX getter code in cogl_wrap_glGetFloatv
    
    Adds a GL_TEXTURE_MATRIX define for GLES2

 common/cogl-current-matrix.c |   13 +++++++++++++
 gles/cogl-gles2-wrapper.c    |   10 ++++++++++
 gles/cogl-gles2-wrapper.h    |    1 +
 3 files changed, 24 insertions(+), 0 deletions(-)

commit 17f19c2bb8fb6a01a361836a113568be3b95bde9
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Mar 12 13:32:10 2009 +0000

    Use Cogl enum when making modelview-matrix current in cogl_{rotate,transform,etc}
    
    My previous patch incorrectly used the GL enum with the _cogl_set_current_matrix
    API.

 common/cogl-current-matrix.c |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

commit 81eadde16c182fe7556373b16c9d23792f292f6b
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Mar 6 03:43:24 2009 +0000

    Explicitly make the modelview-matrix current in cogl_{rotate,transform,etc}
    
    Its not intended that users should use these with any other matrix mode, and
    internally we now have the _cogl_current_matrix API if we need to play with
    other modes.

 common/cogl-current-matrix.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

commit c43ebcd7ffee1a96103da5d2fe8a07d4601c26ca
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Mar 6 03:29:51 2009 +0000

    Avoid casting CoglMatrix to a GLfloat * when calling glGetFloatv
    
    If we later add internal flags to CoglMatrix then this code wouldn't
    initialize those flags. The ways it's now done adds a redundant copy, but
    if that turns out to be something worth optimizing we can look again at
    using a cast but adding another way for initializing internal flags.

 common/cogl-current-matrix.c |   11 ++++++++---
 1 files changed, 8 insertions(+), 3 deletions(-)

commit 4dd9200353c37f729f5df61ffcda10868e1d000b
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Mar 6 03:29:35 2009 +0000

    80 char fix

 common/cogl-current-matrix.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

commit f52262d5ad5a0ac851ff0a44d1beca1e0c7a6027
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Mar 6 02:39:24 2009 +0000

    Removes need for casting (const float *) to (GLfloat *) in _cogl_set_clip_planes
    
    This removes cogl.c:apply_matrix(), and makes cogl.c:project_vertex() use
    cogl_matrix_transform_point instead.

 gl/cogl.c |   43 ++++++++++++-------------------------------
 1 files changed, 12 insertions(+), 31 deletions(-)

commit 11349b6c7479ebf42321c1f207dcc433d2847e4f
Author: Havoc Pennington <hp@pobox.com>
Date:   Tue Feb 24 13:51:25 2009 -0500

    Virtualize GL matrix operations and use a client-side matrix when GL is indirect
    
    This is useful because sometimes we need to get the current matrix, which
    is too expensive when indirect rendering.
    
    In addition, this virtualization makes it easier to clean up the API in
    the future.

 cogl-matrix.h                |   21 ++
 cogl.h.in                    |   18 ++
 common/Makefile.am           |    4 +
 common/cogl-current-matrix.c |  452 ++++++++++++++++++++++++++++++++++++++++++
 common/cogl-current-matrix.h |   91 +++++++++
 common/cogl-material.c       |    6 +-
 common/cogl-matrix-stack.c   |  327 ++++++++++++++++++++++++++++++
 common/cogl-matrix-stack.h   |   67 +++++++
 common/cogl-matrix.c         |   42 ++++
 common/cogl-util.c           |   23 +++
 common/cogl-vertex-buffer.c  |    4 +
 gl/cogl-context.c            |   37 ++++
 gl/cogl-context.h            |    8 +
 gl/cogl-fbo.c                |   42 ++--
 gl/cogl-primitives.c         |   20 ++-
 gl/cogl-texture.c            |    5 +-
 gl/cogl.c                    |  233 +++++------------------
 gles/cogl-context.c          |   37 ++++
 gles/cogl-context.h          |    8 +
 gles/cogl-fbo.c              |   36 ++--
 gles/cogl-primitives.c       |   20 ++-
 gles/cogl-texture.c          |   33 ++--
 gles/cogl.c                  |  235 +++++------------------
 23 files changed, 1315 insertions(+), 454 deletions(-)

commit bcbc0c7c4ef266bf072219a27113fd905304a1ba
Merge: a06dd94 ee3647f
Author: Øyvind Kolås <pippin@linux.intel.com>
Date:   Thu Mar 12 11:18:11 2009 +0000

    Merge commit 'origin/async-texture-thread-pool' into async-size

commit a06dd94eb81a22c851429a04860cade3b1ebce03
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Mar 10 18:05:08 2009 +0000

    [cogl] Initialize all members of CoglContext
    
    Some members of CoglContext still escape initialization.

 gl/cogl-context.c   |    1 +
 gles/cogl-context.c |    1 +
 2 files changed, 2 insertions(+), 0 deletions(-)

commit 949e37d332c82433c2ff38341ec25efd8f2f33e0
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Mar 10 17:53:51 2009 +0000

    [cogl] Initialize boolean flag in CoglContext
    
    The private CoglContext is created using g_malloc() and not
    zeroed; this means we have to initialize the values we are
    going to check, to avoid hitting garbage.
    
    Thanks to Tommi Komulainen.

 gl/cogl-context.c   |    2 ++
 gles/cogl-context.c |    2 ++
 2 files changed, 4 insertions(+), 0 deletions(-)

commit c50bd8b24ee2da1195e6cdcabcfe5b9fbd326be2
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Mar 9 17:47:21 2009 +0000

    [cogl] Fix hardcoded paths in the pc file
    
    The commit 24ce193836 fixed the Clutter pkg-config file. Since
    COGL now ships its own, we need to fix that as well.

 cogl.pc.in |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

commit 84229fa13c7ea991303789ab94cf8c213ec1921e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Mar 9 17:06:22 2009 +0000

    [cogl-fixed] Implement the CoglFixed fundamental GType
    
    The type machinery for CoglFixed should be implemented by COGL
    itself, now that COGL exports the GType of its types.
    
    This allows moving most of what ClutterFixed did directly to
    CoglFixed where it belongs.

 cogl-types.h       |   44 ++++++++++++-
 cogl.h.in          |   33 ---------
 common/cogl-util.c |  186 ++++++++++++++++++++++++++++++++++++++++++++++++++--
 3 files changed, 223 insertions(+), 40 deletions(-)

commit 198dcef7283bb619ebe7fd2ef5b06cbfe972dca9
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Mar 5 20:15:00 2009 +0000

    [cogl-fixed] Add a double-to-fixed conversion macro
    
    Since the conversion of a floating point value to a fixed point
    value is already done in double precision we can safely expose
    a macro that converts a double precision floating point value to
    a CoglFixed one.

 cogl-fixed.h |   15 +++++++++++++--
 1 files changed, 13 insertions(+), 2 deletions(-)

commit a60d0aa2315b02924cae2a63bb666212d831e15e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sat Feb 28 17:54:27 2009 +0000

    Add pkg-config file for COGL
    
    COGL should ship its own pkg-config file, obviously still pointing
    to Clutter's compiler flags and linking options, for COGL-specific
    variables that might be queried at configure time.
    
    For instance, it's easier (and less verbose) to do:
    
      PKG_CHECK_EXISTS([cogl-gl-1.0],
                       [has_gl_backend=yes],
                       [has_gl_backend=no])
    
    Than doing:
    
      AC_MSG_CHECKING([for GL support in COGL])
      cogl_backend=`$PKG_CONFIG --variable=cogl clutter-0.9`
      if test x$cogl_backend = xgl; then
        has_gl_backend=yes
        AC_MSG_RESULT([found])
      else
        has_gl_backend=no
        AC_MSG_RESULT([not found])
      fi

 Makefile.am |   17 ++++++++++++++++-
 cogl.pc.in  |   15 +++++++++++++++
 2 files changed, 31 insertions(+), 1 deletions(-)

commit da9a1720fb42bdbd3fc6ef6feb2e50721224ee44
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sat Feb 28 16:03:11 2009 +0000

    [cogl] Add a PANGO debug flag for CoglPango use
    
    The CoglPango code falls under the COGL "jurisdiction"; this means
    that it cannot include Clutter headers unless strictly necessary.
    
    The CoglPangoRenderer code was using the CLUTTER_NOTE() macro. Now
    that COGL has it's own COGL_NOTE() similar macro, CoglPango should
    use that and avoid including clutter-debug.h (which pulls in
    clutter-private.h which in turn pulls in clutter-actor.h).
    
    A new flag, COGL_DEBUG_PANGO, has been added to the COGL debug
    flags.

 cogl-debug.h        |    3 ++-
 common/cogl-debug.c |    3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

commit f8166440227d905cebfd17a0a5b8507f3defd47d
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Feb 25 16:23:09 2009 +0000

    [cogl-matrix] Documents that CoglMatrix members should be considered read only
    
    In the future if we want to annotate matrices with internal flags, and add
    caching of the inverse matrix then we need to ensure that all matrix
    modifications are done by cogl_matrix API so we'd know when to dirty the
    cache or update the flags.
    
    This just adds documentation to that effect, and assuming the most likley
    case where someone would try and directly write to matrix members would
    probably be to load a constant matrix other than the identity matrix; I
    renamed cogl_matrix_init_from_gl_matrix to cogl_matrix_init_from_array to
    make it seem more general purpose.

 cogl-matrix.h                        |   23 +++++++++++++++--------
 common/cogl-matrix.c                 |    6 +++---
 doc/reference/cogl/cogl-sections.txt |    2 ++
 gl/cogl.c                            |    6 +++---
 gles/cogl.c                          |    6 +++---
 5 files changed, 26 insertions(+), 17 deletions(-)

commit 9878fdf5c67572dfc789ce2e25079b7349843260
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Feb 24 11:33:58 2009 +0000

    [cogl-matrix] Adds padding to CoglMatrix
    
    This adds enough padding to allow us to potentially add a cache of the inverse
    matrix in the future and private flags to annotate matrices.

 cogl-matrix.h |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

commit 3490dcaba4cb8e211996868036bff4fcb7a86782
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date:   Wed Feb 25 15:46:09 2009 -0500

    Fix x/y confusion for GL_TEXTURE_RECTANGLE_ARB
    
    When "denormalizing" for texture rectangles, multiple X coordinates
    by the X size and Y coordinates by the Y size.
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=1479

 gl/cogl-texture.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

commit ee3647f84da28253d754c0154d254c7ead8a7f83
Author: Jonathan Matthew <notverysmart@gmail.com>
Date:   Tue Feb 24 09:25:53 2009 +0000

    Declare the EnumValues for PixelFormat static
    
    Bug 1473 - CoglPixelFormat enum data must be declared static
    
    When registering an enumeration GType, the GEnumValue or GFlagsValue
    arrays must be declared static; otherwise, you get a segmentation
    fault when calling the function again.
    
    Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>

 common/cogl-util.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 9e9c615e49eda68a67685ee8d6bcdce8978316e9
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Feb 23 12:47:02 2009 +0000

    Add runtime debug messages for COGL
    
    Clutter is able to show debug messages written using the CLUTTER_NOTE()
    macro at runtime, either by using an environment variable:
    
      CLUTTER_DEBUG=...
    
    or by using a command line switch:
    
      --clutter-debug=...
      --clutter-no-debug=...
    
    Both are parsed during the initialization process by using the
    GOption API.
    
    COGL would benefit from having the same support.
    
    In order to do this, we need a cogl_get_option_group() function in
    COGL that sets up a GOptionGroup for COGL and adds a pre-parse hook
    that will check the COGL_DEBUG environment variable. The OptionGroup
    will also install two command line switches:
    
      --cogl-debug
      --cogl-no-debug
    
    With the same semantics of the Clutter ones.
    
    During Clutter initialization, the COGL option group will be attached
    to the GOptionContext used to parse the command line options passed
    to a Clutter application.
    
    Every debug message written using:
    
      COGL_NOTE (SECTION, "message format", arguments);
    
    Will then be printed only if SECTION was enabled at runtime.
    
    This whole machinery, like the equivalent one in Clutter, depends on
    a compile time switch, COGL_ENABLE_DEBUG, which is enabled at the same
    time as CLUTTER_ENABLE_DEBUG. Having two different symbols allows
    greater granularity.

 cogl-debug.h        |   45 +++++++++++++++++++++++
 cogl.h.in           |   18 ++++++++-
 common/Makefile.am  |    3 +-
 common/cogl-debug.c |   98 +++++++++++++++++++++++++++++++++++++++++++++++++++
 gl/Makefile.am      |    4 ++-
 gles/Makefile.am    |    4 ++-
 6 files changed, 167 insertions(+), 5 deletions(-)

commit 58ec3f2f009b860776a4f748965b8387d153cfb2
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sun Feb 22 15:25:00 2009 +0000

    [Cogl] Remove a debugging assert that was triggering on false positives
    
    An assert to verify there was no error when generating a buffer object
    for the vertex buffer API was being hit when running the GLES1 conformance
    tests.

 common/cogl-vertex-buffer.c |    2 --
 1 files changed, 0 insertions(+), 2 deletions(-)

commit 114385b2cf0f6aa09725bece92ce8eae6e5823e2
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Feb 19 09:20:20 2009 +0000

    [cogl-material] Always glBindTexture when flushing material state
    
    Bug #1457 - Creating a new texture messes up the cogl material state
                cache; reported by Neil Roberts
    
    We still don't have caching of bound texture state so we always have to
    re-bind the texture when flushing the GL state of any material layers.

 common/cogl-material.c |   42 +++++++++++++++++++++++-------------------
 1 files changed, 23 insertions(+), 19 deletions(-)

commit 25fc1b85ab2ea9aaa71f1bb03623ca4a484b7be8
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Feb 19 09:01:18 2009 +0000

    [Cogl] Fixes automatic handling of the GL blend enable state.
    
    Bug #1460 - Handling of flags in cogl_material_set_color
    
    Cogl automatically enables/disables blending based on whether the source color
    has an alhpa < 1.0, or if any textures with an alpha component are in use, but
    it wasn't doing it quite right.
    
    At the same time I removed some of the dirty flags which on second thought
    are nothing more than micro-optimsations that only helped clutter the code.
    
    thanks to Owen Taylor for reporting the bug

 common/cogl-material-private.h |   10 ++---
 common/cogl-material.c         |   78 ++++++++++++++--------------------------
 gl/cogl-context.c              |    1 -
 gles/cogl-context.c            |    1 -
 4 files changed, 31 insertions(+), 59 deletions(-)

commit e91fe8817d9b405022efb42b741b3767b7f25e2c
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Feb 18 18:54:54 2009 +0000

    [Cogl] the cogl_get_*_matrix functions now work with CoglMatrix types
    
    Since the CoglMatrix type was added for supporting texture matrices recently
    it made sense to be consistent accross the Cogl API and use the Cogl type
    over the GL style GLfloat m[16] arrays.

 cogl-matrix.h            |   36 ++++++++++++++++++++++++++++++++++++
 cogl.h.in                |   14 ++++++--------
 common/cogl-clip-stack.c |   14 +++++++-------
 common/cogl-matrix.c     |   46 ++++++++++++++++++++++++++++++----------------
 gl/cogl.c                |   27 +++++++++++++++++++--------
 gles/cogl.c              |   27 +++++++++++++++++++--------
 6 files changed, 117 insertions(+), 47 deletions(-)

commit e6a7a70d54d6f2151e7776edae525f88aaf6139c
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Feb 20 16:37:20 2009 +0000

    [cogl-gles2-wrapper] Actually call glActiveTexture
    
    cogl_wrap_glActiveTexture needs to call the GL version of
    glActiveTexture otherwise the subsequent calls to glBindTexture will
    all be using texture unit 0. This fixes test-cogl-multitexture.

 gles/cogl-gles2-wrapper.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

commit 74cd43e01caeee7c0f81ebffa06b1e2932e7e089
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Feb 20 15:56:57 2009 +0000

    [cogl-gles2-wrapper] Convert texture unit settings to be a static sized array
    
    Previously the texture unit settings were stored in growable GArrays
    and every time a new texture unit was encountered it would expand the
    arrays. However the array wasn't copied when stored in a
    CoglGles2WrapperSettings struct so all settings had the same
    array. This meant that it wouldn't detect that a different program is
    needed if a texture unit is disabled or enabled.
    
    The texture unit settings arrays are all now a fixed size and the
    enabledness of each unit is stored in a bit mask. Therefore the
    settings can just be copied around by assignment as before.
    
    This puts a limit on the number of texture units accessible by Cogl
    but I think it is worth it to make the code simpler and more
    efficient. The material API already poses a limit on the number of
    texture units it can use.

 gles/cogl-gles2-wrapper.c |  444 +++++++++++++++++++++------------------------
 gles/cogl-gles2-wrapper.h |   36 ++--
 2 files changed, 229 insertions(+), 251 deletions(-)

commit e226ffa364d5ada85877b612a7aeda75601368a9
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Feb 20 12:01:32 2009 +0000

    [docs] Rename cogl-docs from sgml to xml
    
    The cogl-docs.sgml file has always been XML, so it's only fitting that
    we actually call it cogl-docs.xml.

 doc/reference/cogl/Makefile.am    |    2 +-
 doc/reference/cogl/cogl-docs.sgml |  106 -------------------------------------
 doc/reference/cogl/cogl-docs.xml  |  106 +++++++++++++++++++++++++++++++++++++
 3 files changed, 107 insertions(+), 107 deletions(-)

commit 82d093bbb7c43598396de0be7d4150540d46f128
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Feb 20 11:58:04 2009 +0000

    [docs] Use the --name-space option
    
    Now that we depend on gtk-doc 1.11 we can use the --name-space
    command line option for the mkdb utility.

 doc/reference/cogl/Makefile.am |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 19634b4b0aa86c656e5442e20a9014862b77315c
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Feb 19 17:06:25 2009 +0000

    [docs] Update build for COGL API reference
    
    We need to initialize the type system for gtk-doc-scan, now that
    COGL exposes GTypes.

 doc/reference/cogl/Makefile.am |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

commit 7808d85d03424ebe5d9b66c9837328c418489c4e
Merge: 1d79e17 7ed9ded
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Feb 19 14:42:40 2009 +0000

    Merge branch 'build-enhancements'
    
    * build-enhancements:
      [build] Fix dist for the newly introduced m4 macro directory
      [build] Fix interaction between shave, gtk-doc and libtool 1.x
      [build] Add dolt
      [build] Beautify autotools' output
      [gitignore] update gitignore files for tests/

commit 1d79e173bb3f0def5cdd84b3f574becaaa203b98
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Feb 19 12:02:42 2009 +0000

    [cogl] Provide GTypes for COGL types
    
    COGL types should be registered inside the GType system, for
    bindings and type checking inside properties and signals.
    
    CoglHandle is a boxed type with a ref+unref semantics; slightly evil
    from a bindings perspective (we cannot associate custom data to it),
    but better than nothing.
    
    The rest of the exposed types are enumerations or bitmasks.

 cogl-types.h       |   21 ++++++-
 common/cogl-util.c |  175 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 194 insertions(+), 2 deletions(-)

commit 5abb11ba6b054d3fef55caabf6bc11d84e393a23
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Feb 19 11:55:54 2009 +0000

    [cogl] Add cogl_is_material to cogl-material.h
    
    The COGL_DEFINE_HANDLE macro generates a cogl_is_<type> function
    as well, to check whether a CoglHandle opaque pointer is of type
    <type>.
    
    The handle for CoglMaterial does not export cogl_is_material() in
    its installed header.

 cogl-material.h                      |   11 ++++++++++-
 doc/reference/cogl/cogl-sections.txt |    1 +
 2 files changed, 11 insertions(+), 1 deletions(-)

commit 268fa9c7abf142e0d542d3d213f2154de48cc138
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Feb 18 18:45:58 2009 +0000

    Initialize a variable to avoid warnings
    
    The gl_mode variable was not initialized, and the compiler complained
    when using the anal-retentive compiler flags.

 gl/cogl.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 7ed9ded5d3deb72a8ea20edd333c81ce37b213e2
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Feb 18 16:06:11 2009 +0000

    [cogl-color.c] #include fix for the cogl_set_source_color prototype
    
    cogl.h wasn't being included so we got a compiler warning

 common/cogl-color.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

commit 89d8ebcbb04c010cee47363bf0e9dcc31dcec406
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Feb 12 13:23:20 2009 +0000

    [Cogl] Renames cogl_paint_init to cogl_clear and adds a cogl_disable_fog function
    
    cogl_paint_init was a bit too miscellaneous; it mainly cleared the color, depth
    and stencil buffers but arbitrarily it also disabled fogging and lighting.
    
    It no longer disables lighting, since we know Cogl never enables lighting and
    disabling of fog is now handled with a seperate function.
    
    Since I noticed cogl_set_fog was taking a density argument documented as
    "Ignored" I've also added a mode argument to cogl_set_fog which exposes the
    exponential fog modes which can make use of the density.

 cogl.h.in                            |  245 +++++++++++++++++++++-------------
 doc/reference/cogl/cogl-sections.txt |   29 +++--
 gl/cogl.c                            |   27 +++-
 gles/cogl.c                          |   32 ++++-
 4 files changed, 218 insertions(+), 115 deletions(-)

commit 145c2eb5f9058a6353c5b3653f5989fc2e79d85b
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Feb 12 11:08:00 2009 +0000

    [Cogl] cogl_clip_{set*,unset} renamed to cogl_clip_{push*,pop}
    
    This is so they self document the stacking semantics of the cogl clip API

 cogl.h.in                            |   28 ++++++++++++++--------------
 common/cogl-clip-stack.c             |   22 +++++++++++-----------
 doc/reference/cogl/cogl-sections.txt |    8 ++++----
 3 files changed, 29 insertions(+), 29 deletions(-)

commit 43a5fef73d2f93217d48331696d24a25438d0167
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Feb 16 12:42:08 2009 +0000

    Call glActiveTexture and glClientActiveTexture through cogl_get_proc_address
    
    All GL functions that are defined in a version later than 1.1 need to
    be called through cogl_get_proc_address because the Windows GL DLL
    does not export them to directly link against.

 common/cogl-material.c      |    5 +++++
 common/cogl-vertex-buffer.c |    2 ++
 gl/cogl-context.c           |    2 ++
 gl/cogl-context.h           |    3 +++
 gl/cogl-defines.h.in        |    8 ++++++++
 gl/cogl-texture.c           |    2 ++
 gl/cogl.c                   |   12 +++++++++---
 gles/cogl-texture.c         |    2 ++
 8 files changed, 33 insertions(+), 3 deletions(-)

commit ff7bd05745117c875bbd90b163b52bd5cc7c62bc
Author: Robert Staudinger <robsta@openedhand.com>
Date:   Thu Feb 12 12:42:58 2009 +0000

    [build] Add cogl.h to the built sources list
    
    The main COGL header file is generated at configure time. If something
    changes in the template, though, the file will not be regenerated.
    
    Adding cogl.h to the BUILT_SOURCES list will allow the regeneration to
    happen.

 Makefile.am |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

commit 5901b4d045bceca0c3ddbd96f6ae1bff97e45113
Author: Robert Bragg <bob@o-hand.com>
Date:   Fri Feb 6 11:16:42 2009 +0000

    [docs] Various gtk-doc updates for Cogl
    
    This hides a number of internal structs and enums from the docs, and moves
    some functions to more appropriate sections as well as misc description
    updates (mostly for the vertex buffer api)

 cogl-color.h                         |   55 ------------
 cogl-material.h                      |  109 ++++++++++++------------
 cogl-matrix.h                        |    8 +-
 cogl-vertex-buffer.h                 |  158 ++++++++++++++++-----------------
 cogl.h.in                            |   94 ++++++++++++++++++++
 doc/reference/cogl/cogl-docs.sgml    |   10 +--
 doc/reference/cogl/cogl-sections.txt |  104 +++++++++++-----------
 7 files changed, 285 insertions(+), 253 deletions(-)

commit c3b8dcd2f0a20269290422c82a638e5fd8b5f567
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Feb 6 16:10:28 2009 +0000

    [cogl-vertex-buffer] Some fixes for texturing and color arrays
    
    Fixes some blending issues when using color arrays since we were
    conflicting with the cogl_enable state + fixes a texture layer
    validation bug.
    
    Adds a basic textured triangle to test-vertex-buffer-contiguous.

 common/cogl-vertex-buffer.c |   19 ++++++++-----------
 1 files changed, 8 insertions(+), 11 deletions(-)

commit 9059367dcc07125a20ba3927481f6f312733f454
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Feb 6 16:05:08 2009 +0000

    [cogl-material] Fixes some dirty flag checks
    
    Flushing material layers wasn't clearing the right dirty flag and
    some of the tests used to avoid re-submitting GL state weren't
    complete.

 common/cogl-material.c |   98 +++++++++++++++++++++++++++++++-----------------
 1 files changed, 63 insertions(+), 35 deletions(-)

commit 06bfc00fbc3348a4c6b4cd43b3d1d35abf66287d
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Feb 4 09:21:37 2009 +0000

    [Cogl] Renames cogl_fog_set to cogl_set_fog for consistency
    
    More things follow the <object>_set_<property> convention.

 cogl.h.in   |   10 +++++-----
 gl/cogl.c   |    8 ++++----
 gles/cogl.c |    8 ++++----
 3 files changed, 13 insertions(+), 13 deletions(-)

commit acdc36a7c5a38371af24889c72c05b9047e79e90
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Feb 5 19:48:00 2009 +0000

    [cogl-texture] Fix offset to next quad when flushing the log
    
    When the quad log contains multiple textures (such as when a sliced
    texture is drawn) it dispatches the log with multiple calls to
    flush_quad_batch and walks a pointer along the list of vertices.
    However this pointer was being incremented by only one vertex so the
    next quad would be drawn with three of the vertices from the last
    quad.

 gl/cogl-texture.c   |    4 ++--
 gles/cogl-texture.c |    4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

commit fd4a6f9c811adefd86b83c9aa1828e63df4723f2
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Feb 2 22:02:47 2009 +0000

    [cogl-gles2-wrapper] Remove the FIXME to adjust the fragment color
    
    Removed some debugging code which sets the r and g values to 1 in the
    fragment shader.

 gles/cogl-gles2-wrapper.c |    3 ---
 1 files changed, 0 insertions(+), 3 deletions(-)

commit b0ffe365ef9c2e2fc154d1c0a67d243f6c7aeb67
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Feb 2 22:01:47 2009 +0000

    [cogl-texture] Fix the count for the number of enabled arrays
    
    The quad drawing code keeps track of the number of texture units that
    have the tex coord array enabled so that in the next call it can
    disabled any that are no longer enabled. However it was using 'i+1' as
    the count but 'i' is already set to 'n_layers' from the previous for
    loop.
    
    Therefore it was disabling an extra texture unit. This doesn't
    normally matter but it was causing GLES 2 to pointlessly realize an
    extra unit.

 gles/cogl-texture.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit c50935edca272e75d8fba25f6e098e06e3f07c92
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Jan 29 13:40:37 2009 +0000

    Fix building GLES 2 after the material branch merge
    
    - In cogl-material.h it directly sets the values of the
      CoglMaterialLayerCombineFunc to some GL_* constants. However these
      aren't defined in GLES 2 beacuse it has no fixed function texture
      combining. Instead the CGL_* versions are now used. cogl-defines.h
      now sets these to either the GL_* version if it is available,
      otherwise it directly uses the number.
    
    - Under GLES 2 cogl-material.c needs to access the CoglTexture struct
      so it needs to include cogl-texture-private.h
    
    - There are now #define's in cogl-gles2-wrapper.h to remap the GL
      function names to the wrapper names. These are disabled in
      cogl-gles2-wrapper.c by defining COGL_GLES2_WRAPPER_NO_REMAP.
    
    - Added missing wrappers for glLoadMatrixf and glMaterialfv.
    
    - Renamed the TexEnvf wrapper to TexEnvi because the latter is used
      instead from the material API.

 cogl-material.h             |   22 +++---
 common/cogl-material.c      |    3 +-
 common/cogl-vertex-buffer.c |    9 +--
 gl/cogl-defines.h.in        |    3 +
 gles/cogl-defines.h.in      |  199 +++++++++++++++++++++++++++++++++++++++----
 gles/cogl-gles2-wrapper.c   |   32 ++++++--
 gles/cogl-gles2-wrapper.h   |  106 +++++++++++++++--------
 7 files changed, 297 insertions(+), 77 deletions(-)

commit a54d13368fb8c4bc19ccc7049ec2507406ef0fc8
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Feb 2 14:51:52 2009 +0000

    [cogl-material] Always bind the new texture handle
    
    Cogl previously tried to cache the currently bound texture when
    drawing through the material API to avoid excessive GL calls. However,
    a few other places in Cogl and Clutter rebind the texture as well so
    this can cause problems.
    
    This was causing shaped windows to fail in Mutter because
    ClutterGLXTexturePixmap was binding a different texture to update it
    while the second texture unit was still active which meant the mask
    texture would not be selected when the shaped window was drawn
    subsequent times.
    
    Ideally we would fix this by providing a wrapper around glBindTexture
    which would affect the cached value. The cache would also have to be
    cleared if a selected texture was deleted.

 common/cogl-material.c |   20 +++++++++++---------
 1 files changed, 11 insertions(+), 9 deletions(-)

commit 7c57d71e4e36fabfcce8ee6c1bcd36cb4faf5f7b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Jan 29 16:00:15 2009 +0000

    Add cogl-material-private.h to the source files
    
    The material-private.h file was not added to the dist files and
    caused a build failure.

 common/Makefile.am |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

commit 85f6701be17d35b882a0ca7847d4d557b853746f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Jan 29 13:31:11 2009 +0000

    Fix a variable masking warning
    
    The usual issue with math.h defined symbols.

 common/cogl-primitives.c |   15 +++++++--------
 1 files changed, 7 insertions(+), 8 deletions(-)

commit da9f956fd103e3df9e0cfa6bc400c84abf331f53
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Jan 29 12:21:56 2009 +0000

    [cogl] Add an NULL terminator to the call to material_flush_gl_state
    
    This fixes a compiler warning and a potential crash.

 gl/cogl.c   |    2 +-
 gles/cogl.c |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 02127858f35d0704cc9e18054e97cc0efe11b196
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Jan 28 14:09:51 2009 +0000

    Another Cogl gl vs gles normalizaion pass
    
    This tries to make a number of files more comparable with the intention of
    moving some code into cogl/common/
    
    Files normalized:
     cogl.c
     cogl-context.c
     cogl-context.h
     cogl-texture.c

 gl/cogl-context.h   |   13 ++--
 gl/cogl-texture.c   |   33 ++++++--
 gl/cogl.c           |   43 +++++++--
 gles/cogl-context.c |    8 +-
 gles/cogl-texture.c |  244 +++++++++++++++++++++++++++++----------------------
 gles/cogl.c         |   26 +++++-
 6 files changed, 233 insertions(+), 134 deletions(-)

commit b69d49e43c694e9fbd1c617a9620fde508b2c734
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Jan 27 11:07:22 2009 +0000

    Removes cogl_color_set_from_4d as it may mislead people.
    
    Someone not sure which cogl_color_set_from_* version is "best" may use
    set_from_4d because taking doubles implies higher precision. Currently
    it doesn't have any advantage.

 cogl-color.h        |   17 -----------------
 common/cogl-color.c |   15 ---------------
 2 files changed, 0 insertions(+), 32 deletions(-)

commit c4b4500059defee4e74fb355aae698c7dea1e24c
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Jan 28 14:47:03 2009 +0000

    Changes cogl_rectangle to take x1, y1, x2, y2 args not x1, y1, width, height
    
    This makes it consistent with cogl_rectangle_with_{multi,}texture_coords.
    Notably the reason cogl_rectangle_with_{multi,}texture_coords wasn't changed
    instead is that the former approach lets you describe back facing rectangles.
    (though technically you could pass negative width/height values to achieve
     this; it doesn't seem as neat.)

 cogl-path.h              |   16 ++++++++--------
 common/cogl-primitives.c |   13 ++++++-------
 gl/cogl-primitives.c     |   10 ++++++----
 gles/cogl-primitives.c   |   10 ++++++----
 gles/cogl.c              |    8 +++++---
 5 files changed, 31 insertions(+), 26 deletions(-)

commit 1d86b04e0644db63ac3fe0635667fc3792c4e691
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Jan 28 13:46:39 2009 +0000

    Adds some debug code to _cogl_journal_flush_quad_batch
    
    The code is #if 0 guarded, but when uncommented it outlines all drawn
    rectangles with an un-blended red, green or blue border. This may e.g. help
    with debugging texture slicing issues or blending issues, plus it looks quite
    cool.

 gl/cogl-texture.c |   27 +++++++++++++++++++++++++++
 1 files changed, 27 insertions(+), 0 deletions(-)

commit 1f473c02e0c8f20523d319581ae5518589d55974
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Jan 28 16:43:05 2009 +0000

    [cogl-docs] Add the Materials section
    
    The COGL Materials API was not linked from the COGL reference
    index.

 doc/reference/cogl/cogl-docs.sgml |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

commit c4b1e08eef9bf78bc44fe4c261fc0ddfb260bb9f
Merge: ba2fd8a 9aedabc
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Jan 28 09:08:19 2009 +0000

    Merge branch 'scale-center'
    
    Bug 1349 - Using the anchor point to set the scale center is messy
    
    The branch adds an extra center point for scaling which can be used
    for example to set a scale about the center without affecting the
    position of the actor.
    
    The scale center can be specified as a unit offset from the origin or
    as a gravity. If specified as a gravity it will be stored as a
    fraction of the actor's size so that the position will track when the
    actor changes size.
    
    The anchor point and rotation centers have been modified so they can
    be set with a gravity in the same way. However, only the Z rotation
    exposes a property to set using a gravity because the other two
    require a Z coordinate which doesn't make sense to interpret as a
    fraction of the actor's width or height.
    
    Conflicts:
    
    	clutter/clutter-actor.c

commit ba2fd8a9d354adad35af3e6ab67b9c04f37c2eb1
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Jan 28 12:57:06 2009 +0000

    [cogl-texture] Fix order of tex coords when compensating for waste
    
    When drawing a texture with waste in _cogl_multitexture_unsliced_quad
    it scales the texture coordinates so that the waste is not
    included. However the formula was the wrong way around so it was
    calculating as if the texture coordinates are ordered x1,x2,y1,y2 but
    it is actually x1,y1,x2,y2.

 gl/cogl-texture.c   |    4 ++--
 gles/cogl-texture.c |    4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

commit 954c0853cddab18540e64ac16248de2e108aace4
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Jan 28 12:00:01 2009 +0000

    [cogl-texture] Reset size of vertex log after drawing a polygon
    
    Otherwise trying to render a rectangle after a polygon doesn't work
    because it expects the array to be empty when it starts logging
    vertices.

 gl/cogl-texture.c   |    4 ++++
 gles/cogl-texture.c |    4 ++++
 2 files changed, 8 insertions(+), 0 deletions(-)

commit e6fb58e12976c10ca0baedeaa341143b3752d6db
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Jan 28 11:29:49 2009 +0000

    Fix rectangles_with_multitexture_coords for sliced without tex coords
    
    When the texture is sliced it drops back to a fallback function and
    passes it the texture coordinates from the rectangle. However if no
    tex coords are given it would crash. Now it passes the default
    0.0->1.0 tex coords instead.

 gl/cogl-texture.c   |   23 +++++++++++++++--------
 gles/cogl-texture.c |   23 +++++++++++++++--------
 2 files changed, 30 insertions(+), 16 deletions(-)

commit c18d945dc7dfff1cf2b8f365defc40c64f36e8ab
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Jan 28 11:09:47 2009 +0000

    Fix _cogl_texture_unsliced_quad when no texture coordinates are given
    
    If no texture coordinates are given then texture_unsliced_quad tries
    to generate its own coordinates. However it also tries to read the
    texture coordinates to check if they are in [0.0,1.0] range so it will
    crash before it reaches that.

 gl/cogl-texture.c   |   11 +++++++----
 gles/cogl-texture.c |   11 +++++++----
 2 files changed, 14 insertions(+), 8 deletions(-)

commit 8dca5c73bcdf949d6e11d4adfd5dc93feca71b8e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Jan 28 11:56:12 2009 +0000

    Reuse the layers list
    
    Instead of getting the layers list twice from the Material, we
    can reuse the list when we need to retrieve the first layer.

 gl/cogl-texture.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

commit 670b35ddf0a3bbe4539a00d123aca002c1316e5d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Jan 28 11:55:19 2009 +0000

    Remove gtk-doc annotation
    
    The _cogl_material_flush_layers_gl_state() function is static,
    so it should not have a gtk-doc annotation.

 common/cogl-material.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 677f4b899b76b6463403dd51dfee2ed9bfeeeaf7
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Jan 28 10:52:55 2009 +0000

    Fix building GLES after _cogl_texture_handle_from_pointer got removed
    
    Commit a688b1db removed the function and replaced it with a direct
    cast. This was also being used in the GL ES so the build broke.

 gles/cogl-texture.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit d6f6c06af555ffeb567551694a32d42d209699c4
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Jan 27 16:53:01 2009 +0000

    [docs] Documentation fixes
    
    Update the COGL API reference to avoid a lot of warnings coming
    from gtk-doc.

 common/cogl-matrix.c                 |   12 ++++++----
 doc/reference/cogl/cogl-sections.txt |   35 ++++++++++++++++++++++++++-------
 2 files changed, 34 insertions(+), 13 deletions(-)

commit 85f02c2c6a2ca73605e8a1dd598e0b15f03bbfa1
Merge: 31e4ca5 6e2efcd
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Jan 27 16:12:30 2009 +0000

    Merge branch 'generic-actor-clone'
    
    * generic-actor-clone:
      Remove CloneTexture from the API
      [tests] Clean up the Clone interactive test
      Rename ActorClone to Clone/2
      Rename ActorClone to Clone/1
      Improves the unit test to verify more awkward scaling and some corresponding fixes
      Implements a generic ClutterActorClone that doesn't need fbos.

commit 31e4ca5733a4036c37b70f2e60586d3ddef3fd9e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Jan 27 16:02:04 2009 +0000

    Fallout from cogl-material merge
    
    When enabling the maintainer CFLAGS the compiler got very angry
    at the code that has been merged.

 common/cogl-handle.h   |    6 ------
 common/cogl-material.c |   13 ++++++-------
 gl/cogl-context.c      |    8 ++++----
 gl/cogl-texture.c      |    8 +++-----
 4 files changed, 13 insertions(+), 22 deletions(-)

commit d428c2a2ccaf8d823894b6c1a11d2a1a25347090
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Jan 27 11:01:23 2009 +0000

    Adds padding to CoglColor to future proof it a bit
    
    This adds enough padding to allow us to change to an internal float storage
    for the color components if needs be in the future.

 cogl-types.h |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

commit a2e52eb3be65338b36dbce026ef0f9c830e3cded
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Jan 26 22:52:38 2009 +0000

    Support scaling on the z axis with cogl_scale
    
    This simply adds a z argument to cogl_scale and updates clutter-actor.c
    to pass 1.0 for the z scale.

 cogl.h.in   |    8 +++++---
 gl/cogl.c   |    4 ++--
 gles/cogl.c |    4 ++--
 3 files changed, 9 insertions(+), 7 deletions(-)

commit 323eaf3fb3994eb84376a735b9ab4ca87208f8e7
Merge: 33fe451 9abf44e
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Jan 27 15:19:34 2009 +0000

    Merge branch 'cogl-material'
    
    Conflicts:
    
    	clutter/cogl/gl/cogl-texture.c
    	clutter/cogl/gles/cogl-primitives.c
    
    * cogl-material:
     clutter-{clone-,}texture weren't updating their material opacity.
     Updates GLES1 support for CoglMaterial
     Normalizes gl vs gles code in preperation for synching material changes
     Removes cogl_blend_func and cogl_alpha_func
     Fully integrates CoglMaterial throughout the rest of Cogl
     [cogl-material] Restore the GL_TEXTURE_ENV_MODE after material_rectangle
     [cogl-material] Make the user_tex_coords parameter of _rectangle const
     [test-cogl-material] Remove return value from material_rectangle_paint
     Add cogl-material.h and cogl-matrix.h to libclutterinclude_HEADERS
     [cogl-material] improvements for cogl_material_rectangle
     [cogl-material] Adds a cogl_material_set_color function
     [cogl-material] Some improvements for how we sync CoglMaterial state with OpenGL
     [cogl-material] Converts clutter-texture/clutter-clone-texture to the material API
     [doc] Hooks up cogl-material reference documentation
     Updates previous GLES multi-texturing code to use CoglMaterial
     Adds a CoglMaterial abstraction, which includes support for multi-texturing
     [doc] Hooks up cogl-matrix reference documentation
     Adds CoglMatrix utility code
     [tests] Adds an interactive unit test for multi-texturing
     [multi-texturing] This adds a new cogl_multi_texture API for GL,GLES1 + GLES2

commit 9abf44eac312bcc3038e77c060a17af0d51c8ad7
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Jan 26 11:07:35 2009 +0000

    Updates GLES1 support for CoglMaterial
    
    This updates cogl/gles in line with the integration of CoglMaterial throughout
    Cogl that has been done for cogl/gl.
    
    Note: This is still buggy, but at least it builds again and test-actors works.
    Some GLES2 specific changes were made, but these haven't been tested yet.

 common/cogl-material.c      |   35 +-
 gl/cogl-texture.c           |   25 +-
 gles/cogl-context.c         |  128 +++-
 gles/cogl-context.h         |   92 ++-
 gles/cogl-gles2-wrapper.h   |    5 +
 gles/cogl-internal.h        |   11 +-
 gles/cogl-primitives.c      |   75 +--
 gles/cogl-texture-private.h |   39 +-
 gles/cogl-texture.c         | 1642 +++++++++++++++++++++++++++----------------
 gles/cogl.c                 |   49 +-
 10 files changed, 1312 insertions(+), 789 deletions(-)

commit e9a9acd28db9331e4b02c4a3721e9e80756b7076
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sat Jan 24 16:55:04 2009 +0000

    Normalizes gl vs gles code in preperation for synching material changes
    
    This changes all GLES code to use the OpenGL function names instead of
    the cogl_wrap_* names. For GLES2 we now define the OpenGL name to point
    to the wrapper, as opposed to defining the wrapper to point to the
    OpenGL name for GLES1.
    
    I've also done a quick pass through gl/cogl.c and gles/cogl.c to make
    them more easily comparable. (most of the code is now identical)

 gl/cogl-primitives.c   |   43 ++--
 gl/cogl.c              |  144 ++++++-------
 gles/cogl-context.c    |    2 +-
 gles/cogl-fbo.c        |   32 ++--
 gles/cogl-primitives.c |   34 ++--
 gles/cogl-texture.c    |  585 +++++++++++++++++++++++-------------------------
 gles/cogl.c            |  286 +++++++++++++-----------
 7 files changed, 561 insertions(+), 565 deletions(-)

commit 94077997a767de39fc9b2bc088e27054a5d73c4a
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sat Jan 24 15:09:43 2009 +0000

    Removes cogl_blend_func and cogl_alpha_func
    
    The GL blend function and alpha function are now controlled by the material
    code, and even internally Cogl should now be using the material API when
    it needs control of these.

 cogl.h.in              |   13 -------------
 common/cogl-material.c |    8 ++++++++
 gl/cogl-context.c      |    3 ---
 gl/cogl-context.h      |    2 --
 gl/cogl.c              |   24 ------------------------
 gles/cogl.c            |   24 ------------------------
 6 files changed, 8 insertions(+), 66 deletions(-)

commit 2503f7b32190312a7ded7d7ae227ee5e01e298c3
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Jan 23 16:15:40 2009 +0000

    Fully integrates CoglMaterial throughout the rest of Cogl
    
    This glues CoglMaterial in as the fundamental way that Cogl describes how to
    fill in geometry.
    
    It adds cogl_set_source (), which is used to set the material which will be
    used by all subsequent drawing functions
    
    It adds cogl_set_source_texture as a convenience for setting up a default
    material with a single texture layer, and cogl_set_source_color is now also
    a convenience for setting up a material with a solid fill.
    
    "drawing functions" include, cogl_rectangle, cogl_texture_rectangle,
    cogl_texture_multiple_rectangles, cogl_texture_polygon (though the
    cogl_texture_* funcs have been renamed; see below for details),
    cogl_path_fill/stroke and cogl_vertex_buffer_draw*.
    
    cogl_texture_rectangle, cogl_texture_multiple_rectangles and
    cogl_texture_polygon no longer take a texture handle; instead the current
    source material is referenced. The functions have also been renamed to:
    cogl_rectangle_with_texture_coords, cogl_rectangles_with_texture_coords
    and cogl_polygon respectivly.
    
    Most code that previously did:
      cogl_texture_rectangle (tex_handle, x, y,...);
    needs to be changed to now do:
      cogl_set_source_texture (tex_handle);
      cogl_rectangle_with_texture_coords (x, y,....);
    
    In the less likely case where you were blending your source texture with a color
    like:
      cogl_set_source_color4ub (r,g,b,a); /* where r,g,b,a isn't just white */
      cogl_texture_rectangle (tex_handle, x, y,...);
    you will need your own material to do that:
      mat = cogl_material_new ();
      cogl_material_set_color4ub (r,g,b,a);
      cogl_material_set_layer (mat, 0, tex_handle));
      cogl_set_source_material (mat);
    
    Code that uses the texture coordinates, 0, 0, 1, 1 don't need to use
    cog_rectangle_with_texure_coords since these are the coordinates that
    cogl_rectangle will use.
    
    For cogl_texture_polygon; as well as dropping the texture handle, the
    n_vertices and vertices arguments were transposed for consistency. So
    code previously written as:
      cogl_texture_polygon (tex_handle, 3, verts, TRUE);
    need to be written as:
      cogl_set_source_texture (tex_handle);
      cogl_polygon (verts, 3, TRUE);
    
    All of the unit tests have been updated to now use the material API and
    test-cogl-material has been renamed to test-cogl-multitexture since any
    textured quad is now technically a test of CoglMaterial but this test
    specifically creates a material with multiple texture layers.
    
    Note: The GLES backend has not been updated yet; that will be done in a
    following commit.

 cogl-material.h                |  169 +++++-
 cogl-path.h                    |    3 +-
 cogl-texture.h                 |  185 +++---
 cogl.h.in                      |    2 +-
 common/cogl-material-private.h |   31 +-
 common/cogl-material.c         |  619 +++++++++++++++----
 common/cogl-primitives.c       |   13 +-
 common/cogl-vertex-buffer.c    |   80 ++-
 gl/cogl-context.c              |   89 ++-
 gl/cogl-context.h              |   44 +-
 gl/cogl-internal.h             |   11 +-
 gl/cogl-primitives.c           |   50 +-
 gl/cogl-texture-private.h      |   39 +-
 gl/cogl-texture.c              | 1374 +++++++++++++++++++++++++---------------
 gl/cogl.c                      |  128 ++---
 15 files changed, 1917 insertions(+), 920 deletions(-)

commit 33fe4518b0d2b04f81c2aaecf5ae5adc51c8af97
Author: Neil Roberts <neil@linux.intel.com>
Date:   Sat Jan 24 00:25:24 2009 +0000

    Fix the Cogl primitives for the GLES backend
    
    The Cogl primitives broke for GLES 1.1 and 2 after the cogl-float
    branch merge.
    
    CoglPathNode was still being declared as GLfixed for the GLES backend
    but it was being filled with float values so they were all ending up
    as numbers < 1.
    
    glDrawArrays was being called with GL_FIXED so this has been changed
    to GL_FLOAT.
    
    The scanline rasterizer had a leftover hardcoded ClutterFixed constant
    to add a small amount to the height of each line.
    
    struct _CoglFloatVec2 has been removed because it is no longer used
    anywhere.

 common/cogl-primitives.h |   21 ---------------------
 gles/cogl-primitives.c   |   14 +++++++-------
 2 files changed, 7 insertions(+), 28 deletions(-)

commit 0c8c273980fc0dc92b651d4a0df4804be43b6dba
Merge: a0c5690 7031791
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Jan 23 15:23:49 2009 +0000

    Merge commit 'origin/master' into cogl-material
    
    Conflicts:
    
    	clutter/clutter-texture.c
    	clutter/cogl/cogl-texture.h
    	clutter/cogl/cogl.h.in
    	clutter/cogl/common/Makefile.am
    	clutter/cogl/gl/Makefile.am
    	clutter/cogl/gles/Makefile.am
    	clutter/cogl/gles/cogl-gles2-wrapper.c
    	clutter/cogl/gles/cogl-gles2-wrapper.h

commit 9aedabc6a77f3c7271f859b84bc9fd484f9e8dad
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Jan 23 13:09:51 2009 +0000

    Split maintainer-flags from the compiler flags
    
    The maintainer compiler flags we use trigger warnings and errors
    in the autogenerated code that gtk-doc creates to scan the header
    and source files. Since we cannot control that, and we must run
    a distcheck with both --enable-gtk-doc and --enable-maintainer-flags
    turned on, we need to use less-strict compiler flags when inside
    the doc/reference subdirectories.
    
    The way to do this is to split the maintainer compiler flags into
    their own Makefile variable, called MAINTAINER_CFLAGS. The we
    can use $(MAINTAINER_CFLAGS) in the INCLUDES or _CFLAGS sections
    of each part of the source directories we wish to check with the
    anal retentiveness suited for maintainers.

 common/Makefile.am |    1 +
 gl/Makefile.am     |    1 +
 gles/Makefile.am   |    1 +
 3 files changed, 3 insertions(+), 0 deletions(-)

commit 726ee43761abc4d77c8b3f894b19f8bbe1f4f2c0
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Jan 23 13:08:46 2009 +0000

    Fix compiler warnings
    
    The maintainer-flags option discovered the usual amount of
    collisions and compiler warnings we have to fix in order to
    get distcheck to pass.

 common/cogl-primitives.c |  100 +++++++++---------
 gl/cogl-texture.c        |  247 ++++++++++++++++++++++++----------------------
 2 files changed, 180 insertions(+), 167 deletions(-)

commit 20b5eecbd9b62a71c0f2e2e9a483f4bb0bccebf3
Merge: 7031791 6e2efcd
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Jan 23 12:10:50 2009 +0000

    Merge branch 'float-alpha-value'
    
    * float-alpha-value:
      [script] Parse easing modes by name
      [docs] Update the easing modes documentation
      [animation] Implement new easing functions
      [animation] Move the alpha value to floating point

commit 7031791376ddd98c7c1358d07b12871be14bd6c8
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Jan 22 17:42:26 2009 +0000

    Fix some failures from the fixed-to-float script in cogl-texture
    
    The script converted calls to COGL_FIXED_MUL(x,y) to (x*y). However
    this fails for cases like this:
    
     COGL_FIXED_MUL(a + b, c)
    
    which become
    
     (a + b * c)
    
    The meaning of this is of course different because multiplication has
    a higher precedence than addition.
    
    This was causing breakages in cogl_texture_quad_sw when the vertex
    coordinates are not in increasing order. This was the case in
    test-backface-culling when NPOTs are not available.

 gl/cogl-texture.c   |   20 ++++++++------------
 gles/cogl-texture.c |   20 ++++++++------------
 2 files changed, 16 insertions(+), 24 deletions(-)

commit 7b173b9e248e2bce3189b79b887b23a1fb64f01b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Jan 22 15:59:23 2009 +0000

    Improve accuracy of clutter_sinx()
    
    Improve clutter_sinx() by replacing the low precision CFX_SIN_STEP
    with a multiply/divide pair. This reduces the maximum error from
    1.8e-04 to 2.4e-05.
    
    http://bugzilla.openedhand.com/show_bug.cgi?id=1314
    
    Based on a patch by Owen W. Taylor <otaylor@fishsoup.net>

 common/cogl-fixed.c |   36 +++++++++++++++++++++++-------------
 1 files changed, 23 insertions(+), 13 deletions(-)

commit 27dd2f8319579988faa558217ea35a4947e191ef
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Jan 22 14:52:34 2009 +0000

    [gles] Fix computation of camera distance
    
    Port the fix in commit f409b58e to the GLES implementation of
    COGL.

 gles/cogl.c |   21 +++++++--------------
 1 files changed, 7 insertions(+), 14 deletions(-)

commit 66331b686346ae751d5b5028a9c2aee0db287aec
Author: Owen W. Taylor <otaylor@redhat.com>
Date:   Thu Jan 22 14:17:16 2009 +0000

    Fix computation of camera distance
    
    Compute the value of the camera distance as exactly half the xx
    component of the projection matrix. The heuristically derived
    value for 60 degrees was off by about 0.016%, causing noticeable
    blurring, and other field of view angles which didn't have the
    heuristic adjustment off by much more.
    
    Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>

 gl/cogl.c |   58 ++++++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 38 insertions(+), 20 deletions(-)

commit dcbb0833c1f9b8e9cd6d1156e6264d343ab1892d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Jan 21 16:41:18 2009 +0000

    [docs] Remove sources of warnings in API references

 cogl-texture.h                       |    2 +-
 cogl-vertex-buffer.h                 |    4 +-
 doc/reference/cogl/cogl-docs.sgml    |    2 +-
 doc/reference/cogl/cogl-sections.txt |   50 ++++++++++++++++++++++-----------
 4 files changed, 37 insertions(+), 21 deletions(-)

commit 16ad994dfaee5e7d5413fb67810daf6554086956
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Jan 21 10:59:19 2009 +0000

    [docs] Add CoglTextureFlags to the API reference

 doc/reference/cogl/cogl-sections.txt |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

commit 799fdf364e7f3b26f9bc27b7f16e052c38106016
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sun Jan 18 14:51:19 2009 +0000

    Change the COGL texture constructor to use flags
    
    Boolean arguments for functions are pretty evil and usually
    lead to combinatorial explosion of parameters in case multiple
    settings are added.
    
    In the case of the COGL texture constructors we have a boolean
    argument for enabling the auto-mipmapping; it is conceivable that
    we might want to add more settings for a COGL texture without
    breaking API or ABI compatibility, so the boolean argument should
    become a bitmask.
    
    The internals have not been changed: instead of checking for
    a non-zero value, we check for a bitmask being set.

 cogl-texture.h      |  139 +++++++++++++++++++++++++++------------------------
 cogl-types.h        |   15 ++++++
 gl/cogl-texture.c   |   52 ++++++++++----------
 gles/cogl-texture.c |   52 ++++++++++----------
 4 files changed, 140 insertions(+), 118 deletions(-)

commit de41fdd9d128325c243715ae7ddea219587163a5
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Jan 20 21:12:44 2009 +0000

    Renames the mesh api to the "vertex buffer api".
    
    This better reflects the fact that the api manages sets of vertex attributes,
    and the attributes really have no implied form. It is only when you use the
    attributes to draw that they become mesh like; when you specify how they should
    be interpreted, e.g. as triangle lists or fans etc. This rename frees up the
    term "mesh", which can later be applied to a concept slightly more fitting.
    E.g. at some point it would be nice to have a higher level abstraction that
    sits on top of cogl vertex buffers that adds the concept of faces. (Somthing
    like Blender's mesh objects.) There have also been some discussions over
    particle engines, and these can be defined in terms of emitter faces; so some
    other kind of mesh abstraction might be usefull here.

 cogl-mesh.h                          |  299 -------
 cogl-vertex-buffer.h                 |  308 +++++++
 cogl.h.in                            |    2 +-
 common/Makefile.am                   |    3 +-
 common/cogl-mesh-private.h           |  143 ---
 common/cogl-mesh.c                   | 1618 ---------------------------------
 common/cogl-vertex-buffer-private.h  |  142 +++
 common/cogl-vertex-buffer.c          | 1633 ++++++++++++++++++++++++++++++++++
 doc/reference/cogl/cogl-docs.sgml    |    2 +-
 doc/reference/cogl/cogl-sections.txt |   25 +-
 gl/Makefile.am                       |    2 +-
 gl/cogl-context.c                    |    2 +-
 gl/cogl-context.h                    |    4 +-
 gles/Makefile.am                     |    2 +-
 gles/cogl-context.c                  |    2 +-
 gles/cogl-context.h                  |    4 +-
 16 files changed, 2107 insertions(+), 2084 deletions(-)

commit e9537c749f9fe30f8796b878bb7f74a9d230ce54
Merge: 6e2efcd 4e60f2f
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Jan 20 17:22:21 2009 +0000

    Merge branch 'cogl-float'
    
    Okey; to summarise the changes...
    
    We have converted Clutter and Cogl over to using floating point internally
    instead of 16.16 fixed, but we have maintained the cogl-fixed API as a
    utility to applications in case they want to implement their own optimizations.
    
    The Clutter API has not changed (though ClutterFixed and ClutterUnit are now
    internally floats) but all Cogl entry points have been changed to accept floats
    now instead of CoglFixed.
    
    To summarise the rationale...
    
    There have been a number of issues with using fixed point though out Clutter
    and Cogl including: lack of precision, lack of range, excessive format
    conversion (GPUs tend to work nativly with IEEE floats) and maintainability.
    One of the main arguments for fixed point - performance - hasn't shown
    itself to be serious in practice so far since we seem to be more limited
    by GPU performance and making improvements regarding how we submit data to
    OpenGL[ES]/the GPU has had a more significant impact.
    
    Ref: The recent multiple rectangle queuing changes + the
    cogl-texture-agressive-batching branch which show significant performance
    gains, and that recent tests on the ipodtouch (ARM + MBX) also showed no
    loss of performance running with floats.
    
    So finally; please forgive the inevitable fallout, this is a far reaching
    change. There are still a few known issues with the fixed to float
    conversion but enough works for all our conformance tests to pass, and the
    remaining issues hopefully wont be too tricky to solve. For reference two
    tags will be available either side of this change: "cogl-fixed-end" and
    "cogl-float-start"

commit 4e60f2f5b005cf9a87a011459f51596d755fff8e
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Jan 20 16:20:54 2009 +0000

    [Automatic fixed-to-float.sh change] Applies a number fixed to float patches
    
    To deal with all the corner cases that couldn't be scripted a number of patches
    were written for the remaining 10% of the effort.
    
    Note: again no API changes were made in Clutter, only in Cogl.

 cogl-color.h                         |   10 ++--
 cogl-fixed.h                         |   12 ++++
 cogl-path.h                          |   22 +------
 cogl.h.in                            |   50 +++------------
 common/cogl-color.c                  |    6 +-
 common/cogl-fixed.c                  |    6 ++
 common/cogl-primitives.c             |   33 +++-------
 doc/reference/cogl/cogl-sections.txt |    4 +-
 gl/cogl-primitives.c                 |   63 +++++++------------
 gl/cogl-texture.c                    |    5 +-
 gl/cogl.c                            |  113 ++++++----------------------------
 gles/cogl-gles2-wrapper.c            |   45 +++-----------
 gles/cogl-gles2-wrapper.h            |   31 ++++-----
 gles/cogl-primitives.c               |   92 +++++++++-------------------
 gles/cogl-texture.c                  |    5 +-
 gles/cogl.c                          |   70 +++++++--------------
 16 files changed, 171 insertions(+), 396 deletions(-)

commit 3336359abbb44d2ffad9daaec02266e6c42847d6
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Jan 20 16:20:54 2009 +0000

    [Automatic fixed-to-float.sh change] Applies all scripted changes
    
    This is the result of running a number of sed and perl scripts over the code to
    do 90% of the work in converting from 16.16 fixed to single precision floating
    point.
    
    Note: A pristine cogl-fixed.c has been maintained as a standalone utility API
          so that applications may still take advantage of fixed point if they
          desire for certain optimisations where lower precision may be acceptable.
    
    Note: no API changes were made in Clutter, only in Cogl.
    
    Overview of changes:
    - Within clutter/* all usage of the COGL_FIXED_ macros have been changed to use
    the CLUTTER_FIXED_ macros.
    
    - Within cogl/* all usage of the COGL_FIXED_ macros have been completly stripped
    and expanded into code that works with single precision floats instead.
    
    - Uses of cogl_fixed_* have been replaced with single precision math.h
    alternatives.
    
    - Uses of COGL_ANGLE_* and cogl_angle_* have been replaced so we use a float for
    angles and math.h replacements.

 cogl-color.h              |   50 ++++----
 cogl-path.h               |  100 ++++++++--------
 cogl-texture.h            |   20 ++--
 cogl-types.h              |    4 +-
 cogl.h.in                 |   68 +++++-----
 common/cogl-clip-stack.c  |   46 ++++----
 common/cogl-color.c       |   40 +++---
 common/cogl-primitives.c  |  292 ++++++++++++++++++++++-----------------------
 common/cogl-primitives.h  |   22 ++--
 gl/cogl-context.h         |    8 +-
 gl/cogl-primitives.c      |   44 ++++----
 gl/cogl-texture.c         |  226 +++++++++++++++++-----------------
 gl/cogl.c                 |  290 ++++++++++++++++++++++----------------------
 gles/cogl-context.c       |    2 +-
 gles/cogl-context.h       |   10 +-
 gles/cogl-fbo.c           |   12 +-
 gles/cogl-gles2-wrapper.c |  126 ++++++++++----------
 gles/cogl-gles2-wrapper.h |   54 ++++----
 gles/cogl-primitives.c    |   70 ++++++------
 gles/cogl-texture.c       |  240 ++++++++++++++++++------------------
 gles/cogl.c               |  256 ++++++++++++++++++++--------------------
 21 files changed, 987 insertions(+), 993 deletions(-)

commit 53ba8bd92c17ae95c31570aab50a5492fce720d5
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Jan 16 10:50:53 2009 +0000

    [fixed-to-float-patches] Move the changes to gles2-wrapper.h into the patch
    
    It looks like the changes to cogl-gles2-wrapper.h were accidentally
    committed to the actual file instead of the patch in commit
    de27da0e. This commit moves the changes back into the patch so
    cogl-gles2-wrapper.h is reverted back to master.

 gles/cogl-gles2-wrapper.h |   24 ++++++++++++------------
 1 files changed, 12 insertions(+), 12 deletions(-)

commit eea3d2ce7c7d7540366a77508ac32c90862d13b3
Merge: eb8ce66 6e2efcd
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Jan 15 16:38:49 2009 +0000

    Merge branch 'master' into cogl-float
    
    The patches have been updated to apply cleanly.
    
    The patches for the g_warnings in clutter-actor.c have been removed
    because master now uses CLUTTER_UNITS_FORMAT so they aren't
    necessary. The clutter-units.h patch now sets CLUTTER_UNITS_FORMAT to
    'f'.

commit 6e2efcd45bbf87be307350781713c9b815c28936
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Jan 15 18:09:54 2009 +0000

    Fix GLES backends after merging the async-textures branch
    
    The changes from the GL version of cogl-texture.c have been mirrored
    in the GLES version. This adds the cogl_texture_new_from_bitmap
    function and fixes the build errors.

 gles/cogl-texture.c |   52 +++++++++++++++++++++++++++++---------------------
 1 files changed, 30 insertions(+), 22 deletions(-)

commit 9ec4c29003578f8b1aadef732ea4cf7e53fb49db
Merge: cc1cb6a c78d963
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Jan 14 15:16:41 2009 +0000

    Merge branch 'async-textures'
    
    * async-textures:
      Whitespace fixes in ClutterTexture
      [async-loading] Do not force the texture size on async load
      [async-loading] Update asynchronous image loading
      Add API for extracting image size from a file
      Update/clean and apply the async-texture patch from bug #1144

commit cc1cb6ab36c0ce12eee2dee0fa63806776f7b9c2
Merge: 7223b0a 5dc2b7d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Jan 14 15:00:44 2009 +0000

    Merge branch 'animation-improvements'
    
    * animation-improvements:
      [docs] Add ClutterAnimatable to the API reference
      Add license notice to ClutterAnimation files
      [docs] Update the ClutterAnimation section
      [animation] Extend ClutterAnimation support to all objects
      [animation] Use ClutterAnimatable inside Animation
      [animation] Add ClutterAnimatable
      [animation] Allow registering custom progress function
      [animation] Interval::compute_value should return a boolean
      Animate ClutterColor properties

commit 7223b0a1a535730bdc7bb63db5072a3e3ee0638f
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Nov 27 16:44:39 2008 +0000

    Fix GLES 2 after the multiple-texture-rectangle branch merge
    
    The GLES 2 wrapper needs to set up some state before each
    draw. Previously this was acheived by wrapping glDrawArrays. Since the
    multiple-texture-rectangle branch merge, glDrawElements is used
    instead so we also need a wrapper for that.
    
    It was also directly calling glBindTexture. GLES 2 uses a wrapper for
    this function so that it can cope with GL_ALPHA format textures. The
    format of the current texture needs to be stored as well as the target
    and object number for this to work.

 gles/cogl-context.h       |    1 +
 gles/cogl-gles2-wrapper.c |   20 ++++++++++++++++++--
 gles/cogl-gles2-wrapper.h |    4 +++-
 gles/cogl-texture.c       |    7 ++++++-
 4 files changed, 28 insertions(+), 4 deletions(-)

commit 763d63b74880e2964e8bd0d761900a9a92883afd
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Jan 12 18:32:49 2009 +0000

    Update gtk-doc 'Since' field for cogl_texture_multiple_rectangles
    
    The function has been backported to the 0.8 branch so it will also be
    available in Clutter 0.8.6

 cogl-texture.h |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit a0c5690d55cee4be78c317f37885974cfc3594b5
Merge: b6470ab 0ca5eea
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Jan 13 13:37:38 2009 +0000

    Merge commit 'origin/master' into cogl-material
    
    Conflicts:
    
    	clutter/clutter-texture.c
    	clutter/cogl/cogl-texture.h
    	clutter/cogl/gles/cogl-context.c
    	clutter/cogl/gles/cogl-context.h

commit eb8ce66e617ce5895cb3c6dfe2a1a68effe654af
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Jan 8 22:56:17 2009 +0000

    [cogl/gles] Fixes for building for GLES 1 using floats
    
    * This adds GLfixed -> GLfloat conversion
    * redefines cogl_wrap_glBlahx macros as glBlahf
    * Other misc fixes (mostly corresponding to cogl/gl equivalents)

 gles/cogl-gles2-wrapper.h |   24 ++++++++++++------------
 1 files changed, 12 insertions(+), 12 deletions(-)

commit c78d963e90120dc48c5c862047c2d6aa7165010a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Jan 12 16:52:20 2009 +0000

    Add API for extracting image size from a file
    
    For the asynchronous loading we need a function call that parses
    a file, given its path, and retrieves the image width and height.
    
    This commit adds cogl_bitmap_get_size_from_file() to the CoglBitmap
    API.

 cogl-texture.h              |   17 +++++++++++
 common/cogl-bitmap-pixbuf.c |   65 +++++++++++++++++++++++++++++++++++++------
 common/cogl-bitmap.c        |    8 +++++
 common/cogl-bitmap.h        |    5 +++
 4 files changed, 86 insertions(+), 9 deletions(-)

commit 743b5c03dc6a96395268b353e79d64b743e3e10e
Merge: 0866b07 0ca5eea
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Jan 12 14:43:53 2009 +0000

    Merge branch 'master' into async-textures

commit 0ca5eeaeae305c97eb3bcbc4d1d7c8ce09518879
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Jan 12 11:21:06 2009 +0000

    Declare G_LOG_DOMAIN for COGL
    
    In order to get properly namespaced debug and warning messages
    inside COGL code we need to define the G_LOG_DOMAIN macro.

 common/Makefile.am |    1 +
 gl/Makefile.am     |    1 +
 gles/Makefile.am   |    1 +
 3 files changed, 3 insertions(+), 0 deletions(-)

commit 918794a256f7588e73969ea86948d61a5747e004
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Jan 9 14:26:35 2009 +0000

    [docs] Documentation warnings
    
    Fix the various warnings issued by gtk-doc when enabling the API
    reference generation for both COGL and Clutter.

 cogl-types.h       |   72 ++++++++++++++++++++++++++++-----------------------
 common/cogl-mesh.c |    2 +
 2 files changed, 41 insertions(+), 33 deletions(-)

commit 5dc2b7d5f338f26c12af32bd37cd21be74a5838a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Jan 8 13:38:51 2009 +0000

    Merge branch 'animatable-iface' into animation-improvements
    
    * animatable-iface:
      [docs] Add ClutterAnimatable to the API reference
      Add license notice to ClutterAnimation files
      [animation] Use ClutterAnimatable inside Animation
      [animation] Add ClutterAnimatable

commit 755f3935f37025a940647248f7697948218ceaa7
Merge: b443814 1530be0
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Jan 8 11:48:00 2009 +0000

    Merge branch 'master' into cogl-float

commit 0866b07f30f2d7646e53b6035722e883ccbb9bd6
Author: Chris Lord <chris@linux.intel.com>
Date:   Wed Jan 7 17:02:43 2009 +0000

    Update/clean and apply the async-texture patch from bug #1144

 cogl-texture.h       |   42 ++++++++++++++++++++++++++++++++++++++++
 cogl-types.h         |    7 ++++++
 common/cogl-bitmap.c |   31 +++++++++++++++++++++++++++++
 common/cogl-bitmap.h |    2 -
 gl/cogl-texture.c    |   52 ++++++++++++++++++++++++++++---------------------
 5 files changed, 110 insertions(+), 24 deletions(-)

commit 1530be0af949298e22c8040bbeb15e2edeb65bdf
Merge: df3667d c3e4c6d
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Jan 7 16:10:25 2009 +0000

    Merge branch multiple-texture-rectangle into master
    
    Bug 1289 - Draw multiple glyphs at once
    
    The multiple-texture-rectangle branch adds a new Cogl texture function
    called cogl_texture_multiple_rectangles which is used to draw multiple
    rectangles out of a texture using a single GL call. This is
    significantly faster than drawing the rectangles with individual calls
    on some platforms. The Pango renderer now uses this to speed up
    rendering.
    
    The conflicts are just due to the whitespace fixes in cb569a5.
    
    Conflicts:
    
    	clutter/cogl/gl/cogl-context.c
    	clutter/cogl/gl/cogl-context.h
    	clutter/cogl/gl/cogl-texture.c

commit df3667dd3a6c8bf28090def0bc633ae73f6fc22d
Merge: e06f170 4aea0d6
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Jan 7 12:06:33 2009 +0000

    Merge the ClutterText actor
    
    Merge branch 'text-actor'
    
    * text-actor: (108 commits)
      Re-align ClutterText header file
      [text] Fix cursor sizing
      Comments and whitespace fixes to ClutterText
      [docs] Add newly added :single-line-mode accessors
      Update the ignore file
      [tests] Add text field interactive test
      [text] Add single-line-mode to ClutterText
      [text] Fix the deletion actions
      [text] Use cached length when possible
      [tests] Add unit for the ClutterText:password-char property
      [docs] Update the Text section
      [text] Coalesce text visibility and password character
      Allow localizations to change the text direction
      Clean up the update_pango_context() function
      Pass the PangoContext, not the MainContext
      Revert the logic of the PangoContext check
      Remove the binding pool entry from the list
      Remove BindingPool::list_actions()
      Add ClutterActor::create_pango_context()
      Rename the PangoContext creation functions
      ...

commit b6470ab900f42af1c778a7d77cc2de988825f756
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Jan 6 18:24:57 2009 +0000

    [cogl-material] Restore the GL_TEXTURE_ENV_MODE after material_rectangle
    
    The rest of Cogl expects the texture mode to be GL_MODULATE so it
    needs to be restored after calling cogl_material_rectangle. Otherwise
    cogl_texture_rectangle will fail to blend with the Cogl color properly
    and all of the labels will be black.

 gl/cogl-texture.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

commit cd71b91440f53618e5ad2db7618a0c36466ac4ea
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Jan 6 16:09:55 2009 +0000

    [cogl-material] Make the user_tex_coords parameter of _rectangle const
    
    The array is only used for input so it should be const.

 cogl-texture.h      |   12 ++++++------
 gl/cogl-texture.c   |   14 +++++++-------
 gles/cogl-texture.c |   12 ++++++------
 3 files changed, 19 insertions(+), 19 deletions(-)

commit ba2257973eeb7114368e819a2bf4fdff606ba610
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Jan 6 15:53:35 2009 +0000

    Add cogl-material.h and cogl-matrix.h to libclutterinclude_HEADERS
    
    Otherwise they won't get installed

 gl/Makefile.am   |    4 +++-
 gles/Makefile.am |    4 +++-
 2 files changed, 6 insertions(+), 2 deletions(-)

commit e06f170c0854bed998bf413a3a784e19f9c7be45
Merge: baa63b7 4aea0d6
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Jan 5 11:11:10 2009 +0000

    Merge branch 'units-rework'
    
    * units-rework:
      [texture] Do not mix fixed point and units values
      [tests] Fix the actor detection
      [units] Do not use fixed point and units interchangeably

commit 0408a5d2c5d01035155dcd0cc0529e074361eb8a
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Dec 23 23:50:02 2008 +0000

    [cogl-material] improvements for cogl_material_rectangle
    
    The API has been changed to take an explicit length for the number of
    texture coordinates passed, and it's now documented that if there are
    more layers to the current material than the number of texture coords
    passed, then default coordinates will be generated for the other
    layers.
    
    cogl_material_rectangle should now handle the case where a single
    sliced texture is supplied as a material layer by falling back to
    cogl_texture_rectangle. We are nearly at the point that
    cogl_texture_rectangle could be deprecated. A few issues remain
    though, such as not considering waste in cogl_material_rectangle.

 cogl-texture.h                 |   75 +++++++++----------------------
 common/cogl-material-private.h |   14 ++++--
 gl/cogl-texture.c              |   95 +++++++++++++++++++++++++++++++--------
 3 files changed, 106 insertions(+), 78 deletions(-)

commit 98bd85afaa8c79f9b20536b3f406bf55e5176840
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Dec 23 23:35:49 2008 +0000

    [cogl-material] Adds a cogl_material_set_color function
    
    The other colors of a material; such as the ambient and diffuse color are
    only relevent when we can enable lighting. This adds a basic unlit
    color property.
    
    Later cogl_set_source_color can be integrated to either modify the color
    of the current source material, or maintain a special singlton CoglMaterial
    that is modified by calls to cogl_set_source_color and implicitly made
    current.

 cogl-material.h        |   13 +++++++++++++
 common/cogl-material.c |   30 ++++++++++++++++++++++++++++++
 2 files changed, 43 insertions(+), 0 deletions(-)

commit e4548bcdc59cf0720227fbc87ce1b48eb63fb003
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Dec 23 23:22:40 2008 +0000

    [cogl-material] Some improvements for how we sync CoglMaterial state with OpenGL
    
    This flattens the three functions: cogl_material_flush_gl_material_state,
    .._flush_gl_alpha_func and .._flush_gl_blend_func into one:
    cogl_flush_material_gl_state which doesn't takes a material handle. (the handle
    is instead taken from the context.)
    
    This has allows us to avoid re-submitting some state to OpenGL when the
    material has not been replaced.
    
    Note: Avoiding redundant state changes for material layers isn't dealt with
    in this patch.

 cogl-material.h        |   72 ++++++++++++++----------------
 common/cogl-material.c |  116 +++++++++++++++++++++++++-----------------------
 gl/cogl-context.c      |    1 +
 gl/cogl-context.h      |    1 +
 gl/cogl-texture.c      |    5 +-
 5 files changed, 97 insertions(+), 98 deletions(-)

commit ef992f55db9bb29667ccdd966019195cdb921730
Merge: 5b61106 baa63b7
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Dec 24 00:59:13 2008 +0000

    Merge branch 'master' into cogl-material
    
    Conflicts:
    
    	clutter/cogl/gl/cogl-context.c
    	clutter/cogl/gl/cogl-context.h

commit baa63b7c466397fd9d9e73e3b50399e22a2131f4
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Dec 23 16:29:29 2008 +0000

    White space clean up across a number of files (only removing trailing spaces)
    
    Removed trailing white space from the following files:
    - clutter-clone-texture.c
    - clutter-texture.c
    - clutter-texture.h
    - cogl/cogl-texture.h
    - cogl/gl/cogl-context.c
    - cogl/gl/cogl-texture.c
    - cogl/gl/cogl-context.h

 cogl-texture.h    |   24 ++--
 gl/cogl-context.c |   26 ++--
 gl/cogl-context.h |   16 +-
 gl/cogl-texture.c |  512 ++++++++++++++++++++++++++--------------------------
 4 files changed, 289 insertions(+), 289 deletions(-)

commit 5b61106684b931fba630993f859119a8632effde
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Dec 22 16:19:49 2008 +0000

    [doc] Hooks up cogl-material reference documentation
    
    Adds some more gtk-doc comments to cogl-material.h, and adds a new section to
    cogl-sections.txt

 cogl-material.h                      |  548 +++++++++++++++++++++++-----------
 common/cogl-material.c               |   72 +++---
 doc/reference/cogl/cogl-docs.sgml    |    1 +
 doc/reference/cogl/cogl-sections.txt |   38 +++
 4 files changed, 456 insertions(+), 203 deletions(-)

commit 1a8a9c4bc882a03074db782b54dc2ef8b2da21be
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Dec 18 19:12:09 2008 +0000

    Updates previous GLES multi-texturing code to use CoglMaterial
    
    test-cogl-material now runs on GLES 1 using the PVR GLES1 SDK (though since
    only 2 texture units are supported the third rotating light map doesn't show)
    
    Note: It currently doesn't build for GLES 2.0

 cogl-material.h     |    2 +
 gles/cogl-context.c |    5 +-
 gles/cogl-context.h |    9 +-
 gles/cogl-texture.c |  320 ++++++++++++++++++---------------------------------
 4 files changed, 122 insertions(+), 214 deletions(-)

commit 61b8cc1874ebd5a25d6ffb49bf67c0aa29afb679
Author: Robert Bragg <bob@o-hand.com>
Date:   Thu Dec 11 20:11:30 2008 +0000

    Adds a CoglMaterial abstraction, which includes support for multi-texturing
    
    My previous work to provide muti-texturing support has been extended into
    a CoglMaterial abstraction that adds control over the texture combine
    functions (controlling how multiple texture layers are blended together),
    the gl blend function (used for blending the final primitive with the
    framebuffer), the alpha function (used to discard fragments based on
    their alpha channel), describing attributes such as a diffuse, ambient and
    specular color (for use with the standard OpenGL lighting model), and
    per layer rotations. (utilizing the new CoglMatrix utility API)
    
    For now the only way this abstraction is exposed is via a new
    cogl_material_rectangle function, that is similar to cogl_texture_rectangle
    but doesn't take a texture handle (the source material is pulled from
    the context), and the array of texture coordinates is extended to be able
    to supply coordinates for each layer.
    
    Note: this function doesn't support sliced textures; supporting sliced
    textures is a non trivial problem, considering the ability to rotate layers.
    Note: cogl_material_rectangle, has quite a few workarounds, for a number of
    other limitations within Cogl a.t.m.
    Note: The GLES1/2 multi-texturing support has yet to be updated to use
    the material abstraction.

 cogl-material.h                |  481 ++++++++++++++++++++++++++++
 cogl.h.in                      |    2 +
 common/Makefile.am             |    3 +-
 common/cogl-material-private.h |   72 +++++
 common/cogl-material.c         |  680 ++++++++++++++++++++++++++++++++++++++++
 common/cogl-matrix.h           |   57 ----
 gl/cogl-context.c              |    5 +-
 gl/cogl-context.h              |    9 +-
 gl/cogl-texture-private.h      |    8 +-
 gl/cogl-texture.c              |  307 +++++++------------
 10 files changed, 1354 insertions(+), 270 deletions(-)

commit cdf19f3281c92cb3cd46df165f8f15153ac1aa0f
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Dec 22 16:16:07 2008 +0000

    [doc] Hooks up cogl-matrix reference documentation
    
    Adds a few more gtk-doc notes to cogl-matrix.h, and adds a new section to
    cogl-sections.txt

 cogl-matrix.h                        |   54 ++++++++++++++++++++++++++++++---
 doc/reference/cogl/cogl-docs.sgml    |    1 +
 doc/reference/cogl/cogl-sections.txt |   11 +++++++
 3 files changed, 61 insertions(+), 5 deletions(-)

commit af6c78e9b43a4739a39bbc4c740c2563af8a116a
Author: Robert Bragg <bob@o-hand.com>
Date:   Thu Dec 11 20:08:15 2008 +0000

    Adds CoglMatrix utility code

 cogl-matrix.h        |  102 +++++++++++++++++++++++++++++++++++++
 common/Makefile.am   |    3 +-
 common/cogl-matrix.c |  138 ++++++++++++++++++++++++++++++++++++++++++++++++++
 common/cogl-matrix.h |   57 +++++++++++++++++++++
 4 files changed, 299 insertions(+), 1 deletions(-)

commit 509928cc76e8e35e51eae8d6db10fe5763e40e4f
Author: Robert Bragg <bob@o-hand.com>
Date:   Thu Dec 11 15:33:38 2008 +0000

    [multi-texturing] This adds a new cogl_multi_texture API for GL,GLES1 + GLES2
    
    Multitexturing allows blending multiple layers of texture data when texturing
    some geometry. A common use is for pre-baked light maps which can give nice
    lighting effects relativly cheaply. Another is for dot-3 bump mapping, and
    another is applying alpha channel masks.
    
    The dot-3 bump mapping would be really nice one day, but currently cogl doesn't
    support lighting so that's not dealt with in this patch.
    
    notable limitations:
    - It can only texture rectangles a.t.m - and like cogl_texture_rectangle there
    is no support for rotated texturing.
    - Sliced textures are not supported. I think I've figured out how to handle
    layers with different slice sizes at least for rectangular geometry, but I'm
    not sure how complex it becomes once rotations are possible and texturing
    arbitrary cogl_polygons.
    - Except for this new API, cogl still doesn't know about more than one texture
    unit, and so has no way of caching any enables related to other units. So that
    things don't break it's currently necessary to disable anything to do with
    additional units as soon as we are done with them which isn't ideal.
    - No clutter API yet.

 cogl-texture.h                       |   62 ++++
 common/cogl-handle.h                 |    6 +
 gl/cogl-context.c                    |    3 +
 gl/cogl-context.h                    |    6 +
 gl/cogl-defines.h.in                 |    1 +
 gl/cogl-texture-private.h            |   27 ++-
 gl/cogl-texture.c                    |  275 +++++++++++++++++-
 gles/cogl-context.c                  |    4 +-
 gles/cogl-context.h                  |    6 +
 gles/cogl-defines.h.in               |   12 +-
 gles/cogl-fixed-fragment-shader.glsl |   33 +--
 gles/cogl-fixed-vertex-shader.glsl   |   19 +-
 gles/cogl-gles2-wrapper.c            |  552 ++++++++++++++++++++++++++++------
 gles/cogl-gles2-wrapper.h            |  131 ++++++---
 gles/cogl-texture-private.h          |   21 ++
 gles/cogl-texture.c                  |  281 +++++++++++++++++-
 16 files changed, 1260 insertions(+), 179 deletions(-)

commit b4438143e586796b34c4800833eefa048a352add
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Dec 19 16:44:40 2008 +0000

    Merge branch 'cairo-texture'
    
    * cairo-texture:
      [cairo-texture] Remove the construct only restriction on surface size
      [cairo-texture] Silently discard 0x0 surfaces
      Re-indent ClutterPath header
      Add a test case for the new cairo path functions
      Add clutter_path_to_cairo_path and clutter_path_add_cairo_path
      Warn instead of returning in the IN_PAINT check
      Small documentation fixes
      Print a warning when creating a cairo_t while painting
      Do not set the IN_PAINT flag inside the Stage paint
      Set the IN_PAINT private flag
      [docs] Add ClutterCairoTexture to the API reference
      Add ClutterCairoTexture
      Require Cairo as a Clutter dependency
    
    Conflicts:
    
      Fix merge conflict in clutter/clutter-path.h

commit c3e4c6df08bccda04a525cacba2cb8ab24d5f259
Merge: b11b74f 4aea0d6
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Dec 10 12:25:25 2008 +0000

    Merge commit 'git-svn' into multiple-texture-rectangle

commit 4aea0d6e48e14a7521f0edeb288f55ff4417e0d2
Author: Neil Roberts <neil@openedhand.com>
Date:   Wed Dec 10 12:13:20 2008 +0000

    	* clutter/cogl/gl/cogl.c:
    	* clutter/cogl/gl/cogl-defines.h.in:
    	* clutter/cogl/gl/cogl-context.h:
    	* clutter/cogl/common/cogl-mesh.c: Rename the glBufferDataSub
    	function to glBufferSubData. When calling glXGetProcAddress with
    	the former Mesa returns a stub dispatch function which will
    	segfault if you try to use it. With NVIDIA it returns NULL so
    	_cogl_features_init decides the card doesn't have VBO support.

 common/cogl-mesh.c   |   14 ++------------
 gl/cogl-context.h    |    2 +-
 gl/cogl-defines.h.in |    2 +-
 gl/cogl.c            |    8 ++++----
 4 files changed, 8 insertions(+), 18 deletions(-)

commit b11b74fcdec86233c67d52d4bc84e8da6de15be2
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Dec 9 18:03:29 2008 +0000

    Use a single index array
    
    There's no point in clearing the index array because it is always the
    same sequence of indices regardless of the vertices. Instead it is
    just added to when there are more vertices than ever before.

 gl/cogl-texture.c   |   51 +++++++++++++++++++++++++++++++++------------------
 gles/cogl-texture.c |   51 +++++++++++++++++++++++++++++++++------------------
 2 files changed, 66 insertions(+), 36 deletions(-)

commit 8caf39eb00ea4db7c57b58c25a93ee23dca451c7
Merge: 223c122 58f6aaa
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Dec 9 15:10:56 2008 +0000

    Merge commit 'git-svn' into multiple-texture-rectangle

commit 223c1225ea92817a411e86b81adfcae04dba1636
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Dec 9 15:10:33 2008 +0000

    Support cogl_texture_multiple_rectangles in GL ES backend

 gles/cogl-context.c |   14 ++-
 gles/cogl-context.h |   11 ++-
 gles/cogl-texture.c |  343 +++++++++++++++++++++++++++++----------------------
 3 files changed, 212 insertions(+), 156 deletions(-)

commit 59aef7488f98fbeb3cedc8f535fbb964b105a51a
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Dec 9 15:01:10 2008 +0000

    Minor fix to indentation in gl/cogl-texture.c

 gl/cogl-texture.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 3f492e60542ce8303c9863798a935d7967d6d16d
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Dec 9 13:16:42 2008 +0000

    Add gtk-doc for cogl_texture_multiple_rectangles

 cogl-texture.h                       |   18 ++++++++++++++++++
 doc/reference/cogl/cogl-sections.txt |    1 +
 2 files changed, 19 insertions(+), 0 deletions(-)

commit 778a9f7d6761e22937e48c9d63001d34b30a9f4a
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Dec 9 13:02:28 2008 +0000

    Use glDrawRangeElements to share vertices
    
    When drawing a quad from cogl_texture_multiple_rectangles share two of
    the vertices in each triangle by using indices.

 gl/cogl-context.c |    4 ++
 gl/cogl-context.h |    1 +
 gl/cogl-texture.c |  157 ++++++++++++++++++++++++++++-------------------------
 3 files changed, 88 insertions(+), 74 deletions(-)

commit 3b5eb3afebaeacbdf70e01517e4375c4db1fc10c
Merge: 7a276af 58f6aaa
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Dec 4 18:08:40 2008 +0000

    Merge commit 'git-svn' into multiple-texture-rectangle
    
    Conflicts:
    
    	clutter/cogl/gl/cogl-texture.c

commit 7a276affd68d928e5afcb9faa0e8ada69c2141f3
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Dec 4 17:50:03 2008 +0000

    Use the correct length in _cogl_texture_flush_vertices
    
    The check for whether there are any rectangles to flush was using the
    wrong value so it would always flush.
    
    Thanks to Johan Bilien for spotting.

 gl/cogl-texture.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 58f6aaa589ec8138a3c643501e30f8e514e07b86
Author: Neil Roberts <neil@openedhand.com>
Date:   Thu Dec 4 17:24:33 2008 +0000

    	Bug 1297 - Bring back support for GL_ARB_texture_rectangle
    
    	* clutter/cogl/gl/cogl-texture.c (cogl_texture_new_from_foreign,
    	(_cogl_texture_quad_hw, cogl_texture_polygon),
    	(_cogl_texture_quad_sw): Support GL_ARB_texture_rectangle textures
    
    	* clutter/glx/clutter-glx-texture-pixmap.c: Use rectangle textures
    	when NPOTs are not available or it is forced by the
    	CLUTTER_PIXMAP_TEXTURE_RECTANGLE environment variable.
    
    	* clutter/cogl/gl/cogl.c (cogl_enable): Allow enabling
    	GL_TEXTURE_RECTANGLE_ARB.

 gl/cogl-texture.c |  109 +++++++++++++++++++++++++++++++++++++----------------
 gl/cogl.c         |    8 +++-
 2 files changed, 83 insertions(+), 34 deletions(-)

commit 10d7cf3273e8963ee465d8c71cf28d02e8252cd9
Author: Neil Roberts <neil@openedhand.com>
Date:   Thu Dec 4 13:45:09 2008 +0000

    	Bug 1172 - Disjoint paths and clip to path
    
    	* clutter/cogl/cogl-path.h:
    	* clutter/cogl/common/cogl-primitives.c:
    	* clutter/cogl/common/cogl-primitives.h:
    	* clutter/cogl/gl/cogl-primitives.c:
    	* clutter/cogl/gles/cogl-primitives.c: Changed the semantics of
    	cogl_path_move_to. Previously this always started a new path but
    	now it instead starts a new disjoint sub path. The path isn't
    	cleared until you call either cogl_path_stroke, cogl_path_fill or
    	cogl_path_new. There are also cogl_path_stroke_preserve and
    	cogl_path_fill_preserve functions.
    
    	* clutter/cogl/gl/cogl-context.c:
    	* clutter/cogl/gl/cogl-context.h:
    	* clutter/cogl/gles/cogl-context.c:
    	* clutter/cogl/gles/cogl-context.h: Convert the path nodes array
    	to a GArray.
    
    	* clutter/cogl/gl/cogl-texture.c:
    	* clutter/cogl/gles/cogl-texture.c: Call cogl_clip_ensure
    
    	* clutter/cogl/common/cogl-clip-stack.c:
    	* clutter/cogl/common/cogl-clip-stack.h: Simplified the clip
    	stack code quite a bit to make it more maintainable.  Previously
    	whenever you added a new clip it would go through a separate route
    	to immediately intersect with the current clip and when you
    	removed it again it would immediately rebuild the entire clip. Now
    	when you add or remove a clip it doesn't do anything immediately
    	but just sets a dirty flag instead.
    
    	* clutter/cogl/gl/cogl.c:
    	* clutter/cogl/gles/cogl.c: Taken away the code to intersect
    	stencil clips when there is exactly one stencil bit. It won't work
    	with path clips and I don't know of any platform that doesn't have
    	eight or zero stencil bits. It needs at least three bits to
    	intersect a path with an existing clip. cogl_features_init now
    	just decides you don't have a stencil buffer at all if you have
    	less than three bits.
    
    	* clutter/cogl/cogl.h.in: New functions and documentation.
    
    	* tests/interactive/test-clip.c: Replaced with a different test
    	that lets you add and remove clips. The three different mouse
    	buttons add clips in different shapes. This makes it easier to
    	test multiple levels of clipping.
    
    	* tests/interactive/test-cogl-primitives.c: Use
    	cogl_path_stroke_preserve when using the same path again.
    
    	* doc/reference/cogl/cogl-sections.txt: Document the new
    	functions.

 cogl-path.h                          |   88 ++++--
 cogl.h.in                            |   43 +++-
 common/cogl-clip-stack.c             |  348 ++++++++++++++-------
 common/cogl-clip-stack.h             |   15 +-
 common/cogl-primitives.c             |   63 +++-
 common/cogl-primitives.h             |   22 ++-
 doc/reference/cogl/cogl-sections.txt |    6 +
 gl/cogl-context.c                    |   13 +-
 gl/cogl-context.h                    |   10 +-
 gl/cogl-primitives.c                 |  206 +++++++++----
 gl/cogl-texture.c                    |    4 +
 gl/cogl.c                            |  161 +---------
 gles/cogl-context.c                  |   14 +-
 gles/cogl-context.h                  |   10 +-
 gles/cogl-primitives.c               |  567 ++++++++++++++++++++--------------
 gles/cogl-texture.c                  |    4 +
 gles/cogl.c                          |  154 +---------
 17 files changed, 977 insertions(+), 751 deletions(-)

commit be655b05aded5c0529f160a4c0486f7c69cb6015
Author: Neil Roberts <neil@openedhand.com>
Date:   Mon Dec 1 16:27:54 2008 +0000

    	Bug 1305 - NPOT textures unaligned to a pixel sometimes have
    	border artifacts
    
    	* clutter/cogl/gl/cogl-texture.c: Set the wrap mode of a texture
    	on demand
    
    	Instead of setting the wrap mode once per texture at creation, it
    	is now changed whenever the texture is drawn. The previous value
    	is cached so that it isn't changed if the value is the same.
    
    	This is used in _cogl_texture_quad_hw to only enable GL_REPEAT
    	mode when the coordinates are not in the range [0,1]. Otherwise it
    	can pull in pixels from the other edge when the texture is
    	rendered off-pixel.

 gl/cogl-texture.c |  102 ++++++++++++++++++++++++++---------------------------
 1 files changed, 50 insertions(+), 52 deletions(-)

commit 420b1f0791eb2c1b06c115ff33cc49a99eb95d25
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Nov 28 14:20:07 2008 +0000

    Use GL_TRIANGLES for the texture vertex array
    
    Most cards don't actually support GL_QUADS and they are deprecated in
    GL 3.0 so there is a chance it will perform faster with GL_TRIANGLES
    even though it has to submit two extra vertices.

 gl/cogl-texture.c |   32 +++++++++++++++++++++++---------
 1 files changed, 23 insertions(+), 9 deletions(-)

commit c502c5c3f41b1dc0f165930c6feb5a3f00aec90b
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Nov 28 12:44:21 2008 +0000

    Add cogl_texture_multiple_rectangles
    
    This takes an array of sets of 8 floats to describe the rectangles. It
    tries to send the geometry with a single glDrawArrays as far as
    possible. cogl_texture_rectangle is now just a wrapper around
    cogl_texture_multiple_rectangles.

 cogl-texture.h    |    5 +++
 gl/cogl-texture.c |   74 +++++++++++++++++++++++++++++++++++-----------------
 2 files changed, 55 insertions(+), 24 deletions(-)

commit 47a21cd94f5499201d014452bb8b0c2fc77f5c55
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Nov 28 12:33:19 2008 +0000

    Make cogl_texture_rectangle use the vertex array
    
    cogl_texture_quad_hw and _sw now just add vertices to the vertex
    array. The last texture used is stored and if a different texture is
    encountered then flushes the vertices. cogl_texture_rectangle always
    flushes the vertices after calling either of the functions.

 gl/cogl-context.h |    7 ++-
 gl/cogl-texture.c |  199 ++++++++++++++++++++++++++++++-----------------------
 2 files changed, 118 insertions(+), 88 deletions(-)

commit 5557de30eb80dcb5dfd36b142492cf3d231a89f8
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Nov 27 16:44:39 2008 +0000

    Use a GArray for the texture vertices in cogl_texture_polygon
    
    Previously it was a dynamic array that was manually reallocated.

 gl/cogl-context.c |   11 +++++++----
 gl/cogl-context.h |    3 +--
 gl/cogl-texture.c |   32 +++++++++-----------------------
 3 files changed, 17 insertions(+), 29 deletions(-)

commit f4465ccb05480647a9418dd56a6c6ea511315791
Author: Neil Roberts <neil@openedhand.com>
Date:   Wed Nov 26 16:35:25 2008 +0000

    	* clutter/cogl/gl/cogl-texture.c (cogl_texture_rectangle): Fixed
    	the test for whether to use hardware tiling. Previously it assumed
    	that texture coordinates are in increasing order but this is not
    	the case since bug 1057 was fixed. The texture coordinates are now
    	sorted later. It also allowed negative coordinates which doesn't
    	make sense if the texture has waste.

 gl/cogl-texture.c |   33 ++++++++++++---------------------
 1 files changed, 12 insertions(+), 21 deletions(-)

commit 50b6ecc56d70ddfcb076cc21448974941d8c64d9
Author: Neil Roberts <neil@openedhand.com>
Date:   Mon Nov 24 12:27:48 2008 +0000

    	* clutter/cogl/gl/cogl-texture.c (cogl_texture_polygon): Fix the
    	equation for calculating texture coordinates when using sliced
    	textures. This became broken in revision 3520.

 gl/cogl-texture.c |   18 +++++++++++-------
 1 files changed, 11 insertions(+), 7 deletions(-)

commit d741f67cfc26ca3568c27b428f04ff146e599c13
Author: Neil Roberts <neil@openedhand.com>
Date:   Fri Nov 21 16:18:58 2008 +0000

    	Bug 1271 - mingw compiling failed: undefined reference to
    	`_glDrawRangeElements@24'
    
    	Resolve glDrawRangeElements with cogl_get_proc_address instead of
    	calling it directly because functions defined in GL > 1.1 are not
    	directly exported under Windows.
    
    	* clutter/cogl/common/cogl-mesh.c: Use the function pointer from
    	the context
    
    	* clutter/cogl/gl/cogl-context.c (cogl_create_context): Initialise
    	function pointer.
    
    	* clutter/cogl/gl/cogl-context.h (CoglContext): Add a function
    	pointer
    
    	* clutter/cogl/gl/cogl-defines.h.in: Add a typedef for the
    	function pointer.
    
    	* clutter/cogl/gl/cogl.c (_cogl_features_init): Resolve
    	glDrawRangeElements

 common/cogl-mesh.c   |   11 ++++++++++-
 gl/cogl-context.c    |    2 ++
 gl/cogl-context.h    |    2 ++
 gl/cogl-defines.h.in |    9 +++++++++
 gl/cogl.c            |    7 +++++++
 5 files changed, 30 insertions(+), 1 deletions(-)

commit 454d4a69a2f88d5d16c5f4fb8ab12a2474c1e06b
Author: Robert Bragg <bob@openedhand.com>
Date:   Tue Nov 18 16:24:31 2008 +0000

    	* clutter/cogl/common/cogl-mesh.c:
    	Re-works validate_custom_attribute_name() so it doesn't access an
    	un-initialised variable.

 common/cogl-mesh.c |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

commit 8b557c6c139e614b31ffd3f35b095e0253968377
Author: Robert Bragg <bob@openedhand.com>
Date:   Tue Nov 18 16:24:09 2008 +0000

    	A comparison of gl/cogl-texture.c and gles/cogl-texture.c, to reduce
    	differences and improve maintainability.
    
    	* clutter/cogl/gl/cogl-context.h:
    	Adds a CoglTextureGLVertex typedef + texture_vertices and
    	texture_vertices_size members to CoglContext for using vertex arrays
    	like GLES does
    
    	* clutter/cogl/gl/cogl-context.c:
    	Initializes texture_vertices + texture_vertices_size members
    
    	* clutter/cogl/gl/cogl-internal.h:
    	Adds COGL_ENABLE_COLOR_ARRAY
    
    	* clutter/cogl/gl/cogl.c:
    	Add COGL_ENABLE_COLOR_ARRAY support to cogl_enable
    
    	* clutter/cogl/gles/cogl-context.h:
    	Change the CoglTextureGLVertex to use GLfloat for the position
    	and texture coord attributes and GLubyte for the color.
    
    	* clutter/cogl/gles/cogl-texture-private.h:
    	Adds a wrap_mode member like GL has.
    
    	* clutter/cogl/gl/cogl-texture.c
    	* clutter/cogl/gles/cogl-texture.c:
    	Improves the comparability of the files, such that the remaining
    	differences, better reflect the fundamental differences needed
    	between GL and GLES. Notably GL no longer uses glBegin/glEnd for
    	submitting vertices, it uses vertex arrays like GLES and this gives
    	a small but measurable fps improvement for test-text.

 gl/cogl-context.c           |    2 +
 gl/cogl-context.h           |   11 +-
 gl/cogl-internal.h          |    3 +-
 gl/cogl-texture.c           |  415 ++++++++++++++++---------------
 gl/cogl.c                   |    3 +
 gles/cogl-context.h         |    6 +-
 gles/cogl-texture-private.h |    1 +
 gles/cogl-texture.c         |  591 ++++++++++++++++++++++++++++---------------
 8 files changed, 625 insertions(+), 407 deletions(-)

commit 6731dfa468cffe0db1c1c3de621faddfed04bb54
Author: Robert Bragg <bob@openedhand.com>
Date:   Tue Nov 18 16:23:40 2008 +0000

    	* clutter/cogl/gl/cogl-internal.h
    	* clutter/cogl/gles/cogl-internal.h:
    	Removes semicolon after the GE() macro since that breaks using it as a
    	single statement.

 gl/cogl-internal.h   |    2 +-
 gles/cogl-internal.h |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit e7338896553efe18bd4ff72426e4e32f6d8d3910
Author: Emmanuele Bassi <ebassi@openedhand.com>
Date:   Tue Nov 18 15:21:02 2008 +0000

    2008-11-18  Emmanuele Bassi  <ebassi@linux.intel.com>
    
    	* clutter/cogl/cogl-shader.h: Add a function for setting an
    	integer uniform, similar to cogl_program_uniform_1f().
    
    	* clutter/cogl/gl/cogl-program.c: Implement the GL version
    	of cogl_program_uniform_1i().
    
    	* clutter/cogl/gles/cogl-program.c: Implement the GLES version
    	of cogl_program_uniform_1i().

 cogl-shader.h       |   15 +++++++++++++--
 gl/cogl-program.c   |    8 ++++++++
 gles/cogl-program.c |    7 +++++++
 3 files changed, 28 insertions(+), 2 deletions(-)

commit 2142062ba1da5563c264946815fe00550c7679aa
Author: Emmanuele Bassi <ebassi@openedhand.com>
Date:   Tue Nov 18 15:08:40 2008 +0000

    2008-11-18  Emmanuele Bassi  <ebassi@linux.intel.com>
    
    	Bug 1049 - Clutter doesn't support most GLSL uniforms (patch
    	by Chris Lord and Neil Roberts)
    
    	* README: Update release notes.
    
    	* clutter/Makefile.am:
    	* clutter/clutter-shader-types.[ch]: Add GValue types for
    	shader values.
    
    	* clutter/clutter-actor.[ch]: Update the shader API to use
    	the newly added GValue support for GLSL shader uniform
    	setters.
    
    	* clutter/clutter-shader.[ch]: Add float and integer convenience
    	API for single value GLSL uniform setters.
    
    	* clutter/cogl/cogl-shader.h: Add new uniform setters.
    
    	* clutter/cogl/gl/cogl-context.c:
    	* clutter/cogl/gl/cogl-context.h:
    	* clutter/cogl/gl/cogl-defines.h.in:
    	* clutter/cogl/gl/cogl-program.c:
    	* clutter/cogl/gl/cogl.c: Update the GL implementation of COGL
    	to handle the GLSL uniform setters.
    
    	* clutter/cogl/gles/cogl-gles2-wrapper.c:
    	* clutter/cogl/gles/cogl-gles2-wrapper.h:
    	* clutter/cogl/gles/cogl-internal.h:
    	* clutter/cogl/gles/cogl-program.c: Update the GLES 2.0 implementation
    	of COGL to handle the GLSL uniform setters.
    
    	* doc/reference/clutter/clutter-sections.txt:
    	* doc/reference/cogl/cogl-sections.txt: Update the documentation.
    
    	* tests/interactive/test-fbo.c:
    	* tests/interactive/test-shader.c: Update the shader tests.

 cogl-shader.h                        |   66 +++++++++++++++---
 doc/reference/cogl/cogl-sections.txt |    3 +
 gl/cogl-context.c                    |   18 +++++
 gl/cogl-context.h                    |   21 ++++++-
 gl/cogl-defines.h.in                 |  126 ++++++++++++++++++++++++++++++++--
 gl/cogl-program.c                    |   99 ++++++++++++++++++++++++++-
 gl/cogl.c                            |   93 ++++++++++++++++++++++++-
 gles/cogl-gles2-wrapper.c            |   81 +++++++++++++++++++++-
 gles/cogl-gles2-wrapper.h            |    4 +-
 gles/cogl-internal.h                 |   24 +++++++
 gles/cogl-program.c                  |  109 ++++++++++++++++++++++++++++-
 11 files changed, 621 insertions(+), 23 deletions(-)

commit fe7aa83f8651c477c45d1f5dd9908495668fb0d6
Author: Neil Roberts <neil@openedhand.com>
Date:   Thu Nov 13 14:44:27 2008 +0000

    	* clutter/cogl/gles/cogl-gles2-wrapper.h:
    	* clutter/cogl/gles/cogl-gles2-wrapper.c:
    	Initialise the 'tex' sampler uniform to 0. The GLSL spec
    	specifically says that you must initialize sampler uniforms. This
    	fixes texturing for GLES 2 when using the PowerVR simulator via
    	software Mesa.

 gles/cogl-gles2-wrapper.c |    7 +++++++
 gles/cogl-gles2-wrapper.h |    5 ++++-
 2 files changed, 11 insertions(+), 1 deletions(-)

commit 8ae02decb4617896e05d46cbacadc42c88b5ba0c
Author: Robert Bragg <bob@openedhand.com>
Date:   Thu Nov 13 14:28:16 2008 +0000

    	Gets the mesh API working with GLES2
    
    	* clutter/cogl/common/cogl-mesh.c:
    	Make sure we use the appropriate cogl_wrap_gl* funcs as appropriate
    
    	* clutter/cogl/gles/cogl-gles2-wrapper.c
    	* clutter/cogl/gles/cogl-gles2-wrapper.h:
    	In our glColorPointer wrapper we needed to mark our color attribute
    	as normalized.
    
    	* tests/conform/Makefile.am:
    	When creating unit test symlinks we use the -l gtester option to
    	list tests, but when using the PVR SDK the test binary also spews
    	out some extra info that caused lots of random symlinks to be
    	created. We now grep for lines starting with a '/'
    
    	* tests/conform/test-mesh-contiguous.c
    	* tests/conform/test-mesh-mutability.c:
    	Use cogl_set_source_color instead of directly calling glColor4ub

 common/cogl-mesh.c        |   27 +++++++++++++++++++++------
 gles/cogl-gles2-wrapper.c |   16 ++++++++++++++++
 gles/cogl-gles2-wrapper.h |    4 ++++
 3 files changed, 41 insertions(+), 6 deletions(-)

commit 536347be6981631c004c3b8d3292f202c658864b
Author: Emmanuele Bassi <ebassi@openedhand.com>
Date:   Wed Nov 12 13:57:58 2008 +0000

    2008-11-12  Emmanuele Bassi  <ebassi@linux.intel.com>
    
    	* clutter/cogl/cogl-color.h:
    	* clutter/cogl/cogl-path.h:
    	* clutter/cogl/cogl-types.h:
    	* clutter/cogl/common/cogl-color.c: Deprecated cogl_color()
    	in favour of cogl_set_source_color() and friends; store the
    	CoglColor components as unsigned bytes instead of fixed point
    	normalized values; add functions for allocating, copying and
    	freeing CoglColor, for use of language bindings.
    
    	* clutter/cogl/cogl.h.in:
    	* clutter/cogl/cogl-deprecated.h: Added cogl-deprecated.h,
    	an header file containing the deprecation symbols similar
    	to clutter-deprecated.h.
    
    	* clutter/cogl/gl/Makefile.am:
    	* clutter/cogl/gl/cogl-texture.c:
    	* clutter/cogl/gl/cogl.c:
    	* clutter/cogl/gles/Makefile.am:
    	* clutter/cogl/gles/cogl-texture.c:
    	* clutter/cogl/gles/cogl.c: Update the GL and GLES implementations
    	of COGL after the CoglColor changes.
    
    	* clutter/clutter-actor.c:
    	* clutter/clutter-clone-texture.c:
    	* clutter/clutter-entry.c:
    	* clutter/clutter-label.c:
    	* clutter/clutter-rectangle.c:
    	* clutter/clutter-texture.c: Do not use CoglColor whenever it
    	is possible, and use cogl_set_source_color4ub() instead.
    
    	* clutter/pango/cogl-pango-render.c: Ditto as above.
    
    	* doc/reference/clutter/subclassing-ClutterActor.xml:
    	* doc/reference/cogl/cogl-sections.txt: Update the documentation.
    
    	* tests/interactive/test-cogl-offscreen.c:
    	* tests/interactive/test-cogl-primitives.c:
    	* tests/interactive/test-cogl-tex-convert.c:
    	* tests/interactive/test-cogl-tex-foreign.c:
    	* tests/interactive/test-cogl-tex-getset.c:
    	* tests/interactive/test-cogl-tex-polygon.c:
    	* tests/interactive/test-cogl-tex-tile.c:
    	* tests/interactive/test-paint-wrapper.c: Drop the usage of
    	CoglColor whenever it is possible.

 cogl-color.h                         |   83 +++++++++++++++++++++++++++-
 cogl-deprecated.h                    |    5 ++
 cogl-path.h                          |   10 ---
 cogl-types.h                         |    8 +-
 cogl.h.in                            |    1 +
 common/cogl-color.c                  |  101 +++++++++++++++++++++++++++-------
 doc/reference/cogl/cogl-sections.txt |   18 +++++-
 gl/Makefile.am                       |    2 +
 gl/cogl-texture.c                    |    2 +-
 gl/cogl.c                            |   10 ++--
 gles/Makefile.am                     |    2 +
 gles/cogl-texture.c                  |    4 +-
 gles/cogl.c                          |    2 +-
 13 files changed, 199 insertions(+), 49 deletions(-)

commit a55b588b30d5363b608774faa6578ab5a0cc41f6
Author: Neil Roberts <neil@openedhand.com>
Date:   Wed Nov 12 13:03:09 2008 +0000

    	Bug 1057 - cogl_texture_rectangle doesn't support backward
    	coordinates
    
    	* clutter/cogl/gl/cogl-texture.c: Instead of sorting the vertex
    	and texture coordinates passed to cogl_texture_rectangle, just
    	swap both sets whenever the texture coordinates are backward.

 gl/cogl-texture.c   |   56 +++++++++++++++++++++------------------------------
 gles/cogl-texture.c |   54 +++++++++++++++++++++----------------------------
 2 files changed, 46 insertions(+), 64 deletions(-)

commit ba1cab0a624d188e763a11daa57af7423aa28367
Author: Neil Roberts <neil@openedhand.com>
Date:   Wed Nov 12 12:08:44 2008 +0000

    	* clutter/cogl/gles/Makefile.am (libclutterinclude_HEADERS):
    	* clutter/cogl/gl/Makefile.am (libclutterinclude_HEADERS):
    	* clutter/cogl/common/Makefile.am
    	(libclutter_cogl_common_la_SOURCES): Move cogl-mesh.h into the
    	headers for libclutter so that it will get installed.

 common/Makefile.am |    3 +--
 gl/Makefile.am     |    3 ++-
 gles/Makefile.am   |    3 ++-
 3 files changed, 5 insertions(+), 4 deletions(-)

commit 46e4bd3a827861d568500282d21b75fc1a15e4c9
Author: Neil Roberts <neil@openedhand.com>
Date:   Wed Nov 12 10:55:06 2008 +0000

    	Fix warnings in mesh tests
    
    	* tests/conform/test-mesh-mutability.c (on_paint):
    	* tests/conform/test-mesh-interleved.c (on_paint):
    	* tests/conform/test-mesh-contiguous.c (on_paint): Use g_usleep
    	instead of sleep
    
    	* tests/conform/test-mesh-mutability.c (queue_redraw):
    	* tests/conform/test-mesh-interleved.c (queue_redraw):
    	* tests/conform/test-mesh-contiguous.c (queue_redraw): Added
    	missing return statement
    
    	* clutter/cogl/cogl-mesh.h: Add a declaration for
    	cogl_mesh_submit
    
    	* clutter/cogl/common/cogl-mesh.c (cogl_mesh_submit): Move the
    	documentation to cogl-mesh.h to match the rest of the functions

 cogl-mesh.h        |   13 +++++++++++++
 common/cogl-mesh.c |   10 ----------
 2 files changed, 13 insertions(+), 10 deletions(-)

commit 1e68a8d59eb5a6dda5249e7a953259769855722a
Author: Robert Bragg <bob@openedhand.com>
Date:   Mon Nov 10 18:53:14 2008 +0000

    	Bug 1164 - Implements the proposed Mesh API
    
    	* clutter/cogl/cogl-mesh.h
    	* clutter/cogl/cogl-types.h
    	* clutter/cogl/cogl.h.in
    	* clutter/cogl/common/Makefile.am
    	* clutter/cogl/common/cogl-mesh-private.h
    	* clutter/cogl/common/cogl-mesh.c
    	* clutter/cogl/gl/cogl-context.c
    	* clutter/cogl/gl/cogl-context.h
    	* clutter/cogl/gl/cogl-defines.h.in
    	* clutter/cogl/gl/cogl.c
    	* clutter/cogl/gles/cogl-context.c
    	* clutter/cogl/gles/cogl-context.h
    	* doc/reference/cogl/cogl-docs.sgml
    	* doc/reference/cogl/cogl-sections.txt:
    	The Mesh API provides a means for submitting an extensible number of
    	per vertex attributes to OpenGL in a way that doesn't require format
    	conversions and so that the data can be mapped into the GPU (in vertex
    	buffer objects) for - hopefully - fast re-use.
    
    	There are a number of things we can potentially use this API for, but
    	right now this just provides a foundation to build on. Please read
    	the extensive list of TODO items in cogl-mesh.c for examples.
    
    	Please refer to the cogl-mesh section in the reference manual for
    	documentation of the API.
    
    	* tests/conform/Makefile.am
    	* tests/conform/test-conform-main.c
    	* tests/conform/test-mesh-contiguous.c
    	* tests/conform/test-mesh-interleved.c
    	* tests/conform/test-mesh-mutability.c:
    	Privides basic coverage testing for the mesh API.

 cogl-mesh.h                          |  286 ++++++
 cogl-types.h                         |    4 +-
 cogl.h.in                            |    1 +
 common/Makefile.am                   |    4 +-
 common/cogl-mesh-private.h           |  143 +++
 common/cogl-mesh.c                   | 1611 ++++++++++++++++++++++++++++++++++
 doc/reference/cogl/cogl-docs.sgml    |    1 +
 doc/reference/cogl/cogl-sections.txt |   15 +
 gl/cogl-context.c                    |    2 +
 gl/cogl-context.h                    |   16 +-
 gl/cogl-defines.h.in                 |   55 ++
 gl/cogl.c                            |   51 ++-
 gles/cogl-context.c                  |    2 +
 gles/cogl-context.h                  |    3 +
 14 files changed, 2190 insertions(+), 4 deletions(-)

commit d0ab4856b50d47a3d0b5c4aded88bde37ff9662b
Author: Neil Roberts <neil@openedhand.com>
Date:   Thu Nov 6 11:42:11 2008 +0000

    	* clutter/cogl/gles/cogl.c (cogl_perspective):
    	* clutter/cogl/common/cogl-fixed.c (cogl_fixed_sin)
    	(cogl_angle_sin, cogl_angle_tan, cogl_fixed_sqrt): Replaced uses
    	of 1 + ~x with just -x which is equivalent and easier to
    	understand.

 common/cogl-fixed.c |   26 +++++++++++++-------------
 gles/cogl.c         |    2 +-
 2 files changed, 14 insertions(+), 14 deletions(-)

commit a41624276cb50ff3fbda079f4dcd7db138aef2d1
Author: Neil Roberts <neil@openedhand.com>
Date:   Tue Nov 4 12:43:06 2008 +0000

    	* clutter/cogl/gl/cogl.c (cogl_perspective): Use the accurate
    	64-bit multiplication macro instead of COGL_FIXED_FAST_DIV for
    	calculating xmax as was done previously. This fixes
    	test-perspective and other tests that had a gone a bit skewiff.

 gl/cogl.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 54cecff92344a61091fcb5c0bbef003019afed83
Author: Emmanuele Bassi <ebassi@openedhand.com>
Date:   Mon Nov 3 23:58:13 2008 +0000

    2008-11-03  Emmanuele Bassi  <ebassi@linux.intel.com>
    
    	* clutter/cogl/gl/Makefile.am: Whitespace fixes.
    
    	* clutter/cogl/gles/Makefile.am: Put back a missing backslash
    	that broke the GLES build.

 gl/Makefile.am   |    1 -
 gles/Makefile.am |    4 ++--
 2 files changed, 2 insertions(+), 3 deletions(-)

commit b98ea019396f621b097f23188fb3a6815c07ed16
Author: Emmanuele Bassi <ebassi@openedhand.com>
Date:   Mon Nov 3 23:54:38 2008 +0000

    2008-11-03  Emmanuele Bassi  <ebassi@linux.intel.com>
    
    	Bug 1231 - Build fails in gles flavour in revision 3442
    
    	* clutter/cogl/gles/cogl-context.h: Fix remaining use of
    	ClutterFixed over CoglFixed. (Michael Boccara)

 gles/cogl-context.h |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit d3d257b9136c56aeff06230ea7ab4c7bc155387a
Author: Emmanuele Bassi <ebassi@openedhand.com>
Date:   Thu Oct 30 17:57:41 2008 +0000

    2008-10-30  Emmanuele Bassi  <ebassi@linux.intel.com>
    
    	* clutter/cogl/cogl-color.h:
    	* clutter/cogl/cogl-fixed.h:
    	* clutter/cogl/cogl-offscreen.h:
    	* clutter/cogl/cogl-path.h:
    	* clutter/cogl/cogl-shader.h:
    	* clutter/cogl/cogl-texture.h:
    	* clutter/cogl/cogl-types.h: Add copyright and licensing
    	notice to the newly added files.

 cogl-color.h     |   19 +++++++++++++++++++
 cogl-fixed.h     |   19 +++++++++++++++++++
 cogl-offscreen.h |   19 +++++++++++++++++++
 cogl-path.h      |   19 +++++++++++++++++++
 cogl-shader.h    |   19 +++++++++++++++++++
 cogl-texture.h   |   19 +++++++++++++++++++
 cogl-types.h     |   19 +++++++++++++++++++
 7 files changed, 133 insertions(+), 0 deletions(-)

commit 1bcdf7d9eb4c8b15f3b2644c76e196567e3f9c6b
Author: Emmanuele Bassi <ebassi@openedhand.com>
Date:   Thu Oct 30 17:25:00 2008 +0000

    2008-10-30  Emmanuele Bassi  <ebassi@linux.intel.com>
    
    	Bug 1219 - Clean up cogl.h
    
    	* clutter/cogl/cogl.h.in:
    	* clutter/cogl/cogl-offscreen.h:
    	* clutter/cogl/cogl-path.h:
    	* clutter/cogl/cogl-shader.h:
    	* clutter/cogl/cogl-texture.h:
    	* clutter/cogl/cogl-types.h: Split up the massive cogl.h file
    	into sub-header for each section of the API.
    
    	* clutter/cogl/gl/*:
    	* clutter/cogl/gles/*: Update the GL and GLES implementations
    	of COGL to cope with the new header structure.
    
    	* doc/reference/cogl/Makefile.am: Fix symbol retrieval.

 cogl-color.h                   |   24 +-
 cogl-fixed.h                   |   23 +-
 cogl-offscreen.h               |  110 ++++
 cogl-path.h                    |  315 +++++++++++
 cogl-shader.h                  |  210 +++++++
 cogl-texture.h                 |  371 +++++++++++++
 cogl-types.h                   |  240 ++++++++
 cogl.h.in                      | 1167 +---------------------------------------
 common/cogl-color.c            |    1 +
 doc/reference/cogl/Makefile.am |    9 +-
 gl/Makefile.am                 |   17 +-
 gl/cogl-fbo.c                  |    2 +-
 gl/cogl-program.c              |    2 +-
 gl/cogl-shader-private.h       |   39 ++
 gl/cogl-shader.c               |    2 +-
 gl/cogl-shader.h               |   39 --
 gl/cogl-texture-private.h      |   65 +++
 gl/cogl-texture.c              |    2 +-
 gl/cogl-texture.h              |   65 ---
 gles/Makefile.am               |   16 +-
 gles/cogl-fbo.c                |    2 +-
 gles/cogl-gles2-wrapper.c      |    2 +-
 gles/cogl-program.c            |    2 +-
 gles/cogl-shader-private.h     |   40 ++
 gles/cogl-shader.c             |    2 +-
 gles/cogl-shader.h             |   40 --
 gles/cogl-texture-private.h    |   64 +++
 gles/cogl-texture.c            |    2 +-
 gles/cogl-texture.h            |   64 ---
 29 files changed, 1503 insertions(+), 1434 deletions(-)

commit 90dbfcd78f4d08e37652f832fe69bbeb8e791d4f
Author: Emmanuele Bassi <ebassi@openedhand.com>
Date:   Thu Oct 30 17:04:34 2008 +0000

    2008-10-30  Emmanuele Bassi  <ebassi@linux.intel.com>
    
    	Bug 1212 - Allow only a single include file for Clutter
    
    	* clutter/*.h: Only allow including clutter.h in third
    	party code.
    
    	* clutter/cogl/cogl-color.h:
    	* clutter/cogl/cogl-fixed.h:
    	* clutter/cogl/cogl.h.in: Only allow including cogl.h in
    	third party code.
    
    	* clutter/cogl/common/Makefile.am:
    	* clutter/cogl/gl/Makefile.am:
    	* clutter/cogl/gles/Makefile.am:
    	* clutter/eglnative/Makefile.am:
    	* clutter/eglx/Makefile.am:
    	* clutter/fruity/Makefile.am:
    	* clutter/glx/Makefile.am:
    	* clutter/glx/clutter-glx.h:
    	* clutter/osx/Makefile.am:
    	* clutter/pango/Makefile.am:
    	* clutter/sdl/Makefile.am:
    	* clutter/win32/Makefile.am:
    	* clutter/x11/Makefile.am: Fix build environment.
    
    	* clutter/x11/clutter-x11-texture-pixmap.h:
    	* clutter/x11/clutter-x11.h: Fix inclusion rules.
    
    	* tests/test-pixmap.c: Fix inclusion of GdkPixbuf header.
    
    	* README: Update release notes.

 cogl-color.h       |    4 ++++
 cogl-fixed.h       |    4 ++++
 cogl.h.in          |    4 ++++
 common/Makefile.am |    1 +
 gl/Makefile.am     |    1 +
 gles/Makefile.am   |    1 +
 6 files changed, 15 insertions(+), 0 deletions(-)

commit f26827c7d13c30fae4f69576b9daad9315117cde
Author: Emmanuele Bassi <ebassi@openedhand.com>
Date:   Thu Oct 30 16:52:56 2008 +0000

    2008-10-30  Emmanuele Bassi  <ebassi@linux.intel.com>
    
    	Bug 1211 - Drop ClutterFeatureFlags usage from COGL
    
    	* clutter/cogl/cogl.h.in:
    	* clutter/cogl/gl/cogl.c:
    	* clutter/cogl/gles/cogl.c: Do not use ClutterFeatureFlags
    	when CoglFeatureFlags will do. This removes the last usage
    	of Clutter API inside COGL.

 cogl.h.in   |    4 +---
 gl/cogl.c   |    8 ++++----
 gles/cogl.c |    6 +++---
 3 files changed, 8 insertions(+), 10 deletions(-)

commit d1f6dbaa79f31722ef52305ae257f3efe6c246a7
Author: Emmanuele Bassi <ebassi@openedhand.com>
Date:   Thu Oct 30 16:50:07 2008 +0000

    2008-10-30  Emmanuele Bassi  <ebassi@linux.intel.com>
    
    	Bug 1210 - Add CoglColor API
    
    	* clutter/cogl/cogl-color.h:
    	* clutter/cogl/cogl.h.in:
    	* clutter/cogl/common/Makefile.am:
    	* clutter/cogl/common/cogl-color.c:
    	* clutter/cogl/gl/Makefile.am:
    	* clutter/cogl/gl/cogl.c:
    	* clutter/cogl/gles/Makefile.am:
    	* clutter/cogl/gles/cogl-texture.c:
    	* clutter/cogl/gles/cogl.c: Add a new color-type, to be used by
    	COGL. CoglColor is optimized to allow the minimum amount of
    	conversions possible for both GL and GLES implementations.
    
    	* clutter/clutter-actor.c:
    	* clutter/clutter-clone-texture.c:
    	* clutter/clutter-entry.c:
    	* clutter/clutter-main.c:
    	* clutter/clutter-rectangle.c:
    	* clutter/clutter-stage.c:
    	* clutter/clutter-texture.c: Use CoglColor when needed.
    
    	* clutter/pango/pangoclutter-render.c: Use CoglColor when needed.
    
    	* doc/reference/cogl/cogl-docs.sgml:
    	* doc/reference/cogl/cogl-sections.txt: Update the documentation.
    
    	* tests/test-cogl-offscreen.c:
    	* tests/test-cogl-primitives.c:
    	* tests/test-cogl-tex-convert.c:
    	* tests/test-cogl-tex-foreign.c:
    	* tests/test-cogl-tex-getset.c:
    	* tests/test-cogl-tex-polygon.c:
    	* tests/test-cogl-tex-tile.c:
    	* tests/test-paint-wrapper.c: Update the tests.
    
    	* README: Update release notes.

 cogl-color.h                         |  223 ++++++++++++++++++++++++++++++++++
 cogl.h.in                            |   13 +-
 common/Makefile.am                   |    3 +-
 common/cogl-color.c                  |  107 ++++++++++++++++
 doc/reference/cogl/cogl-docs.sgml    |    1 +
 doc/reference/cogl/cogl-sections.txt |   26 ++++
 gl/Makefile.am                       |    2 +
 gl/cogl.c                            |   32 +++---
 gles/Makefile.am                     |    2 +
 gles/cogl-texture.c                  |   26 ++--
 gles/cogl.c                          |   32 +++---
 11 files changed, 415 insertions(+), 52 deletions(-)

commit 71a0be6fff8f2871742f269b743833e0d11f9f29
Author: Emmanuele Bassi <ebassi@openedhand.com>
Date:   Thu Oct 30 16:37:55 2008 +0000

    2008-10-30  Emmanuele Bassi  <ebassi@linux.intel.com>
    
    	Bug 1209 - Move fixed point API in COGL
    
    	* clutter/cogl/cogl-fixed.h:
    	* clutter/cogl/cogl.h.in:
    	* clutter/cogl/common/Makefile.am:
    	* clutter/cogl/common/cogl-fixed.c: Add fixed point API, modelled
    	after the ClutterFixed. The CoglFixed API supercedes the ClutterFixed
    	one and avoids the dependency of COGL on Clutter's own API.
    
    	* clutter/cogl/common/cogl-clip-stack.c:
    	* clutter/cogl/common/cogl-primitives.c:
    	* clutter/cogl/common/cogl-primitives.h: Update internal usage of
    	ClutterFixed to CoglFixed.
    
    	* clutter/cogl/gl/Makefile.am:
    	* clutter/cogl/gl/cogl-primitives.c:
    	* clutter/cogl/gl/cogl-texture.c:
    	* clutter/cogl/gl/cogl.c: Ditto, in the GL implementation of the
    	COGL API.
    
    	* clutter/cogl/gles/Makefile.am:
    	* clutter/cogl/gles/cogl-fbo.c:
    	* clutter/cogl/gles/cogl-gles2-wrapper.c:
    	* clutter/cogl/gles/cogl-primitives.c:
    	* clutter/cogl/gles/cogl-texture.c:
    	* clutter/cogl/gles/cogl.c: Ditto, in the GLES implementation of
    	the COGL API.
    
    	* clutter/pango/pangoclutter-glyph-cache.c:
    	* clutter/pango/pangoclutter-glyph-cache.h: Ditto, in the Pango
    	renderer glyphs cache.
    
    	* clutter/clutter-fixed.c:
    	* clutter/clutter-fixed.h: ClutterFixed and related API becomes
    	a simple transition API for bindings and public Clutter API.
    
    	* clutter/clutter-actor.c:
    	* clutter/clutter-alpha.c:
    	* clutter/clutter-backend.c:
    	* clutter/clutter-behaviour-depth.c:
    	* clutter/clutter-behaviour-ellipse.c:
    	* clutter/clutter-behaviour-path.c:
    	* clutter/clutter-behaviour-rotate.c:
    	* clutter/clutter-behaviour-scale.c:
    	* clutter/clutter-clone-texture.c:
    	* clutter/clutter-color.c:
    	* clutter/clutter-entry.c:
    	* clutter/clutter-stage.c:
    	* clutter/clutter-texture.c:
    	* clutter/clutter-timeline.c:
    	* clutter/clutter-units.h: Move from the internal usage of
    	ClutterFixed to CoglFixed.
    
    	* doc/reference/clutter/clutter-sections.txt:
    	* doc/reference/cogl/cogl-docs.sgml:
    	* doc/reference/cogl/cogl-sections.txt: Update the documentation.
    
    	* tests/test-cogl-tex-tile.c:
    	* tests/test-project.c: Fix tests after the API change
    
    	* README: Add release notes.

 cogl-fixed.h                         |  753 ++++++++++++++++++++++++++++
 cogl.h.in                            |  194 ++++----
 common/Makefile.am                   |    3 +-
 common/cogl-clip-stack.c             |   36 +-
 common/cogl-fixed.c                  |  911 ++++++++++++++++++++++++++++++++++
 common/cogl-primitives.c             |  240 +++++-----
 common/cogl-primitives.h             |    4 +-
 doc/reference/cogl/cogl-docs.sgml    |    1 +
 doc/reference/cogl/cogl-sections.txt |   85 ++++
 gl/Makefile.am                       |    9 +-
 gl/cogl-primitives.c                 |   32 +-
 gl/cogl-texture.c                    |  230 +++++----
 gl/cogl.c                            |  311 ++++++------
 gles/Makefile.am                     |    7 +-
 gles/cogl-fbo.c                      |   12 +-
 gles/cogl-gles2-wrapper.c            |   90 ++--
 gles/cogl-primitives.c               |   36 +-
 gles/cogl-texture.c                  |  206 ++++----
 gles/cogl.c                          |  237 +++++-----
 19 files changed, 2592 insertions(+), 805 deletions(-)

commit 1b619c38432d0fe0f94d11702f27c42e128ed475
Author: Neil Roberts <neil@openedhand.com>
Date:   Wed Oct 29 14:52:48 2008 +0000

    	Bug 1074 - FBOs on GLES
    
    	* clutter/cogl/gles/cogl-fbo.c: Copy the code from gl/cogl-fbo but
    	use the API calls directly instead of loading an extension because
    	it is part of the core in GLES 2.
    
    	* clutter/cogl/gles/cogl.c (_cogl_features_init): Report
    	COGL_FEATURE_OFFSCREEN.
    
    	* clutter/cogl/gles/cogl-fbo.h (CoglFbo): Add gl_stencil_handle.
    
    	* clutter/cogl/gles/cogl-context.h (CoglContext): Add
    	viewport_store
    
    	* tests/test-fbo.c (make_shader): Conditionally use the GLES 2
    	names of the shader variables

 gles/cogl-context.h |    4 +
 gles/cogl-fbo.c     |  354 +++++++++++++++++++++++++++++++++++++--------------
 gles/cogl-fbo.h     |    1 +
 gles/cogl.c         |    2 +-
 4 files changed, 267 insertions(+), 94 deletions(-)

commit 153f5ea73fafe815aa71d01acf863f32dcae1ab9
Author: Neil Roberts <neil@openedhand.com>
Date:   Mon Oct 27 14:36:52 2008 +0000

    	Bug 1189 - Backface culling
    
    	* clutter/cogl/gl/cogl-texture.c (cogl_texture_polygon)
    	(_cogl_texture_quad_sw, _cogl_texture_quad_hw):
    	* clutter/cogl/gles/cogl-texture.c (cogl_texture_polygon)
    	(_cogl_texture_quad_sw, _cogl_texture_quad_hw): Enable backface
    	culling in GL if it is requested.
    
    	* clutter/cogl/gles/cogl-texture.c (_cogl_texture_quad_sw)
    	(_cogl_texture_quad_hw):
    	* clutter/cogl/gl/cogl-texture.c (_cogl_texture_quad_sw)
    	(_cogl_texture_quad_hw): Reorder the
    	vertices so that they are counter-clockwise.
    
    	* clutter/cogl/gles/cogl-context.h (CoglContext):
    	* clutter/cogl/gl/cogl-context.h (CoglContext): Added a flag to
    	store whether backface culling is currently enabled.
    
    	* clutter/cogl/gles/cogl.c (cogl_enable_backface_culling):
    	* clutter/cogl/gl/cogl.c (cogl_enable_backface_culling): New
    	function
    
    	* doc/reference/cogl/cogl-sections.txt: Add
    	cogl_enable_backface_culling

 cogl.h.in                            |   12 +++++++
 doc/reference/cogl/cogl-sections.txt |    1 +
 gl/cogl-context.h                    |    2 +
 gl/cogl-internal.h                   |    1 +
 gl/cogl-texture.c                    |   58 +++++++++++++++++++++-------------
 gl/cogl.c                            |   12 +++++++
 gles/cogl-context.h                  |    2 +
 gles/cogl-internal.h                 |    1 +
 gles/cogl-texture.c                  |   51 +++++++++++++++++------------
 gles/cogl.c                          |   14 +++++++-
 10 files changed, 110 insertions(+), 44 deletions(-)

commit c8b4de2d6db453dffeb3898bb052a457bbed3141
Author: Neil Roberts <neil@openedhand.com>
Date:   Mon Oct 27 12:39:22 2008 +0000

    	Bug 1196 - Texture border drawing problems
    
    	* clutter/cogl/gl/cogl-texture.c (_cogl_texture_upload_subregion_to_gl)
    	(_cogl_texture_upload_to_gl):
    
    	* clutter/cogl/gles/cogl-texture.c (_cogl_texture_upload_to_gl)
    	(_cogl_texture_upload_subregion_to_gl):
    
    	When uploading data to a sliced texture, fill the waste pixels
    	with copies of the edge of the real texture data. Otherwise the
    	value of the waste pixels are undefined so it will show artifacts
    	when the texture is scaled with GL_LINEAR and the pixels are
    	blended in.

 gl/cogl-texture.c   |  219 ++++++++++++++++++++++++++++++++++++++++++++++++---
 gles/cogl-texture.c |  207 +++++++++++++++++++++++++++++++++++++++++++++---
 2 files changed, 402 insertions(+), 24 deletions(-)

commit ae1a4a6a30047a5f210a72cf3b40f4b2eb1ff24f
Author: Neil Roberts <neil@openedhand.com>
Date:   Mon Oct 20 15:54:17 2008 +0000

    	Bug 1043 - COGL calls glTexSubImage2D() with out-of-bounds
    	values (SIGSEGV)
    
    	* clutter/cogl/gl/cogl-texture.c
    	(_cogl_texture_upload_subregion_to_gl): When iterating over the
    	slices, discard ones that don't intersect immediatly otherwise it
    	will call glTexSubImage2D with a negative width/height and then
    	move the source position incorrectly. Thanks to Gwenole
    	Beauchesne.

 gl/cogl-texture.c |   14 ++++++++++++++
 1 files changed, 14 insertions(+), 0 deletions(-)

commit 238e9c3a1a72f93e4669f97cd8217295d1d509a7
Author: Neil Roberts <neil@openedhand.com>
Date:   Thu Sep 18 13:16:15 2008 +0000

    	Bug 1048 - SIGFPE in cogl_texture_set_region() with nvidia
    
    	* clutter/cogl/gl/cogl-texture.c (cogl_texture_set_region):
    	* clutter/cogl/gles/cogl-texture.c (cogl_texture_set_region):
    	Don't attempt to upload any data if the width or height of the
    	subregion is zero. Thanks to Gwenole Beauchesne.

 gl/cogl-texture.c   |    4 ++++
 gles/cogl-texture.c |    4 ++++
 2 files changed, 8 insertions(+), 0 deletions(-)

commit 3ae77fbfb7b58592ecd93f79597578d612a21638
Author: Neil Roberts <neil@openedhand.com>
Date:   Thu Sep 18 11:24:27 2008 +0000

    	Bug 1044 - cogl_get_viewport error
    
    	* clutter/cogl/gles/cogl.c (cogl_get_viewport): Use glGetIntegerv
    	instead of glGetFixedv to read the viewport because the latter
    	converts incorrectly on some hardware.

 gles/cogl.c |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

commit 6d07be1179bc19e53d2a5796bd90b1800397115f
Author: Emmanuele Bassi <ebassi@openedhand.com>
Date:   Wed Aug 27 12:56:54 2008 +0000

    2008-08-27  Emmanuele Bassi  <ebassi@openedhand.com>
    
    	Bug 1082 - Texture bitmap is destroyed in wrong way
    
    	* clutter/cogl/common/cogl-bitmap-pixbuf.c:
    	(_cogl_bitmap_from_file): Make a copy of the pixbuf data in
    	the internal image loader so that we can keep working under
    	the assumption that we are using the GLib memory allocation
    	and deallocation functions.

 common/cogl-bitmap-pixbuf.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

commit ef76d8e5e2243079126fd98c5425b11aa512094c
Author: Neil Roberts <neil@openedhand.com>
Date:   Fri Aug 1 12:23:57 2008 +0000

    	Bug 945 - Clipping+fbo cloning bugs
    
    	* clutter/cogl/gl/cogl.c:
    	* clutter/cogl/gles/cogl.c:
    	* clutter/cogl/cogl.h.in: Add cogl_clip_stack_save,
    	cogl_clip_stack_restore, cogl_viewport and cogl_frustum.
    
    	* clutter/cogl/gl/cogl-fbo.h:
    	* clutter/cogl/gl/cogl-fbo.c: Try to attach a stencil buffer when
    	creating an FBO.
    
    	* clutter/cogl/common/cogl-clip-stack.c: Add functions to save and
    	restore the whole state of the stack.
    
    	* clutter/clutter-texture.c (clutter_texture_paint): When
    	rendering the FBO source, setup a temporary asymmetric perspective
    	projection matrix to render it as it would appear on screen.
    
    	* clutter/clutter-private.h:
    	* clutter/clutter-actor.c
    	(_clutter_actor_apply_modelview_transform_recursive): No longer
    	static and exported in clutter-private.h

 cogl.h.in                            |   60 ++++++++++++++++++++++++++++-
 common/cogl-clip-stack.c             |   70 +++++++++++++++++++++++++++++----
 common/cogl-clip-stack.h             |    5 --
 doc/reference/cogl/cogl-sections.txt |    4 ++
 gl/cogl-context.h                    |    1 +
 gl/cogl-fbo.c                        |   48 +++++++++++++++++++----
 gl/cogl-fbo.h                        |    1 +
 gl/cogl.c                            |   67 ++++++++++++++++++++++++++++++--
 gles/cogl-gles2-wrapper.c            |   25 ++++++++++++
 gles/cogl-gles2-wrapper.h            |    4 ++
 gles/cogl.c                          |   55 ++++++++++++++++++++++++--
 11 files changed, 307 insertions(+), 33 deletions(-)

commit 88a561fa01048133b7462ba3cfca882016524ef2
Author: Ross Burton <ross@openedhand.com>
Date:   Wed Jul 30 09:17:57 2008 +0000

    2008-07-30  Ross Burton  <ross@openedhand.com>
    
    	* clutter/version.xml.in:
    	* cogl/version.xml.in:
    	Remove trailing newline as it upsets Devhelp

 doc/reference/cogl/version.xml.in |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 0064738678809178a89c5a1766b4973467c6455c
Author: Neil Roberts <neil@openedhand.com>
Date:   Mon Jul 14 19:22:17 2008 +0000

    	* clutter/cogl/common/cogl-primitives.c (cogl_path_rel_curve_to):
    	Fixed a typo in the second parameter which meant the curve was
    	drawn incorrectly.

 common/cogl-primitives.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 5972e9db45cdf6cbfb10ec4f2ef78567f1fc754a
Author: Matthew Allum <mallum@openedhand.com>
Date:   Thu Jul 10 16:19:09 2008 +0000

    008-07-10  Matthew Allum  <mallum@openedhand.com>
    
            * clutter/cogl/gles/cogl-fbo.c:
            * clutter/cogl/gles/cogl-texture.c:
            Fix warnings with eglnative build

 gles/cogl-fbo.c     |    2 ++
 gles/cogl-texture.c |   50 --------------------------------------------------
 2 files changed, 2 insertions(+), 50 deletions(-)

commit 08cd119902d9be64a34200044551e97659352198
Author: Øyvind Kolås <pippin@openedhand.com>
Date:   Thu Jul 3 09:49:06 2008 +0000

    * clutter/cogl/common/cogl-bitmap-pixbuf.c:
    (_cogl_bitmap_from_file): removed debug g_printf that announces each
    successful image load done by the internal image backend.

 common/cogl-bitmap-pixbuf.c |    2 --
 1 files changed, 0 insertions(+), 2 deletions(-)

commit c4ca5e3e49894fef72f3186a23de5b7c49482442
Author: Emmanuele Bassi <ebassi@openedhand.com>
Date:   Tue Jul 1 10:15:07 2008 +0000

    2008-07-01  Emmanuele Bassi  <ebassi@openedhand.com>
    
    	* cogl/cogl-docs.sgml: Add an index to the COGL API reference
    	and the licensing information.

 doc/reference/cogl/cogl-docs.sgml |   48 +++++++++++++++++++++++++++++++++---
 1 files changed, 44 insertions(+), 4 deletions(-)

commit add02e70a3fd74d8e161ad253dfc077959de024a
Author: Neil Roberts <neil@openedhand.com>
Date:   Mon Jun 30 16:15:53 2008 +0000

    	Bug 985 - MSC math.h / M_PI issue
    
    	* clutter/cogl/gl/cogl.c (set_clip_plane):
    	* clutter/clutter-alpha.c (sinc_func): Use G_PI instead of M_PI
    	because M_PI isn't defined in MSVC without a special
    	#define. Thanks to Haakon Sporsheim

 gl/cogl.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 1ec582becb070a37ea7dcd834d86f8521ad5ad63
Author: Emmanuele Bassi <ebassi@openedhand.com>
Date:   Mon Jun 30 14:20:46 2008 +0000

    2008-06-30  Emmanuele Bassi  <ebassi@openedhand.com>
    
    	Bug 980 - cogl-bitmap-fallback.c compiler error/warning due to
    	          cast issue (Haakon Sporsheim)
    
    	* clutter/cogl/common/cogl-bitmap-fallback.c:
    	(_cogl_unpremult_alpha_last),
    	(_cogl_unpremult_alpha_first): Cast to avoid a compiler warning
    	with MSC.

 common/cogl-bitmap-fallback.c |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)

commit 2666778c26c221bf68752e2c6a1bcb22975a4c7f
Author: Matthew Allum <mallum@openedhand.com>
Date:   Fri Jun 27 23:02:30 2008 +0000

    2008-06-27  Matthew Allum  <mallum@openedhand.com>
    
    * clutter/cogl/gl/cogl.c:
            Temp workaround for 10.4 ATI card OSX folks, see #929
            (Tommi Komulainen)
    
            Bug 998 - clutter always captures X input events
    
    * clutter/eglx/clutter-stage-egl.c:
            * clutter/glx/clutter-stage-glx.c:
    When we disable X event retrival, dont still select for window
    events.

 gl/cogl.c |   31 ++++++++++++++++++++++++++++++-
 1 files changed, 30 insertions(+), 1 deletions(-)

commit cbd77008ff02787320d47003767390f2fe5d7f97
Author: Neil Roberts <neil@openedhand.com>
Date:   Tue Jun 24 16:21:40 2008 +0000

    	* clutter/cogl/gles/cogl-gles2-wrapper.h:
    	* clutter/cogl/gles/cogl-gles2-wrapper.c: All of the settings and
    	uniforms are now proxied into COGL variables instead of setting
    	the GL uniforms directly. Just before glDrawArrays is executed a
    	shader is generated using the given settings to avoid using 'if'
    	statements. The shaders are cached.
    
    	* clutter/cogl/gles/cogl-fixed-vertex-shader.glsl:
    	* clutter/cogl/gles/cogl-fixed-fragment-shader.glsl: The shaders
    	are now split into parts using comments instead of 'if' statements
    	so that the simplest shader can be generated on the fly.
    
    	* clutter/cogl/gles/stringify.sh: Now splits up the shader sources
    	into separate C strings where deliminated by special comments.
    
    	* clutter/cogl/gles/cogl-program.h:
    	* clutter/cogl/gles/cogl-program.c: A custom shader can no longer
    	be directly linked with the fixed-functionality replacement
    	because the replacement changes depending on the settings. Instead
    	the bound shader is linked with the appropriate replacement shader
    	just before glDrawArrays is executed. The custom uniform variables
    	must also be proxied through COGL variables because their location
    	can change when relinked.

 gles/cogl-fixed-fragment-shader.glsl |  116 +++----
 gles/cogl-fixed-vertex-shader.glsl   |   50 ++--
 gles/cogl-gles2-wrapper.c            |  594 +++++++++++++++++++++++++++-------
 gles/cogl-gles2-wrapper.h            |  110 ++++++--
 gles/cogl-program.c                  |  152 ++++-----
 gles/cogl-program.h                  |   10 +-
 gles/stringify.sh                    |   19 +-
 7 files changed, 719 insertions(+), 332 deletions(-)

commit d12cfb39ba30c59220c0a0c4664357b54a2ff955
Author: Matthew Allum <mallum@openedhand.com>
Date:   Tue Jun 24 10:38:18 2008 +0000

    2008-06-24  Matthew Allum  <mallum@openedhand.com>
    
            * cogl/Makefile.am:
            * cogl/cogl-docs.sgml:
            * cogl/version.xml.in
    * clutter/version.xml.in
            Add full version (including minor) to docs.
            Add version to COGL docs

 doc/reference/cogl/Makefile.am    |    4 ++--
 doc/reference/cogl/cogl-docs.sgml |   10 ++++++----
 doc/reference/cogl/version.xml.in |    1 +
 3 files changed, 9 insertions(+), 6 deletions(-)

commit 9cc9f750b8032f3de3038f4b65276cfc67220ea4
Author: Emmanuele Bassi <ebassi@openedhand.com>
Date:   Mon Jun 23 16:43:49 2008 +0000

    Fixes for distcheck

 common/Makefile.am |   21 +++++++++++----------
 1 files changed, 11 insertions(+), 10 deletions(-)

commit 7c69ca2997a7efa9b7c94e962790dcae3fa2790c
Author: Neil Roberts <neil@openedhand.com>
Date:   Mon Jun 23 14:57:36 2008 +0000

    	Bug 918 - Group doesn't clip if it's children are clipped
    
    	* clutter/cogl/common/cogl-clip-stack.h:
    	* clutter/cogl/common/cogl-clip-stack.c: Added functions to
    	maintain a stack of clipping rectangles.
    
    	* clutter/cogl/gles/cogl.c:
    	* clutter/cogl/gl/cogl.c: The cogl_clip_set and unset functions
    	have moved into cogl-clip-stack.c which calls back to cogl.c to
    	set the actual rectangles. Multiple clip rectangles are combined
    	by merging the stencil buffers.
    
    	* clutter/cogl/gles/cogl-primitives.c (_cogl_path_fill_nodes):
    	* clutter/cogl/gl/cogl-primitives.c (_cogl_path_fill_nodes): Merge
    	the stencil buffer with the contents of the clipping stack after
    	drawing the path.
    
    	* clutter/cogl/gles/cogl-context.h (CoglContext):
    	* clutter/cogl/gl/cogl-context.h (CoglContext): Store the number
    	of available stencil bits.
    
    	* clutter/cogl/common/Makefile.am
    	(libclutter_cogl_common_la_SOURCES): Added cogl-clip-stack.c

 common/Makefile.am       |    3 +-
 common/cogl-clip-stack.c |  180 +++++++++++++++++++++++++
 common/cogl-clip-stack.h |   37 +++++
 gl/cogl-context.h        |    1 +
 gl/cogl-primitives.c     |   19 ++-
 gl/cogl.c                |  326 ++++++++++++++++++++++++++++++++++++----------
 gles/cogl-context.h      |    1 +
 gles/cogl-primitives.c   |   17 ++-
 gles/cogl.c              |  292 +++++++++++++++++++++++++++++++++---------
 9 files changed, 735 insertions(+), 141 deletions(-)

commit 76b5a93afa995085ed0faab2f84909c85096b0e0
Author: Emmanuele Bassi <ebassi@openedhand.com>
Date:   Mon Jun 23 11:01:30 2008 +0000

    2008-06-23  Emmanuele Bassi  <ebassi@openedhand.com>
    
    	Bug 982 - __COGL_GET_CONTEXT MS compiler issue (Haakon Sporsheim)
    
    	* clutter/cogl/common/cogl-handle.h:
    	* clutter/cogl/common/cogl-primitives.c: Remove C99-isms.
    
    	* clutter/cogl/gl/cogl-fbo.c:
    	* clutter/cogl/gl/cogl-primitives.c:
    	* clutter/cogl/gl/cogl-texture.c:
    	* clutter/cogl/gl/cogl.c: Ditto as above.
    
    	* clutter/cogl/gles/cogl-fbo.c:
    	* clutter/cogl/gles/cogl-primitives.c:
    	* clutter/cogl/gles/cogl-texture.c: Ditto as above.

 common/cogl-handle.h     |   12 ++++++------
 common/cogl-primitives.c |   13 +++++++------
 gl/cogl-fbo.c            |   26 +++++++++++++-------------
 gl/cogl-primitives.c     |    8 ++++----
 gl/cogl-texture.c        |   14 ++++++--------
 gl/cogl.c                |    4 ++--
 gles/cogl-fbo.c          |    4 ++--
 gles/cogl-primitives.c   |   16 ++++++++--------
 gles/cogl-texture.c      |   24 +++++++++++-------------
 9 files changed, 59 insertions(+), 62 deletions(-)

commit d5a2697d6f7d0234c43db2a0c3ec81677819a82c
Author: Matthew Allum <mallum@openedhand.com>
Date:   Mon Jun 16 16:31:08 2008 +0000

    2008-06-16  Matthew Allum  <mallum@openedhand.com>
    
            * cogl/cogl-docs.sgml:
            Add an intro.

 doc/reference/cogl/cogl-docs.sgml |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

commit c468bdb564815546c0e74bf9f31f0f5af2e70838
Author: Matthew Allum <mallum@openedhand.com>
Date:   Sat Jun 14 22:07:23 2008 +0000

    Revert miscommit of unfinished cogl changes in r2920

 gl/cogl-defines.h.in |    2 -
 gl/cogl-texture.c    |   73 +++-----------------------------------------------
 gl/cogl-texture.h    |    1 -
 3 files changed, 4 insertions(+), 72 deletions(-)

commit 6fe15aefb0c67c6edc5cbe53a6b166c5f89cb0ad
Author: Matthew Allum <mallum@openedhand.com>
Date:   Fri Jun 13 23:03:45 2008 +0000

    2008-06-14  Matthew Allum  <mallum@openedhand.com>
    
            * README:
            Make needed GL version 1.4, note GLES2 support, add some notes
            for COGL.

 gl/cogl-defines.h.in |    2 +
 gl/cogl-texture.c    |   73 +++++++++++++++++++++++++++++++++++++++++++++++---
 gl/cogl-texture.h    |    1 +
 3 files changed, 72 insertions(+), 4 deletions(-)

commit 042cee7a5b136771c5504b7b4898cd9f48d1099b
Author: Emmanuele Bassi <ebassi@openedhand.com>
Date:   Thu Jun 12 17:21:16 2008 +0000

    2008-06-12  Emmanuele Bassi  <ebassi@openedhand.com>
    
    	* doc/reference/cogl/Makefile.am: Ignore cogl/gl and cogl/gles
    	when building the documentation.
    
    	* clutter/cogl/cogl.h.in: Add sections in the header file.

 cogl.h.in                      |   40 ++++++++++++++++++++++++++++++++++++++--
 doc/reference/cogl/Makefile.am |    4 +++-
 2 files changed, 41 insertions(+), 3 deletions(-)

commit 57bf6593f0cde5700fa9b8893a28b918a2925ec8
Author: Chris Lord <chris@openedhand.com>
Date:   Tue Jun 10 10:05:12 2008 +0000

            * clutter/cogl/common/cogl-primitives.c: (_cogl_path_arc):
            Draw as expected when end angle is lower than start angle (i.e. do not
            swap the angles). This aligns with cairo behaviour.

 common/cogl-primitives.c |   34 +++++++++++++++++++++++++---------
 1 files changed, 25 insertions(+), 9 deletions(-)

commit 5bd37a1113a7d20560149bce0102b5361a19d451
Author: Tommi Komulainen <tommi.komulainen@iki.fi>
Date:   Mon Jun 9 21:15:12 2008 +0000

    cogl: add support for quartz imagebackend
    
    	Bug #930 - add support for quartz imagebackend
    
    	* clutter/cogl/common/cogl-bitmap-pixbuf.c
    	(_cogl_bitmap_from_file): When USE_QUARTZ is defined implement
    	using Core Graphics.
    	* configure.ac: support --with-imagebackend=quartz and print
    	which imagebackend is selected. Make quartz default on OSX

 common/cogl-bitmap-pixbuf.c |  114 ++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 112 insertions(+), 2 deletions(-)

commit bbf536ac41b5d6d88b122a1e08b04957520ca7a3
Author: Chris Lord <chris@openedhand.com>
Date:   Mon Jun 9 16:38:19 2008 +0000

            * cogl/cogl-sections.txt:
            Add missing cogl_path_arc

 doc/reference/cogl/cogl-sections.txt |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

commit f3b121ac96f1fdff2cdee44c2c38d88ef06532ba
Author: Øyvind Kolås <pippin@openedhand.com>
Date:   Mon Jun 9 16:14:06 2008 +0000

    * clutter/cogl/common/cogl-primitives.c: (cogl_path_rel_curve_to):
    fixed naming of implementation of cogl_path_rel_curve_to (it was
    called just cogl_rel_curve_to).

 common/cogl-primitives.c |   13 ++++++-------
 1 files changed, 6 insertions(+), 7 deletions(-)

commit 2911fc03db02b9606b4e31ad0e173b8778e99383
Author: Neil Roberts <neil@openedhand.com>
Date:   Fri Jun 6 14:21:22 2008 +0000

    	* clutter/eglnative/clutter-stage-egl.c
    	(clutter_stage_egl_realize): Use ES 2 renderable type when
    	building for GLES 2.
    
    	* clutter/eglnative/clutter-event-egl.c (get_backend_time): Added
    	a NULL for the microseconds parameter of g_timer_elapsed.
    
    	* clutter/eglnative/clutter-stage-egl.h:
    	* clutter/eglnative/clutter-egl.h:
    	* clutter/eglnative/clutter-backend-egl.h: Include
    	clutter-egl-headers.h instead of including the GL headers directly
    	so it can include gl2.h when building for GLES 2.
    
    	* clutter/eglnative/clutter-egl-headers.h:
    	* clutter/eglnative/Makefile.am (libclutter_eglnative_la_SOURCES):
    	Added clutter-egl-headers.h
    
    	* clutter/cogl/gles/cogl-fixed-fragment-shader.glsl: GLES 2
    	doesn't provide a default precision for floats in the fragment
    	shader and it will reject the shader if there isn't one.

 gles/cogl-fixed-fragment-shader.glsl |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

commit 04845aa9c9960cbb0673a70a36291ac84090d5de
Author: Matthew Allum <mallum@openedhand.com>
Date:   Fri Jun 6 13:44:22 2008 +0000

    2008-06-06  Matthew Allum  <mallum@openedhand.com>
    
            Bug #948 - Remove texture rectangle support
    
            * clutter/clutter-feature.c:
            * clutter/clutter-feature.h:
            * clutter/clutter-texture.c:
            * clutter/cogl/gl/cogl.c:
    * clutter/glx/clutter-glx-texture-pixmap.c:
            Remove support for GL_TEXTURE_RECTANGLE_ARB (now using just regular
            2D textures, with optional npots extension). Simplifys code, + makes
            mipmap & shader support much more sane.

 gl/cogl-texture.c |   69 +++++++----------------------------------------------
 gl/cogl.c         |   13 ----------
 2 files changed, 9 insertions(+), 73 deletions(-)

commit 1ee75faaa4aa604db23509416c64b948fa2957a5
Author: Øyvind Kolås <pippin@openedhand.com>
Date:   Fri Jun 6 12:53:35 2008 +0000

    * clutter/cogl/common/cogl-bitmap-pixbuf.c:
    (_cogl_bitmap_from_file): allocate height×rowstride and not duplicate
    gdkpixbuf's strange optimization saving some bytes at the end of the
    pixbuf.

 common/cogl-bitmap-pixbuf.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

commit 93abcf9595247696235131b4bf21e9053f872b9e
Author: Tommi Komulainen <tommi.komulainen@iki.fi>
Date:   Thu Jun 5 21:40:59 2008 +0000

    cogl: define GL_READ/DRAW_FRAMEBUFFER_EXT if not available
    
    	Bug 913 - cogl fails to build on OSX
    
    	* clutter/cogl/gl/cogl-fbo.c: define GL_READ_FRAMEBUFFER_EXT and
    	GL_DRAW_FRAMEBUFFER_EXT if not defined in the build system. The
    	#ifdef can fail if they're not #defines but variables or enums.
    	As the values are supposed to be industry standard even then
    	it shouldn't have ill effects.

 gl/cogl-fbo.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

commit e306b0135cd9fc4e5b03e1f6a89199c68e60bfbd
Author: Neil Roberts <neil@openedhand.com>
Date:   Mon Jun 2 12:34:10 2008 +0000

    	Applied 'final patch' from bug #874
    
    	* clutter/cogl/gles/cogl.c:
    	* clutter/cogl/gl/cogl.c: The clip planes are now set using the
    	inverse projection matrix as the modelview matrix so that they can
    	be specified in screen coordinates.
    
    	* clutter/cogl/gles/cogl-context.h (CoglContext):
    	* clutter/cogl/gl/cogl-context.h (CoglContext): Added a member to
    	cache the inverse projection matrix
    
    	* clutter/clutter-fixed.h: Added a constant for converting from
    	radians to degrees.
    
    	* clutter/clutter-fixed.c (clutter_atani, clutter_atan2i): Added
    	fixed-point versions of atan and atan2.
    
    	* tests/test-clip.c: Added a test for clipping with various
    	rotations and depths.
    
    	* tests/Makefile.am (noinst_PROGRAMS): Added test-clip

 gl/cogl-context.h   |    3 +
 gl/cogl.c           |  139 +++++++++++++++++++++++++++++++++++++++++++++------
 gles/cogl-context.h |    3 +
 gles/cogl.c         |  132 +++++++++++++++++++++++++++++++++++++++++++-----
 4 files changed, 248 insertions(+), 29 deletions(-)

commit 165531074bf76ad4a6b8f5d043b702dfa251cd97
Author: Neil Roberts <neil@openedhand.com>
Date:   Mon Jun 2 10:58:57 2008 +0000

    	* clutter/cogl/gles/cogl-gles2-wrapper.h: The uniform numbers are
    	now stored in a separate struct so they can be stored for
    	application program objects as well.
    
    	* clutter/cogl/gles/cogl.c: Moved stub shader functions into
    	separate files.
    	(_cogl_features_init): Report support for the shaders feature on
    	GLES 2
    
    	* clutter/cogl/gles/cogl-shader.h:
    	* clutter/cogl/gles/cogl-shader.c:
    	* clutter/cogl/gles/cogl-program.h:
    	* clutter/cogl/gles/cogl-program.c: Separate files to handle
    	shaders on programs on GLES. If version 1.1 is being used then the
    	stub functions which all fail are still used.
    
    	* clutter/cogl/gles/cogl-gles2-wrapper.c
    	(cogl_gles2_wrapper_init, cogl_gles2_wrapper_bind_attributes),
    	(cogl_gles2_wrapper_get_uniforms): Move the uniforms and attribute
    	bindings into a separate function so they can be used to bind on
    	application shaders as well.
    	(cogl_gles2_wrapper_update_matrix): Now takes a parameter and is
    	no longer static so that it can be used to update all of the
    	matrices when a new shader is bound.
    
    	* clutter/cogl/gles/cogl-defines.h.in: Use GL_COMPILE_STATUS for
    	CGL_OBJECT_COMPILE_STATUS if the latter isn't available (for
    	example on GLES 2).
    
    	* clutter/cogl/gles/cogl-context.h (CoglContext): Added handle
    	arrays for programs and shaders.
    
    	* clutter/cogl/gles/cogl-context.c (cogl_create_context)
    	(cogl_destroy_context): Initialize and destroy program and shader
    	handle array.
    
    	* clutter/cogl/gles/Makefile.am (libclutter_cogl_la_SOURCES): Add
    	cogl-{shader,program}.{c,h}

 gles/Makefile.am          |    6 +-
 gles/cogl-context.c       |   11 ++
 gles/cogl-context.h       |    4 +
 gles/cogl-defines.h.in    |    6 +-
 gles/cogl-gles2-wrapper.c |  144 ++++++++++++++-----------
 gles/cogl-gles2-wrapper.h |   27 ++++-
 gles/cogl-program.c       |  257 +++++++++++++++++++++++++++++++++++++++++++++
 gles/cogl-program.h       |   50 +++++++++
 gles/cogl-shader.c        |  184 ++++++++++++++++++++++++++++++++
 gles/cogl-shader.h        |   40 +++++++
 gles/cogl.c               |  107 +------------------
 11 files changed, 661 insertions(+), 175 deletions(-)

commit 46be48f8f6c82ee0704fda02567dafab3dc893c0
Author: Neil Roberts <neil@openedhand.com>
Date:   Mon Jun 2 09:35:43 2008 +0000

    	* clutter/cogl/gl/cogl-context.c (cogl_destroy_context): Fix
    	cut-and-paste error where the wrong arrays were being freed.

 gl/cogl-context.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

commit 559495caf71ba38b38950750e0a3c094b61b8ed3
Author: Neil Roberts <neil@openedhand.com>
Date:   Thu May 29 13:29:04 2008 +0000

    	* clutter/cogl/gles/cogl-gles2-wrapper.h (CoglGles2Wrapper): Added
    	uniforms for alpha testing.
    
    	* clutter/cogl/gles/cogl-gles2-wrapper.c
    	(cogl_gles2_wrapper_init): Get the uniforms for alpha testing
    	settings.
    	(cogl_wrap_glEnable, cogl_wrap_glDisable): Enable/disable alpha
    	testing.
    	(cogl_wrap_glAlphaFunc): Filled in the wrapper.
    
    	* clutter/cogl/gles/cogl-fixed-fragment-shader.glsl: Added alpha
    	testing.
    
    	* clutter/cogl/gles/cogl-gles2-wrapper.h:
    	* clutter/cogl/gles/cogl-gles2-wrapper.c
    	(cogl_wrap_glGetIntegerv): Added a wrapper for glGetIntegerv so
    	that it can report zero clip planes.
    
    	* clutter/cogl/gles/cogl.c:
    	* clutter/cogl/gles/cogl-texture.c: Use the wrapped version of
    	glGetIntegerv
    
    	* clutter/cogl/gles/cogl-primitives.c (_cogl_path_fill_nodes): Use
    	_cogl_features_available to check for the stencil buffer instead
    	of an #ifdef. The stencil buffer is available in the default
    	profile for the GLES 2 simulator.

 gles/cogl-fixed-fragment-shader.glsl |   51 +++++
 gles/cogl-gles2-wrapper.c            |   46 +++++-
 gles/cogl-gles2-wrapper.h            |    6 +
 gles/cogl-primitives.c               |  338 +++++++++++++++++-----------------
 gles/cogl-texture.c                  |   10 +-
 gles/cogl.c                          |   12 +-
 6 files changed, 283 insertions(+), 180 deletions(-)

commit 38c9d46a0e80f71218855fa9d58c98df981a6000
Author: Neil Roberts <neil@openedhand.com>
Date:   Wed May 28 17:14:17 2008 +0000

        	* clutter/cogl/gles/cogl-gles2-wrapper.c
        	(cogl_gles2_wrapper_init): Get uniforms for fog parameters and
        	initialise them.
        	(cogl_wrap_glDrawArrays): Store the modelview matrix in a uniform
        	as well so that it can be used for fogging calculations.
        	(cogl_wrap_glEnable, cogl_wrap_glDisable): Enable/disable fogging.
        	(cogl_wrap_glFogx, cogl_wrap_glFogxv): Fill in wrapper to set
        	fogging parameters.
    
        	* clutter/cogl/gles/cogl-fixed-vertex-shader.glsl: Calculate the
        	fog amount if fogging is enabled.
    
        	* clutter/cogl/gles/cogl-fixed-fragment-shader.glsl: Mix with fog
        	color.
    
        	* clutter/cogl/gles/cogl-gles2-wrapper.h (CoglGles2Wrapper): Add
        	uniforms for fogging.

 gles/cogl-fixed-fragment-shader.glsl |   13 +++++-
 gles/cogl-fixed-vertex-shader.glsl   |   48 ++++++++++++++++++++---
 gles/cogl-gles2-wrapper.c            |   69 ++++++++++++++++++++++++++++++++--
 gles/cogl-gles2-wrapper.h            |    8 ++++
 4 files changed, 125 insertions(+), 13 deletions(-)

commit fe1c9db0116365aa8c5ee3a2c7308460e6bc23af
Author: Neil Roberts <neil@openedhand.com>
Date:   Wed May 28 13:17:03 2008 +0000

    	* clutter/cogl/gles/Makefile.am: Use old-style Makefile rules for
    	the stringify script so that automake won't complain.

 gles/Makefile.am |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

commit afe17c50a4fa441915c4f60d628a37b48335ffb9
Author: Neil Roberts <neil@openedhand.com>
Date:   Wed May 28 11:29:58 2008 +0000

    	* clutter/cogl/gles/cogl-gles2-wrapper.c (cogl_wrap_glGetFixedv):
    	Filled in the wrapper for glGetFixedv

 gles/cogl-gles2-wrapper.c |   34 +++++++++++++++++++++++++++++++++-
 1 files changed, 33 insertions(+), 1 deletions(-)

commit 49752b06d388587e0740d3c6cec827718261aa3c
Author: Neil Roberts <neil@openedhand.com>
Date:   Wed May 28 10:47:21 2008 +0000

    	* clutter/cogl/gles/cogl-texture.c: Use the wrapper for
    	glTexParameteri. Call glGenerateMipmap after every change to the
    	texture image data.
    
    	* clutter/cogl/gles/cogl-gles2-wrapper.h:
    	* clutter/cogl/gles/cogl-gles2-wrapper.c: Added a wrapper for
    	glTexParameteri so that it can ignore requests to set
    	GL_GENERATE_MIPMAP. Added a wrapper for glGenerateMipmap that does
    	nothing on GLES 1

 gles/cogl-gles2-wrapper.c |    7 +++++++
 gles/cogl-gles2-wrapper.h |   10 ++++++++++
 gles/cogl-texture.c       |   33 ++++++++++++++++++++++++---------
 3 files changed, 41 insertions(+), 9 deletions(-)

commit f177aedcffbf139c77820f1b981a77ca96a2838e
Author: Neil Roberts <neil@openedhand.com>
Date:   Tue May 27 17:42:50 2008 +0000

    	GLES 2 backend
    
    	* clutter/eglx/clutter-stage-egl.h:
    	* clutter/eglx/clutter-egl-headers.h:
    	* clutter/eglx/clutter-backend-egl.h:
    	* clutter/eglx/Makefile.am: Include the GLES and EGL headers via
    	clutter-egl-headers.h so that the right version can be used
    	depending on whether the GLES 2 wrapper is being used.
    
    	* configure.ac: Added an automake conditional for whether the GLES
    	2 wrapper should be used.
    
    	* clutter/eglx/clutter-stage-egl.c (clutter_stage_egl_realize):
    	Remove the call to glGetIntegerv to get the max texture size. It
    	was being called before the GL context was bound so it didn't work
    	anyway and it was causing trouble for the GLES 2 simulator.
    
    	* clutter/cogl/gles/stringify.sh: Shell script to convert the
    	shaders into a C string.
    
    	* clutter/cogl/gles/cogl-gles2-wrapper.h:
    	* clutter/cogl/gles/cogl-gles2-wrapper.c: Wrappers for most of the
    	missing GL functions in GLES 2.
    
    	* clutter/cogl/gles/cogl-fixed-fragment-shader.glsl:
    	* clutter/cogl/gles/cogl-fixed-vertex-shader.glsl: New shaders for
    	GLES 2
    
    	* clutter/cogl/gles/cogl-defines.h.in: Use the @CLUTTER_GL_HEADER@
    	macro instead of always using the GLES 1 header.
    
    	* clutter/cogl/gles/cogl-context.h (CoglContext): Include a field
    	for the state of the GLES 2 wrapper.
    
    	* clutter/cogl/gles/cogl-texture.c:
    	* clutter/cogl/gles/cogl-primitives.c:
    	* clutter/cogl/gles/cogl.c: Use wrapped versions of the GL
    	functions where neccessary.
    
    	* clutter/cogl/gles/Makefile.am: Add sources for the GLES 2
    	wrapper and an extra build step to put the GLSL files into a C
    	string whenever the files change.

 gles/Makefile.am                     |   25 ++-
 gles/cogl-context.c                  |   14 +-
 gles/cogl-context.h                  |    6 +
 gles/cogl-defines.h.in               |    4 +-
 gles/cogl-fixed-fragment-shader.glsl |   29 ++
 gles/cogl-fixed-vertex-shader.glsl   |   26 ++
 gles/cogl-gles2-wrapper.c            |  632 ++++++++++++++++++++++++++++++++++
 gles/cogl-gles2-wrapper.h            |  194 +++++++++++
 gles/cogl-primitives.c               |   24 +-
 gles/cogl-texture.c                  |   78 +++--
 gles/cogl.c                          |  126 ++++----
 gles/stringify.sh                    |   65 ++++
 12 files changed, 1108 insertions(+), 115 deletions(-)

commit e50099a2065bbdf6e38b6c2102908bf04948723f
Author: Emmanuele Bassi <ebassi@openedhand.com>
Date:   Fri May 23 15:23:40 2008 +0000

    2008-05-23  Emmanuele Bassi  <ebassi@openedhand.com>
    
    	Bug #912 - Invalid use of int* as parameter for glGetIntegerv
    
    	* clutter/cogl/gl/cogl.c (_cogl_features_init): Use GLint
    	instead of int. (#912, Tommi Komulainen)

 gl/cogl.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

commit eccd9399e59daea356c30d66a77e08bf3a07e44c
Author: Neil Roberts <neil@openedhand.com>
Date:   Wed May 21 13:20:33 2008 +0000

    	* clutter/cogl/gl/cogl.c (error_string):
    	* clutter/cogl/gles/cogl.c (error_string): Rename to
    	_cogl_error_string and remove the static scoping so that it can be
    	called in cogl-texture etc.
    
    	* clutter/cogl/gl/cogl-texture.c (cogl_texture_new_from_foreign):
    	* clutter/cogl/gles/cogl-texture.c (cogl_texture_new_from_foreign):
    	GE(*) can't be used to wrap around calls that use the return
    	value.
    
    	* clutter/cogl/gl/cogl-texture.c (_cogl_texture_quad_sw)
    	(_cogl_texture_quad_hw, cogl_texture_polygon): Remove GE(*)
    	wrapper around calls in the middle of a glBegin/glEnd pair which
    	otherwise always generate an error because glGetError can only be
    	called outside of the pair.
    
    	* clutter/cogl/gl/cogl-internal.h: Include stdio.h when definig
    	COGL_DEBUG and declare a prototype for _cogl_error_string.
    
    	* clutter/cogl/gles/cogl-internal.h: Match GE(*) macro to GL
    	version.

 gl/cogl-internal.h   |   16 +++++++++++---
 gl/cogl-texture.c    |   52 +++++++++++++++++++++++++-------------------------
 gl/cogl.c            |    4 +-
 gles/cogl-internal.h |   21 +++++++++++++------
 gles/cogl-texture.c  |    2 +-
 gles/cogl.c          |    4 +-
 6 files changed, 57 insertions(+), 42 deletions(-)

commit 091c79b9ae60c43b0b5e5854261ccc6966264ab4
Author: Ivan Leben <ivan@openedhand.com>
Date:   Wed May 21 10:00:08 2008 +0000

    	* clutter/cogl/gles/cogl-texture.c:
    	(_cogl_texture_download_from_gl:) Only comment out the broken
    	check for framebuffer alpha bits, not the check for alpha in
    	texture format.

 gles/cogl-texture.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

commit 4cb0d58cebf7a027f1e3d3c91f277a5f315ed30a
Author: Ivan Leben <ivan@openedhand.com>
Date:   Tue May 20 10:37:36 2008 +0000

    	* clutter/cogl/gles/cogl-texture.c:
    	(cogl_texture_download_from_gl:) Implemented a workaround
    	for missing alpha framebuffer channel. There are still
    	some issues with detecting whether alpha is present in the
    	framebuffer. See comments in code. Test-cogl-tex-getset now
    	successfully retrieves a RGBA texture image data.

 gles/cogl-texture.c |  276 ++++++++++++++++++++++++++++++++-------------------
 1 files changed, 172 insertions(+), 104 deletions(-)

commit 006573ac61bc32e2d46a8146358c56392abe8536
Author: Ivan Leben <ivan@openedhand.com>
Date:   Mon May 19 15:21:56 2008 +0000

    	* clutter/cogl/gles/cogl-texture.c:
    	(cogl_texture_download_from_gl:) Store old blending factors
    	and restore them when done. The lack of ability to retrieve
    	the alpha channel now more noticable in test-cogl-tex-getset
    	since the edges of the hand are not antialiased.
    
    	* clutter/cogl/gl(es)/cogl-internal.h: Declare
    	cogl_blend_func to avoid "implicit implementation" compile
    	warning.

 gl/cogl-internal.h   |    4 ++++
 gles/cogl-internal.h |    4 ++++
 gles/cogl-texture.c  |   11 +++++++++--
 3 files changed, 17 insertions(+), 2 deletions(-)

commit d049d9ead4c5174d99fd506ee3f5ea256f248d90
Author: Ivan Leben <ivan@openedhand.com>
Date:   Mon May 19 15:02:27 2008 +0000

    	* clutter/cogl/gl(es)/cogl.c: New internal function
    	cogl_blend_func caches blending setup much like cogl_enable
    	does with the enable flags. This separates blending factors
    	setup from the enable/disable operation in preparation of
    	the texture image retrieval fix for alpha channel on GLES.
    	(cogl_enable:) Does not modify blending factors anymore.
    
    	* clutter/cogl/gl(es)/cogl-context.h: CoglContext holds two
    	new variables to cache blending src and dst factors.
    
    	* clutter/cogl/gl(es)/cogl-context.c:
    	(cogl_create_context:) Initialize blending factors.
    
    	* clutter/cogl/gles/cogl-texture.c:
    	(cogl_texture_download_from_gl:) Set blending factors to
    	CGL_ONE, CGL_ZERO which fixes the slighlty improper behavior
    	where source colour was actually multiplied with its alpha
    	value in the result (not noticable on current tests).

 gl/cogl-context.c   |    8 ++++-
 gl/cogl-context.h   |    2 +
 gl/cogl.c           |   65 ++++++++++----------------------------------------
 gles/cogl-context.c |    8 ++++-
 gles/cogl-context.h |    2 +
 gles/cogl-texture.c |    2 +
 gles/cogl.c         |   26 +++++++++++++++----
 7 files changed, 51 insertions(+), 62 deletions(-)

commit ae444ad679a8ffff7f641427586b48e5223a10e9
Author: Neil Roberts <neil@openedhand.com>
Date:   Fri May 16 11:09:59 2008 +0000

    	Use the Mesa headers instead of depending on GLee for Win32
    	builds.
    
    	* configure.ac: No longer check for GLee
    
    	* clutter/cogl/gl/cogl-defines.h.in: Don't bother including GLee.h
    
    	* build/mingw/mingw-cross-compile.sh: No longer downloads libGLee
    	but downloads the Mesa library instead and installs the headers
    	from that. Fixed the libpng version.

 gl/cogl-defines.h.in |    9 ---------
 1 files changed, 0 insertions(+), 9 deletions(-)

commit ef627f1a5e8b82fec0273d8cca3572fdb83f7061
Author: Øyvind Kolås <pippin@openedhand.com>
Date:   Wed May 14 11:10:45 2008 +0000

    * clutter/cogl/gles/cogl.c: (_cogl_features_init): do not set
    COGL_FEATURE_TEXTURE_READ_PIXELS, since it is not available.

 gles/cogl.c |    2 --
 1 files changed, 0 insertions(+), 2 deletions(-)

commit 02ab70efc8f08498566efb778b8fd65927c74465
Author: Ivan Leben <ivan@openedhand.com>
Date:   Tue May 13 04:56:06 2008 +0000

    	* clutter/cogl/gl/cogl-defines.h.in:
    	Fix GL function prototypes on OS X by #definining APIENTRY and
    	APIENTRYP if missing.

 gl/cogl-defines.h.in |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

commit 3a3712d924b221bb68a8f2dd9cb13233e4251a55
Author: Ivan Leben <ivan@openedhand.com>
Date:   Mon May 12 17:20:22 2008 +0000

    	* clutter/cogl/gl/cogl-defines.h.in:
    	Defined GL extension functions used by Cogl inside the COGL_
    	namespace.
    
    	* clutter/cogl/gl/cogl-context.h:
    	* clutter/cogl/gl/cogl.c:
    	Use COGL_ extension function prototypes instead of relying
    	on glext.h to define them. Should fix the mac compilability
    	bug, but haven't tested it yet.

 gl/cogl-context.h    |   46 ++++++++--------
 gl/cogl-defines.h.in |  138 ++++++++++++++++++++++++++++++++++++++++++++++++++
 gl/cogl.c            |   46 ++++++++--------
 3 files changed, 184 insertions(+), 46 deletions(-)

commit b9827fb94526634005f1d3f8dc91f8a68f6d9f4b
Author: Ivan Leben <ivan@openedhand.com>
Date:   Wed May 7 16:12:54 2008 +0000

    	* clutter/cogl/cogl.h.in:
    	* clutter/cogl/gl(es)/cogl-texture.h:
    	* clutter/cogl/gl(es)/cogl-texture.c:
    	cogl_texture_new_* functions take a gboolean auto_mipmap argument.
    	If TRUE automatic mipmap generation is enabled during the process
    	of slice texture object creation.
    	(cogl_texture_new_from_foreign:) now allows mipmap min filter
    	flags.
    
    	* clutter/clutter-texture.c:
    	* clutter/glx/clutter-glx-texture-pixmap.c:
    	* tests/test-cogl-offscreen.c:
    	* tests/test-cogl-tex-tile.c:
    	* tests/test-cogl-tex-convert.c:
    	* tests/test-cogl-tex-polygon.c:
    	* tests/test-cogl-tex-getset.c:
    	Pass FALSE for auto_mipmap to cogl_texture_new_*.
    
    	* clutter/pango/pangoclutter-render.c:
    	(tc_get:) Pass TRUE to cogl_texture_new_with_size and use mipmap
    	min filter for nicer glyphs at small scales. As a result test-text
    	has gone all beautiful now.

 cogl.h.in           |    9 +++++++++
 gl/cogl-texture.c   |   36 ++++++++++++++++++------------------
 gl/cogl-texture.h   |    1 +
 gles/cogl-texture.c |   40 ++++++++++++++++++++--------------------
 gles/cogl-texture.h |    1 +
 5 files changed, 49 insertions(+), 38 deletions(-)

commit 073870dbbfb54c248afcf2357bcd6624d82f2d90
Author: Øyvind Kolås <pippin@openedhand.com>
Date:   Mon May 5 12:01:19 2008 +0000

    * clutter/cogl/gl/cogl-primitives.c:
    * clutter/cogl/gles/cogl-primitives.c:
    * clutter/cogl/common/cogl-primitives.c: moved declaration of
    gegl_rectangle and gegl_rectanglex here to satisfy linking
    requirements when building the fruity backend.

 common/cogl-primitives.c |   50 ++++++++++++++++++++++++++++++++++++++++++++++
 gl/cogl-primitives.c     |   41 ++++++++-----------------------------
 gles/cogl-primitives.c   |   42 +++++++++-----------------------------
 3 files changed, 69 insertions(+), 64 deletions(-)

commit f2b44899f9889e4b11dfb4f362142aa02a390fae
Author: Øyvind Kolås <pippin@openedhand.com>
Date:   Mon May 5 10:25:11 2008 +0000

    * clutter/cogl/cogl.h.in: api review touch ups.
    * clutter/cogl/common/cogl-primitives.c: api review touch ups.
    * clutter/cogl/gl/cogl-primitives.c: (cogl_path_fill),
    (cogl_path_stroke): indentation.
    * clutter/cogl/gles/cogl-primitives.c:
    (_cogl_path_fill_nodes): free allocated resources.
    * tests/test-cogl-primitives.c: updated to new API, added rotation to
    test to show that cogl renders paths correct under perspective
    distortion.

 cogl.h.in                |   45 +------
 common/cogl-primitives.c |  318 ++++++++++++++++++++++++----------------------
 gl/cogl-primitives.c     |   53 +--------
 gles/cogl-primitives.c   |   58 +--------
 4 files changed, 176 insertions(+), 298 deletions(-)

commit bbe138298c63cf0a709d466e8419dc7be1d9303a
Author: Øyvind Kolås <pippin@openedhand.com>
Date:   Thu May 1 11:27:58 2008 +0000

    * clutter/cogl/gles/cogl-primitives.c: (_cogl_path_fill_nodes): draw
    the rasterized scanlines as an array of triangles.

 gles/cogl-primitives.c |   99 +++++++++++++++++++++++++++++++++++------------
 1 files changed, 73 insertions(+), 26 deletions(-)

commit 0b7cab090c39e933445febeb39c03a2c1aa22de2
Author: Øyvind Kolås <pippin@openedhand.com>
Date:   Wed Apr 30 21:48:47 2008 +0000

    * clutter/cogl/gles/cogl-primitives.c: (_cogl_path_fill_nodes):
    keep track of direction we are drawing in and make sure we leave
    two intersection points when we have changed direction.

 gles/cogl-primitives.c |   22 ++++++++++++++++++++--
 1 files changed, 20 insertions(+), 2 deletions(-)

commit 97b3499c5293db58ba2fe099c6f75aa597ece7a7
Author: Øyvind Kolås <pippin@openedhand.com>
Date:   Wed Apr 30 16:57:21 2008 +0000

    * clutter/cogl/gles/cogl-primitives.c: (_cogl_path_fill_nodes):
    scanline rasterizer fallback for GLES without working stencil
    buffer (would benefit from optimization/smarter choice of
    datastructures).

 gles/cogl-primitives.c |  106 ++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 102 insertions(+), 4 deletions(-)

commit 96f679a18bf3741fcabdb2e7f9c543a58fd61743
Author: Øyvind Kolås <pippin@openedhand.com>
Date:   Wed Apr 30 15:05:17 2008 +0000

    * clutter/cogl/common/Makefile.am:
    * clutter/cogl/common/cogl-primitives.c:
    * clutter/cogl/common/cogl-primitives.h:
    * clutter/cogl/gl/Makefile.am:
    * clutter/cogl/gl/cogl-primitives.c:
    * clutter/cogl/gl/cogl-primitives.h:
    * clutter/cogl/gles/Makefile.am:
    * clutter/cogl/gles/cogl-primitives.c:
    * clutter/cogl/gles/cogl-primitives.h: moved duplicated code to the
    common directory.

 common/Makefile.am       |    2 +
 common/cogl-primitives.c |  541 ++++++++++++++++++++++++++++++++++++++++++++++
 common/cogl-primitives.h |   63 ++++++
 gl/Makefile.am           |    1 -
 gl/cogl-primitives.c     |  505 +------------------------------------------
 gl/cogl-primitives.h     |   61 ------
 gles/Makefile.am         |    1 -
 gles/cogl-primitives.c   |  511 +-------------------------------------------
 gles/cogl-primitives.h   |   54 -----
 9 files changed, 615 insertions(+), 1124 deletions(-)

commit 0e0890a2e9a06680fe702170b2c52f4acba00e7b
Author: Neil Roberts <neil@openedhand.com>
Date:   Tue Apr 29 16:10:37 2008 +0000

    	Removed COGLhandle and changed shader and program functions to be
    	wrapped in reference-counted CoglHandles instead.
    
    	* clutter/cogl/gl/cogl-shader.c:
    	* clutter/cogl/gl/cogl-shader.h:
    	* clutter/cogl/gl/cogl-program.c:
    	* clutter/cogl/gl/cogl-program.h:
    	New files to hold the shader and program functions.
    
    	* clutter/cogl/gl/cogl.c: Removed shader and program functions.
    
    	* clutter/cogl/common/cogl-handle.h: New header to define
    	COGL_HANDLE_DEFINE which helps build functions to create
    	reference-counted handles. This reduces the amount of duplicated
    	code.
    
    	* clutter/cogl/gl/cogl-texture.c:
    	* clutter/cogl/gles/cogl-texture.c:
    	* clutter/cogl/gl/cogl-fbo.c: Converted to use COGL_HANDLE_DEFINE
    	from cogl-handle.h to avoid duplicating some of the common code.
    
    	* clutter/cogl/gles/cogl-defines.h.in:
    	* clutter/cogl/gl/cogl-defines.h.in: Removed COGLhandle
    
    	* clutter/cogl/gl/cogl-context.h: Added handle arrays for programs
    	and shaders.
    
    	* clutter/cogl/gl/cogl-context.c (cogl_create_context): Added
    	initialisers for shader_handles and program_handles.
    	(cogl_destroy_context): Added calls to g_array_free for all handle
    	arrays.
    
    	* clutter/cogl/gl/Makefile.am (libclutter_cogl_la_SOURCES): Added
    	cogl-{program,shader}.{c,h}
    
    	* clutter/cogl/common/Makefile.am
    	(libclutter_cogl_common_la_SOURCES): Added cogl-handle.h
    
    	* clutter/cogl/gles/cogl.c:
    	* clutter/cogl/cogl.h.in: Programs and shaders are now wrapped in
    	CoglHandles instead of COGLhandles. cogl_program_destroy and
    	cogl_shader_destroy is now replaced with cogl_program_unref and
    	cogl_shader_unref. cogl_program_ref and cogl_shader_ref are also
    	added.
    
    	* clutter/clutter-shader.c: Converted to use CoglHandles for the
    	programs and shaders instead of COGLhandles.
    
    	* cogl/cogl-sections.txt: Added cogl_shader_ref,
    	cogl_shader_unref, cogl_is_shader, cogl_program_ref,
    	cogl_program_unref, cogl_is_program and cogl_is_offscreen.

 cogl.h.in                            |  125 +++++++++++++++++++-------
 common/Makefile.am                   |    1 +
 common/cogl-handle.h                 |  160 ++++++++++++++++++++++++++++++++++
 doc/reference/cogl/cogl-sections.txt |    9 ++-
 gl/Makefile.am                       |    4 +
 gl/cogl-context.c                    |   13 +++
 gl/cogl-context.h                    |    6 ++
 gl/cogl-defines.h.in                 |    1 -
 gl/cogl-fbo.c                        |  124 +++++---------------------
 gl/cogl-program.c                    |  150 +++++++++++++++++++++++++++++++
 gl/cogl-program.h                    |   39 ++++++++
 gl/cogl-shader.c                     |  136 +++++++++++++++++++++++++++++
 gl/cogl-shader.h                     |   39 ++++++++
 gl/cogl-texture.c                    |  153 ++------------------------------
 gl/cogl.c                            |  119 -------------------------
 gles/cogl-defines.h.in               |    1 -
 gles/cogl-texture.c                  |  129 ++--------------------------
 gles/cogl.c                          |   66 ++++++++++-----
 18 files changed, 729 insertions(+), 546 deletions(-)

commit f2b367c092e0757629fa5a397e54de0c1539fd7c
Author: Øyvind Kolås <pippin@openedhand.com>
Date:   Tue Apr 29 15:58:32 2008 +0000

    * cogl/cogl-sections.txt: updated after cogl primitives api rename
    session.

 doc/reference/cogl/cogl-sections.txt |   39 ++++++++++++---------------------
 1 files changed, 14 insertions(+), 25 deletions(-)

commit 6a4cdd6e4935e90267845badb7b1049f7eafaf0e
Author: Øyvind Kolås <pippin@openedhand.com>
Date:   Tue Apr 29 15:41:34 2008 +0000

    * clutter/cogl/cogl.h.in: renaming of API's in cogl to make the
    primitives and path API a bit smaller and more resembling cairo.
    * clutter/cogl/gl/cogl-primitives.c:
    * clutter/cogl/gles/cogl-primitives.c:
    * clutter/cogl/gles/cogl.c:
    * clutter/clutter-actor.c:
    * clutter/clutter-rectangle.c:
    * tests/test-cogl-offscreen.c:
    * tests/test-cogl-primitives.c:
    * tests/test-cogl-tex-convert.c:
    * tests/test-cogl-tex-foreign.c:
    * tests/test-cogl-tex-getset.c:
    * tests/test-cogl-tex-tile.c: updated according to changes in cogl.

 cogl.h.in              |  236 +++++++++---------------------------
 gl/cogl-primitives.c   |  185 +++++++++++------------------
 gles/cogl-primitives.c |  312 +++++++++++++++++-------------------------------
 gles/cogl.c            |    2 +-
 4 files changed, 242 insertions(+), 493 deletions(-)

commit 0077d427a8ad83d1e310c9b0c744418be8dd610f
Author: Robert Bragg <bob@openedhand.com>
Date:   Tue Apr 29 12:44:41 2008 +0000

    2008-04-29  Robert Bragg  <bob@o-hand.com>
    
    	* clutter/cogl/gles/cogl-texture.c:
    	Replaces an malloc call with g_malloc.

 gles/cogl-texture.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 046569f090fb23b6dbb16493e150685c88b3266b
Author: Neil Roberts <neil@openedhand.com>
Date:   Mon Apr 28 16:57:44 2008 +0000

    	Fixed 'make dist'
    
    	* clutter/cogl/Makefile.am (EXTRA_DIST): Distribute cogl.h.in
    	instead of cogl.h
    	(DIST_SUBDIRS): Added common folder
    
    	* clutter/cogl/gl/Makefile.am (libclutter_cogl_la_SOURCES): Remove
    	cogl-defines.h and use the right location for cogl-defines.gl.h
    	(EXTRA_DIST): Distribute cogl-defines.h.in
    
    	* clutter/cogl/gles/Makefile.am (libclutter_cogl_la_SOURCES):
    	Remove cogl-defines.h and use the right location for
    	cogl-defines.gles.h
    	(EXTRA_DIST): Distribute cogl-defines.h.in
    
    	* clutter/Makefile.am (DIST_SUBDIRS): Add fruity

 Makefile.am      |    4 ++--
 gl/Makefile.am   |    5 +++--
 gles/Makefile.am |    5 +++--
 3 files changed, 8 insertions(+), 6 deletions(-)

commit 2f1dc5b9d89c512eddfc06ff3d8641d1cc48603e
Author: Neil Roberts <neil@openedhand.com>
Date:   Mon Apr 28 16:03:06 2008 +0000

    * clutter/cogl/cogl.h.in (COGL_A_BIT): Added the missing comma after
      COGL_PIXEL_FORMAT_G_8

 cogl.h.in |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 445ee175156e14ae0a53d9d9ad88a1cf1630e538
Author: Øyvind Kolås <pippin@openedhand.com>
Date:   Mon Apr 28 15:36:11 2008 +0000

    * clutter/cogl/cogl.h.in: reindented.

 cogl.h.in |  725 ++++++++++++++++++++++++++++---------------------------------
 1 files changed, 333 insertions(+), 392 deletions(-)

commit 4c1f671e132a979e5b5bf14b0d2b2069c067d602
Author: Emmanuele Bassi <ebassi@openedhand.com>
Date:   Mon Apr 28 15:22:54 2008 +0000

    2008-04-28  Emmanuele Bassi  <ebassi@openedhand.com>
    
    	* clutter/clutter-docs.sgml: Add index for the 0.8 symbols.
    
    	* clutter/Makefile.am:
    	* cogl/Makefile.am: Revert back, as EXTRA_DIST has been defined
    	by gtk-doc.make and automake-1.9 complains loudly about a
    	redefinition of EXTRA_DIST.

 doc/reference/cogl/Makefile.am |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 2b7ff6fed0211f5230a27a9fcc072ebbb4241c9d
Author: Øyvind Kolås <pippin@openedhand.com>
Date:   Mon Apr 28 14:18:29 2008 +0000

    * clutter/cogl/cogl.h.in: moved the documentation of the cogl
    primitives to the main public header.
    * clutter/cogl/gl/cogl-primitives.c: from here ..
    * clutter/cogl/gles/cogl-primitives.c: .. _and_ here.

 cogl.h.in              |  323 ++++++++++++++++++++++++++++++++++++++++++++++++
 gl/cogl-primitives.c   |  320 +----------------------------------------------
 gles/cogl-primitives.c |  263 ---------------------------------------
 3 files changed, 329 insertions(+), 577 deletions(-)

commit e183712227f7ace27ba5309d9b515d28eab2f6b8
Author: Øyvind Kolås <pippin@openedhand.com>
Date:   Mon Apr 28 14:00:46 2008 +0000

    * clutter/cogl/cogl.h.in: added documentation.

 cogl.h.in |  478 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 460 insertions(+), 18 deletions(-)

commit eff57a1cb0543ef4e172885352db5ba0b14cca2a
Author: Neil Roberts <neil@openedhand.com>
Date:   Fri Apr 25 13:37:36 2008 +0000

    Merged clutter-ivan branch into trunk.
    
    svn merge \
     https://svn.o-hand.com/repos/clutter/trunk/clutter@2509 \
     https://svn.o-hand.com/repos/clutter/branches/clutter-ivan@HEAD

 Makefile.am                          |    2 +-
 TODO                                 |   25 +
 cogl.h                               |  290 ---
 cogl.h.in                            |  874 ++++++++
 common/Makefile.am                   |   23 +
 common/cogl-bitmap-fallback.c        |  369 ++++
 common/cogl-bitmap-pixbuf.c          |  197 ++
 common/cogl-bitmap.c                 |  150 ++
 common/cogl-bitmap.h                 |   95 +
 common/cogl-util.c                   |   51 +
 common/cogl-util.h                   |   32 +
 common/stb_image.c                   | 3772 ++++++++++++++++++++++++++++++++++
 doc/reference/cogl/Makefile.am       |   93 +
 doc/reference/cogl/cogl-docs.sgml    |   57 +
 doc/reference/cogl/cogl-sections.txt |  148 ++
 gl/Makefile.am                       |   37 +-
 gl/cogl-context.c                    |  114 +
 gl/cogl-context.h                    |   95 +
 gl/cogl-fbo.c                        |  390 ++++
 gl/cogl-fbo.h                        |   38 +
 gl/cogl-internal.h                   |   61 +
 gl/cogl-primitives.c                 | 1092 ++++++++++
 gl/cogl-primitives.h                 |   61 +
 gl/cogl-texture.c                    | 2303 +++++++++++++++++++++
 gl/cogl-texture.h                    |   64 +
 gl/cogl.c                            |  810 ++++----
 gles/Makefile.am                     |   37 +-
 gles/cogl-context.c                  |   96 +
 gles/cogl-context.h                  |   78 +
 gles/cogl-defines.h                  |  486 -----
 gles/cogl-defines.h.in               |  474 +++++
 gles/cogl-fbo.c                      |  188 ++
 gles/cogl-fbo.h                      |   38 +
 gles/cogl-internal.h                 |   63 +
 gles/cogl-primitives.c               | 1112 ++++++++++
 gles/cogl-primitives.h               |   54 +
 gles/cogl-texture.c                  | 2185 ++++++++++++++++++++
 gles/cogl-texture.h                  |   63 +
 gles/cogl-util.c                     |   51 +
 gles/cogl-util.h                     |   32 +
 gles/cogl.c                          |  457 ++---
 41 files changed, 15145 insertions(+), 1512 deletions(-)

commit b70bf89cedc8399c68e34c5550f3a682d426b3e6
Author: Matthew Allum <mallum@openedhand.com>
Date:   Mon Apr 14 15:10:22 2008 +0000

    2008-04-14  Matthew Allum  <mallum@openedhand.com>
    
            * clutter/cogl/gles/cogl.c: (cogl_color):
            Disable use of color4ub, issues with latest MBX SDL (#857)
    
            * clutter/eglx/clutter-backend-egl.c:
            * clutter/eglx/clutter-stage-egl.c:
            * configure.ac:
            Fixup for the eglx backend to work with new backend/multistage code.
            Some issues remain in destroying stages.

 gles/cogl.c |    9 ++++++++-
 1 files changed, 8 insertions(+), 1 deletions(-)

commit 0d6530e434145f1d5568fe35afc145447504954d
Author: Emmanuele Bassi <ebassi@openedhand.com>
Date:   Wed Apr 9 14:18:42 2008 +0000

    2008-04-09  Emmanuele Bassi  <ebassi@openedhand.com>
    
    	* clutter/Makefile.am: Update the regular expression to match
    	all the namespaces we actually use. Thanks to Neil Roberts for
    	spotting this. A make distclean is needed.
    
    	* clutter/cogl/gl/Makefile.am:
    	* clutter/cogl/gles/Makefile.am:
    	* clutter/json/Makefile.am:
    	* clutter/pango/Makefile.am: Revert previous commit.

 gl/Makefile.am   |    2 +-
 gles/Makefile.am |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit f47f85c7f7b223f47d57ff60f3b38a64e14b0c75
Author: Emmanuele Bassi <ebassi@openedhand.com>
Date:   Wed Apr 9 13:27:00 2008 +0000

    2008-04-09  Emmanuele Bassi  <ebassi@openedhand.com>
    
    	* clutter/cogl/Makefile.am:
    	* clutter/cogl/gl/Makefile.am:
    	* clutter/cogl/gles/Makefile.am:
    	* clutter/json/Makefile.am:
    	* clutter/pango/Makefile.am: Fix the visibility of all the
    	symbols, for the main library and the statically linked ones.

 Makefile.am      |    2 +-
 gl/Makefile.am   |    2 +-
 gles/Makefile.am |    2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

commit 4ea9911f575a1c324f8be1f20e0aa5810ac18852
Author: Matthew Allum <mallum@openedhand.com>
Date:   Fri Apr 4 13:20:02 2008 +0000

    2008-04-04  Matthew Allum  <mallum@openedhand.com>
    
            * clutter/clutter-actor.c:
            Remove uneeded stage private member.
            Add show-on-set-parent prop and make so by default Actors are
            now automatically shown when reparented (#791)
    
            * clutter/eglx/clutter-backend-egl.c:
            * clutter/cogl/gles/cogl.c:
            A couple of minor comments.
    
            * clutter/eglnative/Makefile.am:
            Add missing clutter-egl.h header (back port from trunk)
    
            * tests/test-actors.c:
            Modify to take advantage of new show-on-set-parent functionality.

 gles/cogl.c |   11 +++++++++--
 1 files changed, 9 insertions(+), 2 deletions(-)

commit f9039e53cb1d218e94b2a5a5505727e2be59020a
Author: Neil Roberts <neil@openedhand.com>
Date:   Tue Mar 25 15:42:50 2008 +0000

    2008-03-25  Neil Roberts  <neil@o-hand.com>
    
    	Added a native Win32 WGL backend.
    
    	* configure.ac: Added the 'win32' flavour.
    
    	* clutter/cogl/gl/cogl.c (cogl_get_proc_address): Added an ifdef
    	to use wglGetProcAddress with the Win32 backend.
    
    	* clutter/Makefile.am (DIST_SUBDIRS): Added the win32 directory.
    
    	* clutter/win32/clutter-win32.pc.in:
    	* clutter/win32/clutter-win32.h:
    	* clutter/win32/clutter-stage-win32.h:
    	* clutter/win32/clutter-stage-win32.c:
    	* clutter/win32/clutter-event-win32.c:
    	* clutter/win32/clutter-backend-win32.h:
    	* clutter/win32/Makefile.am:
    	* clutter/win32/clutter-backend-win32.c: New files.

 gl/cogl.c |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)

commit 0264205ad144fe1928c9fec67ce022b48f2ea992
Author: Matthew Allum <mallum@openedhand.com>
Date:   Fri Feb 15 14:30:45 2008 +0000

    2008-02-15  Matthew Allum  <mallum@openedhand.com>
    
            * clutter/cogl/gles/cogl.c: (cogl_paint_init):
            Remove depth test getting turned on by default (unlike GL backend)

 gles/cogl.c |    4 ----
 1 files changed, 0 insertions(+), 4 deletions(-)

commit 4e147c8843dc3a45c53b1232f7a811607de3da7b
Author: Matthew Allum <mallum@openedhand.com>
Date:   Sun Feb 3 01:53:10 2008 +0000

    2008-02-03  Matthew Allum  <mallum@openedhand.com>
    
            * clutter/clutter-shader.c:
            Minor formatting cleanups to fit in 80 cols.
    
            * clutter/clutter-texture.c:
            More safety checks, clean ups in clutter_texture_new_from_actor()
    
            * clutter/cogl/gl/cogl.c:
            Always clear the FBO initially when rendering
    
            * tests/test-fbo.c:
            Overhall the test as to be more useful (and show current issues)

 gl/cogl.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

commit b97c326ecad33ea91bcf0f75626522af5d7b47a8
Author: Matthew Allum <mallum@openedhand.com>
Date:   Fri Feb 1 18:14:54 2008 +0000

    2008-02-01  Matthew Allum  <mallum@openedhand.com>
    
            * clutter/cogl/cogl.h:
            * clutter/cogl/gl/cogl.c:
            * clutter/cogl/gles/cogl.c:
           Disable the depth test and buffer as has some strange side
           effects, mainly on x/y axis rotation with multiple layers at
           same depth (eg rotating text on a bg has very strange
           effect). Seems no clean 100% effective way to fix without other
           odd issues.. So for now move to application to handle and add
           cogl_enable_depth_test() as for custom actors (i.e groups) to
           enable if need be.

 cogl.h      |    3 +++
 gl/cogl.c   |   36 ++++++++++++++++++++++++------------
 gles/cogl.c |   18 +++++++++++-------
 3 files changed, 38 insertions(+), 19 deletions(-)

commit 307a18860c1b9a23afb836825d7f74af1dd461fe
Author: Matthew Allum <mallum@openedhand.com>
Date:   Fri Feb 1 15:29:00 2008 +0000

    2008-02-01  Matthew Allum  <mallum@openedhand.com>
    
            * clutter/clutter-feature.h:
            * clutter/clutter-texture.c:
            * clutter/clutter-texture.h:
            * clutter/cogl/cogl.h:
            * clutter/cogl/gl/cogl.c:
            * clutter/cogl/gles/cogl.c:
            * tests/Makefile.am:
            * tests/test.fbo.c:
            Add initial support for FBO's in Clutter (OpenGL only so far).
            See new clutter_texture_new_from_actor()
            Initial implementation, needs work.
    
            * clutter/x11/clutter-stage-x11.c:
            (clutter_stage_x11_set_cursor_visible):
            Fall back to again not relying on xfixes to hide cursor. *sigh*
    
            * clutter/clutter-deprecated.h:
            Add clutter_group_find_child_by_id

 cogl.h      |   17 +++++++
 gl/cogl.c   |  153 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 gles/cogl.c |   30 ++++++++++++
 3 files changed, 199 insertions(+), 1 deletions(-)

commit 4eeb4bbdd0197da538e7b0ff714339d8bb5dc1e3
Author: Øyvind Kolås <pippin@openedhand.com>
Date:   Fri Feb 1 12:07:23 2008 +0000

    * clutter/cogl/gles/cogl.c: (cogl_rectangle_internal): increase size
    of GLfixed[] array to make contents fit.

 gles/cogl.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 801d55621ea388b65eb0dbd4b4e3e8a11d8912e0
Author: Emmanuele Bassi <ebassi@openedhand.com>
Date:   Wed Jan 16 10:38:05 2008 +0000

    2008-01-16  Emmanuele Bassi  <ebassi@openedhand.com>
    
    	* clutter/cogl/cogl.h: Rename COGLhandleARB to COGLhandle.
    
    	* clutter/cogl/gl/cogl-defines.h.in:
    	* clutter/cogl/gl/cogl.c: Update GL implementation of COGL.
    
    	* clutter/cogl/gles/cogl-defines.h:
    	* clutter/cogl/gles/cogl.c: Update GLES implementation of COGL.
    
    	* clutter/clutter-shader.c: Fix ClutterShader to use the new
    	COGLhandle type instead of COGLhandlerARB.

 cogl.h               |   41 ++++++++++++++++++++---------------------
 gl/cogl-defines.h.in |    2 +-
 gl/cogl.c            |   38 +++++++++++++++++++-------------------
 gles/cogl-defines.h  |    2 +-
 gles/cogl.c          |   36 ++++++++++++++++++------------------
 5 files changed, 59 insertions(+), 60 deletions(-)

commit 7f51bdda17b533aed9ffbb90b46d47a298be4d96
Author: Emmanuele Bassi <ebassi@openedhand.com>
Date:   Wed Jan 16 10:02:56 2008 +0000

    2008-01-16  Emmanuele Bassi  <ebassi@openedhand.com>
    
    	Define COGLhandleARB. (patch by Johan Bilien)
    
    	* clutter/cogl/gles/cogl-defines.h: Define COGLhandleARB on
    	GLES as well (using GLuint)
    
    	* clutter/cogl/gles/cogl.c: Use COGLhandleARB.

 gles/cogl-defines.h |    1 +
 gles/cogl.c         |   53 +++++++++++++++++++++++++++++++-------------------
 2 files changed, 34 insertions(+), 20 deletions(-)

commit 682eb3c6dbf23c03e35439049a84a48139520350
Author: Emmanuele Bassi <ebassi@openedhand.com>
Date:   Mon Jan 14 11:52:04 2008 +0000

    2008-01-14  Emmanuele Bassi  <ebassi@openedhand.com>
    
    	* clutter/cogl/gl/cogl.c (cogl_get_proc_address): Implement non-GLX
    	version using GModule and looking up the symbol from the running
    	process. It should work when linked to library providing the
    	requested function. (#696, Tommi Komulainen)

 gl/cogl.c |   20 +++++++++++++++++++-
 1 files changed, 19 insertions(+), 1 deletions(-)

commit 37af2da4100a353d550e9a760e0f5adbd61cf5f8
Author: Øyvind Kolås <pippin@openedhand.com>
Date:   Thu Jan 10 09:55:44 2008 +0000

    Added COGLhandleARB since the underlying type on OSX is void*,
    patch from Tommi Komulainen <tommi.komulainen@iki.fi>, (#694)
    * clutter/cogl/gl/cogl-defines.h.in: Added COGLhandleARB typedef.
    * clutter/cogl/cogl.h:
    * clutter/cogl/gl/cogl.c:
    * clutter/clutter-shader.c: Use COGLhandleARB instead of COGLint when
    referring to program or shader handles.

 cogl.h               |   38 +++++++++++++++++++-------------------
 gl/cogl-defines.h.in |    1 +
 gl/cogl.c            |   40 ++++++++++++++++++++--------------------
 3 files changed, 40 insertions(+), 39 deletions(-)

commit 471da532a31a6757e68c2c82355d964092ac6b0b
Author: Emmanuele Bassi <ebassi@openedhand.com>
Date:   Mon Dec 24 12:53:04 2007 +0000

    2007-12-24  Emmanuele Bassi  <ebassi@openedhand.com>
    
    	* clutter/cogl/cogl.h: Update cogl_clip_set() to accept the
    	clip components as ClutterFixed values
    
    	* clutter/cogl/gl/cogl.c (cogl_clip_set): Update the GL implementation
    	of cogl_clip_set()
    
    	* clutter/cogl/gles/cogl.c:
    	(cogl_rectangle_internal): Provide an internal, inlined rectangle
    	drawing	function using fixed point values, to be shared by
    	cogl_clip_set() and cogl_rectangle()
    
    	(cogl_clip_set), (cogl_rectangle): Update the GLES implementation
    	of cogl_clip_set() and cogl_rectangle() to use the new internal
    	rectangle drawing function
    
    	* clutter/clutter-actor.c: Make the clip an array of ClutterUnit
    	values instead of pixel-based; this allows higher precision and
    	device independence
    
    	(_clutter_actor_apply_modelview_transform): Pass the clip
    	components converting from units to fixed point values, using
    	the new cogl_clip_set() signature
    
    	(clutter_actor_get_property), (clutter_actor_set_clip),
    	(clutter_actor_get_clip): Update the accessors of the clip
    	property

 cogl.h      |    5 ++++-
 gl/cogl.c   |   15 +++++++++------
 gles/cogl.c |   52 +++++++++++++++++++++++++++++++++-------------------
 3 files changed, 46 insertions(+), 26 deletions(-)

commit ef26dc078ebc1e9a5af90d931cf0e94029a8163b
Author: Emmanuele Bassi <ebassi@openedhand.com>
Date:   Fri Dec 21 16:04:39 2007 +0000

    2007-12-21  Emmanuele Bassi  <ebassi@openedhand.com>
    
    	* clutter/clutter-group.c:
    	* clutter/clutter-group.h: Add the clutter_group_add() convenience
    	function; it's now "undeprecated" and implemented as a macro
    
    	* clutter/clutter-stage.h: Add clutter_stage_add() as a convenience
    	macro
    
    	* clutter/cogl/cogl.h: Include just the needed headers instead
    	of the whole clutter.h; this avoids rebuild cogl when not needed

 cogl.h |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

commit 0e391f1194a16ae1113b4162ae3c3e791ce9aa24
Author: Tomas Frydrych <tf@openedhand.com>
Date:   Wed Dec 19 16:16:10 2007 +0000

    2007-12-19  Tomas Frydrych  <tf@openedhand.com>
    
    	* clutter/Makefile.am:
    	* clutter/cogl/gl/cogl-defines.h.in:
    	* clutter/pango/pangoclutter-render.c:
    	* configure.ac:
    	Fixes to allow cross-compilation with mingw (patch by Neil
    	Roberts).
    	Removed trailing whitespace.

 gl/cogl-defines.h.in |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

commit 530fca4b870610a3ac2c9503e7c847fcb9983265
Author: Matthew Allum <mallum@openedhand.com>
Date:   Fri Dec 14 12:36:45 2007 +0000

    2007-12-14  Matthew Allum  <mallum@openedhand.com>
    
            * clutter/cogl/gl/cogl-defines.h.in:
            * clutter/cogl/gles/cogl-defines.h:
            Add CLUTTER_COGL_HAS_GL/GLES defines

 gl/cogl-defines.h.in |    1 +
 gles/cogl-defines.h  |    2 ++
 2 files changed, 3 insertions(+), 0 deletions(-)

commit 4dea166d53af13c16af6a554578fe09cec38277d
Author: Øyvind Kolås <pippin@openedhand.com>
Date:   Mon Dec 3 16:29:18 2007 +0000

    Support for shaders in clutter. At the moment limited to drivers
    providing GLSL support.
    * clutter/cogl/cogl.h: added rather direct binding of needed for glsl
    shaders.
    * clutter/cogl/gl/cogl-defines.h.in:
    * clutter/cogl/gl/cogl.c:
    * clutter/cogl/gles/cogl-defines.h: added stubs.
    * clutter/cogl/gles/cogl.c: added stubs.
    * clutter/glx/clutter-stage-glx.c:
    (clutter_stage_glx_realize): unrelated memory management sanity fix.
    (clutter_stage_glx_unrealize): unbind all shaders on stage unrealize.
    * clutter/Makefile.am: added clutter-shader.[ch]
    * clutter/clutter-actor.[ch]: adding shader capability to
    actors.
    * clutter/clutter-feature.h: added CLUTTER_FEATURE_SHADERS_GLSL
    * clutter/clutter-private.h: added stack of shaders to context.
    * clutter/clutter-shader.[ch]: new.
    * tests/Makefile.am: added shader test.
    * tests/test-shader.c: (frame_cb), (main): simple shader test,
    cycle through the inline shader with right/left mouse buttons.

 cogl.h               |   52 +++++++++++++++++++
 gl/cogl-defines.h.in |    6 ++
 gl/cogl.c            |  137 ++++++++++++++++++++++++++++++++++++++++++++++++++
 gles/cogl-defines.h  |   18 +++++++
 gles/cogl.c          |   68 ++++++++++++++++++++++++-
 5 files changed, 279 insertions(+), 2 deletions(-)

commit 947f47b6a4ba5117d59e9947d6fe5f2a9eb4413d
Author: Matthew Allum <mallum@openedhand.com>
Date:   Wed Nov 21 12:30:50 2007 +0000

    2007-11-21  Matthew Allum  <mallum@openedhand.com>
    
            * clutter/cogl/gles/cogl.c: (cogl_fog_set):
            Minor fixes for fog on GLES.

 gles/cogl.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

commit 9de04774d2d4718756b6df9c376e6d1f60713ec4
Author: Emmanuele Bassi <ebassi@openedhand.com>
Date:   Wed Nov 21 11:55:26 2007 +0000

    2007-11-21  Emmanuele Bassi  <ebassi@openedhand.com>
    
    	* clutter/cogl/cogl.h: Add cogl_fog_set() abstracting the
    	glFog() functions and enabling the GL_FOG flag.
    
    	* clutter/cogl/gl/cogl.c: Add GL implementation of cogl_fog_set().
    
    	* clutter/cogl/gles/cogl.c: Add GL/ES implementation of
    	cogl_fog_set().
    
    	* clutter.symbols: Add new symbols.
    
    	* clutter/clutter-stage.h: Add API to enable depth cueing on
    	the stage using a linear GL fog, and to set the parameters
    	for it (#637).
    
    	* clutter/clutter-stage.c (clutter_stage_paint): Enable the
    	GL fog if the ClutterStage:use-fog property is true.
    
    	* tests/test-depth.c: Test the new stage API.

 cogl.h      |    6 ++++++
 gl/cogl.c   |   56 +++++++++++++++++++++++++++++++++++++++++++++-----------
 gles/cogl.c |   32 ++++++++++++++++++++++++++++++--
 3 files changed, 81 insertions(+), 13 deletions(-)

commit 2331fa755798548470bd189f6c3996c02625c83b
Author: Matthew Allum <mallum@openedhand.com>
Date:   Thu Nov 15 14:45:27 2007 +0000

    2007-11-15  Matthew Allum  <mallum@openedhand.com>
    
            * clutter/Makefile.am:
            * clutter/eglx/Makefile.am:
            * clutter/eglx/clutter-backend-egl.c:
            * clutter/eglx/clutter-backend-egl.h:
            * clutter/eglx/clutter-eglx.h:
            * clutter/eglx/clutter-event-egl.c:
            * clutter/eglx/clutter-stage-egl.c:
            * clutter/eglx/clutter-stage-egl.h:
            * clutter/glx/Makefile.am:
            * clutter/glx/clutter-backend-glx.c:
            * clutter/glx/clutter-backend-glx.h:
            * clutter/glx/clutter-event-glx.c:
            * clutter/glx/clutter-glx.h:
            * clutter/glx/clutter-stage-glx.c:
            * clutter/glx/clutter-stage-glx.h:
            * clutter/x11/Makefile.am:
            * clutter/x11/clutter-backend-x11-private.h:
            * clutter/x11/clutter-backend-x11.c:
            * clutter/x11/clutter-backend-x11.h:
            * clutter/x11/clutter-event-x11.c:
            * clutter/x11/clutter-stage-x11.c:
            * clutter/x11/clutter-stage-x11.h:
            * clutter/x11/clutter-x11.h:
            Create a new X11 backend class of which EGL and GLX 'real' backends
            then subclass. Effectively shares all X11 code between both backends
            avoids code duplication and brings many missing features to EGL X
            backend. Requires some cleanup and testing. (#518)
    
            * clutter/cogl/gles/cogl.c: (cogl_color):
            Add define to use color4ub only if configure finds it.
            If not fall back to old code.
    
            * configure.ac:
            Drop support for vincent checks.
            Drop sdles backend.
            Specifically check for color4ub call.

 gles/cogl.c |   10 +++++++++-
 1 files changed, 9 insertions(+), 1 deletions(-)

commit 72d39f309e49c487c38c600ec5e8fe65a385b934
Author: Robert Bradford <rob@openedhand.com>
Date:   Thu Nov 8 21:23:53 2007 +0000

    2007-11-08  Rob Bradford  <rob@openedhand.com>
    
    	* clutter/cogl/gles/cogl.c: (cogl_color):
    	Switch over to using glColor4ub in the GLES backend. It's available in
    	the header file but missing in the reference manual.

 gles/cogl.c |   14 ++++++++++----
 1 files changed, 10 insertions(+), 4 deletions(-)

commit f274e9abb3d47d61c4e5a2485efcc1efd90bcb2f
Author: Emmanuele Bassi <ebassi@openedhand.com>
Date:   Mon Oct 29 16:50:34 2007 +0000

    2007-10-29  Emmanuele Bassi  <ebassi@openedhand.com>
    
    	* configure.ac:
    	* clutter/cogl/gl/cogl-defines.h.in: The OS X backend has a funny
    	OpenGL header location, so it basically did break every application
    	including clutter/cogl.h because the GL header inclusion depended
    	on symbols defined into Clutter's config.h. Now, we define the
    	GL header into the configure template and use it to create the
    	cogl-defines.h file cogl.h includes.

 gl/cogl-defines.h    |  707 --------------------------------------------------
 gl/cogl-defines.h.in |  703 +++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 703 insertions(+), 707 deletions(-)

commit 4ff00fa1916ae4c6b446c5d815e09fbe53710d92
Author: Matthew Allum <mallum@openedhand.com>
Date:   Fri Oct 26 22:06:45 2007 +0000

    2007-10-26  Matthew Allum  <mallum@openedhand.com>
    
            * clutter/clutter-texture.c:
            * clutter/cogl/cogl.h:
            * clutter/cogl/gl/cogl-defines.h:
            * clutter/cogl/gles/cogl-defines.h:
            * clutter/cogl/gl/cogl.c:
            * clutter/cogl/gles/cogl.c:
            Switch from use of guint to COGLuint. Avoids problems when
            guint != GLuint on some platforms, i.e OSX.
            (Tommi Komulainen, #526)
    
            * clutter/Makefile.am:
            * clutter/osx/Makefile.am:
            * clutter/osx/clutter-backend-osx.c:
            * clutter/osx/clutter-backend-osx.h:
            * clutter/osx/clutter-event-osx.c:
            * clutter/osx/clutter-osx.h:
            * clutter/osx/clutter-stage-osx.c:
            * clutter/osx/clutter-stage-osx.h:
            * configure.ac:
            Add initial Cocoa/OSX Backend (by Tommi Komulainen, see #526)

 cogl.h              |   11 ++++-------
 gl/cogl-defines.h   |    9 +++++++++
 gl/cogl.c           |   35 +++++++++++++++++++++--------------
 gles/cogl-defines.h |    1 +
 gles/cogl.c         |    6 +++---
 5 files changed, 38 insertions(+), 24 deletions(-)

commit bcc81bdf1b385a331873f17588d55ce0e0ae0b1e
Author: Emmanuele Bassi <ebassi@openedhand.com>
Date:   Thu Oct 25 14:43:55 2007 +0000

    2007-10-25  Emmanuele Bassi  <ebassi@openedhand.com>
    
    	* clutter/cogl/cogl.h: Do not include <clutter/clutter.h>.

 cogl.h |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

commit 63ed3a309c8665c75d9e6c1103eabc2d8ca1e8a5
Author: Tomas Frydrych <tf@openedhand.com>
Date:   Mon Oct 15 19:19:42 2007 +0000

    2007-10-15  Tomas Frydrych  <tf@o-hand.com>
    
    	* clutter/cogl/gl/cogl-defines.h:
    	* clutter/cogl/gl/cogl.c:
    	Fixed up GL include for windows.

 gl/cogl-defines.h |    5 +++++
 gl/cogl.c         |    5 +++++
 2 files changed, 10 insertions(+), 0 deletions(-)

commit 356678ab3cfe487ab3a1071c3b04d30c23684129
Author: Tomas Frydrych <tf@openedhand.com>
Date:   Fri Oct 12 08:17:00 2007 +0000

    2007-10-12  Tomas Frydrych  <tf@o-hand.com>
    
            * clutter/clutter-actor.c:
            * clutter/clutter-backend.c:
            * clutter/clutter-behaviour-depth.c:
            * clutter/clutter-box.c:
            * clutter/clutter-clone-texture.c:
            * clutter/clutter-container.c:
            * clutter/clutter-entry.c:
            * clutter/clutter-feature.c:
            * clutter/clutter-fixed.c:
            * clutter/clutter-group.c:
            * clutter/clutter-hbox.c:
            * clutter/clutter-label.c:
            * clutter/clutter-layout.c:
            * clutter/clutter-media.c:
            * clutter/clutter-rectangle.c:
            * clutter/clutter-score.c:
            * clutter/clutter-script.c:
            * clutter/clutter-stage.c:
            * clutter/clutter-texture.c:
            * clutter/clutter-timeline.c:
            * clutter/clutter-timeout-pool.c:
            * clutter/clutter-vbox.c:
            * clutter/cogl/gl/cogl.c:
            * clutter/cogl/gles/cogl.c:
            * clutter/eglnative/clutter-backend-egl.c:
            * clutter/eglnative/clutter-event-egl.c:
            * clutter/eglnative/clutter-stage-egl.c:
            * clutter/eglx/clutter-backend-egl.c:
            * clutter/eglx/clutter-event-egl.c:
            * clutter/eglx/clutter-stage-egl.c:
            * clutter/glx/clutter-event-glx.c:
            * clutter/json/json-array.c:
            * clutter/json/json-generator.c:
            * clutter/json/json-node.c:
            * clutter/json/json-object.c:
            * clutter/json/json-parser.c:
            * clutter/sdl/clutter-backend-sdl.c:
            * clutter/sdl/clutter-event-sdl.c:
            * clutter/sdl/clutter-stage-sdl.c:
    
    	Fixedup config.h inclusion (must always be bracketed with #ifdef
    	HAVE_CONFIG_H).

 gl/cogl.c   |   67 ++++++++++++++++++++++++++++++----------------------------
 gles/cogl.c |    3 ++
 2 files changed, 38 insertions(+), 32 deletions(-)

commit 14a794f18b8709b9069484966756a445968350df
Author: Matthew Allum <mallum@openedhand.com>
Date:   Fri Aug 24 15:12:52 2007 +0000

    2007-08-24  Matthew Allum  <mallum@openedhand.com>
    
            * clutter/clutter-actor.c:
            * clutter/clutter-event.h:
            * clutter/clutter-main.c:
            * clutter/clutter-stage.c:
            * clutter/clutter-stage.h:
            * clutter/glx/clutter-backend-glx.c:
            * clutter/glx/clutter-backend-glx.h:
            * clutter/glx/clutter-event-glx.c:
            * clutter/glx/clutter-stage-glx.c:
            * clutter/glx/clutter-stage-glx.h:
            Add initial support for stage state events.
            Fix fullscreening for an already mapped stage.
    
            * tests/test-events.c:
            Print out info from the above. Blue button now toggles
            fullscreen.
    
            * clutter/clutter-effect.c:
            * clutter/clutter-effect.h:
            Add a setting for templates to ref or clone underlying
            timelines. (As to improve sync issues like those in foofone)
    
            * tests/test-timeline.c:
            Also add completed signals.
    
            * clutter/cogl/gles/cogl.c: (cogl_texture_image_2d):
            * configure.ac:
            Forward port from stable branch. RGB Image fixes gles
            and check for lower case libgles_cm.

 gles/cogl.c |   12 +++++++++---
 1 files changed, 9 insertions(+), 3 deletions(-)

commit fe4fb91fa335e2be999fc2c86ce65af51dc9f82a
Author: Matthew Allum <mallum@openedhand.com>
Date:   Mon Aug 13 20:48:01 2007 +0000

    2007-08-13  Matthew Allum  <mallum@openedhand.com>
    
            * clutter/clutter-actor.c:
            * clutter/clutter-actor.h:
            * clutter/clutter-event.c:
            * clutter/clutter-event.h:
            * clutter/clutter-main.c:
            * clutter/clutter-main.h:
            * clutter/clutter-private.h:
            * clutter/clutter-stage.c:
            * clutter/clutter-stage.h:
            * clutter/clutter-types.h:
            Initial implementation of actors emmitting event signals (423);
            - Actors set_reactive() to receive mouse events.
              (call clutter_enable_motion_events() for per action motion events)
            - clutter_stage_set_key_focus () to direct key events.
            - Events bubble up to parents (ending at stage)
              (original source identified by clutter_event_get_source())
            TODO:
            - enter/leave notifys for actors.
            - stage specific events - fullscreen
            - grabs
    
            * tests/test-events.c:
            Extend a little to use new API
    
            * clutter/cogl/gl/cogl.c:
            * clutter/glx/clutter-backend-glx.c:
            Move get_proc_address into cogl and out of backend.
            (shaders will need it)
    
            * clutter/clutter-group.c: (clutter_group_real_lower):
            Fix a minor compile warning.
    
            * TODO:
            Sync up.

 gl/cogl.c |   45 ++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 44 insertions(+), 1 deletions(-)

commit a7525798454bed1bf8a0cda4056d4429011c0f7f
Author: Matthew Allum <mallum@openedhand.com>
Date:   Tue Aug 7 11:35:22 2007 +0000

    2007-08-07  Matthew Allum  <mallum@openedhand.com>
    
            * clutter/clutter-fixed.c:
            * clutter/clutter-fixed.h:
            Add documentation.
    
            * clutter/cogl/gl/cogl.c: (cogl_perspective):
            Remove CFX_* shortened macros

 gl/cogl.c |   14 +++++++-------
 1 files changed, 7 insertions(+), 7 deletions(-)

commit bb3e6a91bbd65cfc397894a215d2edc02344fcab
Author: Matthew Allum <mallum@openedhand.com>
Date:   Tue Jul 24 16:50:34 2007 +0000

    2007-07-24  Matthew Allum  <mallum@openedhand.com>
    
            * clutter/cogl/gl/cogl-defines.h:
            Add  CGL_UNSIGNED_INT_8_8_8_8_REV (for big endian machines)

 gl/cogl-defines.h |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

commit 06d28d04d1fc3bf7e0509b5f975ff72faef628a8
Author: Matthew Allum <mallum@openedhand.com>
Date:   Tue Jul 24 16:42:50 2007 +0000

    2007-07-24  Matthew Allum  <mallum@openedhand.com>
    
            * clutter/cogl/gl/cogl-defines.h:
            Another GL_TEXTURE_RECTANGLE_ARB related fix (#404)

 gl/cogl-defines.h |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

commit bbd0c14ef2d2fca96f8451d30065353345aa0259
Author: Matthew Allum <mallum@openedhand.com>
Date:   Tue Jul 24 12:17:42 2007 +0000

    2007-07-24  Matthew Allum  <mallum@openedhand.com>
    
            * clutter/cogl/gles/cogl.c: (cogl_get_bitmasks):
            Fix typo calling glGetIntegerv rather than glGetInteger

 gles/cogl.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

commit f5f0fe94fd3224b772650d792d51733930d8d89c
Author: Matthew Allum <mallum@openedhand.com>
Date:   Tue Jul 24 12:06:52 2007 +0000

    2007-07-24  Matthew Allum  <mallum@openedhand.com>
    
            * clutter/cogl/gl/cogl.c: (cogl_get_features):
            learn to use cpp properly.

 gl/cogl.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 1001838b33549cd59f50278b7044efdbd74613ed
Author: Matthew Allum <mallum@openedhand.com>
Date:   Tue Jul 24 12:04:24 2007 +0000

    2007-07-24  Matthew Allum  <mallum@openedhand.com>
    
            * clutter/clutter-media.c: (clutter_media_base_init):
            Remove #if 0! signal - assume causing issues with binding generation.
            (#407)
    
            * clutter/cogl/gl/cogl.c:
            Check GL_TEXTURE_RECTANGLE_ARB and GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB
            are defined in gl.h (#404)

 gl/cogl.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)

commit e0487843f3945e6b43e66ae0e39bff984f6bde11
Author: Matthew Allum <mallum@openedhand.com>
Date:   Thu Jul 12 10:15:19 2007 +0000

    2007-07-12  Matthew Allum  <mallum@openedhand.com>
    
            * clutter/clutter-actor.c: (clutter_actor_paint):
            * clutter/clutter-stage.c: (clutter_stage_get_actor_at_pos):
            * clutter/cogl/cogl.h:
            * clutter/cogl/gl/cogl.c: (cogl_get_viewport):
            * clutter/cogl/gles/cogl.c: (cogl_get_viewport):
            Based on patch from Pan Bohui, See;
            http://bugzilla.openedhand.com/show_bug.cgi?id=390
    
            * TODO:
            More misc updates.

 cogl.h      |    3 +++
 gl/cogl.c   |   13 +++++++++++++
 gles/cogl.c |   13 +++++++++++++
 3 files changed, 29 insertions(+), 0 deletions(-)

commit 8c5ac95a696aa6f7fbfa9756f3fc597bbb1333b8
Author: Matthew Allum <mallum@openedhand.com>
Date:   Fri Jun 29 11:54:31 2007 +0000

    2007-06-29  Matthew Allum  <mallum@openedhand.com>
    
            * clutter/clutter-texture.c: (texture_upload_data):
            Fix a SEGV for GL ES textures.
    
            * clutter/cogl/gles/cogl.c: (cogl_setup_viewport):
            Tweak default z_camera for 60 degrees like GL.
    
            * clutter/egl/clutter-backend-egl.c::
            * clutter/egl/clutter-stage-egl.c:
            Fix edpy usage (thanks to Kaj Gronholm).

 gles/cogl.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit d7eda69b480e11db94a8d9619791f4c59e36652a
Author: Matthew Allum <mallum@openedhand.com>
Date:   Thu Jun 28 09:38:42 2007 +0000

    2007-06-28  Matthew Allum  <mallum@openedhand.com>
    
            * clutter/cogl/gl/cogl.c: (cogl_setup_viewport):
            Improve fixed z_camera value for defualt perspective.
            Appears pixel perfect on ATI and Intel at least

 gl/cogl.c |   10 ++++++----
 1 files changed, 6 insertions(+), 4 deletions(-)

commit 3cdc195408626066c033868a68a3f50a3d9c6e95
Author: Tomas Frydrych <tf@openedhand.com>
Date:   Tue Jun 26 16:07:14 2007 +0000

    tweaked z_camera constant for default 60 deg perspective angle

 gl/cogl.c   |   30 +++++++++++++++++++++++++-----
 gles/cogl.c |   21 ++++++++++++++++-----
 2 files changed, 41 insertions(+), 10 deletions(-)

commit 2ef9e63f9c64086a1b9434ff17c8d4e359f1983e
Author: Tomas Frydrych <tf@openedhand.com>
Date:   Mon Jun 25 13:43:13 2007 +0000

    changed ClutterPerspective.fovy from ClutterAngle to degrees

 cogl.h      |    4 ++--
 gl/cogl.c   |   15 +++++++++------
 gles/cogl.c |   16 ++++++++++------
 3 files changed, 21 insertions(+), 14 deletions(-)

commit c451d0501b594db7de2447f8c5fbc4afb303c3d4
Author: Matthew Allum <mallum@openedhand.com>
Date:   Tue Jun 19 09:10:37 2007 +0000

    2007-06-19  Matthew Allum  <mallum@openedhand.com>
    
            * clutter/clutter-stage.c:
            * clutter/clutter-stage.h:
            * clutter/glx/clutter-stage-glx.c:
            * clutter/sdl/clutter-stage-sdl.c:
            Add window title setting/getting functionality.
    
            * clutter/clutter-event.c: (clutter_key_event_unicode):
            Remove uneeded convert case call.
    
            * clutter/cogl/gl/cogl.c: (cogl_rectangle)
            Use parameters correctly for underlying GL rect call.
    
            * tests/test-entry.c:
            Add a window title.

 gl/cogl.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 3a6ea6dc16a554871d45ee323650e181a44bc782
Author: Matthew Allum <mallum@openedhand.com>
Date:   Thu Jun 14 12:54:47 2007 +0000

    2007-06-14  Matthew Allum  <mallum@openedhand.com>
    
            * clutter/cogl/gl/cogl.c: (cogl_check_extension):
            Actually populate this func and remove the static alternate
            named one. Means GLX actually checks for available extensions.
            Other minor tidy ups.
    
            * clutter/glx/clutter-backend-glx.c:
            * clutter/glx/clutter-backend-glx.h:
            Add support for GLX_SGI_swap_control to do vblanking prefering
            over glXGetVideoSyncSGI. Should fix issues on Intel chips with
            very slow frame rates due to vblank problems.
            Thanks to  Michel Danzer for tips, see;
            http://bugs.freedesktop.org/show_bug.cgi?id=10542
    
            * test/test-actors.c:
            Change FPS to 60.

 gl/cogl.c |   68 ++++++++++--------------------------------------------------
 1 files changed, 12 insertions(+), 56 deletions(-)

commit 1a6069bdee0229fd64fb92e7043b690d2829e64a
Author: Tomas Frydrych <tf@openedhand.com>
Date:   Tue Jun 12 11:42:29 2007 +0000

    clutter_actor_project_point/vertices

 cogl.h      |    9 +++++++
 gl/cogl.c   |   74 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 gles/cogl.c |   18 ++++++++++++++
 3 files changed, 99 insertions(+), 2 deletions(-)

commit f72e754876ec53ff27b70622263d1e809d89b06a
Author: Matthew Allum <mallum@openedhand.com>
Date:   Thu Jun 7 23:51:53 2007 +0000

    2007-06-08  Matthew Allum  <mallum@openedhand.com>
    
            * clutter/clutter-actor.c:
            * clutter/clutter-debug.h:
            * clutter/clutter-main.c:
            * clutter/clutter-main.h:
            * clutter/clutter-private.h:
            * clutter/clutter-timeline.c:
            Add 'schedule' debug flag and new CLUTTER_TIMESTAMP macro.
    
            * clutter/clutter-texture.c:
            * clutter/clutter-texture.h:
            * clutter/cogl/cogl.h:
            * clutter/cogl/gl/cogl-defines.h:
            * clutter/cogl/gles/cogl-defines.h:
            * clutter/cogl/gl/cogl.c:
            * clutter/cogl/gles/cogl.c:
            Add initial experiemental YUV texture support.
            Move texture rect size checks into cogl.
            Better handle moving texture data from video -> system memory
            (if support available).

 cogl.h              |    4 +++-
 gl/cogl-defines.h   |    9 +++++++++
 gl/cogl.c           |   28 ++++++++++++++++++++--------
 gles/cogl-defines.h |    8 +++++++-
 gles/cogl.c         |   20 +++-----------------
 5 files changed, 42 insertions(+), 27 deletions(-)

commit 682aba56e3e802096daf078740d93e56596cb0eb
Author: Tomas Frydrych <tf@openedhand.com>
Date:   Tue May 29 07:26:32 2007 +0000

    fix z_camera calcualtion in gles/cogl

 gles/cogl.c |   11 ++---------
 1 files changed, 2 insertions(+), 9 deletions(-)

commit 7c7fcc2cb9a864265b439ec42d77aa1927e0b722
Author: Matthew Allum <mallum@openedhand.com>
Date:   Mon May 28 18:49:34 2007 +0000

    2007-05-28  Matthew Allum  <mallum@openedhand.com>
    
            * clutter/clutter-backend.c:
            * clutter/clutter-backend.h:
            * clutter/glx/clutter-stage-glx.c:
            * clutter/glx/clutter-backend-glx.c:
            Fix up rendering pipeline removing clutter_backend_XXX_stage_paint
            and adding clutter_backend_XXX_redraw instead. Duplicates less
            code in backends, avoids clutter_actor_paint() getting called
            before stage is set up (viewport wise) and unbreaks things like
            picking.
    
            * clutter/clutter-actor.c:
            * clutter/clutter-actor.h:
            * clutter/clutter-main.c:
            * clutter/clutter-private.h:
            * clutter/clutter-stage.c: (clutter_stage_get_actor_at_pos):
            Redo picking functionality a different way (via color indexing)
            as to provide more flexibility, possibly speed and more likely
            work with GL/ES (doesn't currently however - not sure why).
    
            * clutter/clutter-group.c:
            Add groups own 'pick' method.
    
            * clutter/cogl/cogl.h:
            * clutter/cogl/gl/cogl.c:
            * clutter/cogl/gles/cogl.c:
            Move clipping funtionality into cogl.
    
            * clutter/cogl/gles/cogl-defines.h:
            Hack around missing BGR format in GL/ES.
    
            * clutter/egl/clutter-backend-egl.c:
            * clutter/egl/clutter-backend-egl.h:
            * clutter/egl/clutter-stage-egl.c:
            * clutter/sdl/clutter-backend-sdl.c:
            * clutter/sdl/clutter-backend-sdl.h:
            * clutter/sdl/clutter-event-sdl.c:
            * clutter/sdl/clutter-stage-sdl.c:
            Update backends to newer API.
            Add basic mouse event translation to SDL.

 cogl.h              |   10 ++++-
 gl/cogl.c           |  104 +++++++++++++++-----------------------------------
 gles/cogl-defines.h |    7 +++
 gles/cogl.c         |   49 +++++++++++++++++++----
 4 files changed, 86 insertions(+), 84 deletions(-)

commit 4df06650121279784c5de68d9296794e4e238bd6
Author: Tomas Frydrych <tf@openedhand.com>
Date:   Fri May 25 12:07:24 2007 +0000

    ClutterBehaviourEllipse api changes; z_camera calculation

 gl/cogl.c   |    6 +++++-
 gles/cogl.c |   10 +++++-----
 2 files changed, 10 insertions(+), 6 deletions(-)

commit 84257c98208ba55f6bc813013f59b83149a23876
Author: Matthew Allum <mallum@openedhand.com>
Date:   Fri May 25 10:56:09 2007 +0000

    2007-05-25  Matthew Allum  <mallum@openedhand.com>
    
            * Makefile.am:
            Install a default flavour .pc file.
    
            * clutter/clutter-actor.c:
            Translate units correctly for translate()
    
            * clutter/clutter-feature.h:
            Add new texture features.
    
            * clutter/clutter-fixed.h:
            Add clutter angle conversion defines.
    
            * clutter/clutter-group.c:
            Use cogl not GL. Dont recurse on show all.
    
            * clutter/clutter-private.h:
            Remove sync_viewport.
    
            * clutter/clutter-rectangle.c:
            Fix cogl typo.
    
            * clutter/clutter-stage.c:
            * clutter/clutter-stage.h:
            Add perspective settings. Remove viewport_sync.
            Add audience stubs. Fix up actor_at_pos a little (still broken)
    
            * clutter/clutter-texture.h:
            * clutter/clutter-texture.c:
            Redo pixel uploading. Add initial (disabled) YUV support.
    
            * clutter/clutter-timeline.c:
            Fire 'completed' signal when looping.
    
            * clutter/cogl/gl/cogl.c:
            Move some backend checks here.
    
            * clutter/glx/clutter-backend-glx.c:
            Actually check target display has GLX ext.
    
            * clutter/glx/clutter-stage-glx.c:
            Handle offscreen failing more gracefully.
    
            * examples/Makefile.am:
            Use AM_LDFLAGS.
    
            * clutter/clutter-main.c:
            * clutter/clutter-feature.c:
            * clutter/clutter-backend.c:
            * clutter/clutter-alpha.c:
            Fix a compile warnings.
    
            * tests/Makefile.am:
            * tests/test-offscreen.c:
            * tests/test-scale.c:
            More tests.

 gl/cogl.c |   36 +++++++++++++++++++++++++++---------
 1 files changed, 27 insertions(+), 9 deletions(-)

commit 4c01df36e6e7ef71c3bb8b5f4f156155f83ace3f
Author: Matthew Allum <mallum@openedhand.com>
Date:   Wed May 16 09:08:30 2007 +0000

    2007-05-16  Matthew Allum  <mallum@openedhand.com>
    
            * clutter/clutter-backend.c:
            * clutter/clutter-backend.h:
            * clutter/clutter-feature.c:
            * clutter/clutter-feature.h:
            * clutter/clutter-main.c:
            * clutter/clutter-main.h:
            * clutter/clutter-private.h:
            * clutter/clutter-stage.c:
            * clutter/cogl/cogl.h:
            * clutter/cogl/gl/cogl.c:
            * clutter/cogl/gles/cogl.c:
            * clutter/glx/clutter-backend-glx.c:
            * clutter/glx/clutter-backend-glx.h:
            * clutter/glx/clutter-glx.h:
            * clutter/glx/clutter-stage-glx.c:
            * clutter/glx/clutter-stage-glx.h:
            Rejig the features() foo, moving mostly into backends/cogl.

 cogl.h      |    2 +
 gl/cogl.c   |   68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 gles/cogl.c |    6 +++++
 3 files changed, 75 insertions(+), 1 deletions(-)

commit 9d709e3e678613ab49f687eb992c80ec6fee2db3
Author: Matthew Allum <mallum@openedhand.com>
Date:   Wed May 2 09:01:11 2007 +0000

    2007-05-02  Matthew Allum  <mallum@openedhand.com>
    
            * clutter/clutter-actor.c:
            * clutter/cogl/gles/cogl.c:
            Fix rotation + other fixed point cleanups.
    
            * clutter/clutter-texture.h:
            Sketch out an updated API.

 gles/cogl.c |  102 ++++------------------------------------------------------
 1 files changed, 7 insertions(+), 95 deletions(-)

commit d18e432b2284cdc87236153f703631b317f91e92
Author: Tomas Frydrych <tf@openedhand.com>
Date:   Tue May 1 20:13:15 2007 +0000

    fixed sign problem in cogl_setup_vieport

 gles/cogl.c |   22 ++++++++++++++++++++--
 1 files changed, 20 insertions(+), 2 deletions(-)

commit 7d5101ad616e1e6a956c9c3c590dc62614c0eb7a
Author: Matthew Allum <mallum@openedhand.com>
Date:   Tue May 1 15:26:12 2007 +0000

    2007-05-01  Matthew Allum  <mallum@openedhand.com>
    
            * clutter/clutter-rectangle.c:
            Comment out color match check for now as appears to be causing
            borders to always get pained.
    
            * clutter/clutter-texture.h:
            Add some format defines (unused as yet)
    
            * clutter/cogl/gles/cogl.c:
            * clutter/egl/clutter-stage-egl.c:
            * configure.ac:
            Various OpenGL ES backend related fixes and tweaks.

 gles/cogl.c |  162 +++++++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 124 insertions(+), 38 deletions(-)

commit 35b6b769d51af849133b6b2acedb1f47381a0a2c
Author: Matthew Allum <mallum@openedhand.com>
Date:   Sat Apr 28 00:37:11 2007 +0000

    2007-04-28  Matthew Allum  <mallum@openedhand.com>
    
            * clutter/Makefile.am:
            * clutter/clutter-debug.h:
            * clutter/clutter-fixed.h:
            * clutter/clutter-main.c:
            * clutter/cogl/gles/Makefile.am:
            * clutter/cogl/gles/cogl-defines.h:
            * clutter/cogl/gles/cogl.c:
            * clutter/egl/clutter-backend-egl.c:
            * clutter/egl/clutter-backend-egl.h:
            * clutter/egl/clutter-stage-egl.c:
            * configure.ac:
            Populate most stubs for cogl GL/ES implementation.
            (against vincent - see http://svn.o-hand.com/repos/misc/ogles)
            Add various fixups to EGL backend.
            Code builds and runs (on 16bpp) but yet displays much (is close!)
    
            * clutter/pango/pangoclutter-render.c:
            comment out some rouge glBegin/end calls.

 gles/Makefile.am    |    5 +-
 gles/cogl-defines.h |   11 ++
 gles/cogl.c         |  356 ++++++++++++++++++++++++++++++++++++++++++++++++++-
 3 files changed, 368 insertions(+), 4 deletions(-)

commit 90d634feeb61e9ce5c8e0e556d2a2ca22e44bbcf
Author: Matthew Allum <mallum@openedhand.com>
Date:   Fri Apr 27 21:13:06 2007 +0000

    2007-04-27  Matthew Allum  <mallum@openedhand.com>
    
            * clutter/Makefile.am:
            * clutter/clutter-actor.c:
            * clutter/clutter-clone-texture.c:
            * clutter/clutter-rectangle.c:
            * clutter/clutter-stage.c:
            * clutter/clutter-texture.c:
            * clutter/cogl/cogl.h:
            * clutter/cogl/gl/Makefile.am:
            * clutter/cogl/gl/cogl-defines.h:
            * clutter/cogl/gl/cogl.c:
            * clutter/cogl/gles/Makefile.am:
            * clutter/cogl/gles/cogl-defines.h:
            * clutter/cogl/gles/cogl.c:
            * clutter/glx/Makefile.am:
            * clutter/glx/clutter-stage-glx.c:
            * clutter/pango/Makefile.am:
            * clutter/pango/pangoclutter-render.c:
            * configure.ac:
            Add initial 'cogl' implementation. 'cogl' is a simple abstration
            layer over GL and GL/ES used by clutter internally. It should
            eventually allow clutter applications to be run on both GL and GL/ES
            with just a recompile as well as provide more debugging and potentially
            profiling information for GL and GL/ES usage.
    
            This commit contains the initial GL implementation.

 cogl.h              |  137 +++++++++--
 gl/Makefile.am      |    8 +-
 gl/cogl-defines.h   |  677 +++++++++++++++++++++++++++++++++++++++++++++++++++
 gl/cogl.c           |  437 ++++++++++++++++++++++++++++++++-
 gles/Makefile.am    |    3 +-
 gles/cogl-defines.h |  440 +++++++++++++++++++++++++++++++++
 gles/cogl.c         |   68 +++++-
 7 files changed, 1727 insertions(+), 43 deletions(-)

commit 40cd5aac016f253d6e289473d51faf175d9965a6
Author: Matthew Allum <mallum@openedhand.com>
Date:   Tue Mar 27 21:09:11 2007 +0000

    2007-03-27  Matthew Allum  <mallum@openedhand.com>
    
            * clutter/cogl/Makefile.am:
            * clutter/cogl/cogl.h:
            * clutter/cogl/gles/Makefile.am:
            * clutter/cogl/gles/cogl.c:
            Begin poplulating cogl GLES code.
    
            * configure.ac:
            * clutter/egl/clutter-event-egl.c:
            * clutter/egl/clutter-stage-egl.c:
            * clutter/egl/clutter-stage-egl.h:
            * clutter/egl/clutter-backend-egl.c:
            * clutter/egl/clutter-backend-egl.h:
            * clutter/egl/clutter-egl.h:
            Add initial EGL/X backend work mostly ported from backend branch.
            Builds but untested as yet.
    
            * clutter/glx/clutter-stage-glx.c:
            Only include XFixes Header if we have have it.
    
            * clutter/clutter-behaviour.c: (clutter_behaviour_apply):
            * clutter/clutter-behaviour.h:
            Add clutter_behaviour_is_applied()

 Makefile.am      |    6 ++-
 cogl.h           |   28 +++++++++++++++
 gles/Makefile.am |   17 +++++++++
 gles/cogl.c      |  103 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 152 insertions(+), 2 deletions(-)

commit 6898d9e6b3c18c7b810312d2a15b25d85971dd6f
Author: Emmanuele Bassi <ebassi@openedhand.com>
Date:   Tue Mar 27 09:38:35 2007 +0000

    Add header and compiler guards.

 cogl.h |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)

commit f7a7f5b32a0e907ed1730ad0b0fa0a5bf602f7ac
Author: Matthew Allum <mallum@openedhand.com>
Date:   Mon Mar 26 23:18:39 2007 +0000

    2007-03-27  Matthew Allum  <mallum@openedhand.com>
    
            * clutter/clutter-feature.c:
            Rejig ifdef's a little. Make drm vblanking Linux only.
    
            * clutter/clutter-stage.c:
            * clutter/clutter-stage.h:
            Add a perspective boxed type.
    
            * clutter/glx/clutter-stage-glx.c:
            Add some FIXMEs
    
            * clutter/Makefile.am:
            * clutter/cogl/Makefile.am:
            * clutter/cogl/cogl.h:
            * clutter/cogl/gl/Makefile.am:
            * clutter/cogl/gl/cogl.c:
            * configure.ac:
            Very initial work on 'cogl' GL/GLES abstraction/utility code.

 Makefile.am    |    3 ++
 cogl.h         |   59 ++++++++++++++++++++++++++++++++
 gl/Makefile.am |   17 +++++++++
 gl/cogl.c      |  102 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 181 insertions(+), 0 deletions(-)

commit 5a28ea6e78c07eaa695a2e46d0763382c352f81e
Author: Matthew Allum <mallum@openedhand.com>
Date:   Tue Mar 22 14:53:51 2005 +0000

    Initial Import
