# Generated by configure.  Do not edit.

spec=split..
commit 5b0661ccd550efef46b529c67cb87cfbfb88cd40
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Jun 13 11:03:04 2011 +0100

    Release 1.7.0 (snapshot)

 configure.ac |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

commit 4c0f8136083b33ef97d980c08f7a363a02ed4246
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Jun 14 13:38:48 2011 +0100

    README: Updates in preparation for 1.7.0 release

 README.in |  104 +++++++++++++++++++++++++++++++++---------------------------
 1 files changed, 57 insertions(+), 47 deletions(-)

commit 5f3173e2d10c88d2a91aab43f808fbba5aae8499
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Jun 10 11:58:27 2011 +0100

    Adds NEWS in preparation for 1.7.0 release

 NEWS |   57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 57 insertions(+), 0 deletions(-)

commit ec62acfd6a6c96a71a193264d487129e45cef564
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Jun 14 15:08:17 2011 +0100

    configure: pass tar-ustar as automake init option
    
    So that our released tarballs can contain filenames longer than 99
    characters we tell automake to create tarballs using the ustar format.
    This is newer than the default v7 format but still old enough to be
    considered widely portable.

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

commit 5a6fbf7e5240c467a7192cd7b626249a9743edc7
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Jun 14 14:52:08 2011 +0100

    Ensure we use --enable-profile during make distcheck

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

commit 0e5df1776109c1c532f3959ba8882161b5192c8f
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Jun 14 16:07:43 2011 +0100

    doc: Fix EXTRA_DIST variable setup
    
    Since gtk-doc is an optional dependency for Cogl then we need to special
    case how EXTRA_DIST is initialized. It shouldn't be set when using
    gtk-doc since gtk-doc.make expects to initialize EXTRA_DIST.  If we
    aren't using gtk-doc then it should be initialized to an empty value
    instead of including gtk-doc.make so that the later lines that append
    various extra png files to EXTRA_DIST won't fail.

 doc/reference/cogl-2.0-experimental/Makefile.am |   10 +++-------
 doc/reference/cogl/Makefile.am                  |   10 +++-------
 2 files changed, 6 insertions(+), 14 deletions(-)

commit 57d76e315fef5acdca641b8dd0f64e6d411471e5
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Jun 13 12:42:25 2011 +0100

    Fixes for make distcheck

 cogl/Makefile.am    |    4 +++-
 cogl/cogl-context.c |    2 +-
 configure.ac        |    2 +-
 3 files changed, 5 insertions(+), 3 deletions(-)

commit 036c5bf572a3474f7d334b3f97cc2b6dee2c3537
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Jun 13 18:52:20 2011 +0100

    include required cogl-context.h in cogl-texture-2d.h

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

commit 7a0a4de69154a281947b7b4103ea214572960843
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Jun 13 18:51:33 2011 +0100

    Fix some gtk-doc annotations in cogl-depth-state.h

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

commit 6396006bb8429de3e2bbacdf7210bb67989d9bc9
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Jun 13 11:37:28 2011 +0100

    doc: Adds doc/RELEASING
    
    This adds some notes for maintainers about how to make a Cogl release.

 doc/RELEASING |   86 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 86 insertions(+), 0 deletions(-)

commit 800f5e6d6e864bc6f120416927d30f6f5adda9ff
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Jun 13 10:30:49 2011 +0100

    profile: Adds a --enable-profile option
    
    This adds a --enable-profile option which enables uprof based profiling.
    It was also necessary to fixup a CLUTTER_ENABLE_PROFILING #ifdef in
    cogl-context.c to renamed COGL_ENABLE_PROFILING instead. By default Cogl
    doesn't output uprof reports directly, instead it assumes a higher level
    toolkit will output a report. If you want a report from Cogl you can
    export COGL_PROFILE_OUTPUT_REPORT=1 before running your app.
    
    The latest version of uprof can be fetched from:
    git://github.com/rib/UProf.git

 cogl/Makefile.am    |    2 +-
 cogl/cogl-context.c |    2 +-
 configure.ac        |   24 ++++++++++++++++++++++++
 3 files changed, 26 insertions(+), 2 deletions(-)

commit 44e4b13324d9ae7e462e071ebf28ae4d29cb4606
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Jun 13 10:29:05 2011 +0100

    x11-foreign: Updates to forward X Events to Cogl
    
    This update the x11-foreign test so that it checks for events on its X
    display and forwards them on to Cogl. It will now also quit if any key
    of button is pressed.

 examples/x11-foreign.c |   37 ++++++++++++++++++++++++++++++++++---
 1 files changed, 34 insertions(+), 3 deletions(-)

commit 3729bf27697308142dbadcb9eea1b1d59b28e65d
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Jun 10 18:47:12 2011 +0100

    Make it clearer that the 2.0 API is experimental
    
    This explicitly renames the cogl-2.0 reference manual to
    cogl-2.0-experimental and renames the cogl-2.0 pkg-config file to
    cogl-2.0-experimental.pc. Hopefully this should avoid
    miss-understandings.

 .gitignore                                         |   26 +-
 build/autotools/Makefile.am.release                |    8 +-
 cogl-pango/Makefile.am                             |    2 +-
 cogl-pango/cogl-pango-2.0-experimental.pc.in       |   13 +
 cogl/Makefile.am                                   |    2 +-
 cogl/cogl-2.0-experimental.pc.in                   |   13 +
 cogl/cogl.pc.in                                    |   13 -
 configure.ac                                       |    8 +-
 doc/reference/Makefile.am                          |    2 +-
 doc/reference/cogl-2.0-experimental/Makefile.am    |  158 ++++++
 .../cogl-2.0-experimental/blend-strings.xml        |  129 +++++
 .../cogl-2.0-experimental/cogl-docs.xml.in         |  196 +++++++
 .../cogl-2.0-experimental/cogl-sections.txt        |  537 ++++++++++++++++++++
 doc/reference/cogl-2.0-experimental/cogl_ortho.png |  Bin 0 -> 12650 bytes
 .../cogl-2.0-experimental/fill-rule-even-odd.png   |  Bin 0 -> 3121 bytes
 .../cogl-2.0-experimental/fill-rule-non-zero.png   |  Bin 0 -> 3143 bytes
 .../cogl-2.0-experimental/quad-indices-order.png   |  Bin 0 -> 2620 bytes
 .../quad-indices-triangles.png                     |  Bin 0 -> 8018 bytes
 doc/reference/cogl-2.0/Makefile.am                 |  158 ------
 doc/reference/cogl-2.0/blend-strings.xml           |  129 -----
 doc/reference/cogl-2.0/cogl-docs.xml.in            |  196 -------
 doc/reference/cogl-2.0/cogl-sections.txt           |  537 --------------------
 doc/reference/cogl-2.0/cogl_ortho.png              |  Bin 12650 -> 0 bytes
 doc/reference/cogl-2.0/fill-rule-even-odd.png      |  Bin 3121 -> 0 bytes
 doc/reference/cogl-2.0/fill-rule-non-zero.png      |  Bin 3143 -> 0 bytes
 doc/reference/cogl-2.0/quad-indices-order.png      |  Bin 2620 -> 0 bytes
 doc/reference/cogl-2.0/quad-indices-triangles.png  |  Bin 8018 -> 0 bytes
 27 files changed, 1071 insertions(+), 1056 deletions(-)

commit 250373a0f1a6c305932c178dbd604d95c358089f
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Jun 8 14:34:00 2011 +0100

    Adds build/autotools/Makefile.am.changelog/release
    
    This adds some convenience rules to help manage releases

 Makefile.am                           |    8 ++
 build/autotools/Makefile.am.changelog |   78 ++++++++++++++++
 build/autotools/Makefile.am.release   |  156 +++++++++++++++++++++++++++++++++
 3 files changed, 242 insertions(+), 0 deletions(-)

commit a9643f38e6b874348155867b412fe3a75e794360
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Jun 8 11:52:15 2011 +0100

    x11-foreign: explicitly pass -lX11 ldflag
    
    The x11-foreign example directly uses the X11 API at it seems that more
    recent versions of binutils complain if we don't directly link the test
    with libX11 as opposed to relying on indirect linkage via cogl.

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

commit e86543cd7d1db7fe1d88b6875a8662e377c9e9df
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Jun 14 14:40:27 2011 +0100

    Revert "Do not use "near" and "far" variables"
    
    This reverts commit 3d2564df8f71d6030d9496b7f8e57a27905a4b5a.
    
    Since 01e1260aa the 'near' and 'far' defines are now undef'd on
    Windows so we no longer have to remember not to use them in Cogl code.

 cogl/cogl-depth-state.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

commit 01e1260aa0a659776961e7ade5eab571374d2a6a
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Jun 13 13:09:47 2011 +0100

    configure: Force #undef of 'near' and 'far' on Windows
    
    This adds an extra header that gets included from config.h where we
    can add configuration defines. This is used to #undef 'near' and 'far'
    when building for Windows so that we don't have to avoid using them as
    variable names in the Cogl code.

 Makefile.am     |    4 +++-
 config-custom.h |   35 +++++++++++++++++++++++++++++++++++
 configure.ac    |    1 +
 3 files changed, 39 insertions(+), 1 deletions(-)

commit 5dc42284a5174d6cb451d0f5956801e67da3e627
Author: Lionel Landwerlin <lionel.g.landwerlin@linux.intel.com>
Date:   Fri Jun 10 18:44:09 2011 +0100

    cogl-debug: add instrumentation to track the number of objects
    
    This allows to track the number of objects allocated by Cogl. The
    results are displayed on the standard output by calling :
    
    cogl_debug_print_instances ();
    
    Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@linux.intel.com>
    Signed-off-by: Neil Roberts <neil@linux.intel.com>

 cogl/cogl-debug.c          |    1 +
 cogl/cogl-debug.h          |    1 +
 cogl/cogl-object-private.h |  123 ++++++++++++++++++++++++++++----------------
 cogl/cogl-object.c         |   32 +++++++++++
 cogl/cogl-object.h         |   73 ++++++++++++++++++++++++++
 5 files changed, 185 insertions(+), 45 deletions(-)

commit c603dc67ca13d26e3909196500da693a92654dee
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Jun 8 17:52:28 2011 +0100

    cogl-vertex-buffer: make sure to unref weak pipelines
    
    When validating a user pipeline before drawing with a CoglVertexBuffer
    we sometimes find we have to make some overrides and we handle that by
    creating a pipeline which is a weak copy of the user pipeline. The weak
    pipeline gets associated with the original pipeline so if that pipeline
    is used multiple times then we can re-use the same override pipeline and
    skip validation. Because it's a weak pipeline we get notified when the
    original material is destroyed or changed so we know our weak pipeline
    is now invalid.
    
    When we get notified that the weak material is invalid we should unref
    it, but instead we were just discarding our reference to it. This was
    resulting in leaking weak materials and in some cases those materials
    referenced textures which would then also be leaked.

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

commit 3d2564df8f71d6030d9496b7f8e57a27905a4b5a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sun Jun 12 10:40:20 2011 +0100

    Do not use "near" and "far" variables
    
    They collide with existing symbols when compiling on Windows.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2667

 cogl/cogl-depth-state.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

commit 6d1371e0e9291a10404a34992322ed698333f738
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Jun 10 18:43:56 2011 +0100

    cogl-texture-pixmap-x11: Fix the can_hardware_repeat wrapper
    
    The wrapper for the can_hardware_repeat had a cut and paste error so
    it would call the wrong function on the child texture.
    
    Many thanks to Owen Taylor for finding this bug.

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

commit db954565d4e9ffeb848a1b1554f1ed568a29b55f
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Jun 10 14:03:50 2011 +0100

    cogl-pango-render: Use the glyph size for unknown glyphs
    
    When rendering a box for an unknown glyph it would previously just use
    the average glyph size for the font. This causes problems because the
    size calculations for the layout assume a different size so it can end
    up rendering outside of the expected ink rectangle. This patch changes
    it to query the size of the glyph in the font. Pango should end up
    reporting the size of what would be the hex box which should be the
    same as the sized used for the extents calculation.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2599

 cogl-pango/cogl-pango-render.c |   21 ++++++++++-----------
 1 files changed, 10 insertions(+), 11 deletions(-)

commit abb3631e71c47e8491e036bc5fbe5b7ed960e7a4
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Jun 9 16:23:58 2011 +0100

    po: Fix up pl.po

 po/pl.po |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

commit 552761f3a83f13d00aa00f4925661463388f48e8
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Jun 9 16:21:15 2011 +0100

    Remove G_CONST_RETURN
    
    It is going to be deprecated by GLib, see bug:
    
      https://bugzilla.gnome.org/show_bug.cgi?id=644611

 cogl/cogl-material-compat.c  |    2 +-
 cogl/cogl-material-compat.h  |    2 +-
 cogl/cogl-matrix.h           |    2 +-
 cogl/cogl-pipeline-private.h |    2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

commit c56d5436d08cb55b529f00dbb29a2b3b44db2692
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Jun 9 16:19:44 2011 +0100

    Fix introspection annotations for CoglPango

 cogl-pango/cogl-pango-fontmap.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

commit c3c080481952b33737bea0b5b1c62b6d3b5763f5
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Jun 8 18:03:58 2011 +0100

    Implement COGL_DEBUG=disable-texturing for ARBFp and GLSL fragends
    
    The COGL_DEBUG=disable-texturing debug variable disables texturing in
    the fixed function fragend by not bothering to enable the texture
    targets. This wasn't working for the programmable fragends because the
    texture targets don't need to be enabled to use them. This patch
    modifies the two programmable backends to generate a constant value
    for the texture lookups in the shader when the debug variable is
    given.

 cogl/cogl-pipeline-fragend-arbfp.c |   25 ++++++++++++++++---------
 cogl/cogl-pipeline-fragend-glsl.c  |    9 +++++++++
 2 files changed, 25 insertions(+), 9 deletions(-)

commit bbfe8b8ec445bda7832e13f495e31ac0ca93aca1
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Jun 1 18:49:18 2011 +0100

    gir: pass dep cflags to gobject introspection scanner
    
    The gobject introspection scanner was failing to find EGL headers so we
    now pass the COGL_DEP_CFLAGS to Cogl_1_0_gir_CFLAGS.

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

commit 5022ec54d2dfea28d5b4edbe0183cd6312035f93
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri May 27 12:30:23 2011 +0100

    replace _xlib_add_filter use with _cogl_renderer API
    
    Instead of using _cogl_xlib_add/remove_filter we now use
    _cogl_renderer_add/remove_native_filter. The _cogl_xlib_add_filter API
    was only required as a stop gap while EGL support was still in Clutter
    because in that case we were using the stub winsys and didn't have a
    CoglRenderer.

 cogl/cogl-renderer.h                  |    6 +++---
 cogl/cogl-xlib-private.h              |   21 ---------------------
 cogl/cogl-xlib.c                      |   18 ------------------
 cogl/winsys/cogl-texture-pixmap-x11.c |   20 ++++++++++++++------
 4 files changed, 17 insertions(+), 48 deletions(-)

commit 8c35a6bb7c1a52d5be3950365f4ffa5e25debfc1
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed May 25 22:23:06 2011 +0100

    remove _cogl_xlib_trap/untrap_errors wrappers
    
    This removes the redundant _cogl_xlib_trap/untrap_errors functions that
    simply wrap equivalent functions in the _cogl_renderer_xlib namespace.
    These were originally only required while the EGL winsys was being
    handled in clutter and so there wasn't a CoglRenderer in all cases.

 cogl/cogl-renderer-xlib-private.h |   17 +++++++++--------
 cogl/cogl-xlib-private.h          |    6 ------
 cogl/cogl-xlib.c                  |   17 -----------------
 cogl/winsys/cogl-winsys-egl.c     |    5 +++--
 cogl/winsys/cogl-winsys-glx.c     |   11 ++++++-----
 5 files changed, 18 insertions(+), 38 deletions(-)

commit 43c4b21a1dc161d60796f701f817a6e0b122bfc6
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed May 25 19:27:10 2011 +0100

    Adds an example cogl wayland compositor
    
    This adds an example cogl compositor to test the
    _cogl_wayland_texture_2d_new_from_buffer API. The compositor emulates 4
    output displays but doesn't support input since Cogl doesn't deal with
    input. It's quite a minimal example of what it takes to write a wayland
    compositor so could be interesting to anyone learning about wayland.

 examples/Makefile.am |    6 +
 examples/cogland.c   |  543 ++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 549 insertions(+), 0 deletions(-)

commit 4a97fc0a1e8ab4a59bb907d4a212d2bab285fb4a
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed May 25 01:57:20 2011 +0100

    egl: fix some #ifdef guards
    
    In the winsys vtable .xlib_get_visual_info and
    .onscreen_x11_get_window_xid should be guarded by the
    COGL_HAS_EGL_PLATFORM_POWERVR_X11_SUPPORT because they need to be there
    if cogl is configured with --enable-xlib-egl-platform but not if just
    configured with --enable-xlib.

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

commit b934859dde06f0e01d0089e8ba242e3fedf02028
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed May 25 01:49:44 2011 +0100

    renderer: set winsys on renderer before ->renderer_connect
    
    When iterating through all the possible window systems trying to find
    one we can successfully connect we now associated the current winsys
    vtable with the renderer before calling winsys->renderer_connect in case
    the implementation calls some other Cogl API that expects to be able to
    determine the current winsys. For example calling _cogl_get_proc_address
    when querying winsys extensions as part of a successful connect will
    need to get at the current winsys vtable.

 cogl/cogl-renderer.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

commit 656f28de2f657ab4ca9a6c933d7fbd15671e4ea9
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed May 25 01:47:34 2011 +0100

    glx: make sure _cogl_winsys_get_proc_address is static
    
    Make sure not to export _cogl_winsys_get_proc_address outside of
    cogl-winsys-glx.c

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

commit a29a76dbabf8e68febc50288465fccdfd8d1313f
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed May 25 01:37:56 2011 +0100

    Adds  _cogl_wayland_texture_2d_new_from_buffer API
    
    This adds internal API to be able to wrap a wayland buffer as a
    CoglTexture2D. There is a --enable-wayland-egl-server option to decide
    if Cogl should support this feature and potentially any EGL based winsys
    could support this through the EGL_KHR_image_base and
    EGL_WL_bind_display extensions.

 cogl/cogl-display-private.h                     |    7 ++
 cogl/cogl-display.c                             |   10 +++
 cogl/cogl-display.h                             |    6 ++
 cogl/cogl-internal.h                            |    5 +-
 cogl/cogl-texture-2d.c                          |   69 +++++++++++++++++++++++
 cogl/cogl-texture-2d.h                          |   35 ++++++++++++
 cogl/winsys/cogl-winsys-egl-feature-functions.h |   11 ++++
 cogl/winsys/cogl-winsys-egl.c                   |   12 ++++
 configure.ac                                    |   16 +++++
 9 files changed, 169 insertions(+), 2 deletions(-)

commit 8714d99300ff6da1fba7959278b321f5eea94844
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue May 24 23:15:37 2011 +0100

    egl: Add x11 texture-from-pixmap support
    
    By using the EGL_KHR_image_base/pixmap extensions this adds support for
    wrapping X11 pixmaps as CoglTexture2D textures. Clutter will
    automatically take advantage of this if using the
    ClutterX11TexturePixmap actor.

 cogl/cogl-internal.h                            |    3 +-
 cogl/winsys/cogl-winsys-egl-feature-functions.h |    5 +
 cogl/winsys/cogl-winsys-egl.c                   |  127 +++++++++++++++++++++++
 3 files changed, 134 insertions(+), 1 deletions(-)

commit 60b25615fd76716d99998bf6755a246c3ea495e6
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue May 24 22:34:10 2011 +0100

    Add _cogl_egl_texture_2d_new_from_image API
    
    This adds an internal texture_2d constructor that can wrap an EGLImage
    as a CoglTexture2D. The plan is to utilize this for texture-from-pixmap
    support with EGL as well as creating textures from wayland buffers.

 cogl/Makefile.am                                |   15 +++++--
 cogl/cogl-context-private.h                     |    1 +
 cogl/cogl-context.c                             |    1 +
 cogl/cogl-defines.h.in                          |    3 +
 cogl/cogl-internal.h                            |    5 ++
 cogl/cogl-renderer.c                            |    4 +-
 cogl/cogl-texture-2d-private.h                  |   13 ++++++
 cogl/cogl-texture-2d.c                          |   48 +++++++++++++++++++++++
 cogl/cogl-texture.h                             |    3 +-
 cogl/driver/gl/cogl-feature-functions-gl.h      |   12 ++++++
 cogl/driver/gl/cogl-gl.c                        |    7 +++-
 cogl/driver/gles/cogl-feature-functions-gles.h  |   12 ++++++
 cogl/driver/gles/cogl-gles.c                    |    7 +++-
 cogl/winsys/cogl-winsys-egl-feature-functions.h |   17 ++++++++
 cogl/winsys/cogl-winsys-egl-private.h           |   46 ++++++++++++++++++++++
 cogl/winsys/cogl-winsys-egl.c                   |   31 +++++++++++++++
 16 files changed, 214 insertions(+), 11 deletions(-)

commit c9f1541de008cea64dd61f3bfd37451c47e55408
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue May 24 21:33:22 2011 +0100

    egl: check or EGL/eglext.h
    
    While running configure we now check for EGL/eglext.h and if found we
    will substitute an inclusion in cogl-defines.h.

 cogl/cogl-defines.h.in |    7 +------
 configure.ac           |   24 +++++++++++++++++-------
 2 files changed, 18 insertions(+), 13 deletions(-)

commit 52aada844283aa64136e15ab2682d5cfe44ffa4a
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue May 24 17:21:28 2011 +0100

    egl: Check EGL extension as early as possible
    
    Instead of waiting until initializing a CoglContext we now check EGL
    extensions after calling eglInitialize.

 cogl/cogl-feature-private.h                     |    5 +-
 cogl/winsys/cogl-winsys-egl-feature-functions.h |    8 +--
 cogl/winsys/cogl-winsys-egl.c                   |   73 ++++++++++++++---------
 3 files changed, 49 insertions(+), 37 deletions(-)

commit be15bf75e44bcab213e840f26b0347f6eb50f393
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue May 24 01:38:48 2011 +0100

    Add internal _cogl_get_proc_address
    
    This adds an internal _cogl_get_proc_address that doesn't need a
    CoglContext. This will enable us to check driver features earlier.

 cogl/cogl-feature-private.c       |   35 ++++++++++++++++-------------------
 cogl/cogl-feature-private.h       |    3 ++-
 cogl/cogl.c                       |   22 +---------------------
 cogl/driver/gl/cogl-gl.c          |   19 ++-----------------
 cogl/driver/gles/cogl-gles.c      |   19 ++-----------------
 cogl/winsys/cogl-winsys-egl.c     |   21 ++-------------------
 cogl/winsys/cogl-winsys-glx.c     |   21 ++-------------------
 cogl/winsys/cogl-winsys-private.h |    4 ++++
 cogl/winsys/cogl-winsys-wgl.c     |    3 ++-
 cogl/winsys/cogl-winsys.c         |   31 +++++++++++++++++++++++++++++++
 10 files changed, 64 insertions(+), 114 deletions(-)

commit 32e7c93aff3d1b396bd7c63008212acd63e9eb94
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri May 27 13:59:29 2011 +0100

    configure.ac: move the --enable-cairo check
    
    This moves the --enable-cairo check because it was put in the middle of
    the logic that handles the --enable-debug option. This moves the
    --enable-cairo check down after the --enable-debug logic and adds a
    comment header to delimit the option like we have for other options.

 configure.ac |   46 ++++++++++++++++++++++++++--------------------
 1 files changed, 26 insertions(+), 20 deletions(-)

commit b380fed23d61688d1ea199ac28ff4bfba0a32985
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue May 17 15:00:38 2011 +0100

    Make stub winsys into a proper winsys backend
    
    Instead of the stub winsys being a special case set of #ifdef'd code
    used when COGL_HAS_FULL_WINSYS wasn't defined, the stub winsys now
    implements a CoglWinsysVtable like all other winsys backends (it's just
    that everything is a NOP). This way we can get rid of the
    COGL_HAS_FULL_WINSYS define and also the stub winsys can be runtime
    selected whereas before it was incompatible with all other winsys
    backends.

 cogl/Makefile.am                       |    5 +-
 cogl/cogl-clutter.c                    |    3 +-
 cogl/cogl-context-private.h            |    1 -
 cogl/cogl-context.c                    |   19 +----
 cogl/cogl-display.c                    |    4 -
 cogl/cogl-framebuffer.c                |    2 -
 cogl/cogl-renderer.c                   |   18 +----
 cogl/cogl.c                            |    4 -
 cogl/winsys/cogl-winsys-stub-private.h |   30 +++++++
 cogl/winsys/cogl-winsys-stub.c         |  137 +++++++++++++++++++++-----------
 configure.ac                           |   40 ---------
 11 files changed, 130 insertions(+), 133 deletions(-)

commit 1ec852551013c556d7edcdea92cfc33627900662
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri May 27 13:48:55 2011 +0100

    cogl-xlib: remove special cases for stub winsys
    
    Since we no longer have any xlib based backends in Clutter that depend
    on the stub winsys in Cogl we can now remove all the special case code
    we had for this in cogl-xlib.c

 cogl/cogl-xlib.c |   57 ++++++-----------------------------------------------
 1 files changed, 7 insertions(+), 50 deletions(-)

commit ee7cc9e7889498c7ed3574b85e7294fff1bb45b1
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue May 17 00:05:54 2011 +0100

    Make CoglTexture2D public as experimental API
    
    This exposes a CoglTexture2D typedef and adds the following experimental
    API:
        cogl_is_texture_2d
        cogl_texture_2d_new_with_size
        cogl_texture_2d_new_from_data
        cogl_texture_2d_new_from_foreign
    
    Since this is experimental API you need to define
    COGL_ENABLE_EXPERIMENTAL_API before including cogl.h.
    
    Note: With these new entrypoints we now expect a CoglContext pointer to
    be passed in, instead of assuming there is a default context. The aim is
    that for Cogl 2.0 we won't have a default context so this is a step in
    that direction.

 cogl/Makefile.am                     |    1 +
 cogl/cogl-atlas.c                    |   12 ++-
 cogl/cogl-blit.c                     |    2 +-
 cogl/cogl-texture-2d-private.h       |   22 +----
 cogl/cogl-texture-2d-sliced.c        |   12 ++-
 cogl/cogl-texture-2d.c               |   96 ++++++++++++++----
 cogl/cogl-texture-2d.h               |  184 ++++++++++++++++++++++++++++++++++
 cogl/cogl-texture.c                  |   28 ++++-
 cogl/cogl-texture.h                  |   27 +++++
 cogl/cogl.h                          |    1 +
 cogl/winsys/cogl-winsys-glx.c        |    9 +-
 doc/reference/cogl/cogl-sections.txt |   10 ++
 12 files changed, 348 insertions(+), 56 deletions(-)

commit 80e7e0ef49dfc4b9143a9191d8f862055b5b9998
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Jun 1 14:30:09 2011 +0100

    configure: remove the --enable-quartz option
    
    Until we have a standalone quartz winsys we don't want to define a
    winsys name called "quartz" which is what the current --enable-quartz
    option does. For now anyone building for OSX needs to use the stub
    winsys and setup their own GL context.

 configure.ac |   23 -----------------------
 1 files changed, 0 insertions(+), 23 deletions(-)

commit 1e3f4f62e090ae0e93f18c7e45febeacbde20dc1
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri May 27 12:21:26 2011 +0100

    framebuffer: validate width/height in _set_viewport
    
    This validates that the viewport width and height arguments are positive
    values in _cogl_framebuffer_set_viewport. In addition, just before
    calling glViewport we also assert that something else hasn't gone amiss
    and that the internal viewport width/height values we track are still
    positive before passing to glViewport which generates an error for
    negative values.

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

commit 5a9b92a4a5f02f08661c8d241a41d82395745ab8
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Jun 1 13:45:42 2011 +0100

    Revert "Initial build of a Quartz winsys stub"
    
    This reverts commit b2e41f1bfa53fe316bd42228fa26fc1d6dab5e9e.
    
    We are backing out the quartz specific stub winsys since we can simply
    use the generic stub winsys on quartz until we develop a standalone
    winsys. Since we plan on removing all special cases for the stub winsys
    by handling with a winsys vtable like all the others it's better if we
    don't introduce a quartz specific stub.

 cogl/Makefile.am                 |   10 ----
 cogl/winsys/cogl-winsys-quartz.c |  112 --------------------------------------
 2 files changed, 0 insertions(+), 122 deletions(-)

commit 891a9c33c581ff9c66da792fbe61b4fbcdb50f7b
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Jun 1 13:42:35 2011 +0100

    Revert "quartz: Remove X11 ifdefs"
    
    This reverts commit eb81ec945c073bc87dc622d8b27906270953df8b.
    
    We are backing out the quartz specific stub winsys since we can simply
    use the generic stub winsys on quartz until we develop a standalone
    winsys. Since we plan on removing all special cases for the stub winsys
    by handling with a winsys vtable like all the others it's better if we
    don't introduce a quartz specific stub.

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

commit cb321e0e5f13cd0535f1a8260ae2ca6aafb0d26e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Jun 1 16:44:57 2011 +0100

    build: Don't use bash string substitution in configure.ac
    
    Use the shell-neutral version.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=651256

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

commit efadc439a46206252c279a1cef72cdaab673107c
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Jun 1 14:30:45 2011 +0100

    cogl-journal: Use a pool of vertex arrays
    
    Previously whenever the journal is flushed a new vertex array would be
    created to contain the vertices. To avoid the overhead of reallocating
    a buffer every time, this patch makes it use a pool of 8 buffers which
    are cycled in turn. The buffers are never destroyed but instead the
    data is replaced. The journal should only ever be using one buffer at
    a time but we cache more than one buffer anyway in case the GL driver
    is internally using the buffer in which case mapping the buffer may
    cause it to create a new buffer anyway.

 cogl/cogl-journal-private.h |   12 +++++++++
 cogl/cogl-journal.c         |   58 +++++++++++++++++++++++++++++++++++++-----
 2 files changed, 63 insertions(+), 7 deletions(-)

commit 54f94a0ed07e2d01e719f21120cb92ea3e492269
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue May 24 16:37:11 2011 +0100

    cogl-pipeline-fragend-fixed: Fix enabling texture targets
    
    When flushing a pipeline that has more layers than the previous
    pipeline, the fixed function fragend is supposed to detect that the
    texture unit previously had no texture target enabled and then enable
    it. However the logic for checking whether the unit was enabled was
    broken due to a typing failure when unit->enabled and
    unit->current_gl_target were combined into one value in commit
    6b7139b0. This was breaking some of the conformance tests when the
    fixed function fragend is used.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=650979

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

commit d8df30cb9cf818bba9c6f65090fc6722c3ddc418
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue May 24 13:23:13 2011 +0100

    cogl-pipeline-opengl: Don't use number of tex units on fixed-function
    
    The CoglPipeline code uses a combination of GL_MAX_TEXTURE_COORDS,
    GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS and GL_MAX_TEXTURE_UNITS to
    determine the maximum number of layers to allow in a pipeline. However
    on fixed function hardware that doesn't advertise either GLSL or ARBfp
    it was still using the first two enums which will probably just return
    0 and set a GLerror. This meant that we effectively didn't support
    using any layers on purely fixed function hardware. This patch changes
    it to only use those two enums if the appropriate extensions are
    advertised and to always use GL_MAX_TEXTURE_UNITS except on GLES2
    where there is no fixed function.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=650966

 cogl/cogl-pipeline-opengl.c |   69 +++++++++++++++++++++++++++++++------------
 1 files changed, 50 insertions(+), 19 deletions(-)

commit 19e1dcff23fd925240d40c2cf0ed555a6388d244
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Wed May 25 16:49:09 2011 +0100

    framebuffer: Bail out if the viewport has negative size

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

commit eb81ec945c073bc87dc622d8b27906270953df8b
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Wed May 25 16:47:38 2011 +0100

    quartz: Remove X11 ifdefs

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

commit b2e41f1bfa53fe316bd42228fa26fc1d6dab5e9e
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Tue May 24 22:59:58 2011 +0100

    Initial build of a Quartz winsys stub

 cogl/Makefile.am                 |   10 ++++
 cogl/winsys/cogl-winsys-quartz.c |  112 ++++++++++++++++++++++++++++++++++++++
 2 files changed, 122 insertions(+), 0 deletions(-)

commit df688ad0c8774f87bb82618c01c0e508642d87ec
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Tue May 24 22:29:42 2011 +0100

    build: Fix platform detection for Quartz/OSX
    
    The location of the header files for GL and the linker flags are
    different on Mac OS X than other Unices.

 configure.ac |   38 +++++++++++++++++++++++++++++++++++---
 1 files changed, 35 insertions(+), 3 deletions(-)

commit 97abcda1a2771df13228da92dc6b975088d86bd6
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Wed May 18 14:14:28 2011 +0100

    build: Fix generation of the documentation Makefiles
    
    Automake seems a bit fragile when trying to do cunning things like
    including a file with "-include". It does not recurse into that file (if
    it exists) to generate the final Makefiles.
    
    Let's add a if BUILD_GTK_DOC guard around the gtk-doc.make inclusion
    instead, hopefully should work as intended.

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

commit 57db73873eb210f4ec51ae71852f533bc5640e68
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed May 18 11:50:56 2011 +0100

    pipeline: Fix argument checking in set_depth_state()

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

commit 8680e3bfeb8d064ce898e8fb07853c199b87e836
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Tue May 17 15:06:53 2011 +0100

    android: Expose the only android specific symbol as experimental

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

commit 8e949ff5606d4eb5a2f0c1658dca60b816203a05
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Mon May 16 18:08:49 2011 +0100

    build: Allow to forcefully disable the usage cairo
    
    Provide an option to disable cairo usage in the debugging code even if
    we find the pc file.

 configure.ac |   14 ++++++++++++--
 1 files changed, 12 insertions(+), 2 deletions(-)

commit e157971cd887a367746fa210077325befc03795a
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Mon May 16 17:50:49 2011 +0100

    debug: Allow to compile a debug Cogl without cairo
    
    For people still wanting the debugging code, but don't have or don't
    want to compile cairo for their platform.

 cogl/cogl-rectangle-map.c |   12 ++++++++----
 configure.ac              |   10 +++++++++-
 2 files changed, 17 insertions(+), 5 deletions(-)

commit aa27ec56df51f9ce72769d69af44b4f833927b5d
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Mon May 16 17:26:05 2011 +0100

    android: Add a port of the Cogl hello world example

 examples/android/hello/.gitignore             |    8 +
 examples/android/hello/AndroidManifest.xml    |   30 ++++
 examples/android/hello/jni/Android.mk         |   19 +++
 examples/android/hello/jni/Application.mk     |    1 +
 examples/android/hello/jni/main.c             |  188 +++++++++++++++++++++++++
 examples/android/hello/res/values/strings.xml |    4 +
 6 files changed, 250 insertions(+), 0 deletions(-)

commit f4365821148f1885ca2bbecedbf0270aa5af3edf
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Mon May 16 16:43:30 2011 +0100

    android: Add support for an EGL/Android winsys
    
    The native window type of the EGL/Android winsys is ANativeWinow*. The
    Android NDK gives you a pointer to this ANativeWindow and you just need
    to configure that window using the EGLConfig you are choosing when
    creating the context.
    
    This means you have to know the ANativeWindow* window before creating
    the context. This is solved here by just having a global variable you
    can set with cogl_android_set_native_window() before creating the
    context. This is a bit ugly though, and it conceptually belongs to the
    OnScreen creation to know which ANativeWindow* to use. This would need a
    "lazy context creation" mechanism, waiting for the user to create the
    OnScreen to initialize the GL context.

 cogl/Makefile.am              |    4 ++
 cogl/cogl-context.h           |    8 ++++
 cogl/winsys/cogl-winsys-egl.c |   75 +++++++++++++++++++++++++++++++++++++++--
 configure.ac                  |   21 +++++++++++
 4 files changed, 105 insertions(+), 3 deletions(-)

commit bde6979c066c60639f05749a2de73c8554eeecc9
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Mon May 16 16:12:00 2011 +0100

    framebuffer: Checks if glBindFramebuffer() exists when using GLES1
    
    With GLES 1, frame buffers are a optional extensions. We need to make
    sure the pointer exist before calling the function and do that by just
    checkout the corresponding feature.

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

commit d384466a580108b6163de5beb77dfc3c143fa2d4
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Mon May 16 16:04:33 2011 +0100

    winsys-egl: Use g_clear_error() between two context creation tries
    
    When try_create_context() returns saying that it has to be run again to
    try to create a context with an alternate configuration, it might not
    have a GError set (and in fact it does not right now).
    g_clear_error() handles that case where error is still NULL;

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

commit 051e6da8875b9547a3b2281be2f6c25071653b3d
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Fri May 13 08:11:57 2011 +0100

    misc: Add the single include guard to cogl-define.h
    
    This is a generated file and maybe the reason why it was not included
    the first time?

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

commit dd5a1c888b68e3d8a4f41212cb257c1e8dc3833b
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Fri May 13 08:04:47 2011 +0100

    gles1: Include GLES/egl.h or EGL/egl.h depending on the implementation
    
    Early implementations provided only a GLES/egl.h while Khronos's
    implementer guide now states EGL/egl.h is the One. Some implementations
    keep a GLES/egl.h wrapper around EGL/egl.h for backward compatibility
    while others provide EGL/egl.h only.
    
    Also took the opportunity to factorize a bit this inclusion in
    cogl-defines.h.

 cogl/cogl-context.h           |   12 +-----------
 cogl/cogl-defines.h.in        |   11 +++++++++++
 cogl/winsys/cogl-winsys-egl.c |   16 ----------------
 configure.ac                  |   13 +++++++++++++
 4 files changed, 25 insertions(+), 27 deletions(-)

commit 1d6c6f0dad79e73fa719eb4b91d0f6455f6d921c
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Thu May 12 16:00:35 2011 +0100

    build: Fix the Win32 platform test for GLES2
    
    The error message has a small typo (copy and paste from the GLES1
    detection code) and the check was reversed.

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

commit 780c6fe05ddc4b70cdff853927446d9c73624420
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Thu May 12 15:51:01 2011 +0100

    build: Ensure EGL related variables are defined even when EGL_CHECKED=yes
    
    When checking for EGL earlier in the configure script (ie EGL_CHECKED is
    "yes"), we did not execute some EGL code. Let's split that code in two:
      - A first part that has a last change to check for EGL
      - A second one that defines variables and that should always been run
        in an EGL build

 configure.ac |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

commit 3530354d5d5da1248cc6636dbf3837294f0a2121
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Thu May 12 14:59:44 2011 +0100

    build: Fix the GLES headers check
    
    GLES/glext.h and GLES2/gl2ext.h need to include GLES/gl.h and
    GLES2/gl2.h respectively to get the GL types.
    
    This used to work as autoconf used to only do a preprocessor pass in
    AC_CHECK_HEADER(S), but now it also tries to compile a small test
    program and thus the test failed.

 configure.ac |   28 ++++++++++++++++++++--------
 1 files changed, 20 insertions(+), 8 deletions(-)

commit 0ac8135b873c80c73cf5468dd2d2e01118bc29e7
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Thu May 12 14:26:54 2011 +0100

    build: Fix the Win32 platform test for GLES1
    
    We want to bail out if trying to configure Cogl with GLES1 on Windows.
    Not the opposite.

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

commit 25cd2e12f9be9af077d8350549877210fe46d0e0
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Thu May 12 14:29:38 2011 +0100

    misc: Add a .vimrc file
    
    For people using per project vimrc files, provide a vim config file that
    describes Cogl's coding style.

 .vimrc |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

commit cb7433cce98ce4c692dd7063d7307f5c41ef6ef2
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon May 16 18:45:51 2011 +0100

    Adds missing cogl-depth-state-private.h
    
    This file was accidentally missed in the last commit

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

commit 07c0b9f89ffc64175befb9cf40a07f499169ed67
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Apr 14 18:12:03 2011 +0100

    Add CoglDepthState API
    
    Instead of simply extending the cogl_pipeline_ namespace to add api for
    controlling the depth testing state we now break the api out. This adds
    a CoglDepthState type that can be stack allocated. The members of the
    structure are private but we have the following API to setup the state:
    
        cogl_depth_state_init
        cogl_depth_state_set_test_enabled
        cogl_depth_state_get_test_enabled
        cogl_depth_state_set_test_function
        cogl_depth_state_get_test_function
        cogl_depth_state_set_writing_enabled
        cogl_depth_state_get_writing_enabled
        cogl_depth_state_set_range
        cogl_depth_state_get_range
    
    This removes the following experimental API which is now superseded:
    
        cogl_material_set_depth_test_enabled
        cogl_material_get_depth_test_enabled
        cogl_material_set_depth_test_function
        cogl_material_get_depth_test_function
        cogl_material_set_depth_writing_enabled
        cogl_material_get_depth_writing_enabled
        cogl_material_set_depth_range
        cogl_material_get_depth_range
    
    Once a CoglDepthState structure is setup it can be set on a pipeline
    using cogl_pipeline_set_depth_state().

 cogl/Makefile.am                         |    3 +
 cogl/cogl-depth-state.c                  |  108 ++++++++++++
 cogl/cogl-depth-state.h                  |  261 ++++++++++++++++++++++++++++++
 cogl/cogl-material-compat.c              |   65 ++------
 cogl/cogl-material-compat.h              |  166 +++----------------
 cogl/cogl-pipeline-opengl.c              |   38 +++---
 cogl/cogl-pipeline-private.h             |   11 +--
 cogl/cogl-pipeline.c                     |  236 +++++++--------------------
 cogl/cogl-pipeline.h                     |  161 +++----------------
 cogl/cogl.h                              |    1 +
 cogl/driver/gl/cogl-gl.c                 |    3 +-
 cogl/driver/gles/cogl-gles.c             |    1 +
 doc/reference/cogl-2.0/Makefile.am       |    1 +
 doc/reference/cogl-2.0/cogl-sections.txt |   14 ++
 doc/reference/cogl/Makefile.am           |    1 +
 doc/reference/cogl/cogl-sections.txt     |   22 ++-
 16 files changed, 541 insertions(+), 551 deletions(-)

commit eb109e6cc09e9024ad5303f02e34bc2de00ad8e7
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon May 16 16:34:48 2011 +0100

    cogl-primitive: Fix some broken changes for removal of NULL terminator
    
    Commit 3c1e83c7 changed uses of arrays of CoglAttributes to take a
    length instead of being NULL terminated. In cogl_primitive_new it was
    still adding the NULL terminator to the array it passes to
    cogl_primitive_new_with_attributes but then it was also including this
    terminator in the count so it would just segfault when it tries to ref
    the NULL pointer. Also _cogl_primitive_new_with_attributes_unref was
    still trying to detect the NULL terminator so it would also crash.

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

commit f23a387359fd6634169383ca4555813f2464780b
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon May 16 17:28:55 2011 +0100

    pango: ensure g-ir-compiler can find Cogl-1.0.gir
    
    This uses INTROSPECTION_COMPILER_ARGS to pass
    --includedir=$(top_builddir)/cogl so when building the CoglPango typelib
    the compiler can find the required Cogl-1.0.gir file.

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

commit 47da69cc3ebaa68a826491c6f8235d60102523b0
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon May 16 16:21:35 2011 +0100

    doc: fix the name of the cogl_quaternion_equal args

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

commit a466dc272b28f8caaad4de369b57e37481415064
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon May 16 15:41:25 2011 +0100

    Don't include cogl-pango.h when scanning introspection data
    
    cogl/cogl-pango.h can't be included unless the include directory for
    Pango is given in the compiler flags. In an application, it is
    expected that if they are using this header then they would pull in
    cogl-pango-1.0.pc which would provide this. However when building Cogl
    itself we might be building without Pango support so the Makefile
    can't rely on PANGO_CFLAGS. This was breaking building the
    introspection data because cogl-pango.h was listed as one of the files
    to scan but it can't be included.

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

commit 3c1e83c7f5df6e41aa9b2b0eec8df76af93ea0b0
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Mar 3 01:02:12 2011 +0000

    Don't pass around NULL terminated CoglAttribute arrays
    
    For the first iteration of the CoglAttribute API several of the new
    functions accepted a pointer to a NULL terminated list of CoglAttribute
    pointers - probably as a way to reduce the number of arguments required.
    This style isn't consistent with existing Cogl APIs though and so we now
    explicitly pass n_attributes arguments and don't require the NULL
    termination.

 cogl/cogl-attribute-private.h |   24 ++++---
 cogl/cogl-attribute.c         |  136 ++++++++++++++++++++++-------------------
 cogl/cogl-attribute.h         |   28 +++++----
 cogl/cogl-journal.c           |   43 +++++++------
 cogl/cogl-primitive.c         |  118 +++++++++++++++++++-----------------
 cogl/cogl-primitive.h         |   11 ++--
 cogl/cogl-primitives.c        |   28 ++++----
 cogl/cogl-vertex-buffer.c     |    6 +-
 cogl/cogl2-path.c             |   28 ++++-----
 9 files changed, 222 insertions(+), 200 deletions(-)

commit bf7653ac93e0797a1b3378f0259a00c730560b20
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Mar 2 23:31:19 2011 +0000

    Rename CoglIndexArray to CoglIndexBuffer
    
    This is part of a broader cleanup of some of the experimental Cogl API.
    One of the reasons for this particular rename is to switch away from
    using the term "Array" which implies a regular, indexable layout which
    isn't the case. We also want to strongly imply a relationship between
    CoglBuffers and CoglIndexBuffers and be consistent with the
    CoglAttributeBuffer and CoglPixelBuffer APIs.

 cogl/Makefile.am                 |    6 +-
 cogl/cogl-attribute.c            |   24 ++++----
 cogl/cogl-buffer-private.h       |    4 +-
 cogl/cogl-buffer.c               |    2 +-
 cogl/cogl-index-array-private.h  |   39 -----------
 cogl/cogl-index-array.c          |  132 --------------------------------------
 cogl/cogl-index-array.h          |   79 -----------------------
 cogl/cogl-index-buffer-private.h |   38 +++++++++++
 cogl/cogl-index-buffer.c         |  117 +++++++++++++++++++++++++++++++++
 cogl/cogl-index-buffer.h         |   79 +++++++++++++++++++++++
 cogl/cogl-indices-private.h      |    4 +-
 cogl/cogl-indices.c              |   34 +++++-----
 cogl/cogl-indices.h              |   14 ++--
 cogl/cogl.h                      |    2 +-
 doc/reference/cogl/Makefile.am   |    2 +-
 15 files changed, 280 insertions(+), 296 deletions(-)

commit c328e0608ff7c92b39524dfd3efa3e858b7260e0
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Mar 2 15:19:57 2011 +0000

    Rename CoglPixelArray to CoglPixelBuffer
    
    This is part of a broader cleanup of some of the experimental Cogl API.
    One of the reasons for this particular rename is to switch away from
    using the term "Array" which implies a regular, indexable layout which
    isn't the case. We also want to strongly imply a relationship between
    CoglBuffers and CoglPixelBuffers and be consistent with the
    CoglAttributeBuffer and CoglIndexBuffer APIs.

 cogl/Makefile.am                 |    6 +-
 cogl/cogl-buffer.c               |    2 +-
 cogl/cogl-index-array.c          |    2 +-
 cogl/cogl-pixel-array-private.h  |   55 --------------
 cogl/cogl-pixel-array.c          |  148 --------------------------------------
 cogl/cogl-pixel-array.h          |  131 ---------------------------------
 cogl/cogl-pixel-buffer-private.h |   55 ++++++++++++++
 cogl/cogl-pixel-buffer.c         |  148 ++++++++++++++++++++++++++++++++++++++
 cogl/cogl-pixel-buffer.h         |  131 +++++++++++++++++++++++++++++++++
 cogl/cogl-texture.c              |   14 ++--
 cogl/cogl.h                      |    2 +-
 doc/reference/cogl/Makefile.am   |    2 +-
 12 files changed, 348 insertions(+), 348 deletions(-)

commit ce7c06dc039189f8d7ebe971864bf3d109fa6324
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Mar 2 15:01:41 2011 +0000

    Rename CoglVertexArray to CoglAttributeBuffer
    
    This is part of a broader cleanup of some of the experimental Cogl API.
    One of the reasons for this particular rename is to switch away from
    using the term "Array" which implies a regular, indexable layout which
    isn't the case. We also want to have a strongly implied relationship
    between CoglAttributes and CoglAttributeBuffers.

 cogl/Makefile.am                     |    6 +-
 cogl/cogl-attribute-buffer-private.h |   38 ++++++++++++
 cogl/cogl-attribute-buffer.c         |   77 +++++++++++++++++++++++
 cogl/cogl-attribute-buffer.h         |   82 +++++++++++++++++++++++++
 cogl/cogl-attribute-private.h        |    2 +-
 cogl/cogl-attribute.c                |   49 ++++++++-------
 cogl/cogl-attribute.h                |   11 ++--
 cogl/cogl-buffer-private.h           |    4 +-
 cogl/cogl-buffer.c                   |    2 +-
 cogl/cogl-index-array.c              |    7 +-
 cogl/cogl-journal.c                  |   32 +++++-----
 cogl/cogl-path-private.h             |   10 ++--
 cogl/cogl-primitive-private.h        |    2 +-
 cogl/cogl-primitive.c                |   80 ++++++++++++------------
 cogl/cogl-primitive.h                |   16 +++---
 cogl/cogl-primitives.c               |   21 +++---
 cogl/cogl-vertex-array-private.h     |   39 ------------
 cogl/cogl-vertex-array.c             |   77 -----------------------
 cogl/cogl-vertex-array.h             |   82 -------------------------
 cogl/cogl-vertex-buffer-private.h    |    4 +-
 cogl/cogl-vertex-buffer.c            |   41 ++++++------
 cogl/cogl.h                          |    2 +-
 cogl/cogl2-path.c                    |  112 +++++++++++++++++-----------------
 23 files changed, 401 insertions(+), 395 deletions(-)

commit 2da24ab86301ff75670beb4150b56d9339e590d1
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri May 13 17:30:08 2011 +0100

    Add compile time checks for size of public structs
    
    To help catch accidental changes to the size of public structs that can
    be allocated on the stack this patch adds compile time checks that our
    struct sizes haven't changed.

 cogl/cogl-euler.h      |    1 +
 cogl/cogl-matrix.h     |    1 +
 cogl/cogl-quaternion.h |    1 +
 cogl/cogl-types.h      |   12 ++++++++++++
 4 files changed, 15 insertions(+), 0 deletions(-)

commit df1915d95735f4d13489f955235f5e532161494a
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Feb 25 01:40:29 2010 +0000

    math: Adds an experimental euler API
    
    This adds an experimental CoglEuler data type and the following new
    functions:
    
        cogl_euler_init
        cogl_euler_init_from_matrix
        cogl_euler_init_from_quaternion
        cogl_euler_equal
        cogl_euler_copy
        cogl_euler_free
        cogl_quaternion_init_from_euler
    
    Since this is experimental API you need to define
    COGL_ENABLE_EXPERIMENTAL_API before including cogl.h

 cogl/Makefile.am                         |    2 +
 cogl/cogl-euler.c                        |  183 ++++++++++++++++++++++
 cogl/cogl-euler.h                        |  252 ++++++++++++++++++++++++++++++
 cogl/cogl-quaternion.c                   |   37 +++++
 cogl/cogl-quaternion.h                   |    6 +
 cogl/cogl-types.h                        |    8 +
 cogl/cogl.h                              |    1 +
 doc/reference/cogl-2.0/cogl-sections.txt |   11 ++
 doc/reference/cogl/cogl-sections.txt     |   12 ++
 9 files changed, 512 insertions(+), 0 deletions(-)

commit d1434d1c335755955c41df0366478986e81ad650
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Feb 25 01:40:29 2010 +0000

    math: Adds an experimental quaternion API
    
    This adds an experimental quaternion utility API. It's not yet fully
    documented but it's complete enough that people can start to experiment
    with using it. It adds the following functions:
    
        cogl_quaternion_init_identity
        cogl_quaternion_init
        cogl_quaternion_init_from_angle_vector
        cogl_quaternion_init_from_array
        cogl_quaternion_init_from_x_rotation
        cogl_quaternion_init_from_y_rotation
        cogl_quaternion_init_from_z_rotation
        cogl_quaternion_equal
        cogl_quaternion_copy
        cogl_quaternion_free
        cogl_quaternion_get_rotation_angle
        cogl_quaternion_get_rotation_axis
        cogl_quaternion_normalize
        cogl_quaternion_dot_product
        cogl_quaternion_invert
        cogl_quaternion_multiply
        cogl_quaternion_pow
        cogl_quaternion_slerp
        cogl_quaternion_nlerp
        cogl_quaternion_squad
        cogl_get_static_identity_quaternion
        cogl_get_static_zero_quaternion
    
    Since it's experimental API you'll need to define
    COGL_ENABLE_EXPERIMENTAL_API before including cogl.h.

 cogl/Makefile.am                         |    2 +
 cogl/cogl-matrix-mesa.c                  |   38 ++
 cogl/cogl-matrix-mesa.h                  |    5 +
 cogl/cogl-matrix.c                       |    9 +
 cogl/cogl-matrix.h                       |   21 +-
 cogl/cogl-quaternion-private.h           |   39 ++
 cogl/cogl-quaternion.c                   |  617 ++++++++++++++++++++++++++++++
 cogl/cogl-quaternion.h                   |  486 +++++++++++++++++++++++
 cogl/cogl-types.h                        |    4 +
 cogl/cogl.h                              |    1 +
 doc/reference/cogl-2.0/cogl-docs.xml.in  |    1 +
 doc/reference/cogl-2.0/cogl-sections.txt |   28 ++
 doc/reference/cogl/cogl-docs.xml.in      |    1 +
 doc/reference/cogl/cogl-sections.txt     |   28 ++
 14 files changed, 1278 insertions(+), 2 deletions(-)

commit b316241612c43b24867c0be6c77b70087ead72be
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed May 11 17:21:07 2011 +0100

    deprecate #include <cogl/cogl-pango.h>
    
    cogl-pango is conceptually a separate library so it doesn't seem
    appropriate to bundle the headers with all the other cogl headers. Also
    in-tree the headers live in a cogl-pango directory so if we want
    examples that can include cogl-pango consistently when built in or out
    of tree using the convention #include <cogl-pango/cogl-pango.h> makes
    that easy.
    
    This adds a compatibility cogl/cogl-pango.h header that's will redirect
    to cogl-pango/cogl-pango.h with a warning, or result in an error if
    COGL_ENABLE_EXPERIMENTAL_2_0_API is defined.

 cogl-pango/Makefile.am |    4 ++--
 cogl/Makefile.am       |    1 +
 cogl/cogl-pango.h      |   33 +++++++++++++++++++++++++++++++++
 3 files changed, 36 insertions(+), 2 deletions(-)

commit a789107860d7d70138219dc4dc679e564fcf0f92
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Thu May 12 11:43:27 2011 +0100

    build: Only allow GLX when finding the x11 pc file
    
    You can refine earlier the ALLOW_GLX variable when enabling OpenGL builds:
    No x11.pc? no GLX!

 configure.ac |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

commit 0da07b4e3de41f268301f8759b699ae132a0dc71
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Thu May 12 12:59:22 2011 +0100

    build: Fix gtkdocize as it needs to parse the GTK_DOC_CHECK line

 configure.ac |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

commit 5ad1869a3df2fdd2d487bb46fc40a275676672eb
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Thu May 12 11:11:07 2011 +0100

    gitignore: Ignore *.exe files

 .gitignore |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

commit dc5d3785f6f0f00f39b25285d9c54f17582e4063
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Thu May 12 11:07:30 2011 +0100

    build: Allow to compile a git checkout without gtk-doc
    
    Gtk-doc can be hard to install on Windows. This patch enables people wanting to
    hack on Cogl itself from a Windows system to do so without the hassle to get
    gtk-doc installed first.

 autogen.sh                         |   13 +++++++------
 configure.ac                       |    3 ++-
 doc/reference/cogl-2.0/Makefile.am |    3 ++-
 doc/reference/cogl/Makefile.am     |    3 ++-
 4 files changed, 13 insertions(+), 9 deletions(-)

commit 1127ab61a1c0020823bdd5a394ea35d5b181425e
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed May 11 16:51:10 2011 +0100

    don't add -Wshadow to MAINTAINER_CFLAGS
    
    The semantics of shadowing global variables is well defined and it gets
    quite annoying to avoid them completely since there are too many
    standard APIs with very poor namespacing.

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

commit 89e46a472ffcb48a78ba5ab0ee77812299c9275f
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed May 11 14:11:31 2011 +0100

    framebuffer: check we have a draw/read_buffer before freeing
    
    When freeing a framebuffer stack it's possible to have entries with NULL
    draw or read buffers so we should check that before calling
    cogl_onscreen/offscreen_free. This fixes a crash with the wayland
    backend when running conformance tests such as cogl-test-object which
    never push a framebuffer.

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

commit 2282455f27341fb4074144e5ff830d7aa02f0cb6
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed May 11 14:07:02 2011 +0100

    wayland: Allow setting foreign display/compositor
    
    To support toolkits targeting wayland and using Cogl we allow toolkits
    to be responsible for connecting to a wayland display and asking Cogl to
    use the toolkit owned display and compositor object. Note: eventually
    the plan is that wayland will allow retrospective querying of objects so
    we won't need the foreign compositor API when Cogl can simply query it
    from the foreign display.

 cogl/cogl-framebuffer.h       |    9 +++++
 cogl/cogl-renderer.h          |   16 ++++----
 cogl/winsys/cogl-winsys-egl.c |   76 +++++++++++++++++++++++++++++++++++++++++
 3 files changed, 93 insertions(+), 8 deletions(-)

commit 653d59af04326bf987c32623e86225a97f4c72d7
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue May 10 22:28:13 2011 +0100

    Explicitly set EGL_PLATFORM=wayland for wayland winsys
    
    The EGL API doesn't provide for a way to explicitly select a platform
    when the driver can support multiple. Mesa allows selection using an
    EGL_PLATFORM environment variable though so we set that to "wayland"
    when we know that's what we want.

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

commit a54aa40dbef26455bbab9fddb84c737fac3ac8d2
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed May 11 16:39:10 2011 +0100

    don't call cogl_set_default_context in hello.c
    
    Actually calling cogl_set_default_context isn't required because
    cogl_context_new implicitly sets the new context to be the default
    context. Since we want to eventually get rid of the concept of a default
    context we'd rather not pollute the example with the concept.

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

commit 442d4586b721afc404354de654ed53e9cca093a4
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed May 11 15:20:59 2011 +0100

    win32: Use the right macro name for COGL_HAS_WIN32_SUPPORT
    
    Some places were using COGL_HAS_WIN32 but the only macro defined is
    COGL_HAS_WIN32_SUPPORT. The similar macros such as COGL_HAS_XLIB are
    only defined for compatibility with existing code but COGL_HAS_WIN32
    was never defined so there's no need to support it.
    
    One of the places was including the non-existant cogl-win32.h. This
    has been removed because the file only temporarily existed during
    development of the backend.

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

commit a075f4498b3c49d7a349bec09758af2c2be67aaf
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed May 11 13:50:32 2011 +0100

    cogl-pipeline-fragend-arbfp: Fix the comparison for dot3 arguments
    
    There was a typo in fragend_arbfp_args_equal so that it wasn't
    comparing the constants correctly.
    
    Thomas Wood found this bug with static analysis.

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

commit cdfad9cdbe65ec9fcf92ff70ef8ecdd2732a627e
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed May 11 13:43:02 2011 +0100

    cogl-vertex-buffer: Fix the size of the array of attribute pointers
    
    In update_primitive_attributes it tries to fill in an array of
    pointers with a NULL terminator. However it was only allocating enough
    space for a pointer for each of the attributes plus one byte instead
    of plus enough bytes for another pointer.
    
    Thomas Wood found this bug with static analysis.

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

commit 463603f1a09d3eabe68b69659a4f7e10840515e1
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue May 10 20:23:39 2011 +0100

    cogl-winsys: Fix freeing a CoglOnscreen
    
    All of the winsys backends didn't handle cleaning up the CoglOnscreen
    properly so that they would assert in cogl_onscreen_free because the
    winsys pointer is never freed. They also didn't cope if deinit is
    called before init (which will be the case if an onscreen is created
    and freed without being allocated).

 cogl/winsys/cogl-winsys-egl.c |    7 +++++++
 cogl/winsys/cogl-winsys-glx.c |    7 +++++++
 cogl/winsys/cogl-winsys-wgl.c |    7 +++++++
 3 files changed, 21 insertions(+), 0 deletions(-)

commit 6654533e40da87858d5f73f6db594f37a1abbce2
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue May 10 19:53:00 2011 +0100

    cogl-winsys-wgl: Plug leak on error from SetPixelFormat
    
    When SetPixelFormat fails, the DC would get released but none of the
    other resources would be freed. This patch makes it call
    _cogl_winsys_onscreen_deinit on failure to clean up all of the
    resources. The patch looks big because it moves the onscreen_deinit
    and onscreen_bind functions.

 cogl/winsys/cogl-winsys-wgl.c |  133 +++++++++++++++++++++--------------------
 1 files changed, 69 insertions(+), 64 deletions(-)

commit 6788c803420e6c26616d2ce202f082c0b9841b02
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon May 9 17:48:50 2011 +0100

    Add a WGL winsys
    
    This adds a full winsys to handle WGL and Win32.

 cogl/Makefile.am                                |    5 +
 cogl/cogl-framebuffer-private.h                 |    8 +
 cogl/cogl-framebuffer.c                         |   29 +
 cogl/cogl-framebuffer.h                         |   15 +
 cogl/cogl-renderer.c                            |    8 +-
 cogl/cogl.h                                     |    3 +
 cogl/winsys/cogl-winsys-private.h               |    5 +
 cogl/winsys/cogl-winsys-wgl-feature-functions.h |   38 +
 cogl/winsys/cogl-winsys-wgl.c                   |  838 +++++++++++++++++++++++
 configure.ac                                    |   26 +
 10 files changed, 974 insertions(+), 1 deletions(-)

commit 14d1303259e5deee7004d9f228cbab98a04214d0
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue May 10 13:51:41 2011 +0100

    cogl-winsys: Explicitly comment which vfuncs are optional
    
    Some of the virtual functions in CoglWinsysVtable only need to be
    implemented for specific backends or when a specific feature is
    advertised. This splits the vtable struct into two commented sections
    marking which are optional and which are required. Wherever an
    optional function is used there is now a g_return_if_fail to ensure
    there is an implementation.

 cogl/cogl-clutter.c               |    3 +++
 cogl/cogl-context.c               |    4 ++++
 cogl/cogl-framebuffer.c           |   27 +++++++++++++++++++++++++--
 cogl/winsys/cogl-winsys-egl.c     |   20 --------------------
 cogl/winsys/cogl-winsys-private.h |   36 ++++++++++++++++++++----------------
 5 files changed, 52 insertions(+), 38 deletions(-)

commit 614efb190b3d4a9de51c1927ac8a45f317ee4345
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue May 10 13:45:15 2011 +0100

    cogl-winsys: Remove the get_vsync_counter virtual
    
    This function is only used internally within the GLX winsys so there
    doesn't seem to be much point in it being a virtual winsys backend
    function.

 cogl/winsys/cogl-winsys-egl.c     |    8 --------
 cogl/winsys/cogl-winsys-glx.c     |    1 -
 cogl/winsys/cogl-winsys-private.h |    3 ---
 3 files changed, 0 insertions(+), 12 deletions(-)

commit f2a37b27f902bdc26f20bb7e0e9952cabe747bcf
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue May 10 13:14:48 2011 +0100

    CoglWinsysVtable: Remove 'has_feature'
    
    This virtual function is no longer used or defined anywhere since the
    function was moved to the common backend code in 16bfa27d43.

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

commit e8b83f2880f4837d3e5138b12431e24845ccef84
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Mar 17 19:31:34 2011 +0000

    Adds wayland support to the cogl EGL winsys
    
    Wayland now supports integration via standard eglSurfaces which makes it
    possible to share more code with other EGL platforms. (though at some
    point cogl-winsys-egl.c really needs to gain a more formal
    CoglEGLPlatform abstraction so we can rein back on the amount of #ifdefs
    we have.)

 cogl/Makefile.am              |    4 +
 cogl/cogl-renderer-private.h  |    8 ++
 cogl/cogl-renderer.h          |   28 ++++
 cogl/winsys/cogl-winsys-egl.c |  281 ++++++++++++++++++++++++++++++++++++++---
 configure.ac                  |   25 ++++
 5 files changed, 329 insertions(+), 17 deletions(-)

commit 4b6169267ca39764a3ce267e8c8064ca5818247c
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue May 10 16:22:34 2011 +0100

    winsys-egl: fix typo in _cogl_winsys_onscreen_init
    
    We were trying to set attr.event_mask instead of xattr.event mask which
    was causing a compilation error.

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

commit ef6097925866812c34f459aa100f1701e02aa71e
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sun May 8 23:23:44 2011 +0100

    Adds experimental cogl 2.0 reference
    
    This pulls in the experimental cogl 2.0 reference manual from the
    clutter repository since it wasn't included in the filter-branch when we
    split cogl out.

 configure.ac                                      |    2 +
 doc/reference/Makefile.am                         |    2 +-
 doc/reference/cogl-2.0/Makefile.am                |  154 +++++++
 doc/reference/cogl-2.0/blend-strings.xml          |  129 ++++++
 doc/reference/cogl-2.0/cogl-docs.xml.in           |  195 +++++++++
 doc/reference/cogl-2.0/cogl-sections.txt          |  484 +++++++++++++++++++++
 doc/reference/cogl-2.0/cogl_ortho.png             |  Bin 0 -> 12650 bytes
 doc/reference/cogl-2.0/fill-rule-even-odd.png     |  Bin 0 -> 3121 bytes
 doc/reference/cogl-2.0/fill-rule-non-zero.png     |  Bin 0 -> 3143 bytes
 doc/reference/cogl-2.0/quad-indices-order.png     |  Bin 0 -> 2620 bytes
 doc/reference/cogl-2.0/quad-indices-triangles.png |  Bin 0 -> 8018 bytes
 11 files changed, 965 insertions(+), 1 deletions(-)

commit e6c98ae6ae1044c2cc9a420f55fce52655bef8d3
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Sun May 8 21:31:46 2011 +0200

    Updated Polish translation

 po/pl.po |   39 +++++++++++++++++++++++++++++++++++++++
 1 files changed, 39 insertions(+), 0 deletions(-)

commit 39943228f015b45861bfc885ca8394f05c78ed2a
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Sun May 8 21:27:37 2011 +0200

    Updated POTFILES.in

 po/POTFILES.in |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

commit ed97d871dfb4d01d5a39c83408dd5f2d8c5b7384
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Fri May 6 18:34:36 2011 +0100

    build: Distribute CODING_STYLE

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

commit c310dbbc722c5de412dff71dcc55649db6379683
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Fri May 6 18:21:00 2011 +0100

    build: Make sure to build examples, doc and po last
    
    It seems more natural to compile examples after optional libraries as
    you could have an example illustrating one of those libraries.
    
    Build the docs and po files at the end too, trying to group the
    compilation of C files together.

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

commit d093c1b38996bf6a3a71936ad64cc571baeec8fb
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri May 6 18:29:38 2011 +0100

    cogl-pango-render: Add the atlas reorg callback to the right cache
    
    When creating a new display list the pango renderer tries to add a
    callback to the glyph cache so that it can be notified whenever the
    atlas is reorganized. However it was always registering the callback
    for the glyph cache which doesn't use mipmapping so if mipmapping is
    enabled then it wouldn't work correctly.
    
    This patch moves the two sets of caches (pipeline cache and glyph
    cache) into one struct so that it's a little bit easier to determine
    which pair to use in the code.

 cogl-pango/cogl-pango-render.c |   87 ++++++++++++++++++++++-----------------
 1 files changed, 49 insertions(+), 38 deletions(-)

commit 0bd87220b31c0631f204d464cb1569e7ed36a5f2
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri May 6 18:23:04 2011 +0100

    cogl-pango/Makefile.am: Add $(top_builddir) to INCLUDES
    
    Some of the sources need to include <cogl/cogl-defines.h> which is in
    the build directory. I think this directory gets added to the include
    flags anyway by something so the actual building works but when
    building the introspection data out of tree it was not included so it
    failed to scan.

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

commit 8d4a6f4d4c9db2b3dfcb8460cd7a318d812ab6a4
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Fri May 6 17:59:00 2011 +0100

    build: Enable building the documentation again
    
    At least the 1.6.0 documentation. The 2.0 one has been missed by the
    filter-branch and will be re-added later.

 Makefile.am                         |    2 +-
 configure.ac                        |    7 ++++++-
 doc/Makefile.am                     |    7 +++++++
 doc/reference/Makefile.am           |    1 +
 doc/reference/cogl/Makefile.am      |   12 ++++++------
 doc/reference/cogl/cogl-docs.xml.in |    2 +-
 6 files changed, 22 insertions(+), 9 deletions(-)

commit 3919f3e97eca078e6bdbbeb1e45886de161d839e
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri May 6 17:21:30 2011 +0100

    configure.ac: Add the check for the ffs function
    
    When Cogl was sharing Clutter's configure script, it had a check for
    the ffs function of libc so that it can provide a fallback if it is
    not available. This fallback was missed in the split out so Cogl would
    end up always using the fallback.

 configure.ac |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

commit 0d5b38c8bfdd80f72a251ddfc9ffdf8899eb8c57
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri May 6 17:34:49 2011 +0100

    build: Don't make cogl-pango-1.0 depend on cogl-2.0

 cogl-pango/cogl-pango-1.0.pc.in |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 800954e3391d6a9031514fcfd8b2520293634125
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri May 6 17:14:17 2011 +0100

    po: Fix xgettext complaining about a missing bug address

 po/Makevars |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 5c131e61e5cc3a292700710d9c0d76628ad43213
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri May 6 17:13:56 2011 +0100

    build: Generate CoglPango introspection data

 cogl-pango/Makefile.am |   51 +++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 46 insertions(+), 5 deletions(-)

commit 62b7ea59729e83605e685aeb4e9da0fd190431d5
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Fri May 6 17:10:42 2011 +0100

    build: Fix make distcheck
    
    Some header files were split but never included in the list of source
    files and thus not distributed.

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

commit 48c9157e97a49a2a1b469fe820cff2ad3c8ab4cb
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri May 6 16:53:43 2011 +0100

    build: Compile the introspection data
    
    The compilation step for the introspection data was missing.

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

commit f02ec9fc46e9ee5a64c53cd649e43c19fe771330
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Fri May 6 16:23:13 2011 +0100

    gitignore: Update .gitignore to make git status silent again

 .gitignore |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

commit 8b4ee0964bdadf0b89a79f3fa0cd9d303b142c0b
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri May 6 12:36:39 2011 +0100

    Remove all the options for building cogl standalone
    
    This removes all the remnants from being able to build Cogl standalone
    while it was part of the Clutter repository. Now that Cogl has been
    split out then standalone builds are the only option.

 Makefile.am                 |    6 +-----
 cogl-pango/Makefile.am      |   18 ------------------
 cogl/Makefile.am            |   26 --------------------------
 cogl/cogl-1.0-clutter.pc.in |   17 -----------------
 configure.ac                |    2 --
 5 files changed, 1 insertions(+), 68 deletions(-)

commit 102d174a2a22070a6fceec1ce880d3535bd21aef
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri May 6 12:26:15 2011 +0100

    Adds an initial README to the repo

 Makefile.am  |    2 +
 README.in    |  154 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 configure.ac |    1 +
 3 files changed, 157 insertions(+), 0 deletions(-)

commit bf4c64e1903f2cdbc511f96e040a8b9d8bf4b324
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri May 6 11:01:38 2011 +0100

    Adds an initial .gitignore
    
    This adds a .gitignore file to the top of the repo

 .gitignore |   85 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 85 insertions(+), 0 deletions(-)

commit 00e157e8c94117595c525d8fdf45dc5a75781326
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu May 5 22:37:57 2011 +0100

    Adds an initial cogl.doap file
    
    This adds an initial doap file for Cogl.

 cogl.doap |   46 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 46 insertions(+), 0 deletions(-)

commit 6f2193545ef67db60fc7e7ab1548a82e5a8b8348
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu May 5 22:04:07 2011 +0100

    consistently refer to cogl-pango as "cogl-pango"
    
    This renames the pango directory to cogl-pango and it renames the
    installed library to libcogl-pango instead of libcoglpango.

 Makefile.am                            |    2 +-
 cogl-pango/Makefile.am                 |   64 +++
 cogl-pango/cogl-pango-1.0.pc.in        |   13 +
 cogl-pango/cogl-pango-display-list.c   |  444 +++++++++++++++++
 cogl-pango/cogl-pango-display-list.h   |   69 +++
 cogl-pango/cogl-pango-fontmap.c        |  209 ++++++++
 cogl-pango/cogl-pango-glyph-cache.c    |  414 ++++++++++++++++
 cogl-pango/cogl-pango-glyph-cache.h    |   93 ++++
 cogl-pango/cogl-pango-pipeline-cache.c |  238 +++++++++
 cogl-pango/cogl-pango-pipeline-cache.h |   53 ++
 cogl-pango/cogl-pango-private.h        |   38 ++
 cogl-pango/cogl-pango-render.c         |  836 ++++++++++++++++++++++++++++++++
 cogl-pango/cogl-pango.h                |   85 ++++
 cogl-pango/cogl-pango.pc.in            |   13 +
 cogl/Makefile.am                       |    2 +-
 configure.ac                           |    6 +-
 examples/Makefile.am                   |    3 +-
 pango/Makefile.am                      |   64 ---
 pango/cogl-pango-1.0.pc.in             |   13 -
 pango/cogl-pango-display-list.c        |  444 -----------------
 pango/cogl-pango-display-list.h        |   69 ---
 pango/cogl-pango-fontmap.c             |  209 --------
 pango/cogl-pango-glyph-cache.c         |  414 ----------------
 pango/cogl-pango-glyph-cache.h         |   93 ----
 pango/cogl-pango-pipeline-cache.c      |  238 ---------
 pango/cogl-pango-pipeline-cache.h      |   53 --
 pango/cogl-pango-private.h             |   38 --
 pango/cogl-pango-render.c              |  836 --------------------------------
 pango/cogl-pango.h                     |   85 ----
 pango/cogl-pango.pc.in                 |   13 -
 30 files changed, 2575 insertions(+), 2576 deletions(-)

commit fbda52d21b66c517252c4989659f8ff297ae4702
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu May 5 21:52:40 2011 +0100

    Give cogl-pango it's own pkg-config file
    
    We now install cogl-pango-1.0 and cogl-pango-2.0 pkg-config files that
    applications should optionally depend on if they want to use the
    cogl_pango API.

 cogl/cogl-1.0-clutter.pc.in |    2 +-
 cogl/cogl-1.0.pc.in         |    2 +-
 configure.ac                |    2 ++
 pango/Makefile.am           |    8 ++++++++
 pango/cogl-pango-1.0.pc.in  |   13 +++++++++++++
 pango/cogl-pango.pc.in      |   13 +++++++++++++
 6 files changed, 38 insertions(+), 2 deletions(-)

commit 4211462eb246aa423496a84b36a27605111bf0eb
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu May 5 21:39:40 2011 +0100

    Make building cogl-pango optional
    
    When building for platforms that don't use pango for handling text
    you may not need the cogl-pango library.

 Makefile.am  |    6 +++++-
 configure.ac |   21 ++++++++++++++++++++-
 2 files changed, 25 insertions(+), 2 deletions(-)

spec=1.6.0..split
commit b6ebbc366e5570366a6037fc47ff727672cb9fe9
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu May 5 21:27:11 2011 +0100

    Adds a COPYING file
    
    This adds a COPYFILE detailing the LGPL v2.1

 COPYING |  504 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 504 insertions(+), 0 deletions(-)

commit a7541e0911c85d683f80b8aeb2f5bbe36152f265
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu May 5 21:20:47 2011 +0100

    Adds mingw dependency fetching script
    
    This adds a script to simplify fetching the dependencies for
    cross-compiling Cogl for windows using a mingw gcc compiler.

 build/mingw/Makefile.am                 |    1 +
 build/mingw/README                      |    5 +
 build/mingw/mingw-fetch-dependencies.sh |  336 +++++++++++++++++++++++++++++++
 3 files changed, 342 insertions(+), 0 deletions(-)

commit 680c173947c5ff001b9fa780b39b39c21a31c884
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu May 5 20:41:01 2011 +0100

    framebuffer: in onscreen_x11_get_xid return foreign xids
    
    If a foreign xid has been set on a CoglOnscreen then
    cogl_onscreen_x11_get_window_xid doesn't need to defer to the winsys to
    get the underlying window xid. This also means it's possible to read
    back the xid before the framebuffer is allocated which fixes a crash in
    the x11-foreign example app.

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

commit ccd0079b57bee5aa0da0f6a9f4b48561bb9b6264
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu May 5 20:38:13 2011 +0100

    fix a /XDisplay/Display/ typo in x11-foreign.c
    
    This removes a spurious X prefix that was causing a compilation error.

 examples/x11-foreign.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 3a4d0a735b6a14f0cd05db30c81eb9cabb824d28
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu May 5 20:34:54 2011 +0100

    Export some private symbols from libcogl for coglpango
    
    Ideally we wouldn't have any private symbols exported, but for now there
    are some APIs that coglpango needs access to that aren't public so we
    have ensure they are exported. The aim is to get rid of this need at
    some point.

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

commit 14ed963b050c93c2cad8668290dfb6014cea06e8
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Mar 30 16:39:38 2011 +0100

    cogl-debug: Add an option to disable atlasing sharing
    
    If COGL_DEBUG contains disable-shared-atlas Cogl will not try to share
    the atlas between glyphs and images.

 cogl/cogl-debug-options.h      |    6 ++++++
 cogl/cogl-debug.c              |    1 +
 cogl/cogl-debug.h              |    1 +
 pango/cogl-pango-glyph-cache.c |    3 +++
 4 files changed, 11 insertions(+), 0 deletions(-)

commit 184527580e38c0227db87011fb38a1b830719fb4
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Mar 30 16:33:04 2011 +0100

    cogl_pipeline_equal: Handle COGL_WRAP_MODE_AUTOMATIC better
    
    When comparing the wrap modes of two pipeline layers it now considers
    COGL_WRAP_MODE_AUTOMATIC to be equivalent to CLAMP_TO_EDGE. By the
    time the pipeline is in the journal, the upper primitive code is
    expected to have overridden this wrap mode with something else if it
    wants any other behaviour. This is important for getting text to batch
    together with textures because the text explicitly sets the wrap mode
    to CLAMP_TO_EDGE on its pipeline.

 cogl/cogl-pipeline.c |   29 ++++++++++++++++++++++++++---
 1 files changed, 26 insertions(+), 3 deletions(-)

commit 66c54e04de83b7a5333f9bc1930598a494ac6236
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Feb 26 13:01:54 2010 +0000

    cogl-pango: Don't set the special combine function for atlased textures
    
    The material cache will now only set the special combine mode if the
    texture only has an alpha component. The atlased textures will have
    all four components so it will leave the combine functions at the
    default. This increases the chances of batching between glyphs and
    images.
    
    When using the global atlas, the glyph from cairo is now rendered into
    an ARGB surface rather than an alpha-only surface.

 pango/cogl-pango-pipeline-cache.c |   61 ++++++++++++++++++++++++++----------
 pango/cogl-pango-render.c         |   28 ++++++++++++++++-
 2 files changed, 70 insertions(+), 19 deletions(-)

commit cbf011dcd03f7e0fb385691d99b6ed633d646470
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Feb 26 12:38:22 2010 +0000

    cogl-pango: Use a seperate cache of pipelines
    
    Instead of creating just two materials (one for texturing and one for
    solid primitives) the pango renderer now maintains a cache of
    pipelines. The display list can request a pipeline for a texture from
    the cache. The same pipeline cache is used by all display lists so
    that the pipelines can be shared. This avoids changing the texture on
    the material during a paint run.

 pango/Makefile.am                 |   16 ++--
 pango/cogl-pango-display-list.c   |   68 +++++++-----
 pango/cogl-pango-display-list.h   |    7 +-
 pango/cogl-pango-pipeline-cache.c |  211 +++++++++++++++++++++++++++++++++++++
 pango/cogl-pango-pipeline-cache.h |   53 +++++++++
 pango/cogl-pango-render.c         |   77 ++++----------
 6 files changed, 338 insertions(+), 94 deletions(-)

commit b83069f3b29e61fb8a119cb0fe4aad4e8789f956
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Feb 22 16:40:49 2010 +0000

    cogl-pango-glyph-cache: Don't put zero-sized glyphs in the cache
    
    It now avoids trying to reserve space for zero-sized glyphs. That
    happens for example when the layout contains a space. This was causing
    the regular glyph cache to be used because the global atlas does not
    support zero-sized images. That would then break up the
    batching. Instead it now still reserves an entry in the cache but
    leaves the texture as COGL_INVALID_HANDLE.

 pango/cogl-pango-glyph-cache.c |   39 ++++++++++++++++++++++++---------------
 pango/cogl-pango-render.c      |    7 ++++++-
 2 files changed, 30 insertions(+), 16 deletions(-)

commit f098f8fdec4dfd75700bf5a6abe6dc4fa422504f
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu May 5 16:09:22 2011 +0100

    Revert "cogl-pango-display-list: Don't use VBOs if the texture can't handle it"
    
    This reverts commit 32c91793e46e0625a19c0d2bc98d6cd147dff702.
    
    This commit is no longer needed since the display list will now only
    have primitive textures in it.

 pango/cogl-pango-display-list.c |    6 +-----
 1 files changed, 1 insertions(+), 5 deletions(-)

commit 3f1e0c701e7662bb3aef04b6f50cc3b240bb56ca
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Mar 30 13:48:34 2011 +0100

    cogl-pango-render: Add the base texture to the display list
    
    When rendering a glyph from a texture, instead of adding the glyph's
    texture handle to the display list it now retrieves the base texture
    using _cogl_texture_foreach_subtexture_in_region and adds that
    instead. That way the display can recognise that glyphs in the global
    atlas are sharing the same texture and combine them into one VBO.

 pango/cogl-pango-render.c |   62 +++++++++++++++++++++++++++++++++++++--------
 1 files changed, 51 insertions(+), 11 deletions(-)

commit a7aad27212b2667361d1bdba6d1cc48de8f3aef3
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Mar 30 13:46:46 2011 +0100

    cogl-bitmap-private.h: Include cogl-bitmap.h
    
    There was a header dependency problem which meant that
    cogl-texture-private.h couldn't be included without first including
    cogl-bitmap.h

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

commit 28b0f76cc90045913d617020fba20554c5a0bc5e
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Mar 30 12:56:09 2011 +0100

    cogl-pango-glyph-cache: Notify of reorg for global atlased glyphs
    
    Whenever the glyph cache puts a glyph in the global atlas it will now
    register for notifications of reorganisation of the global
    atlases. When this happens it will forward this on as a notification
    of reorganisation of the glyph cache.

 pango/cogl-pango-glyph-cache.c |   36 ++++++++++++++++++++++++++++--------
 1 files changed, 28 insertions(+), 8 deletions(-)

commit 239614a3752368502c69598a08b0c7ae6b96bb73
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Mar 30 12:53:50 2011 +0100

    cogl-atlas-texture: Add a callback for when any atlas reorganizes
    
    This adds cogl_atlas_texture_* functions to register a callback that
    will get invoked whenever any of the CoglAtlas's the textures use get
    reorganized. The callback is global and is not tied to any particular
    atlas texture.

 cogl/cogl-atlas-texture-private.h |    8 ++++++++
 cogl/cogl-atlas-texture.c         |   36 ++++++++++++++++++++++++++++++++++++
 cogl/cogl-context-private.h       |    1 +
 cogl/cogl-context.c               |    2 ++
 4 files changed, 47 insertions(+), 0 deletions(-)

commit 25c36c452f2dda2bb0ec6e03c137068f84944aef
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Feb 18 17:35:14 2010 +0000

    pango-glyph-cache: Try to put glyphs in the global atlas
    
    If mipmapping is disabled, it will now try to create a standalone
    atlas texture for a glyph rather than putting it in the atlas.
    
    If the atlas texture can't be created then it will fallback to the
    glyph cache.

 pango/cogl-pango-glyph-cache.c |  139 +++++++++++++++++++++++++++++-----------
 1 files changed, 102 insertions(+), 37 deletions(-)

commit c76a4f8e2467645741ecf20bc78ea4ce1de15580
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Feb 18 16:33:12 2010 +0000

    cogl-atlas-texture: Split out new_from_bitmap to new_with_size
    
    This adds a new function called _cogl_atlas_texture_new_with_size. The
    old new_from_bitmap function now just calls this and updates the
    texture with the data.

 cogl/cogl-atlas-texture-private.h |    6 +++
 cogl/cogl-atlas-texture.c         |   81 +++++++++++++++++++++++--------------
 2 files changed, 57 insertions(+), 30 deletions(-)

commit a2d9ad21ef6f4319867700c0940065f1a6974930
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Feb 18 15:04:06 2010 +0000

    cogl-pango-display-list: Don't use VBOs if the texture can't handle it
    
    If the texture can't be hardware repeated (ie, if it is sliced or it
    has waste) then Cogl will reject the layer when rendering with a
    VBO. In this case we should always fall back to rendering with
    cogl_rectangle.
    
    This commit is only needed temporarily because Cogl will end up
    putting atlas textures in the display list. A later commit in the
    series will make it so that the display list always has primitive
    textures in it so this commit can be reverted.

 pango/cogl-pango-display-list.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

commit 12b751a8e1ee5ed533140d1e5ba6c8b473423c75
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Feb 18 14:30:44 2010 +0000

    cogl-pango: Use a separate glyph cache for mipmapped rendering
    
    This reverts the changes in 54d8aadf which combined the two glyph
    caches into one. We want to start using separate caches again so that
    we can non-mipmapped textures into the global atlas.

 pango/cogl-pango-glyph-cache.c |    2 +-
 pango/cogl-pango-glyph-cache.h |    2 +-
 pango/cogl-pango-render.c      |   77 +++++++++++++++++++++++++++------------
 3 files changed, 55 insertions(+), 26 deletions(-)

commit 6c23f27801249095fee3e13fffed1a96e59cb0b5
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed May 4 17:02:04 2011 +0100

    Adds a way for Cogl to control event_mask of foreign wins
    
    This extends cogl_onscreen_x11_set_foreign_xid to take a callback to a
    function that details the event mask the Cogl requires the application
    to select on foreign windows. This is required because Cogl, for
    example, needs to track size changes of a window and may also in the
    future want other notifications such as map/unmap.
    
    Most applications wont need to use the foreign xwindow apis, but those
    that do are required to pass a valid callback and update the event mask
    of their window according to Cogl's requirements.

 cogl/cogl-framebuffer-private.h |    2 +
 cogl/cogl-framebuffer.c         |   10 ++++++-
 cogl/cogl-framebuffer.h         |   58 ++++++++++++++++++++++++++++++++++++++-
 cogl/winsys/cogl-winsys-egl.c   |   11 +++++++-
 cogl/winsys/cogl-winsys-glx.c   |   11 +++++++-
 examples/x11-foreign.c          |   22 ++++++++++++++-
 6 files changed, 109 insertions(+), 5 deletions(-)

commit 97243ad9ac3fd47f6e1a5df2ec9a755a2082e550
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed May 4 11:10:54 2011 +0100

    Adds cogl_onscreen_show/hide functions
    
    This adds Cogl API to show and hide onscreen framebuffers. We don't want
    to go too far down the road of abstracting window system APIs with Cogl
    since that would be out of its scope but the previous idea that we would
    automatically map framebuffers on allocation except for those made from
    foreign windows wasn't good enough. The problem is that we don't want to
    make Clutter always create stages from foreign windows but with the
    automatic map semantics then Clutter doesn't get an opportunity to
    select for all the events it requires before mapping. This meant that we
    wouldn't be delivered a mouse enter event for windows mapped underneath
    the cursor which would break Clutters handling of button press events.

 cogl/cogl-framebuffer.c           |   31 ++++++++++++++++++++++
 cogl/cogl-framebuffer.h           |   52 +++++++++++++++++++++++++++++++++++++
 cogl/winsys/cogl-winsys-egl.c     |   21 +++++++++++++-
 cogl/winsys/cogl-winsys-glx.c     |   17 ++++++++++-
 cogl/winsys/cogl-winsys-private.h |    4 +++
 examples/hello.c                  |    2 +
 6 files changed, 123 insertions(+), 4 deletions(-)

commit 2a150003ad578b22fa12dd2a3175c2a6dbe29f2f
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed May 4 00:16:50 2011 +0100

    add missing name mangle for cogl_onscreen_set_swap_throttled
    
    We weren't mangling cogl_onscreen_set_swap_throttled to give it an _EXP
    postfix to clarify that it is an experimental symbol.

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

commit ad56c00f7aa56cdf208a3034649f6c4f9d6eb2bf
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue May 3 21:00:00 2011 +0100

    Add missing _cogl_winsys_has_feature prototype
    
    This adds a private prototype for _cogl_winsys_has_feature in
    cogl-winsys-private.h to avoid compilation warnings.

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

commit b44bde00c57b1b7f77472c9aa7eeb0ef18dfd6f4
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Apr 19 17:48:40 2011 +0100

    cogl/pango/Makefile.am pass EXTRA_LDFLAGS for linking
    
    When building on windows for example we need to ensure we pass
    -no-undefined to the linker. Although we were substituting a
    COGL_EXTRA_LDFLAGS variable from our configure.ac we forgot to
    reference that when linking cogl-pango.

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

commit d2e74d3a94b90cd2e2378ad858218e67e2840e94
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Apr 19 17:47:57 2011 +0100

    cogl/configure.ac: AC_SUBST an empty MAINTAINER_CFLAGS
    
    For compatibility with the way we build Cogl as part of Clutter we now
    substitute an empty MAINTAINER_CFLAGS variable. When building Cogl
    standalone all our extra CFLAGS go through COGL_EXTRA_CFLAGS so the
    separate MAINTAINER_CFLAGS aren't used, but automake will get confused
    if a substitution isn't made.

 configure.ac |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

commit a14e400dc99f1a64fb898dc9f0cd3305828dd2c0
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Apr 19 17:45:26 2011 +0100

    cogl/configure.ac: check when building for win32
    
    This adds a check for when building on win32 so we can skip pkg-config
    checks for opengl and can add appropriate flags to
    COGL_EXTRA_{LD,C}FLAGS.

 configure.ac |   47 +++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 39 insertions(+), 8 deletions(-)

commit e815928a5f8574d700d75aff9656bb407462db98
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Apr 19 17:42:48 2011 +0100

    cogl/configure.ac: fix pkg-config checks
    
    This fixes the gdk-pixbuf check to not mistakenly check for the "xi"
    package instead of gdk-pixbuf and remove a spurious listing "gl" in
    COGL_PKG_REQUIRES which should only be there when we are using using
    opengl not if we are using gles.

 configure.ac |    5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)

commit 195cfa7814aaacd07ae7de4e1c1a3e4f2430c4d0
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Apr 19 17:40:57 2011 +0100

    cogl/Makefile.am: pass EXTRA_LDFLAGS for linking
    
    When building on windows for example we need to ensure we pass
    -no-undefined to the linker. Although we were substituting a
    COGL_EXTRA_LDFLAGS variable from our configure.ac we forgot to
    reference that when linking cogl.

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

commit b3a7ee59308b817cfc181d433d431fec17d626d6
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Apr 18 17:45:36 2011 +0100

    cogl: remove OSX/WIN32 specific bits in favour of a stub winsys
    
    Until Cogl gains native win32/OSX support this remove the osx and win32
    winsys files and instead we'll just rely on the stub-winsys.c to handle
    these platforms. Since the only thing the platform specific files were
    providing anyway was a get_proc_address function; it was trivial to
    simply update the clutter backend code to handle this directly for now.

 cogl/Makefile.am                |    8 +-------
 cogl/winsys/cogl-winsys-osx.c   |   35 -----------------------------------
 cogl/winsys/cogl-winsys-stub.c  |    5 +++++
 cogl/winsys/cogl-winsys-win32.c |   35 -----------------------------------
 configure.ac                    |    6 +-----
 5 files changed, 7 insertions(+), 82 deletions(-)

commit a8c7f43a7c8eddcae8d7372917ffb9be0c98fdaf
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Apr 18 17:35:15 2011 +0100

    cogl-gl.c: remove really_enable_npot hack for OSX
    
    This is a workaround for a bug on OSX for some radeon hardware that
    we can't verify and the referenced bug link is no longer valid.
    
    If this is really still a problem then a new bug should be opened and we
    can look at putting the fix in some more appropriate place than
    cogl-gl.c

 cogl/driver/gl/cogl-gl.c |   37 ++++---------------------------------
 1 files changed, 4 insertions(+), 33 deletions(-)

commit 0f7fce7e2b987516806d68dc3f89e282d9021930
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Apr 18 17:17:21 2011 +0100

    cogl/configure.ac: Adds --enable-stub-winsys option
    
    We want to be able to split Cogl out as a standalone project but there
    are still some window systems that aren't natively supported by Cogl.
    This allows Clutter to support those window systems directly but still
    work with a standalone Cogl library.
    
    This also ensures we set the SUPPORT_STUB conditional in clutter's
    configure.ac when building for win32/osx and wayland.

 configure.ac |   33 ++++++++++++++++++++++++++++++++-
 1 files changed, 32 insertions(+), 1 deletions(-)

commit cd6d561f6f781849e31475deb4f818564654ebc1
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Apr 18 16:26:17 2011 +0100

    winsys-glx: map X window automatically if not foreign
    
    For now we are going for the semantics that when a CoglOnscreen is first
    allocated then it will automatically be mapped. This is for convenience
    and if you don't want that behaviour then it is possible to instead
    create an Onscreen from a foreign X window and in that case it wont be
    mapped automatically.
    
    This approach means that Cogl doesn't need onscreen_map/unmap functions
    but it's possible we'll decide later that we can't avoid adding such
    functions and we'll have to change these semantics.

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

commit 4bf868c0eb9c7951d91ef84574c5b16b12408e92
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Apr 18 15:57:32 2011 +0100

    cogl/configure.ac: make COGL_HAS_xyz defines public
    
    Instead of using AC_DEFINE for the various COGL_HAS_PLATFORM defines
    this now adds them to the COGL_DEFINES_SYMBOLS variable which gets
    substituted into the public cogl-defines.h header.

 configure.ac |   12 +++---------
 1 files changed, 3 insertions(+), 9 deletions(-)

commit f5bb20212bf24d0173c038bcb72e3a93c311e1d8
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Mar 17 19:32:54 2011 +0000

    Adds Cogl Hello World and "X11 foreign" example applications
    
    This adds a simple standalone Cogl application that can be used to
    smoke test a standalone build of Cogl without Clutter.
    
    This also adds an x11-foreign app that shows how a toolkit can ask Cogl
    to draw to an X Window that it owns instead of Cogl being responsible
    for automatically creating and mapping an X Window for CoglOnscreen.

 Makefile.am            |    2 +-
 configure.ac           |    1 +
 examples/Makefile.am   |   31 +++++++++++
 examples/hello.c       |   47 +++++++++++++++++
 examples/x11-foreign.c |  136 ++++++++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 216 insertions(+), 1 deletions(-)

commit 711d035f44243d7ac0db27384974767911210588
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Mar 10 15:15:08 2011 +0000

    cogl/configure.ac: add options to control driver/egl platform
    
    This allows more detailed control over the driver and winsys features
    that Cogl should have. Cogl is designed so it can support multiple
    window systems simultaneously so we have enable/disable options for
    the drivers (gl vs gles1 vs gles2) and options for the individual window
    systems; currently glx and egl. Egl is broken down into an option
    for each platform.

 cogl/cogl-1.0-clutter.pc.in |    8 +-
 configure.ac                |  358 ++++++++++++++++++++++++++++++++++++-------
 2 files changed, 310 insertions(+), 56 deletions(-)

commit 7037812ae615abe1329184f786e705124244675b
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Mar 4 12:50:39 2011 +0000

    EGL: Updates GDL platform support
    
    The GDL API is used for example on intel ce4100 (aka Sodaville) based
    systems as a way to allocate memory that can be composited using the
    platforms overlay hardware. This updates the Cogl EGL winsys and the
    support in Clutter so we can continue to support these platforms.

 cogl/Makefile.am               |    2 +-
 cogl/cogl-display-private.h    |    5 ++
 cogl/cogl-display.c            |   12 ++++
 cogl/cogl-display.h            |   12 ++++
 cogl/cogl-swap-chain-private.h |    1 +
 cogl/cogl-swap-chain.c         |    8 +++
 cogl/cogl-swap-chain.h         |    5 ++
 cogl/winsys/cogl-winsys-egl.c  |  131 +++++++++++++++++++++++++++++++++++++++-
 configure.ac                   |    2 +-
 9 files changed, 175 insertions(+), 3 deletions(-)

commit ce2da7944055fd104e145da100ee3eaba259206b
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Mar 2 11:02:50 2011 +0000

    Don't reference GL_STACK_OVERFLOW/UNDERFLOW for GLES
    
    These symbols aren't available when building with GLES so only reference
    them when building with OpenGL.

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

commit 31ee65784d2828b538fc2c7f37a6dca985155478
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Apr 18 16:24:51 2011 +0100

    winsys: Expose environment variable to choose winsys
    
    This makes it possible to override the winsys that cogl uses by setting
    the COGL_RENDERER environment variable e.g. to "GLX" or "EGL"

 cogl/cogl-renderer.c              |    8 ++++++++
 cogl/winsys/cogl-winsys-egl.c     |    1 +
 cogl/winsys/cogl-winsys-glx.c     |    1 +
 cogl/winsys/cogl-winsys-private.h |    2 ++
 4 files changed, 12 insertions(+), 0 deletions(-)

commit dc7383b7148abe4bd0736042aafe3981e8313b31
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Feb 25 11:29:08 2011 +0000

    Add a vtable of indirection to the winsys code
    
    So that we can dynamically select what winsys backend to use at runtime
    we need to have some indirection to how code accesses the winsys instead
    of simply calling _cogl_winsys* functions that would collide if we
    wanted to compile more than one backend into Cogl.

 cogl/cogl-clutter.c                   |    8 +-
 cogl/cogl-context-private.h           |    3 +
 cogl/cogl-context.c                   |   19 +++-
 cogl/cogl-display.c                   |   14 ++-
 cogl/cogl-framebuffer.c               |   71 +++++++++---
 cogl/cogl-renderer-private.h          |    2 +
 cogl/cogl-renderer.c                  |   76 ++++++++++++-
 cogl/cogl.c                           |    9 ++
 cogl/winsys/cogl-texture-pixmap-x11.c |   42 ++++++-
 cogl/winsys/cogl-winsys-egl.c         |  162 +++++++++++++++-------------
 cogl/winsys/cogl-winsys-glx.c         |  194 +++++++++++++++++++++------------
 cogl/winsys/cogl-winsys-private.h     |  122 ++++++++++----------
 12 files changed, 482 insertions(+), 240 deletions(-)

commit d52e3f0cc2360febbbebf70262d2cf65dd46a8f3
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Mar 1 14:43:43 2011 +0000

    texture-pixmap-x11: Move GLX code to cogl-winsys-glx.c
    
    This moves the GLX specific code from cogl-texture-pixmap-x11.c into
    cogl-winsys-glx.c. If we want the winsys components to by dynamically
    loadable then we can't have GLX code scattered outside of
    cogl-winsys-glx.c. This also sets us up for supporting the
    EGL_texture_from_pixmap extension which is almost identical to the
    GLX_texture_from_pixmap extension.

 cogl/winsys/cogl-texture-pixmap-x11-private.h |   15 +-
 cogl/winsys/cogl-texture-pixmap-x11.c         |  530 +-----------------------
 cogl/winsys/cogl-winsys-egl.c                 |   35 ++
 cogl/winsys/cogl-winsys-glx.c                 |  549 +++++++++++++++++++++++++
 cogl/winsys/cogl-winsys-private.h             |   22 +
 5 files changed, 632 insertions(+), 519 deletions(-)

commit d5d11f18786b5e567f394359966a556cac7697a8
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Feb 25 00:31:41 2011 +0000

    Moves all EGL code down from Clutter to Cogl
    
    As was recently done for the GLX window system code, this commit moves
    the EGL window system code down from the Clutter backend code into a
    Cogl winsys.
    
    Note: currently the cogl/configure.ac is hard coded to only build the GLX
    winsys so currently this is only available when building Cogl as part
    of Clutter.

 cogl/Makefile.am                                |    9 +-
 cogl/cogl-context.c                             |    9 +
 cogl/cogl-context.h                             |   17 +
 cogl/winsys/cogl-winsys-egl-feature-functions.h |   57 ++
 cogl/winsys/cogl-winsys-egl.c                   | 1048 ++++++++++++++++++++++-
 cogl/winsys/cogl-winsys-private.h               |    5 +
 6 files changed, 1133 insertions(+), 12 deletions(-)

commit 8399f5e61cd63960d154e2bc1c88c6cd7eb92a8c
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Feb 25 00:49:07 2011 +0000

    remove references to unused DRM_SURFACELESS EGL platform
    
    The "DRM_SURFACELESS" EGL platform was invented when we were adding the
    wayland backend to Clutter but in the end we added a dedicated backend
    instead of extending the EGL backend so actually the platform name isn't
    used.

 cogl/Makefile.am |    5 -----
 configure.ac     |    1 -
 2 files changed, 0 insertions(+), 6 deletions(-)

commit d832172988270013bf30145a60dd2ff24dba10ac
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Apr 21 16:44:15 2011 +0100

    cogl-context: Initialize context->stub_winsys
    
    If Cogl is built using a full Winsys then it wasn't initialising
    context->stub_winsys which sometimes made it crash later on.

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

commit 14b6c0459fd488edeb960f5a2ec7d9f1b37b4927
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Apr 20 18:43:02 2011 +0100

    cogl-winsys-stub: Remove _cogl_winsys_has_feature
    
    Commit b061f737 moved _cogl_winsys_has_feature to the common winsys
    code so there's no need to define it in the stub winsys any more. This
    was breaking builds for backends using the stub winsys.

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

commit dcd23dc22026630edcf702c4060042c15a85c2f7
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Apr 20 17:50:38 2011 +0100

    cogl-winsys-glx: Fix the comparison in find_onscreen_for_xid
    
    The comparison for finding onscreen framebuffers in
    find_onscreen_for_xid had a small thinko so that it would ignore
    framebuffers when the negation of the type is onscreen. This ends up
    doing the right thing anyway because the onscreen type has the value 0
    and the offscreen type has the value 1 but presumably it would fail if
    we ever added any other framebuffer types.

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

commit 16bfa27d43de753c2144f3b55df9254d83c3c9e4
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Apr 15 16:03:19 2011 +0100

    cogl-winsys: Move _cogl_winsys_has_feature to cogl-winsys.c
    
    The code for _cogl_winsys_has_feature will be identical in all of the
    winsys backends for the time being, so it seems to make sense to have
    it in the common cogl-winsys.c file.

 cogl/winsys/cogl-winsys-glx.c |    9 ---------
 cogl/winsys/cogl-winsys.c     |    9 +++++++++
 2 files changed, 9 insertions(+), 9 deletions(-)

commit 4a7762d6d744133ee2492900ffda6843624e2b78
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Apr 15 15:39:14 2011 +0100

    cogl-context: Store winsys features in an array of unsigned ints
    
    Previously the mask of available winsys features was stored in a
    CoglBitmask. That isn't the ideal type to use for this because it is
    intended for a growable array of bits so it can allocate extra memory
    if there are more than 31 flags set. For the winsys feature flags the
    highest used bit is known at compile time so it makes sense to
    allocate a fixed array instead. This is conceptually similar to the
    CoglDebugFlags which are stored in an array of integers with macros to
    test a bit in the array. This moves the macros used for CoglDebugFlags
    to cogl-flags.h and makes them more generic so they can be shared with
    CoglContext.

 cogl/Makefile.am              |    1 +
 cogl/cogl-bitmask.h           |    4 ++
 cogl/cogl-context-private.h   |    4 +-
 cogl/cogl-context.c           |    4 +-
 cogl/cogl-debug.c             |    4 +-
 cogl/cogl-debug.h             |   23 ++--------
 cogl/cogl-flags.h             |   89 +++++++++++++++++++++++++++++++++++++++++
 cogl/cogl-types.h             |    6 +-
 cogl/winsys/cogl-winsys-glx.c |   36 ++++++++--------
 9 files changed, 126 insertions(+), 45 deletions(-)

commit f6ae9decaa9367faaf74b8da22859ed5288b840d
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Apr 13 16:41:41 2011 +0100

    cogl-renderer: Move the XEvent filters to be generic for all renderers
    
    Instead of having cogl_renderer_xlib_add_filter and friends there is
    now cogl_renderer_add_native_filter which can be used regardless of
    the backend. The callback function for the filter now just takes a
    void pointer instead of an XEvent pointer which should be interpreted
    differently depending on the backend. For example, on Xlib it would
    still be an XEvent but on Windows it could be a MSG. This simplifies
    the code somewhat because the _cogl_xlib_add_filter no longer needs to
    have its own filter list when a stub renderer is used because there is
    always a renderer available.
    
    cogl_renderer_xlib_handle_event has also been renamed to
    cogl_renderer_handle_native_event. This just forwards the event on to
    all of the listeners. The backend renderer is expected to register its
    own event filter if it wants to process the events in some way.

 cogl/cogl-renderer-private.h          |    2 +
 cogl/cogl-renderer-xlib-private.h     |    2 -
 cogl/cogl-renderer-xlib.c             |   88 ---------------------------------
 cogl/cogl-renderer.c                  |   82 ++++++++++++++++++++++++++++++
 cogl/cogl-renderer.h                  |   86 +++++++++++++++++---------------
 cogl/cogl-types.h                     |   39 ++++++++-------
 cogl/cogl-xlib-private.h              |   10 +---
 cogl/cogl-xlib.c                      |   86 ++++++--------------------------
 cogl/cogl-xlib.h                      |    2 +-
 cogl/winsys/cogl-texture-pixmap-x11.c |    9 ++--
 cogl/winsys/cogl-winsys-glx.c         |   23 +++++----
 11 files changed, 187 insertions(+), 242 deletions(-)

commit cbbf76f280fc7a9b5815459f89ef78dfaed0b823
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Apr 18 15:53:25 2011 +0100

    cogl/glx: Silence a compiler warning

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

commit d0739ca0ba4d1b8c5961f4e38021d653edd5acc0
Author: James Athey <james.athey@unleashbts.com>
Date:   Mon Apr 11 14:26:45 2011 -0400

    GL_IMG_TEXTURE_NPOT extension enables TEXTURE_NPOT features on GLES
    
    Older drivers for PowerVR SGX hardware have the vendor-specific
    GL_IMG_TEXTURE_NPOT extension instead of the
    functionally-equivalent GL_OES_TEXTURE_NPOT extension.

 cogl/driver/gles/cogl-feature-functions-gles.h |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 5e530ca9bbe076abf1bc3111447d1d5825456a51
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Apr 12 21:02:14 2011 +0100

    Silence another compiler warning

 cogl/winsys/cogl-winsys-glx.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

commit 9840321501f10711fdd2e0e8e96b6934a75880c9
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Apr 12 20:35:31 2011 +0100

    Silence the compiler by removing unused variables

 cogl/winsys/cogl-winsys-glx.c |    9 +--------
 1 files changed, 1 insertions(+), 8 deletions(-)

commit 29e5531486c2fab470d71c802d9e644e124a6ecb
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Apr 12 20:28:36 2011 +0100

    glx: Protect GLX SwapEvent symbols
    
    We need to guard the usage of symbols related to the
    GLX_INTEL_swap_event extension, to avoid breaking on platforms and/or
    versions of Mesa that do not expose that extension.

 cogl/winsys/cogl-winsys-glx.c |   14 +++++++++++---
 1 files changed, 11 insertions(+), 3 deletions(-)

commit 2bbb0d895b6b1db2a06a8c52f0f181acc3edefbe
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Mar 1 23:12:18 2011 +0000

    Make cogl_framebuffer_get_width/height experimental public API
    
    It's generally useful to be able to query the width and height of a
    framebuffer and we expect to need this in Clutter when we move the
    eglnative backend code into Cogl since Clutter will need to read back
    the fixed size of the framebuffer when realizing the stage.

 cogl/cogl-clip-stack.c          |    2 +-
 cogl/cogl-framebuffer-private.h |    6 ------
 cogl/cogl-framebuffer.c         |    4 ++--
 cogl/cogl-framebuffer.h         |    8 ++++++++
 cogl/cogl.c                     |    2 +-
 cogl/winsys/cogl-winsys-glx.c   |    4 ++--
 6 files changed, 14 insertions(+), 12 deletions(-)

commit 1928f7ec0e7b20ef25a8edf0535d467a08dd7a8e
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Feb 24 12:05:15 2011 +0000

    backend: remove untested fruity backend
    
    This backend hasn't been used for years now and so because it is
    untested code and almost certainly doesn't work any more it would be a
    burdon to continue trying to maintain it. Considering that we are now
    looking at moving OpenGL window system integration code down from
    Clutter backends into Cogl that will be easier if we don't have to
    consider this backend.

 cogl/Makefile.am                 |    4 ----
 cogl/winsys/cogl-winsys-fruity.c |   35 -----------------------------------
 configure.ac                     |    2 --
 3 files changed, 0 insertions(+), 41 deletions(-)

commit efb570fdaea6b9a9d5cc9382a02705cf48006811
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Feb 10 02:32:11 2011 +0000

    Adds the ability to build Cogl standalone
    
    This adds an autogen.sh, configure.ac and build/autotool files etc under
    clutter/cogl and makes some corresponding Makefile.am changes that make
    it possible to build and install Cogl as a standalone library.
    
    Some notable things about this are:
    A standalone installation of Cogl installs 3 pkg-config files;
    cogl-1.0.pc, cogl-gl-1.0.pc and cogl-2.0.pc. The second is only for
    compatibility with what clutter installed though I'm not sure that
    anything uses it so maybe we could remove it. cogl-1.0.pc is what
    Clutter would use if it were updated to build against a standalone cogl
    library. cogl-2.0.pc is what you would use if you were writing a
    standalone Cogl application.
    
    A standalone installation results in two libraries currently, libcogl.so
    and libcogl-pango.so. Notably we don't include a major number in the
    sonames because libcogl supports two major API versions; 1.x as used by
    Clutter and the experimental 2.x API for standalone applications.
    Parallel installation of later versions e.g. 3.x and beyond will be
    supportable either with new sonames or if we can maintain ABI then we'll
    continue to share libcogl.so.
    
    The headers are similarly not installed into a directory with a major
    version number since the same headers are shared to export the 1.x and
    2.x APIs (The only difference is that cogl-2.0.pc ensures that
    -DCOGL_ENABLE_EXPERIMENTAL_2_0_API is used). Parallel installation of
    later versions is not precluded though since we can either continue
    sharing or later add a major version suffix.

 Makefile.am                         |    6 +
 autogen.sh                          |   73 ++++++
 build/autotools/Makefile.am.enums   |   51 ++++
 build/autotools/Makefile.am.silent  |   19 ++
 build/autotools/as-compiler-flag.m4 |   62 +++++
 build/autotools/as-linguas.m4       |   24 ++
 build/autotools/introspection.m4    |   94 +++++++
 cogl/Makefile.am                    |   96 +++++---
 cogl/cogl-1.0-clutter.pc.in         |   17 ++
 cogl/cogl-1.0.pc.in                 |   13 +
 cogl/cogl.pc.in                     |   18 +-
 configure.ac                        |  462 +++++++++++++++++++++++++++++++++++
 pango/Makefile.am                   |   27 ++-
 po/ChangeLog                        |   12 +
 po/Makevars                         |   41 +++
 po/POTFILES.in                      |    1 +
 po/Rules-quot                       |   47 ++++
 po/boldquot.sed                     |   10 +
 po/en@boldquot.header               |   25 ++
 po/en@quot.header                   |   22 ++
 po/insert-header.sin                |   23 ++
 po/quot.sed                         |    6 +
 po/remove-potcdate.sin              |   19 ++
 23 files changed, 1125 insertions(+), 43 deletions(-)

commit d40cdfa3e1c0fd43660002418ce5594b81d80bc1
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Nov 5 12:28:33 2010 +0000

    Moves all GLX code down from Clutter to Cogl
    
    This migrates all the GLX window system code down from the Clutter
    backend code into a Cogl winsys. Moving OpenGL window system binding
    code down from Clutter into Cogl is the biggest blocker to having Cogl
    become a standalone 3D graphics library, so this is an important step in
    that direction.

 cogl/Makefile.am                                |   44 +-
 cogl/cogl-clutter.c                             |   14 +
 cogl/cogl-clutter.h                             |   10 +
 cogl/cogl-context-private.h                     |   34 +-
 cogl/cogl-context.c                             |  104 +-
 cogl/cogl-context.h                             |    7 +-
 cogl/cogl-debug.h                               |    1 +
 cogl/cogl-display-glx-private.h                 |   57 +
 cogl/cogl-display-xlib-private.h                |   35 +
 cogl/cogl-display.c                             |    5 +
 cogl/cogl-display.h                             |   12 +-
 cogl/cogl-feature-private.c                     |    5 +-
 cogl/cogl-feature-private.h                     |   20 +-
 cogl/cogl-framebuffer-private.h                 |   39 +-
 cogl/cogl-framebuffer.c                         |  235 ++++-
 cogl/cogl-framebuffer.h                         |  109 ++
 cogl/cogl-internal.h                            |  102 +--
 cogl/cogl-journal-private.h                     |    1 +
 cogl/cogl-private.h                             |    6 +
 cogl/cogl-renderer-glx-private.h                |   61 ++
 cogl/cogl-renderer-x11-private.h                |   32 +
 cogl/cogl-renderer-xlib-private.h               |   78 ++
 cogl/cogl-renderer-xlib.c                       |  288 ++++++
 cogl/cogl-renderer.c                            |   23 +
 cogl/cogl-types.h                               |   87 ++-
 cogl/cogl-util.c                                |    1 -
 cogl/cogl-xlib-private.h                        |   82 ++
 cogl/cogl-xlib.c                                |  238 +++++
 cogl/cogl-xlib.h                                |   84 ++
 cogl/cogl.c                                     |   10 +-
 cogl/cogl.h                                     |   52 +-
 cogl/driver/gl/cogl-context-driver-gl.h         |   53 +
 cogl/driver/gl/cogl-gl.c                        |   40 +-
 cogl/driver/gles/cogl-context-driver-gles.h     |   52 +
 cogl/driver/gles/cogl-gles.c                    |   46 +-
 cogl/winsys/cogl-context-winsys.c               |  152 ---
 cogl/winsys/cogl-context-winsys.h               |  118 ---
 cogl/winsys/cogl-texture-pixmap-x11.c           |  111 ++-
 cogl/winsys/cogl-winsys-feature-functions.h     |   45 -
 cogl/winsys/cogl-winsys-glx-feature-functions.h |  105 ++
 cogl/winsys/cogl-winsys-glx.c                   | 1262 ++++++++++++++++++++++-
 cogl/winsys/cogl-winsys-private.h               |   88 ++
 cogl/winsys/cogl-winsys-stub.c                  |  114 ++
 cogl/winsys/cogl-winsys-xlib.c                  |  170 ---
 cogl/winsys/cogl-winsys-xlib.h                  |   66 --
 cogl/winsys/cogl-winsys.c                       |   36 +
 46 files changed, 3428 insertions(+), 906 deletions(-)

commit bcd97f35ead2efc48b905e43ed981cd4d5850229
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Feb 25 17:06:50 2011 +0000

    Adds renderer,display,onscreen-template and swap-chain stubs
    
    As part of the process of splitting Cogl out as a standalone graphics
    API we need to introduce some API concepts that will allow us to
    initialize a new CoglContext when Clutter isn't there to handle that for
    us...
    
    The new objects roughly in the order that they are (optionally) involved
    in constructing a context are: CoglRenderer, CoglOnscreenTemplate,
    CoglSwapChain and CoglDisplay.
    
    Conceptually a CoglRenderer represents a means for rendering.  Cogl
    supports rendering via OpenGL or OpenGL ES 1/2.0 and those APIs are
    accessed through a number of different windowing APIs such as GLX, EGL,
    SDL or WGL and more. Potentially in the future Cogl could render using
    D3D or even by using libdrm and directly banging the hardware. All these
    choices are wrapped up in the configuration of a CoglRenderer.
    
    Conceptually a CoglDisplay represents a display pipeline for a renderer.
    Although Cogl doesn't aim to provide a detailed abstraction of display
    hardware, on some platforms we can give control over multiple display
    planes (On TV platforms for instance video content may be on one plane
    and 3D would be on another so a CoglDisplay lets you select the plane
    up-front.)
    
    Another aspect of CoglDisplay is that it lets us negotiate a display
    pipeline that best supports the type of CoglOnscreen framebuffers we are
    planning to create. For instance if you want transparent CoglOnscreen
    framebuffers then we have to be sure the display pipeline wont discard
    the alpha component of your framebuffers. Or if you want to use
    double/tripple buffering that requires support from the display
    pipeline.
    
    CoglOnscreenTemplate and CoglSwapChain are how we describe our default
    CoglOnscreen framebuffer configuration which can affect the
    configuration of the display pipeline.
    
    The default/simple way we expect most CoglContexts to be constructed
    will be via something like:
    
     if (!cogl_context_new (NULL, &error))
       g_error ("Failed to construct a CoglContext: %s", error->message);
    
    Where that NULL is for an optional "display" parameter and NULL says to
    Cogl "please just try to do something sensible".
    
    If you want some more control though you can manually construct a
    CoglDisplay something like:
    
     display = cogl_display_new (NULL, NULL);
     cogl_gdl_display_set_plane (display, plane);
     if (!cogl_display_setup (display, &error))
       g_error ("Failed to setup a CoglDisplay: %s", error->message);
    
    And in a similar fashion to cogl_context_new() you can optionally pass
    a NULL "renderer" and/or a NULL "onscreen template" so Cogl will try to
    just do something sensible.
    
    If you need to change the CoglOnscreen defaults you can provide a
    template something like:
      chain = cogl_swap_chain_new ();
      cogl_swap_chain_set_has_alpha (chain, TRUE);
      cogl_swap_chain_set_length (chain, 3);
    
      onscreen_template = cogl_onscreen_template_new (chain);
      cogl_onscreen_template_set_pixel_format (onscreen_template,
                                               COGL_PIXEL_FORMAT_RGB565);
    
      display = cogl_display_new (NULL, onscreen_template);
      if (!cogl_display_setup (display, &error))
        g_error ("Failed to setup a CoglDisplay: %s", error->message);

 cogl/Makefile.am                      |   16 ++++
 cogl/cogl-context.c                   |   44 +++++++--
 cogl/cogl-display-private.h           |   43 +++++++++
 cogl/cogl-display.c                   |  106 ++++++++++++++++++++++
 cogl/cogl-onscreen-template-private.h |   37 ++++++++
 cogl/cogl-onscreen-template.c         |   62 +++++++++++++
 cogl/cogl-onscreen-template.h         |   48 ++++++++++
 cogl/cogl-renderer-private.h          |   43 +++++++++
 cogl/cogl-renderer.c                  |  106 ++++++++++++++++++++++
 cogl/cogl-renderer.h                  |  158 +++++++++++++++++++++++++++++++++
 cogl/cogl-swap-chain-private.h        |   37 ++++++++
 cogl/cogl-swap-chain.c                |   66 ++++++++++++++
 cogl/cogl-swap-chain.h                |   46 ++++++++++
 13 files changed, 802 insertions(+), 10 deletions(-)

commit e80a2b9b2fec899c7a2c20dd67f2493485305a1c
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Feb 22 20:08:16 2011 +0000

    rename winsys files to be more consistent
    
    This tries to make the naming style of files under cogl/winsys/
    consistent with other cogl source files. In particular private header
    files didn't have a '-private' infix.

 cogl/Makefile.am                      |   22 ++--
 cogl/winsys/cogl-egl.c                |   45 ---------
 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-texture-pixmap-x11.c |    2 +-
 cogl/winsys/cogl-win32.c              |   35 -------
 cogl/winsys/cogl-winsys-egl.c         |   45 +++++++++
 cogl/winsys/cogl-winsys-fruity.c      |   35 +++++++
 cogl/winsys/cogl-winsys-glx.c         |   78 +++++++++++++++
 cogl/winsys/cogl-winsys-osx.c         |   35 +++++++
 cogl/winsys/cogl-winsys-private.h     |   30 ++++++
 cogl/winsys/cogl-winsys-sdl.c         |   35 +++++++
 cogl/winsys/cogl-winsys-win32.c       |   35 +++++++
 cogl/winsys/cogl-winsys-xlib.c        |  170 +++++++++++++++++++++++++++++++++
 cogl/winsys/cogl-winsys-xlib.h        |   66 +++++++++++++
 cogl/winsys/cogl-winsys.h             |   30 ------
 cogl/winsys/cogl-xlib.c               |  170 ---------------------------------
 cogl/winsys/cogl-xlib.h               |   66 -------------
 20 files changed, 541 insertions(+), 541 deletions(-)

commit 9f19244971d06b28730697d12ea9f73558d3354c
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Feb 22 18:25:29 2011 +0000

    Add temporary cogl-clutter.h to aid splitting out Cogl
    
    This gives us a way to clearly track the internal Cogl API that Clutter
    depends on. The aim is to split Cogl out from Clutter into a standalone
    3D graphics API and eventually we want to get rid of any private
    interfaces for Clutter so its useful to have a handle on that task.
    Actually it's not as bad as I was expecting though.

 cogl/Makefile.am                |    6 ++-
 cogl/cogl-clutter.c             |   59 +++++++++++++++++++++++++++++++++++++++
 cogl/cogl-clutter.h             |   47 +++++++++++++++++++++++++++++++
 cogl/cogl-framebuffer-private.h |    4 ++
 cogl/cogl-framebuffer.c         |    9 ++----
 cogl/cogl-private.h             |    3 ++
 cogl/cogl.h                     |    3 --
 7 files changed, 120 insertions(+), 11 deletions(-)

commit 0b45110302a025145ce928dfbe3d21a6ab7f9ad3
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Mar 10 21:33:31 2011 +0000

    framebuffer: expose experimental cogl_get_draw_framebuffer
    
    This renames the two internal functions _cogl_get_draw/read_buffer
    as cogl_get_draw_framebuffer and _cogl_get_read_framebuffer. The
    former is now also exposed as experimental API.

 cogl/cogl-attribute.c           |    8 +++---
 cogl/cogl-clip-stack.c          |   10 ++++----
 cogl/cogl-clip-state.c          |   12 +++++-----
 cogl/cogl-framebuffer-private.h |    5 +---
 cogl/cogl-framebuffer.c         |   24 ++++++++++----------
 cogl/cogl-journal.c             |   10 ++++----
 cogl/cogl-matrix-stack.c        |    2 +-
 cogl/cogl-primitives.c          |    4 +-
 cogl/cogl-texture-2d.c          |    4 +-
 cogl/cogl-texture.c             |    2 +-
 cogl/cogl.c                     |   46 +++++++++++++++++++-------------------
 cogl/cogl.h                     |    5 +++-
 cogl/cogl2-clip-state.c         |    2 +-
 cogl/cogl2-path.c               |    6 ++--
 14 files changed, 70 insertions(+), 70 deletions(-)

commit aa1e45267b2edf48f8d112a75ddd9564a644db19
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Feb 22 17:58:47 2011 +0000

    framebuffer: track context as CoglFramebuffer member
    
    The long term goal with the Cogl API is that we will get rid of the
    default global context. As a step towards this, this patch tracks a
    reference back to the context in each CoglFramebuffer so in a lot of
    cases we can avoid using the _COGL_GET_CONTEXT macro.

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

commit 5c7ce809c19b690773f3d0da6e47eb24d98480db
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Feb 22 17:30:54 2011 +0000

    remove unused _cogl_features_init prototype
    
    There is no corresponding implementation of _cogl_features_init any more
    so it was simply an oversight that the prototype wasn't removed when the
    implementation was removed.

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

commit 7fc6613fe92dddc7cf4635cb9c03cbf71964b179
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Feb 22 17:13:56 2011 +0000

    Remove unused _cogl_swap_buffers_notify
    
    Recently _cogl_swap_buffers_notify was added (in 142b229c5c26) so that
    Cogl would be notified when Clutter performs a swap buffers request for
    a given onscreen framebuffer. It was expected this would be required for
    the recent cogl_read_pixel optimization that was implemented (ref
    1bdb0e6e98db) but in the end it wasn't used.
    
    Since it wasn't used in the end this patch removes the API.

 cogl/cogl-framebuffer-private.h |    3 ---
 cogl/cogl-framebuffer.c         |    5 -----
 cogl/cogl.c                     |   11 -----------
 cogl/cogl.h                     |    3 ---
 4 files changed, 0 insertions(+), 22 deletions(-)

commit c41581853742da483ecf31ad370d9be23b4bca7c
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Nov 5 00:34:37 2010 +0000

    cogl: consolidate _create_context_driver + _features_init
    
    This moves the functionality of _cogl_create_context_driver from
    driver/{gl,gles}/cogl-context-driver-{gl,gles}.c into
    driver/{gl,gles}/cogl-{gl,gles}.c as a static function called
    initialize_context_driver.
    
    cogl-context-driver-{gl,gles}.[ch] have now been removed.

 cogl/Makefile.am                            |    4 --
 cogl/cogl-context.c                         |    6 +--
 cogl/driver/gl/cogl-context-driver-gl.c     |   39 --------------------
 cogl/driver/gl/cogl-context-driver-gl.h     |   53 ---------------------------
 cogl/driver/gl/cogl-gl.c                    |   36 +++++++++++++------
 cogl/driver/gles/cogl-context-driver-gles.c |   40 --------------------
 cogl/driver/gles/cogl-context-driver-gles.h |   52 --------------------------
 cogl/driver/gles/cogl-gles.c                |   28 +++++++++++----
 8 files changed, 48 insertions(+), 210 deletions(-)

commit e9b1ca0165f450c1f893e73d425f98a7b091f9b4
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Nov 5 00:00:25 2010 +0000

    cogl: Adds experimental cogl_context_new() API
    
    This adds a new experimental function (you need to define
    COGL_ENABLE_EXPERIMENTAL_API to access it) which takes us towards being
    able to have a standalone Cogl API. This is really a minor aesthetic
    change for now since all the GL context creation code still lives in
    Clutter but it's a step forward none the less.
    
    Since our current designs introduce a CoglDisplay object as something
    that would be passed to the context constructor this provides a stub
    cogl-display.h with CoglDisplay typedef.
    
    _cogl_context_get_default() which Clutter uses to access the Cogl
    context has been modified to use cogl_context_new() to initialize
    the default context.
    
    There is one rather nasty hack used in this patch which is that the
    implementation of cogl_context_new() has to forcibly make the allocated
    context become the default context because currently all the code in
    Cogl assumes it can access the context using _COGL_GET_CONTEXT including
    code used to initialize the context.

 cogl/Makefile.am            |    1 +
 cogl/cogl-context-private.h |    7 +-
 cogl/cogl-context.c         |  293 +++++++++++++++++++++++--------------------
 cogl/cogl-context.h         |   62 +++++++++
 cogl/cogl-display.h         |   78 ++++++++++++
 cogl/cogl.h                 |    1 +
 6 files changed, 305 insertions(+), 137 deletions(-)

commit fdbc7417700e7f416cb330288e1011b40a15c6b8
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Nov 4 22:25:52 2010 +0000

    cogl: rename cogl-context.h cogl-context-private.h
    
    Since we plan to add public cogl_context_* API we need to rename the
    current cogl-context.h which contains private member details.

 cogl/Makefile.am                            |    2 +-
 cogl/cogl-atlas-texture.c                   |    2 +-
 cogl/cogl-atlas.c                           |    2 +-
 cogl/cogl-attribute.c                       |    2 +-
 cogl/cogl-blend-string.c                    |    2 +-
 cogl/cogl-blit.c                            |    2 +-
 cogl/cogl-buffer.c                          |    2 +-
 cogl/cogl-clip-stack.c                      |    2 +-
 cogl/cogl-clip-state.c                      |    2 +-
 cogl/cogl-context-private.h                 |  251 +++++++++++++++++++++++++++
 cogl/cogl-context.c                         |    2 +-
 cogl/cogl-context.h                         |  251 ---------------------------
 cogl/cogl-feature-private.c                 |    2 +-
 cogl/cogl-framebuffer.c                     |    2 +-
 cogl/cogl-indices.c                         |    2 +-
 cogl/cogl-journal.c                         |    2 +-
 cogl/cogl-material-compat.c                 |    2 +-
 cogl/cogl-matrix-stack.c                    |    2 +-
 cogl/cogl-path.c                            |    2 +-
 cogl/cogl-pipeline-fragend-arbfp.c          |    2 +-
 cogl/cogl-pipeline-fragend-fixed.c          |    2 +-
 cogl/cogl-pipeline-fragend-glsl.c           |    2 +-
 cogl/cogl-pipeline-opengl.c                 |    2 +-
 cogl/cogl-pipeline-progend-glsl.c           |    2 +-
 cogl/cogl-pipeline-vertend-fixed.c          |    2 +-
 cogl/cogl-pipeline-vertend-glsl.c           |    2 +-
 cogl/cogl-pipeline.c                        |    2 +-
 cogl/cogl-pixel-array.c                     |    2 +-
 cogl/cogl-primitives.c                      |    2 +-
 cogl/cogl-program.c                         |    2 +-
 cogl/cogl-shader.c                          |    2 +-
 cogl/cogl-sub-texture.c                     |    2 +-
 cogl/cogl-texture-2d-sliced.c               |    2 +-
 cogl/cogl-texture-2d.c                      |    2 +-
 cogl/cogl-texture-3d.c                      |    2 +-
 cogl/cogl-texture-rectangle.c               |    2 +-
 cogl/cogl-texture.c                         |    2 +-
 cogl/cogl-vertex-buffer.c                   |    2 +-
 cogl/cogl.c                                 |    2 +-
 cogl/cogl2-path.c                           |    2 +-
 cogl/driver/gl/cogl-context-driver-gl.c     |    2 +-
 cogl/driver/gl/cogl-gl.c                    |    2 +-
 cogl/driver/gl/cogl-texture-driver-gl.c     |    2 +-
 cogl/driver/gles/cogl-context-driver-gles.c |    2 +-
 cogl/driver/gles/cogl-gles.c                |    2 +-
 cogl/driver/gles/cogl-texture-driver-gles.c |    2 +-
 cogl/winsys/cogl-context-winsys.c           |    2 +-
 cogl/winsys/cogl-texture-pixmap-x11.c       |    2 +-
 cogl/winsys/cogl-xlib.c                     |    2 +-
 49 files changed, 298 insertions(+), 298 deletions(-)

commit 16a6c77089f4e0db70a730d8615fd6b2c063b9e4
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Apr 6 15:24:33 2011 +0100

    cogl-pango-glyph-cache: Fix the flags passed to cogl_atlas_new
    
    In 047227fb cogl_atlas_new was changed so that it can take a flags
    parameter to specify whether to clear the new atlases and whether to
    copy images to the new atlas after reorganisation. This was done so
    that the atlas code could be shared with the glyph cache. At some
    point during the development of this patch the flag was just a single
    boolean instead and this is accidentally how it is used from the glyph
    cache. The glyph cache therefore passes 'TRUE' as the set of flags
    which means it will only get the 'clear' flag and not the
    'disable-migration' flag. When the glyph cache gets full it will
    therefore try to copy the texture to the new atlas as well as
    redrawing them with cairo. This causes problems because the glyph
    cache needs to work in situations where there is no FBO support.

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

commit 472e8e8f4e325f1839b42b10dd38a4828e559909
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Apr 5 17:30:29 2011 +0100

    cogl-pipeline: Be careful not to take ownership of root layer
    
    In _cogl_pipeline_prune_empty_layer_difference if the layer's parent
    has no owner then it just takes ownership of it. However this could
    theoretically end up taking ownership of the root layer because
    according to the comment above in the same function that should never
    have an owner. This patch just adds an extra check to ensure that the
    unowned layer has a parent.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2588

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

commit 7de36552982df25d6a516dd23ebc19c832106fee
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Apr 5 17:01:24 2011 +0100

    pipeline: reclaim ownership if reverting to layer ancestor
    
    In _cogl_pipeline_prune_empty_layer_difference if we are reverting to
    the immediate parent of an empty/redundant layer then it is not enough
    to simply add a reference to the pipeline's ->layer_differences list
    without also updating parent_layer->owner to point back to its new
    owner.
    
    This oversight was leading us to break the invariable that all layers
    referenced in layer_differences have an owner and was also causing us to
    break another invariable whereby after calling
    _cogl_pipeline_layer_pre_change_notify the returned layer must always be
    owned by the given 'required_owner'.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2588

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

commit 12b622a32067fefc16b970cbefea7395c6452a14
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Apr 4 14:42:36 2011 +0100

    offscreen: Plug a leak in an error path
    
    When creating a CoglOffscreen we take a reference on the texture handle,
    but in case of error we never release it.
    
    We should take that reference only on success.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2620

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

commit bb79fb43e5d7afdd4b2c2e2e547dd64949da799c
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Mar 21 12:34:41 2011 +0000

    Merge remote-tracking branch 'elliot/cookbook-effects-basic'
    
    * elliot/cookbook-effects-basic:
      docs: Remove checks for whether an effect is disabled
      docs: Add recipe about implementing a ClutterEffect
      docs: Add example of setting background color with ClutterEffect
      docs: Add example of a border added through ClutterEffect

commit f38b7a78fb6e811a68314cd8f0a1909ed29a39db
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Mar 14 17:58:31 2011 +0000

    cogl: Use GHookList instead of CoglCallbackList
    
    glib already has a data type to manage a list of callbacks called a
    GHookList so we might as well use it instead of maintaining Cogl's own
    type. The glib version may be slightly more efficient because it
    avoids using a GList and instead encodes the prev and next pointers
    directly in the GHook structure. It also has more features than
    CoglCallbackList.

 cogl/Makefile.am               |    2 -
 cogl/cogl-atlas.c              |   58 ++++++++++++++-------
 cogl/cogl-atlas.h              |   13 ++---
 cogl/cogl-callback-list.c      |  107 ----------------------------------------
 cogl/cogl-callback-list.h      |   58 ---------------------
 pango/cogl-pango-glyph-cache.c |   26 ++++++---
 pango/cogl-pango-glyph-cache.h |    5 +-
 pango/cogl-pango-render.c      |    4 +-
 8 files changed, 65 insertions(+), 208 deletions(-)

commit 034d2730301360fa4763983f9bd0ff41630a746c
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Mar 10 18:51:51 2011 +0000

    culling: Don't cull actors not being painted on the stage
    
    Previously we were applying the culling optimization to any actor
    painted without considering that we may be painting to an offscreen
    framebuffer where the stage clip isn't applicable.
    
    For now we simply expose a getter for the current draw framebuffer
    and we can assume that a return value of NULL corresponds to the
    stage.
    
    Note: This will need to be updated as stages start to be backed by real
    CoglFramebuffer objects and so we won't get NULL in those cases.

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

commit 30fa4e1a201dd6343371fe129bd1e7b68a9b036e
Author: Jasper St. Pierre <jstpierre@mecheye.net>
Date:   Wed Mar 2 12:45:25 2011 -0500

    cogl-clip-state: Adapt to experimental cogl2 API.
    
    The current clip state implementation couldn't be used in
    conjunction with the CoglPath experimental API.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2594
    
    Signed-off-by: Neil Roberts <neil@linux.intel.com>

 cogl/Makefile.am                |    9 +++++-
 cogl/cogl-clip-state-private.h  |   53 +++++++++++++++++++++++++++++++++++++++
 cogl/cogl-clip-state.c          |   20 +++-----------
 cogl/cogl-clip-state.h          |   39 +++++++++++++---------------
 cogl/cogl-framebuffer-private.h |    2 +-
 cogl/cogl.h                     |   15 +---------
 cogl/cogl2-clip-state.c         |   49 ++++++++++++++++++++++++++++++++++++
 cogl/cogl2-clip-state.h         |   52 ++++++++++++++++++++++++++++++++++++++
 8 files changed, 186 insertions(+), 53 deletions(-)

commit cbe9d758d5bf98c2fcab9914fc4fe7b2e0711872
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Mar 9 17:46:23 2011 +0000

    cogl-path: Optimise paths that are just a rectangle
    
    Drawing and clipping to paths is generally quite expensive because the
    geometry has to be tessellated into triangles in a single VBO which
    breaks up the journal batching. If we can detect when the path
    contains just a single rectangle then we can instead divert to calling
    cogl_rectangle which will take advantage of the journal, or by pushing
    a rectangle clip which usually ends up just using the scissor.
    
    This patch adds a boolean to each path to mark when it is a
    rectangle. It gets cleared whenever a node is added or gets set to
    TRUE whenever cogl2_path_rectangle is called. This doesn't try to
    catch cases where a rectangle is composed by cogl_path_line_to and
    cogl_path_move_to commands.

 cogl/cogl-clip-stack.c   |   32 ++++++++++++++++++--------
 cogl/cogl-path-private.h |   11 +++++++++
 cogl/cogl2-path.c        |   55 ++++++++++++++++++++++++++++++++++++++-------
 3 files changed, 79 insertions(+), 19 deletions(-)

commit 9b7f362ea456f03688a693b11d3c39ecc9b6e174
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Mar 8 12:53:41 2011 +0000

    cogl-shader-boilerplate: Specify default precision earlier
    
    In 9ff04e8a99 the builtin uniforms were moved to the common shader
    boilerplate. However the common boilerplate is positioned before the
    default precision specifier on GLES2 so it would fail to compile
    because the uniforms end up with no precision in the fragment
    shader. This patch just moves the precision specifier to above the
    common boilerplate.

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

commit d4a5d70ee0b2b77007957f825c42ff3931b4cbfd
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Feb 8 10:37:15 2011 +0000

    util: optimize _clutter_util_fully_transform_vertices
    
    Instead of unconditionally combining the modelview and projection
    matrices and then iterating each of the vertices to call
    cogl_matrix_transform_point for each one in turn we now only combine the
    matrices if there are more than 4 vertices (with less than 4 vertices
    its less work to transform them separately) and we use the new
    cogl_vertex_{transform,project}_points APIs which can hopefully
    vectorize the transformations.
    
    Finally the perspective divide and viewport scale is done in a separate
    loop at the end and we don't do the spurious perspective divide and
    viewport scale for the z component.

 cogl/cogl-matrix.c |   14 +++++++-------
 cogl/cogl-matrix.h |    4 ++--
 2 files changed, 9 insertions(+), 9 deletions(-)

commit 962b84ed56877237344c0f9f8079585392ed5580
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Feb 8 15:21:41 2011 +0000

    matrix: adds 2d view transform conveniences
    
    This adds two new experimental functions to cogl-matrix.c:
    cogl_matrix_view_2d_in_perspective and cogl_matrix_view_2d_in_frustum
    which can be used to setup a view transform that maps a 2D coordinate
    system (0,0) top left and (width,height) bottom right to the current
    viewport.
    
    Toolkits such as Clutter that want to mix 2D and 3D drawing can use
    these APIs to position a 2D coordinate system at an arbitrary depth
    inside a 3D perspective projected viewing frustum.

 cogl/cogl-matrix.c |   57 +++++++++++++++++++++++++++++++++++++
 cogl/cogl-matrix.h |   80 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 137 insertions(+), 0 deletions(-)

commit bc372d27346d22a31cf33edaa3f0c1ad91b989e3
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Feb 1 16:51:58 2011 +0000

    viewport: consistently use floats for viewports
    
    OpenGL < 4.0 only supports integer based viewports and internally we
    have a mixture of code using floats and integers for viewports. This
    patch switches all viewports throughout clutter and cogl to be
    represented using floats considering that in the future we may want to
    take advantage of floating point viewports with modern hardware/drivers.

 cogl/cogl-framebuffer-private.h |   26 +++++++++++++-------------
 cogl/cogl-framebuffer.c         |   23 ++++++++++++-----------
 cogl/cogl-journal.c             |    2 +-
 cogl/cogl-matrix-mesa.c         |    8 +++++---
 cogl/cogl-matrix-mesa.h         |    2 +-
 cogl/cogl-texture.c             |   12 ++++++------
 cogl/cogl.c                     |    7 +------
 cogl/cogl.h                     |    3 ---
 8 files changed, 39 insertions(+), 44 deletions(-)

commit b3d9f313d47f1b604a9ecc9c0ada2b1793a87157
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Mar 3 23:19:30 2011 +0000

    util: tune point_in_poly test for polys in screen coords
    
    This makes a change to the original point_in_poly algorithm from:
    http://www.ecse.rpi.edu/Homepages/wrf/Research/Short_Notes/pnpoly.html
    
    The aim was to tune the test so that tests against screen aligned
    rectangles are more resilient to some in-precision in how we transformed
    that rectangle into screen coordinates. In particular gnome-shell was
    finding that for some stage sizes then row 0 of the stage would become a
    dead zone when going through the software picking fast-path and this was
    because the y position of screen aligned rectangles could end up as
    something like 0.00024 and the way the algorithm works it doesn't have
    any epsilon/fuz factor to consider that in-precision.
    
    We've avoided introducing an epsilon factor to the comparisons since we
    feel there's a risk of changing some semantics in ways that might not be
    desirable. One of those is that if you transform two polygons which
    share an edge and test a point close to that edge then this algorithm
    will currently give a positive result for only one polygon.
    
    Another concern is the way this algorithm resolves the corner case where
    the horizontal ray being cast to count edge crossings may cross directly
    through a vertex. The solution is based on the "idea of Simulation of
    Simplicity" and "pretends to shift the ray infinitesimally down so that
    it either clearly intersects, or clearly doesn't touch". I'm not
    familiar with the idea myself so I expect a misplaced epsilon is likely
    to break that aspect of the algorithm.
    
    The simple solution this patch applies is to pixel align the polygon
    vertices which should eradicate most noise due to in-precision.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=641197

 cogl/cogl-journal.c               |    4 +-
 cogl/cogl-point-in-poly-private.h |   10 ++++----
 cogl/cogl-point-in-poly.c         |   41 ++++++++++++++++++++++++++++++++----
 3 files changed, 43 insertions(+), 12 deletions(-)

commit 25db8d06530746cf84557e8bde47f235a1a85170
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Feb 24 18:42:47 2011 +0000

    cogl-blit: Disable blending when using texture render
    
    When using a pipeline and the journal to blit images between
    framebuffers, it should disable blending. Otherwise it will end up
    blending the source texture with uninitialised garbage in the
    destination texture.

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

commit 54cdb0f59f54f0861bfb6dffbe0fe4acfd9e91d8
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Feb 21 18:09:06 2011 +0000

    Merge remote-tracking branch 'elliot/cookbook-effects-custom-deform'
    
    * elliot/cookbook-effects-custom-deform:
      docs: Add effects chapter, with introduction and first recipe

commit c91f102232b9af4dafc7dfbec49405a99bec9bc2
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sat Feb 19 16:43:46 2011 +0000

    cogl: Remove unused variables

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

commit 8f8b05f0e5f6bd3a82abc9355397ef0640934e68
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Feb 17 13:11:34 2011 +0000

    cogl-atlas-texture: Don't let textures be destroyed during migration
    
    If an atlas texture's last reference is held by the journal or by the
    last flushed pipeline then if an atlas migration is started it can
    cause a crash. This is because the atlas migration will cause a
    journal flush and can sometimes change the current pipeline which
    means that the texture would be destroyed during migration.
    
    This patch adds an extra 'post_reorganize' callback to the existing
    'reorganize' callback (which is now renamed to 'pre_reorganize'). The
    pre_reorganize callback is now called before the atlas grabs a list of
    the current textures instead of after so that it doesn't matter if the
    journal flush destroys some of those textures. The pre_reorganize
    callback for CoglAtlasTexture grabs a reference to all of the textures
    so that they can not be destroyed when the migration changes the
    pipeline. In the post_reorganize callback the reference is removed
    again.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2538

 cogl/cogl-atlas-texture.c      |   80 ++++++++++++++++++++++++++++++++++++----
 cogl/cogl-atlas.c              |   54 ++++++++++++++++++++-------
 cogl/cogl-atlas.h              |   11 +++--
 pango/cogl-pango-glyph-cache.c |    2 +-
 4 files changed, 120 insertions(+), 27 deletions(-)

commit b77276c99ab70fa6d761edd96efebbe927d6814f
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Feb 15 12:50:15 2011 +0000

    cogl-atlas: Fix a compiler warning when Cogl debug is disabled
    
    When Cogl debugging is disabled then the 'waste' variable is not used
    so it throws a compiler warning. This patch removes the variable and
    the value is calculated directly as the parameter to COGL_NOTE.

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

commit 167c8aac1b0c99e647939d96fefb97a025356be9
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Feb 15 12:44:40 2011 +0000

    cogl-debug: Don't define _cogl_debug_flags when debugging disabled
    
    _cogl_debug_flags isn't used when COGL_DEBUG is not defined so there's
    no need to declare it.
    
    Based on a patch by Fan, Chun-wei
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2561

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

commit dd7b1326eb1eaca686eaff186c2e5c4fb8464465
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Feb 15 12:43:26 2011 +0000

    cogl: Avoid pointer arithmetic on void* pointers
    
    Some code was doing pointer arithmetic on the return value from
    cogl_buffer_map which is void* pointer. This is a GCC extension so we
    should try to avoid it. This patch adds casts to guint8* where
    appropriate.
    
    Based on a patch by Fan, Chun-wei.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2561

 cogl/cogl-attribute.c |    4 ++--
 cogl/cogl-journal.c   |    4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

commit c4cfdd59d3bbf7045d5747263fb52d05daa45335
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Feb 15 12:31:12 2011 +0000

    Fix ISO C90 compiler warnings in Cogl
    
    Mixing declarations and statements and unused variables.

 cogl/cogl-attribute.c     |   14 +++++++---
 cogl/cogl-bitmap-pixbuf.c |   67 ++++++++++++++++++++++++++++++---------------
 cogl/cogl-blend-string.c  |    4 +-
 3 files changed, 57 insertions(+), 28 deletions(-)

commit c8ddb3b55a0a0f46f1c3068fd32dba3f4b198979
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Jan 20 17:45:47 2011 +0000

    cogl-atlas: Try 4 different approaches for migrating textures
    
    Instead of directly banging GL to migrate textures the atlas now uses
    the CoglFramebuffer API. It will use one of four approaches; it can
    set up two FBOs and use _cogl_blit_framebuffer to copy between them;
    it can use a single target fbo and then render the source texture to
    the FBO using a Cogl draw call; it can use a single FBO and call
    glCopyTexSubImage2D; or it can fallback to reading all of the texture
    data back to system memory and uploading it again with a sub texture
    update.
    
    Previously GL calls were used directly because Cogl wasn't able to
    create a framebuffer without a stencil and depth buffer. However there
    is now an internal version of cogl_offscreen_new_to_texture which
    takes a set of flags to disable the two buffers.
    
    The code for blitting has now been moved into a separate file called
    cogl-blit.c because it has become quite long and it may be useful
    outside of the atlas at some point.
    
    The 4 different methods have a fixed order of preference which is:
    
    * Texture render between two FBOs
    * glBlitFramebuffer
    * glCopyTexSubImage2D
    * glGetTexImage + glTexSubImage2D
    
    Once a method is succesfully used it is tried first for all subsequent
    blits. The default default can be overridden by setting the
    environment variable COGL_ATLAS_DEFAULT_BLIT_MODE to one of the
    following values:
    
    * texture-render
    * framebuffer
    * copy-tex-sub-image
    * get-tex-data

 cogl/Makefile.am    |    2 +
 cogl/cogl-atlas.c   |  185 ++----------------------
 cogl/cogl-blit.c    |  389 +++++++++++++++++++++++++++++++++++++++++++++++++++
 cogl/cogl-blit.h    |   89 ++++++++++++
 cogl/cogl-context.c |    4 +
 cogl/cogl-context.h |    1 +
 6 files changed, 501 insertions(+), 169 deletions(-)

commit 5ca053a3c151078ec7db1f18bc7ae537b6952ece
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Feb 10 18:24:14 2011 +0000

    cogl-texture-2d: Add _cogl_is_texture_2d to the private header
    
    This adds a declaration for _cogl_is_texture_2d to the private header
    so that it can be used in cogl-blit.c to determine if the target
    texture is a simple 2D texture.

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

commit bc86db1057f6ceb9cecd72be085bab7198136f29
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Feb 10 18:22:27 2011 +0000

    cogl-texture-2d: Add an internal wrapper around glCopyTexSubImage2D
    
    This adds a function called _cogl_texture_2d_copy_from_framebuffer
    which is a simple wrapper around glCopyTexSubImage2D. It is currently
    specific to the texture 2D backend.

 cogl/cogl-texture-2d-private.h |   22 ++++++++++++++++++++++
 cogl/cogl-texture-2d.c         |   35 +++++++++++++++++++++++++++++++++++
 2 files changed, 57 insertions(+), 0 deletions(-)

commit 9d242b62a9e0ace8437fb6f637d4e2efe344308d
Author: Neil Roberts <neil@linux.intel.com>
Date:   Sat Feb 5 11:19:52 2011 +0000

    cogl-framebuffer: Add _cogl_blit_framebuffer
    
    This adds the _cogl_blit_framebuffer internal function which is a
    wrapper around glBlitFramebuffer. The API is changed from the GL
    version of the function to reflect the limitations provided by the
    GL_ANGLE_framebuffer_blit extension (eg, no scaling or mirroring).

 cogl/cogl-framebuffer-private.h |   53 +++++++++++++++++++++++++++++++++++++++
 cogl/cogl-framebuffer.c         |   46 +++++++++++++++++++++++++++++++++
 2 files changed, 99 insertions(+), 0 deletions(-)

commit 392cfb493a2da80aa3185162651a184b5f2936b5
Author: Neil Roberts <neil@linux.intel.com>
Date:   Sat Feb 5 12:42:39 2011 +0000

    cogl-gles: Check for the GL_ANGLE_framebuffer_blit extension
    
    This extension is the GLES equivalent of the GL_EXT_framebuffer_blit
    extension except that it has some extra restrictions. We need to check
    for some extension that provides glBlitFramebuffer so that we can
    unconditionally use ctx->drv.pf_glBlitFramebuffer in both GL and GLES
    code. Even with the restrictions, the extension provides enough
    features for what Cogl needs.

 cogl/driver/gles/cogl-feature-functions-gles.h |   18 ++++++++++++++++++
 1 files changed, 18 insertions(+), 0 deletions(-)

commit 50babfbc7a7793474a68e6f2c49fa8790a821f97
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Jan 21 17:37:10 2011 +0000

    cogl-atlas-texture: Make copying a texture out more robust
    
    Previously when _cogl_atlas_texture_migrate_out_of_atlas is called it
    would unreference the atlas texture's sub-texture before calling
    _cogl_atlas_copy_rectangle. This would leave the atlas texture in an
    inconsistent state during the copy. This doesn't normally matter but
    if the copy ends up doing a render then the atlas texture may end up
    being referenced. In particular it would cause problems if the texture
    is left in a texture unit because then Cogl may try to call
    get_gl_texture even though the texture isn't actually being used for
    rendering. To fix this the sub texture is now unrefed after the copy
    call instead.

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

commit a067e7a16b52488b0bf66845959d649de4ca0d43
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Feb 2 14:23:53 2011 +0000

    cogl-framebuffer: Separate the draw and read buffer
    
    The current framebuffer is now internally separated so that there can
    be a different draw and read buffer. This is required to use the
    GL_EXT_framebuffer_blit extension. The current draw and read buffers
    are stored as a pair in a single stack so that pushing the draw and
    read buffer is done simultaneously with the new
    _cogl_push_framebuffers internal function. Calling
    cogl_pop_framebuffer will restore both the draw and read buffer to the
    previous state. The public cogl_push_framebuffer function is layered
    on top of the new function so that it just pushes the same buffer for
    both drawing and reading.
    
    When flushing the framebuffer state, the cogl_framebuffer_flush_state
    function now tackes a pointer to both the draw and the read
    buffer. Anywhere that was just flushing the state for the current
    framebuffer with _cogl_get_framebuffer now needs to call both
    _cogl_get_draw_buffer and _cogl_get_read_buffer.

 cogl/cogl-attribute.c           |    8 +-
 cogl/cogl-clip-stack.c          |   10 +-
 cogl/cogl-clip-state.c          |   14 +-
 cogl/cogl-framebuffer-private.h |   23 ++++-
 cogl/cogl-framebuffer.c         |  235 +++++++++++++++++++++++++++++----------
 cogl/cogl-journal.c             |   11 +-
 cogl/cogl-matrix-stack.c        |    2 +-
 cogl/cogl-primitives.c          |    4 +-
 cogl/cogl-texture.c             |    2 +-
 cogl/cogl.c                     |   50 +++++----
 cogl/cogl2-path.c               |    8 +-
 11 files changed, 255 insertions(+), 112 deletions(-)

commit 4d6754ed0fc9202602241aa0c656befce651033e
Merge: 7eb6dba aa4f633
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Feb 11 16:45:45 2011 +0000

    Merge remote-tracking branch 'nobled/wayland-fixes2'
    
    * nobled/wayland-fixes2:
      wayland: fix shm buffers
      wayland: set renderable type on dummy surface
      wayland: check for egl extensions explicitly
      wayland: fall back to shm buffers if drm fails
      wayland: add shm buffer code
      wayland: make buffer handling generic
      wayland: really fix buffer format selection
      wayland: fix pixel format
      wayland: clean up buffer creation code
      wayland: don't require the surfaceless extensions
      wayland: check for API-specific surfaceless extension
      wayland: fix GLES context creation
      wayland: use EGL_NO_SURFACE
      wayland: update to new api
      wayland: fix connecting to default socket
      fix ClutterContainer docs

commit 7eb6dba7c29aaae2102e5b7e5a04f46abe5300b5
Merge: ef1b400 94bcb44
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Feb 11 15:03:22 2011 +0000

    Merge remote-tracking branch 'elliot/cookbook-animations-path'
    
    * elliot/cookbook-animations-path:
      docs: Add recipe for animating an actor on a curved path

commit ef1b4000424698faebc59172d3fd181584d2a366
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Feb 2 15:17:50 2011 +0000

    cogl-framebuffer: Fix flushing the framebuffer on push
    
    When pushing a framebuffer it would previously push
    COGL_INVALID_HANDLE to the top of the framebuffer stack so that when
    it later calls cogl_set_framebuffer it will recognise that the
    framebuffer is different and replace the top with the new
    pointer. This isn't ideal because it breaks the code to flush the
    journal because _cogl_framebuffer_flush_journal is called with the
    value of the old pointer which is NULL. That function was checking for
    a NULL pointer so it wouldn't actually flush. It also would mean that
    if you pushed the same framebuffer twice we would end up dirtying
    state unnecessarily. To fix this cogl_push_framebuffer now pushes a
    reference to the current framebuffer instead.

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

commit 4d2878d4b259ccbe3b5472d0bdbd8685ae7ec57d
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Feb 9 19:31:42 2011 +0000

    cogl-framebuffer: Remove all dependencies after a flush
    
    After a dependent framebuffer is added to a framebuffer it was never
    getting removed. Once the journal for a framebuffer is flushed we no
    longer depend on any framebuffers so the list should be cleared. This
    was causing leaks of offscreens and textures.

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

commit df07edf83e0072c05a50cc93ae99432163355cec
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Feb 1 13:24:13 2011 +0000

    docs: clarify cogl_vertex_buffer_adds docs
    
    This adds a clarification that cogl_vertex_buffer_add can also be
    used to replace a previously added attribute with the same name.

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

commit b351aa4af4fabea79518fdc28b7a38637126a8c2
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Feb 1 13:19:49 2011 +0000

    matrix: note that _matrix_multiply can multiply in-place
    
    This adds a note to clarify that cogl_matrix_multiply allows you to
    multiply the @a matrix in-place, so @a can equal @result but @b can't
    equal @result.

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

commit b3a0bdf7f676a776faa04715ecb92d96aa947f84
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Feb 9 15:24:43 2011 +0000

    cogl: Set the layer matrix on the right layer instead of a random one
    
    When uploading the layer matrix to GL it wasn't first calling
    glActiveTextureMatrix to set the right texture unit for the
    layer. This would end up setting the texture matrix on whatever layer
    happened to be previously active. This happened to work for
    test-cogl-multitexture presumably because it was coincidentally
    setting the layer matrix on the last used layer.

 cogl/cogl-pipeline-vertend-fixed.c |    2 ++
 cogl/cogl-pipeline-vertend-glsl.c  |    2 ++
 2 files changed, 4 insertions(+), 0 deletions(-)

commit 94bcb4429b645f18586fd86aeb80688385a24aef
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Feb 1 18:43:27 2011 +0000

    cogl-vertex-buffer: Use a ref count on the pipeline private data
    
    The pipeline private data is accessed both from the private data set
    on a CoglPipeline and the destroy notify function of a weak material
    that the vertex buffer creates when it needs to override the wrap
    mode. However when a CoglPipeline is destroyed, the CoglObject code
    first removes all of the private data set on the object and then the
    CoglPipeline code gets invoked to destroy all of the weak children. At
    this point the vertex buffer's weak override destroy notify function
    will get invoked and try to use the private data which has already
    been freed causing a crash.
    
    This patch instead adds a reference count to the pipeline private data
    stuct so that we can avoid freeing it until both the private data on
    the pipeline has been destroyed and all of the weak materials are
    destroyed.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2544

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

commit a866f2f4f46cdba425fd8ebee646a9fa3e20b15e
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Feb 1 17:38:58 2011 +0000

    cogl-pipeline: Fix comparing the color in set_layer_combine_constant
    
    In cogl_pipeline_set_layer_combine_constant it was comparing whether
    the new color is the same as the old color using a memcmp on the
    constant_color parameter. However the combine constant is stored in
    the layer data as an array of four floats but the passed in color is a
    CoglColor (which is currently an array of four guint8s). This was
    causing valgrind errors and presumably also the check for setting the
    same color twice would always fail.
    
    This patch makes it do the conversion to a float array upfront before
    the comparison.

 cogl/cogl-pipeline.c |   21 +++++++++++----------
 1 files changed, 11 insertions(+), 10 deletions(-)

commit fadd9358913083b290c458e99dcd41045241f394
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Jan 31 18:53:51 2011 +0000

    cogl-matrix: Get rid of the *_packed variants
    
    cogl_matrix_project_points and cogl_matrix_transform_points had an
    optimization for the common case where the stride parameters exactly
    match the size of the corresponding structures. The code for both when
    generated by gcc with -O2 on x86-64 use two registers to hold the
    addresses of the input and output arrays. In the strided version these
    pointers are incremented by adding the value of a register and in the
    packed version they are incremented by adding an immediate value. I
    think the difference in cost here would be negligible and it may even
    be faster to add a register.
    
    Also GCC appears to retain the loop counter in a register for the
    strided version but in the packed version it can optimize it out and
    directly use the input pointer as the counter. I think it would be
    possible to reorder the code a bit to explicitly use the input pointer
    as the counter if this were a problem.
    
    Getting rid of the packed versions tidies up the code a bit and it
    could potentially be faster if the code differences are small and we
    get to avoid an extra conditional in cogl_matrix_transform_points.

 cogl/cogl-matrix.c |  246 +++++++++++-----------------------------------------
 1 files changed, 50 insertions(+), 196 deletions(-)

commit edd7a71ecfe2404da881b4867f1b4c26829292cd
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Jan 31 13:58:12 2011 +0000

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

commit a9900d22e05eedfcaaa89ab7bb5bbe9a109a6265
Merge: d6a150b 34ce527
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Jan 21 20:22:32 2011 +0000

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

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

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

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

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

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

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

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

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

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

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

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

 cogl/Makefile.am                          |    6 +-
 cogl/cogl-attribute-private.h             |  103 +++
 cogl/cogl-attribute.c                     | 1272 +++++++++++++++++++++++++++++
 cogl/cogl-attribute.h                     |  182 ++++
 cogl/cogl-context.c                       |    2 +-
 cogl/cogl-index-array.c                   |    4 +-
 cogl/cogl-journal.c                       |  117 ++--
 cogl/cogl-path-private.h                  |    4 +-
 cogl/cogl-pipeline-progend-glsl-private.h |    2 +-
 cogl/cogl-primitive.c                     |  309 ++++----
 cogl/cogl-primitive.h                     |   26 +-
 cogl/cogl-primitives.c                    |   84 +-
 cogl/cogl-types.h                         |   22 +
 cogl/cogl-vertex-attribute-private.h      |  103 ---
 cogl/cogl-vertex-attribute.c              | 1272 -----------------------------
 cogl/cogl-vertex-attribute.h              |  205 -----
 cogl/cogl-vertex-buffer-private.h         |    4 +-
 cogl/cogl-vertex-buffer.c                 |   18 +-
 cogl/cogl-vertex-buffer.h                 |   22 -
 cogl/cogl.c                               |    4 +-
 cogl/cogl.h                               |    2 +-
 cogl/cogl2-path.c                         |   28 +-
 22 files changed, 1872 insertions(+), 1919 deletions(-)

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

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

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

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

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

 cogl/cogl-primitive.c        |   96 +++++++++++++++++++++---------------------
 cogl/cogl-primitive.h        |   80 +++++++++++++++++-----------------
 cogl/cogl-vertex-attribute.c |   20 ++++----
 3 files changed, 98 insertions(+), 98 deletions(-)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 cogl/cogl-framebuffer-private.h |    3 +++
 cogl/cogl-framebuffer.c         |    5 +++++
 cogl/cogl.c                     |   10 ++++++++++
 cogl/cogl.h                     |    3 +++
 4 files changed, 21 insertions(+), 0 deletions(-)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 cogl/cogl-util.c |   21 +++++++++++++++++++++
 cogl/cogl-util.h |    8 ++++++++
 2 files changed, 29 insertions(+), 0 deletions(-)

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

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

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

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

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

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

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

    docs: Fixes for the Cogl API reference

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    docs: Add 1.6 index to the API references

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

commit 83bfa4558403aa9486b476e22d8d22c537a4d30a
Merge: 87f979c d2326d4
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Dec 9 11:58:10 2010 +0000

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

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

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

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

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

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

 cogl/cogl-pipeline-arbfp.c |   34 +++++++++++++++++++++++++++++++++-
 1 files changed, 33 insertions(+), 1 deletions(-)

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

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

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

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

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

 cogl/cogl-pipeline-arbfp.c |  104 ++++++++++++++++++++++++++------------------
 1 files changed, 61 insertions(+), 43 deletions(-)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 cogl/Makefile.am                     |    1 +
 cogl/cogl-gtype-private.h            |   48 ++++++++++++++++++++++++++++++++++
 cogl/cogl-matrix.c                   |    7 +++++
 cogl/cogl-matrix.h                   |   16 +++++++++++
 cogl/cogl.h                          |    6 ++++
 doc/reference/cogl/cogl-docs.xml.in  |    1 +
 doc/reference/cogl/cogl-sections.txt |    6 ++++
 7 files changed, 85 insertions(+), 0 deletions(-)

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

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

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

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

    pipeline simple optimization for _needs_blending_enabled
    
    In _cogl_pipeline_needs_blending_enabled after first checking whether
    the property most recently changed requires blending we would then
    resort to checking all other properties too in case some other state
    also requires blending. We now avoid checking all other properties in
    the case that blending was previously disabled and checking the property
    recently changed doesn't require blending.
    
    Note: the plan is to improve this further by explicitly keeping track
    of the properties that currently cause blending to be enabled so that we
    never have to resort to checking all other properties we can constrain
    the checks to those masked properties.

 cogl/cogl-pipeline.c |   17 +++++++++++++----
 1 files changed, 13 insertions(+), 4 deletions(-)

commit 6b08583f2f08d4737d3a436f440cdf52c2d70108
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Dec 3 16:56:54 2010 +0000

    pipeline: inline _get_parent and _get_authority
    
    This moves _cogl_pipeline_get_parent and _cogl_pipeline_get_authority
    into cogl-pipeline-private.h so they can be inlined since they have been
    seen to get quite high in profiles. Given that they both contain such
    small amounts of code the function call overhead is significant.

 cogl/cogl-pipeline-private.h |   17 +++++++++++++++++
 cogl/cogl-pipeline.c         |   17 -----------------
 2 files changed, 17 insertions(+), 17 deletions(-)

commit e292d28c5657e300d4128f15968930832dfefa0a
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Nov 10 14:02:31 2010 +0000

    Add a COGL_DEBUG option to disable software clipping
    
    This adds a debug option called disable-software-clipping which causes
    the journal to always log the clip stack state rather than trying to
    manually clip rectangles.

 cogl/cogl-debug-options.h |    5 +++++
 cogl/cogl-debug.c         |    3 ++-
 cogl/cogl-debug.h         |    3 ++-
 cogl/cogl-journal.c       |   23 +++++++++++++----------
 4 files changed, 22 insertions(+), 12 deletions(-)

commit 1d88e6c8acdbbad6c9285ab92ea435eb7d3c0840
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Nov 9 19:18:37 2010 +0000

    cogl-journal: Attempt to clip manually to avoid breaking up batches
    
    Before flushing the journal there is now a separate iteration that
    will try to determine if the matrix of the clip stack and the matrix
    of the rectangle in each entry are on the same plane. If they are it
    can completely avoid the clip stack and instead manually modify the
    vertex and texture coordinates to implement the clip. The has the
    advantage that it won't break up batching if a single clipped
    rectangle is used in a scene.
    
    The software clip is only used if there is no user program and no
    texture matrices. There is a threshold to the size of the batch where
    it is assumed that it is worth the cost to break up a batch and
    program the GPU to do the clipping. Currently this is set to 8
    although this figure is plucked out of thin air.
    
    To check whether the two matrices are on the same plane it tries to
    determine if one of the matrices is just a simple translation of the
    other. In the process of this it also works out what the translation
    would be. These values can be used to translate the clip rectangle
    into the coordinate space of the rectangle to be logged. Then we can
    do the clip directly in the rectangle's coordinate space.

 cogl/cogl-context.c         |    3 +
 cogl/cogl-context.h         |    1 +
 cogl/cogl-journal-private.h |    2 +
 cogl/cogl-journal.c         |  363 ++++++++++++++++++++++++++++++++++++++++++-
 4 files changed, 363 insertions(+), 6 deletions(-)

commit 7294e5552c943fa9851af8fa41f6f3fa68029830
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Nov 9 19:09:25 2010 +0000

    cogl-clip-stack: Move the struct definitions to the header
    
    It will be useful to be able to directly examine the contents of the
    clip stack within the journal code.

 cogl/cogl-clip-stack.c |  112 -----------------------------------------------
 cogl/cogl-clip-stack.h |  114 ++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 114 insertions(+), 112 deletions(-)

commit 07e49d5257abd3ad58a238b02ade18b8ae0d5475
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Nov 9 12:01:04 2010 +0000

    cogl-clip-stack: Don't convert rect clips to window clips
    
    Previously in cogl-clip-state.c when it detected that the current
    modelview matrix is screen-aligned it would convert the clip entry to
    a window clip. Instead of doing this cogl-clip-stack.c now contains
    the detection and keeps the entry as a rectangle clip but marks that
    it is entirely described by its scissor rect. When flusing the clip
    stack it doesn't do anything extra for entries that have this mark
    (because the clip will already been setup by the scissor). This is
    needed so that we can still track the original rectangle coordinates
    and modelview matrix to help detect when it would be faster to modify
    the rectangle when adding it to the journal rather than having to
    break up the batch to set the clip state.

 cogl/cogl-clip-stack.c |  109 ++++++++++++++++++++++++++++++++++++-----------
 cogl/cogl-clip-state.c |   55 ------------------------
 2 files changed, 83 insertions(+), 81 deletions(-)

commit b14c2f799c880ab1012d72007e61074de5ee3e6c
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Nov 25 21:08:45 2010 +0000

    cogl-journal: Defer expanding the vertices until uploading
    
    When logging a quad we now only store the 2 vertices representing the
    top left and bottom right of the quad. The color is only stored once
    per entry. Once we come to upload the data we expand the 2 vertices
    into four and copy the color to each vertex. We do this by mapping the
    buffer and directly expanding into it. We have to copy the data before
    we can render it anyway so it doesn't make much sense to expand the
    vertices before uploading and this way should save some space in the
    size of the journal. It also makes it slightly easier if we later want
    to do pre-processing on the journal entries before uploading such as
    doing software clipping.
    
    The modelview matrix is now always copied to the journal entry whereas
    before it would only be copied if we aren't doing software
    transform. The journal entry struct always has the space for the
    modelview matrix so hopefully it's only a small cost to copy the
    matrix.
    
    The transform for the four entries is now done using
    cogl_matrix_transform_points which may be slightly faster than
    transforming them each individually with a call to
    cogl_matrix_transfom.

 cogl/cogl-context.h |    1 +
 cogl/cogl-journal.c |  273 ++++++++++++++++++++++++++++++++-------------------
 2 files changed, 173 insertions(+), 101 deletions(-)

commit f8449582c8dc974bd9adb33fd3dc00d2d1217c95
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Dec 2 21:08:30 2010 +0000

    Revert "cogl: Remove the generated array size for cogl_tex_coord_in"
    
    This reverts commit 4cfe90bde275dbb952645397aa2ba2d6f6e2f3ba.
    
    GLSL 1.00 on GLES doesn't support unsized arrays so the whole idea
    can't work.
    
    Conflicts:
    
    	clutter/cogl/cogl/cogl-pipeline-glsl.c

 cogl/cogl-context.c                 |    2 +-
 cogl/cogl-pipeline-arbfp.c          |    3 +-
 cogl/cogl-pipeline-fixed.c          |    3 +-
 cogl/cogl-pipeline-glsl.c           |   52 +++++++-
 cogl/cogl-pipeline-opengl-private.h |    3 +-
 cogl/cogl-pipeline-opengl.c         |    6 +-
 cogl/cogl-pipeline-private.h        |    3 +-
 cogl/cogl-shader-boilerplate.h      |    1 -
 cogl/cogl-shader-private.h          |    6 +
 cogl/cogl-shader.c                  |  229 ++++++++++++++++++++++++++---------
 cogl/cogl-vertex-attribute.c        |    4 +-
 cogl/cogl.c                         |    9 ++-
 cogl/cogl2-path.c                   |    4 +-
 13 files changed, 250 insertions(+), 75 deletions(-)

commit f54cc7abd43b8f6919daf36f096f4f89520a6046
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Dec 2 16:30:55 2010 +0000

    cogl-pipeline-glsl: Fix reusing shaders for shared ancestors
    
    The check for whether we can reuse a program we've already generated
    was only being done if the pipeline already had a
    glsl_program_state. When there is no glsl_program_state it then looks
    for the nearest ancestor it can share the program with. It then
    wasn't checking whether that ancestor already had a GL program so it
    would start generating the source again. It wouldn't however compile
    that source again because _cogl_pipeline_backend_glsl_end does check
    whether there is already a program. This patch moves the check until
    after it has found the glsl_program_state, whether or not it was found
    from an ancestor or as its own state.

 cogl/cogl-pipeline-glsl.c |   32 +++++++++++++++-----------------
 1 files changed, 15 insertions(+), 17 deletions(-)

commit 6607306a2de23245ed7d36cdefc2dfc7883e61f2
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Dec 2 12:27:29 2010 +0000

    cogl: Remove the generated array size for cogl_tex_coord_in
    
    Under GLES2 we were defining the cogl_tex_coord_in varying as an array
    with a size determined by the number of texture coordinate arrays
    enabled whenever the program is used. This meant that we may have to
    regenerate the shader with a different size if the shader is used with
    more texture coord arrays later. However in OpenGL the equivalent
    builtin varying gl_TexCoord is simply defined as:
    
    varying vec4 gl_TexCoord[]; /* <-- no size */
    
    GLSL is documented that if you declare an array with no size then you
    can only access it with a constant index and the size of the array
    will be determined by the highest index used. If you want to access it
    with a non-constant expression you need to redeclare the array
    yourself with a size.
    
    We can replicate the same behaviour in our Cogl shaders by instead
    declaring the cogl_tex_coord_in with no size. That way we don't have
    to pass around the number of tex coord attributes enabled when we
    flush a material. It also means that CoglShader can go back to
    directly uploading the source string to GL when cogl_shader_source is
    called so that we don't have to keep a copy of it around.
    
    If the user wants to access cogl_tex_coord_in with a non-constant
    index then they can simply redeclare the array themself. Hopefully
    developers will expect to have to do this if they are accustomed to
    the gl_TexCoord array.

 cogl/cogl-context.c                 |    2 +-
 cogl/cogl-pipeline-arbfp.c          |    3 +-
 cogl/cogl-pipeline-fixed.c          |    3 +-
 cogl/cogl-pipeline-glsl.c           |   46 +-------
 cogl/cogl-pipeline-opengl-private.h |    3 +-
 cogl/cogl-pipeline-opengl.c         |    6 +-
 cogl/cogl-pipeline-private.h        |    3 +-
 cogl/cogl-shader-boilerplate.h      |    1 +
 cogl/cogl-shader-private.h          |    6 -
 cogl/cogl-shader.c                  |  229 +++++++++--------------------------
 cogl/cogl-vertex-attribute.c        |    4 +-
 cogl/cogl.c                         |    9 +--
 cogl/cogl2-path.c                   |    4 +-
 13 files changed, 73 insertions(+), 246 deletions(-)

commit d2326d497ad24a5a75ad8ad350b82aa66f967bb7
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Dec 1 15:48:37 2010 +0000

    cogl-pipeline: Fix comparing layer states for finding codgen authority
    
    When compiling for GLES2, the codegen is affected by state other than
    the layers. That means when we find an authority for the codegen state
    we can't directly look at authority->n_layers to determine the number
    of layers because it isn't necessarily the layer state authority. This
    patch changes it to use cogl_pipeline_get_n_layers instead. Once we
    have two authorities that differ in codegen state we then compare all
    of the layers to decide if they would affect codegen. However it was
    ignoring the fact that the authorities might also differ by the other
    codegen state. This path also adds an extra check for whether
    _cogl_pipeline_compare_differences contains any codegen bits other
    than COGL_PIPELINE_STATE_LAYERS.

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

commit cf50b4f614f08a5d4afc4dd39295ffd7787a10d6
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Dec 1 14:39:28 2010 +0000

    cogl-pipeline: Fix the codgen authority for texture target changes
    
    When determining if a layer would require a different shader to be
    generated it needs to check a certain set of state changes and it
    needs to check whether the texture target is different. However it was
    checking whether texture texture was different only if the other state
    was also different which doesn't make any sense. It also only checked
    the texture difference if that was the only state change which meant
    that effectively the code was impossible to reach. Now it does the
    texture target check indepent of the other state changes.

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

commit c492db38e03e2b73d6a131b83d9b3f32e1ad7d47
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Nov 30 22:28:38 2010 +0000

    cogl-pipeline-fixed: Use the correct state flag for combine constant
    
    The fixed pipeline backend wasn't correctly flushing the combine
    constant because it was using the wrong flag to determine if the
    combine constant has changed since the last flushed material.

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

commit 7ea97b3eb7dedb5bf23525076a8b680881c2ecd9
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Nov 30 22:17:17 2010 +0000

    cogl-pipeline-opengl: Fix enabling previously disabled units
    
    When enabling a unit that was disabled from a previous flush pipeline
    it was forgetting to rebind the right texture unit so it wouldn't
    work. This was causing the redhand to disappear when using the fixed
    function backend in test-cogl-multitexture if anything else is added
    to the scene.

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

commit 7d840de18f6bc44287e93112870ed02b614f421b
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Nov 30 22:15:40 2010 +0000

    cogl-pipeline: Add more ignored state changes for program generation
    
    For shader generation backends we don't need to worry about changes to
    the texture object and changing the user matrix. The missing user
    matrix flag was causing test-cogl-multitexture to regenerate the
    shader every frame.

 cogl/cogl-pipeline-arbfp.c |    5 ++++-
 cogl/cogl-pipeline-glsl.c  |    5 ++++-
 2 files changed, 8 insertions(+), 2 deletions(-)

commit e905087e70db1470c6114334e93680a11f469ebe
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Tue Nov 30 16:36:56 2010 +0000

    cogl: Revert "build: Remove unused variable"
    
    Having ctx here produces a warning on GLES. However it's needed for Big
    GL as we have at the top of the file:
    
     #ifdef HAVE_COGL_GL
     #define glClientActiveTexture ctx->drv.pf_glClientActiveTexture
     #endif
    
    This reverts commit 27a3a2056a245aca64b8e3a7d82b7976c13e897a.

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

commit 8f6bf57dfbb5f35e1cd81d90bf45e6d93667bab4
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Tue Nov 30 16:03:26 2010 +0000

    cogl: Fix unused variable warning with GLES2
    
    This shader variable is only used with big GL.

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

commit 5eb800656d94327367191f15ccf9f39dde3da497
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Fri Nov 19 14:51:39 2010 -0500

    build: Remove unused variable
    
    and be 100% warning free again.

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

commit 3cad93b8a201695339bd412e2f73d3ef52c9a3b2
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Nov 29 10:55:49 2010 +0000

    cogl-shader.c: Don't add the common boilerplate twice
    
    In 6246c2bd6 I moved the code to add the boilerplate to a shader to a
    separate function and also made it so that the common boilerplate is
    added as a separate string to glShaderSource. However I didn't notice
    that the #define for the vertex and fragment shaders already includes
    the common part so it was being added twice. Mesa seems to accept this
    but it was causing problems on the IMG driver because COGL_VERSION was
    defined twice.

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

commit 84dc0ad2eb5a6c1efd02945f435b72f6bf00ed1d
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Nov 29 10:51:40 2010 +0000

    cogl-pipeline-glsl: Use char* instead of GLchar*
    
    It appears that some GLES2 headers don't define GLchar and it works
    just as well to use a regular char.

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

commit 44678af8abd7745d10ebbde327781e354717efda
Merge: 2f95704 38929d5
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Nov 29 11:56:36 2010 +0000

    Merge remote branch 'elliot/cookbook-animations-scaling'
    
    * elliot/cookbook-animations-scaling:
      cookbook: Add recipe for animated scaling of an actor
      cookbook: Add example of scaling a texture
      cookbook: Added "animated scaling" recipe skeleton
      cookbook: Added animated scaling example

commit 2f95704d0a0778ddb1c23cbb17d658335c0a35e1
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Nov 26 15:23:15 2010 +0000

    cogl_pipeline_equal: Fix the comparison for layer texture equality
    
    Before commit 49898d43 CoglPipeline would compare whether a pipeline
    layer's texture is equal by fetching the underlying GL handle. I
    changed that so that it would only compare the CoglHandles because
    that commit removes the GL handle texture overrides and sliced
    textures instead log the underlying primitive texture. However I
    forgot that the primitives don't always use
    _cogl_texture_foreach_sub_texture_in_region when the quad fits within
    the single texture so it won't use a texture override. This meant that
    atlas textures and sub textures get logged with the atlas handle so
    the comparison still needs to be done using the GL handles. It might
    be nice to add a CoglTexture virtual to get the underlying primitive
    texture instead to avoid having the pipeline poke around with GL
    handles.

 cogl/cogl-pipeline.c |    9 ++++++++-
 1 files changed, 8 insertions(+), 1 deletions(-)

commit a57e6e7214f217bc9368b702b1ee9610855d303d
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Nov 25 20:12:36 2010 +0000

    primitives: avoid leaking polygon override materials
    
    If we have to make override changes to the user's source material to
    handle cogl_polygon then we need to make sure we unref the override
    material at the end.

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

commit c64e0103afdf5d4f79137638657cfdacbddd34a8
Author: Alexandre Quessy <alexandre@quessy.net>
Date:   Thu Nov 25 13:13:51 2010 -0500

    Fixed "the the" repetitions in some doc strings
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2450

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

commit cf647e327f96fdc956143f51e50289001a5b043a
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Nov 25 13:19:59 2010 +0000

    pipeline: Simplify layer change notifications to backend
    
    Previously we used the layers->backend_priv[] members to determine when
    to notify backends about layer changes, but it entirely up to the
    backends if they want to associate private state with layers, even
    though they may still be interested in layer change notifications (they
    may associate layer related state with the owner pipeline).
    
    We now make the observation that in
    _cogl_pipeline_backend_layer_change_notify we should be able to assume
    there can only be one backend currently associated with the layer
    because we wouldn't allow changes to a layer with multiple dependants.
    This means we can determine the backend to notify by looking at the
    owner pipeline instead.

 cogl/cogl-pipeline.c |   22 ++++++++++------------
 1 files changed, 10 insertions(+), 12 deletions(-)

commit 7474d320f6e1ea9bcfbaebfc3ba23de767386c20
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Nov 24 18:37:47 2010 +0000

    cogl-context: Get rid of the features_cached member
    
    The features_cached member of CoglContext is intended to mark when
    we've calculated the features so that we know if they are ready in
    cogl_get_features. However we always intialize the features while
    creating the context so features_cached will never be FALSE so it's
    not useful. We also had the odd behaviour that the COGL_DEBUG feature
    overrides were only applied in the first call to
    cogl_get_features. However there are other functions that use the
    feature flags such as cogl_features_available that don't use this
    function so in some cases the feature flags will be interpreted before
    the overrides are applied. This patch makes it always initialize the
    features and apply the overrides immediately while creating the
    context. This fixes a problem with COGL_DEBUG=disable-arbfp where the
    first material flushed is done before any call to cogl_get_features so
    it may still use ARBfp.

 cogl/cogl-context.c          |   24 +++++++++++++++++++++++-
 cogl/cogl-context.h          |    1 -
 cogl/cogl.c                  |   24 ------------------------
 cogl/driver/gl/cogl-gl.c     |    1 -
 cogl/driver/gles/cogl-gles.c |    1 -
 5 files changed, 23 insertions(+), 28 deletions(-)

commit bbf912b61d298ca3b1a3aff399c79c9ad493cb6a
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Nov 24 17:42:34 2010 +0000

    Lower the priority of the GLSL pipeline backend
    
    Now that the GLSL backend can generate code it can effectively handle
    any pipeline unless there is an ARBfp program. However with current
    open source GL drivers the ARBfp compiler is more stable so it makes
    sense to prefer ARBfp when possible. The GLSL backend is also lower
    than the fixed function backend on the assumption that any driver that
    supports GLSL will also support ARBfp so it's quicker to try the fixed
    function backend next.

 cogl/cogl-pipeline-private.h |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)

commit 4d0b167be4cab8ff6a89c0a4a66d37cd3ebeecad
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Nov 24 17:29:00 2010 +0000

    Add a COGL_DEBUG option to disable the fixed function pipeline backend
    
    This adds COGL_DEBUG=disable-fixed to disable the fixed function
    pipeline backend. This is needed to test the GLSL shader generation
    because otherwise the fixed function backend would always override it.

 cogl/cogl-debug-options.h  |    5 +++++
 cogl/cogl-debug.c          |    1 +
 cogl/cogl-debug.h          |   15 ++++++++-------
 cogl/cogl-pipeline-fixed.c |    3 +++
 4 files changed, 17 insertions(+), 7 deletions(-)

commit 54ac6b16bf4f51c21201483dd59af76ff2f7c851
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Nov 24 17:33:07 2010 +0000

    Don't use the fixed function backend if there is a user program
    
    The fixed function pipeline backend can't handle a user program so it
    should bail out if one is given.

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

commit 8083167be98b92cc65a786b5b37e35c840bbbcf8
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Nov 24 17:37:55 2010 +0000

    Add a warning message when no usable Cogl pipeline backend is found
    
    If none of the pipeline backends can handle the state then it now
    displays a warning so the developer has a chance to work out what's
    going on.

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

commit cda5ea771bd2f85d7c171c2ad6484e43e35a8bb3
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Nov 24 15:30:56 2010 +0000

    cogl-pipeline-glsl: Don't use gl_PointCoord on OpenGL
    
    We don't want to use gl_PointCoord to implement point sprites on big
    GL because in that case we already use glTexEnv(GL_COORD_REPLACE) to
    replace the texture coords with the point sprite coords. Although GL
    also supports the gl_PointCoord variable, it requires GLSL 1.2 which
    would mean we would have to declare the GLSL version and check for
    it. We continue to use gl_PointCoord for GLES2 because it has no
    glTexEnv function.

 cogl/cogl-pipeline-glsl.c |    9 ++++++++-
 1 files changed, 8 insertions(+), 1 deletions(-)

commit c50cb72748f708b8e4cf80a38c833403ef07f981
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Nov 23 14:47:17 2010 +0000

    Remove the fragment shader generation from the GLES2 wrapper
    
    The GLES2 wrapper no longer needs to generate any fragment shader
    state because the GLSL pipeline backend will always give the wrapper a
    custom fragment shader. This simplifies a lot of the state comparison
    done by the wrapper. The fog generation is also removed even though
    it's actually part of the vertex shader because only the fixed
    function pipeline backend actually calls the fog functions so it would
    be disabled when using any of the other backends anyway. We can fix
    this when the two shader backends also start generating vertex
    shaders.

 cogl/Makefile.am                                 |    5 +-
 cogl/cogl-pipeline-opengl.c                      |    8 +
 cogl/driver/gles/cogl-fixed-fragment-shader.glsl |   64 --
 cogl/driver/gles/cogl-gles2-wrapper.c            |  737 +---------------------
 cogl/driver/gles/cogl-gles2-wrapper.h            |   69 +--
 5 files changed, 22 insertions(+), 861 deletions(-)

commit 9089d95b3fa78a712cc56fee76e37bfd9f16c04f
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Nov 23 14:51:49 2010 +0000

    Disable the fixed function backend for GLES2
    
    GLES2 doesn't really support fixed function so if we disable it we can
    remove the fixed function wrappers from the GLES2 Cogl backend.

 cogl/cogl-pipeline-fixed.c   |   11 -----------
 cogl/cogl-pipeline-private.h |    4 +---
 cogl/cogl-pipeline.c         |    2 ++
 3 files changed, 3 insertions(+), 14 deletions(-)

commit a86a1df3725522dfd5133181c7063f9712cbefbe
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Nov 22 18:33:49 2010 +0000

    cogl-pipeline-glsl: Generate the alpha test snippet under GLES2
    
    GLES2 has no glAlphaFunc function so we need to simulate the behaviour
    in the fragment shader. The alpha test function is simulated with an
    if-statement and a discard statement. The reference value is stored as
    a uniform.

 cogl/cogl-pipeline-glsl.c |  144 +++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 140 insertions(+), 4 deletions(-)

commit 0a314a752d640afeaa373cf19892a4eeae0c1d25
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Nov 22 18:32:43 2010 +0000

    cogl-pipeline: Add getters for the alpha test state
    
    This adds two public functions:
    
     cogl_pipeline_get_alpha_test_function
       and
     cogl_pipeline_get_alpha_test_reference.

 cogl/cogl-pipeline.c |   25 +++++++++++++++++++++++++
 cogl/cogl-pipeline.h |   22 ++++++++++++++++++++++
 2 files changed, 47 insertions(+), 0 deletions(-)

commit 60000690e1b24174d6ced3addce16d87be9bec40
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Nov 22 18:29:50 2010 +0000

    cogl: Separate out state flags for the alpha test func and ref
    
    Previously the flag to mark the differences for the alpha test
    function and reference value were conflated into one. However this is
    awkward when generating shader code to simulate the alpha testing for
    GLES 2 because in that case changing the function would need a
    different program but changing the reference value just requires
    updating a uniform. This patch makes the function and reference have
    their own state flags.

 cogl/cogl-pipeline-opengl.c  |    3 +-
 cogl/cogl-pipeline-private.h |   25 +++++----
 cogl/cogl-pipeline.c         |  110 ++++++++++++++++++++++++++++++++---------
 3 files changed, 102 insertions(+), 36 deletions(-)

commit 38ad560b19c67c05e9815d4662cc4bfe2a23ddbe
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Nov 22 16:44:11 2010 +0000

    Remove the disabling of layer constants for GLES2
    
    The GLSL shader generation supports layer combine constants so there's
    no need to disable it for GLES2. It looks like there was also code for
    it in the GLES2 wrapper so I'm not sure why it was disabled in the
    first place.

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

commit 7da3610e82bda0340b017551a1a8c54097a47186
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Nov 19 10:44:27 2010 +0000

    Generate GLSL in the CoglPipeline GLSL backend
    
    The GLSL pipeline backend can now generate code to represent the
    pipeline state in a similar way to the ARBfp backend. Most of the code
    for this is taken from the GLES 2 wrapper.

 cogl/cogl-context.c       |    1 +
 cogl/cogl-context.h       |    1 +
 cogl/cogl-pipeline-glsl.c |  772 ++++++++++++++++++++++++++++++++++++++++-----
 3 files changed, 702 insertions(+), 72 deletions(-)

commit 46e59dc50fdab6cc9d272e29ab28563fd7cfa1db
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Nov 22 12:15:35 2010 +0000

    Move the cogl shader boilerplate setting code to a separate function
    
    _cogl_shader_compile_real had some code to create a set of strings to
    combine the boilerplate code with a shader before calling
    glShaderSource. This has now been moved to its own internal function
    so that it could be used from the GLSL pipeline backend as well.

 cogl/cogl-shader-private.h |    8 ++++
 cogl/cogl-shader.c         |   96 ++++++++++++++++++++++++++++++++++----------
 2 files changed, 82 insertions(+), 22 deletions(-)

commit 0b280188735dfcc1360fe6f16e647fc641ccdcc4
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Nov 19 15:42:26 2010 +0000

    Move need_texture_combine_separate to cogl-pipeline
    
    need_texture_combine_separate is moved to cogl-pipeline.c and renamed
    to _cogl_pipeline_need_texture_combine_separate. The function is
    needed by both the ARBfp and GLSL codegen backends so it makes sense to
    share it.

 cogl/cogl-pipeline-arbfp.c   |   75 +-----------------------------------------
 cogl/cogl-pipeline-private.h |    4 ++
 cogl/cogl-pipeline.c         |   74 +++++++++++++++++++++++++++++++++++++++++
 3 files changed, 79 insertions(+), 74 deletions(-)

commit fac7338fdd2a9008f6f3fd1ab18273f95172b499
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Nov 19 10:43:52 2010 +0000

    Move find_arbfp_authority to cogl-pipeline.c
    
    The code for finding the arbfp authority for a pipeline should be the
    same as finding the GLSL authority. So that the code can be shared the
    function has been moved to cogl-pipeline.c and renamed to
    _cogl_pipeline_find_codegen_authority.

 cogl/cogl-pipeline-arbfp.c   |  145 +-----------------------------------------
 cogl/cogl-pipeline-private.h |    4 +
 cogl/cogl-pipeline.c         |  142 +++++++++++++++++++++++++++++++++++++++++
 3 files changed, 147 insertions(+), 144 deletions(-)

commit 7379a5fc04605661d895f2fac85cf7311b2bedbd
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Nov 1 17:25:26 2010 +0000

    cogl: Rename arbfp_source_buffer to fragment_source_buffer
    
    Only one of the material backends can be generating code at the same
    time so it seems to make sense to share the same source buffer between
    arbfp and glsl. The new name is fragment_source_buffer in case we
    later want to create a new buffer for the vertex shader. That probably
    couldn't share the same buffer because it will likely need to be
    generated at the same time.

 cogl/cogl-context.c        |    2 +-
 cogl/cogl-context.h        |    2 +-
 cogl/cogl-pipeline-arbfp.c |    6 +++---
 3 files changed, 5 insertions(+), 5 deletions(-)

commit 3be05abf6046c54b549bb4059ae0ea9d68fb2688
Author: Evan Nemerson <evan@coeus-group.com>
Date:   Fri Nov 19 23:27:46 2010 -0800

    cogl: Include exported pacakges information in GIR
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2438

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

commit cda29a80112bfc070df9916366cc9cd541db550c
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date:   Fri Nov 12 11:02:13 2010 -0500

    Use FBOs and use cogl_read_pixels() to efficiently read partial textures
    
    * cogl_texture_get_data() is converted to use
       _cogl_texture_foreach_sub_texture_in_region() to iterate
      through the underlying textures.
    
     * When we need to read only a portion of the underlying
       texture, we set up a FBO and use _cogl_read_pixels()
       to read the portion we need. This is enormously more
       efficient for reading a small portion of a large atlas
       texture.
    
     * The CoglAtlasTexture, CoglSubTexture, and CoglTexture2dSliced
       implementation of get_texture() are removed.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2414

 cogl/cogl-atlas-texture.c     |   17 +----
 cogl/cogl-sub-texture.c       |   70 +---------------
 cogl/cogl-texture-2d-sliced.c |  149 +-------------------------------
 cogl/cogl-texture.c           |  191 +++++++++++++++++++++++++++++++++++++++--
 4 files changed, 186 insertions(+), 241 deletions(-)

commit 47ccbf472e3e76946c4f7add9114d8a6141de54f
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Nov 17 17:57:17 2010 +0000

    cogl-framebuffer: Try to track format of the framebuffer
    
    Previously in cogl_read_pixels we assume the format of the framebuffer
    is always premultiplied because that is the most likely format with
    the default Cogl blend mode. However when the framebuffer is bound to
    a texture we should be able to make a better guess at the format
    because we know the texture keeps track of the premult status. This
    patch adds an internal format member to CoglFramebuffer. For onscreen
    framebuffers we still assume it is RGBA_8888_PRE but for offscreen to
    textures we copy the texture format. cogl_read_pixels uses this to
    determine whether the data returned by glReadPixels will be
    premultiplied.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2414

 cogl/cogl-framebuffer-private.h |    3 +++
 cogl/cogl-framebuffer.c         |   15 +++++++++++++++
 cogl/cogl.c                     |   22 ++++++++++------------
 3 files changed, 28 insertions(+), 12 deletions(-)

commit 8fd47276b7958f1f494e98da1dcce2b5802d1e05
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Nov 17 17:45:27 2010 +0000

    cogl_read_pixels: Fix the format used in GLES2
    
    When converting the data in cogl_read_pixels it was using bmp_format
    instead of the format passed in to the function. bmp_format is the
    same as the passed in format except that it always has the premult bit
    set. Therefore the conversion would not handle premultiply correctly.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2414

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

commit e41e5efac087baf14e2dcd500840ccb27a9a037f
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Nov 17 15:38:20 2010 +0000

    Add an internal _cogl_read_pixels_with_rowstride
    
    This is the same as _cogl_read_pixels except that it takes a rowstride
    parameter for the destination buffer. Under OpenGL setting the
    rowstride this will end up calling GL_ROW_LENGTH so that the buffer
    region can be directly written to. Under GLES GL_ROW_LENGTH is not
    supported so it will use an intermediate buffer as it does if the
    format is not GL_RGBA.
    
    cogl_read_pixels now just calls the full version of the function with
    the rowstride set to width*bpp.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2414

 cogl/cogl-private.h |   10 ++++++++++
 cogl/cogl.c         |   39 ++++++++++++++++++++++++++++-----------
 2 files changed, 38 insertions(+), 11 deletions(-)

commit 05d8cc1223cfaf3623a4ab34615881f1fbfbe254
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Nov 11 15:28:44 2010 +0000

    Add an internal _cogl_offscreen_new_to_texture_full function
    
    This function is the same as cogl_offscreen_new_to_texture but it
    takes a level parameter and a set of flags so that FBOs can be used to
    render to higher mipmap levels and to disable the depth and stencil
    buffers. cogl_offscreen_new_to_texture now just calls the new function
    with the level set to zero. This function could be useful in a few
    places in Cogl where we want to use FBOs as an implementation detail
    such as when copying between textures.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2414

 cogl/cogl-framebuffer-private.h |   24 +++++++++
 cogl/cogl-framebuffer.c         |  100 +++++++++++++++++++++++++++++---------
 2 files changed, 100 insertions(+), 24 deletions(-)

commit 38929d55c9558c0f2021347106add7c5c072e995
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Nov 23 14:07:16 2010 +0000

    cogl-texture-driver-gles: Fix image height for uploading 3D textures
    
    When uploading a 3D texture with an awkward rowstride, on GLES Cogl
    will copy the images to an intermediate buffer to pass to GL. However
    it was using the wrong height when copying the data so it would end up
    overflowing the buffer and crashing.

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

commit 8e8f5d5748c634a54d5410b4419f88c1abf20d64
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Nov 23 13:05:47 2010 +0000

    pipeline: Use WrapModeInternal in the Layer struct
    
    Since we're using CoglPipelineWrapModeInternal in the internal API
    anyway, and the compiler complains loudly when comparing two enumeration
    types without casting, the PipelineLayer struct should store the
    wrap modes using the internal enumeration.

 cogl/cogl-pipeline-private.h |   44 +++++++++++++++++++++---------------------
 1 files changed, 22 insertions(+), 22 deletions(-)

commit 0ec9e406ea5157d3ffbe7a7ae1ed228a351fda06
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Nov 22 15:51:15 2010 +0000

    clip-stack: combine modelview-projection in set_clip_planes
    
    When using clip planes and we we have to project some vertices into
    screen coordinates we used to transform those by the modelview and then
    the projection matrix separately. Now we combine the modelview and
    projection matrix and then use that to transform the vertices in one
    step instead.

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

commit 649aaffbe975f9404fa4627b75b034a2d713a988
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Nov 22 12:44:36 2010 +0000

    journal: remove possability of fallback layers
    
    When logging quads in the journal it used to be possible to specify a
    mask of fallback layers (layers where a default white texture should be
    used in-place of the corresponding texture in the current source
    pipeline). Since we now handle fallbacks for cogl_rectangle* primitives
    when validating the pipeline up-front before logging in the journal we
    no longer need the ability for the journal to apply fallbacks too.

 cogl/cogl-journal-private.h |    1 -
 cogl/cogl-journal.c         |    6 ------
 cogl/cogl-primitives.c      |    2 --
 3 files changed, 0 insertions(+), 9 deletions(-)

commit e9e824fd86961d94ecdf34a09cfbe74f3d1c5966
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Nov 12 13:35:24 2010 +0000

    matrix: Adds experimental cogl_matrix_{transform,project}_points
    
    This add two new function that allows us to transform or project an
    array of points instead of only transforming one point at a time. Recent
    benchmarking has shown cogl_matrix_transform_point to be a bottleneck
    sometimes, so this should allow us to reduce the overhead when
    transforming lots of vertices at the same time, and also reduce the cost
    of 3 component, non-projective transforms.
    
    For now they are marked as experimental (you have to define
    COGL_ENABLE_EXPERIMENTAL_API) because there is some concern that it
    introduces some inconsistent naming. cogl_matrix_transform_point would
    have to be renamed cogl_matrix_project_point to be consistent, but that
    would be an API break.

 cogl/cogl-matrix.c                   |  346 ++++++++++++++++++++++++++++++++++
 cogl/cogl-matrix.h                   |  123 ++++++++++++
 doc/reference/cogl/cogl-sections.txt |    2 +-
 3 files changed, 470 insertions(+), 1 deletions(-)

commit 56f36cf9c2cb06317462992229159b632e94b6d5
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Nov 11 16:28:45 2010 +0000

    primitives: validate with _cogl_pipeline_foreach_layer
    
    Switch _cogl_rectangles_with_multitexture_coords to using
    _cogl_pipeline_foreach_layer to iterate the layers of a pipeline when
    validating instead of iterating the pipelines internal list, which is
    risky since any modifications to pipelines (even to an override pipeline
    derived from the original), could potentially corrupt the list as it is
    being iterated.

 cogl/cogl-pipeline-private.h |    3 +-
 cogl/cogl-pipeline.c         |    6 +-
 cogl/cogl-primitives.c       |  324 ++++++++++++++++++++++-------------------
 3 files changed, 180 insertions(+), 153 deletions(-)

commit 1a3f946cc66b37f6043488a9b7b68df58b994d63
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Nov 11 15:08:38 2010 +0000

    cogl: remove WrapModeOverrides from FlushOptions
    
    This removes the possibility to specify wrap mode overrides within a
    CoglPipelineFlushOptions struct since the right way to handle these
    overrides is by copying the user's material and making the changes to
    that copy before flushing. All primitives code has already switched away
    from using these wrap mode overrides so this patch just removes unused
    code and types. It also remove the wrap_mode_overrides argument for
    _cogl_journal_log_quad.

 cogl/cogl-journal-private.h  |    2 -
 cogl/cogl-journal.c          |    7 -----
 cogl/cogl-pipeline-private.h |   32 +-----------------------
 cogl/cogl-pipeline.c         |   55 ------------------------------------------
 cogl/cogl-primitives.c       |    2 -
 5 files changed, 1 insertions(+), 97 deletions(-)

commit ebdf1127320ab11a0ac7c1e6f2236fb633b61112
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sat Nov 20 10:46:57 2010 +0000

    build: Add missing cogl-shader-boilerplate.h

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

commit 13561e2e2da4bf049963361cc457a11db5d95abf
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Nov 19 18:29:43 2010 +0000

    build: Add a missing file

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

commit 05f5ae1a9700edefe964095ce08ef9bcfbcb3865
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Nov 19 18:15:29 2010 +0000

    build: Don't reference non-existing files

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

commit 4e56eec36620907a8ccba7ae41965ccacd7252bb
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date:   Mon Nov 15 01:32:42 2010 -0500

    Free state at the end of a journal flush
    
    At the end of flushing the journal, we need to free the vertex
    attributes and vertex array.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2423

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

commit fae591b168b72b1a1f8ca9f0452bd0318ced36d5
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date:   Sun Nov 14 22:59:24 2010 -0500

    Actually free buffer objects
    
    With the refactoring to centralize code into CoglBuffer,
    _cogl_buffer_fini() was never actually implemented, so all GL
    vertex and index buffer objects were leaked.
    
    The duplicate call to glDeleteBuffers() in CoglPixelArray is
    removed (it wasn't paying attention to whether the buffer had been
    allocated as a PBO or not.)
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2423

 cogl/cogl-buffer.c      |    7 +++++++
 cogl/cogl-pixel-array.c |    2 --
 2 files changed, 7 insertions(+), 2 deletions(-)

commit 460e4b90d3ef10c04a32bdb1bd4556f9464d8d1e
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Nov 16 13:06:08 2010 +0000

    debug: Adds a COGL_DEBUG=wireframe option
    
    This adds a COGL_DEBUG=wireframe option to visualize the underlying
    geometry of the primitives being drawn via Cogl. This works for triangle
    list, triangle fan, triangle strip and quad (internal only) primitives.
    It also works for indexed vertex arrays.

 cogl/cogl-debug-options.h    |    5 +
 cogl/cogl-debug.c            |    3 +-
 cogl/cogl-debug.h            |    3 +-
 cogl/cogl-vertex-attribute.c |  243 ++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 252 insertions(+), 2 deletions(-)

commit 20a1f876286e3f5cff7bae7dabd9c37629d61336
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Nov 16 08:52:49 2010 +0000

    vertex-buffer: don't unref NULL object
    
    In cogl_vertex_buffer_indices_get_for_quads() we sometimes have to
    extend the length of an existing array, but when we came to unref the
    previous array we didn't first check that it wasn't simply NULL.

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

commit 982f1b4bd064dea10ed510d4d09ee17fd2800b9d
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Nov 16 08:49:55 2010 +0000

    vertex-array: Adds data arg for _vertex_array_new()
    
    This adds an optional data argument for cogl_vertex_array_new() since it
    seems that mostly every case where we use this API we follow up with a
    cogl_buffer_set_data() matching the size of the new array. This
    simplifies all those cases and whenever we want to delay uploading of
    data then NULL can simply be passed.

 cogl/cogl-journal.c       |    2 +-
 cogl/cogl-primitive.c     |   40 ++++++++--------------------------------
 cogl/cogl-primitives.c    |    6 ++----
 cogl/cogl-vertex-array.c  |   11 +++++++++--
 cogl/cogl-vertex-array.h  |    9 +++++++--
 cogl/cogl-vertex-buffer.c |    3 ++-
 cogl/cogl2-path.c         |   12 ++++--------
 7 files changed, 33 insertions(+), 50 deletions(-)

commit 60daaff724a99b3e6686ef43fba54ecd429e8f31
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Nov 16 08:41:29 2010 +0000

    indices: Makes cogl_indices_get_array public
    
    This makes the previously internal only _cogl_indices_get_array API
    public as cogl_indices_get_array (Though marked as experimental)

 cogl/cogl-indices-private.h  |    3 ---
 cogl/cogl-indices.c          |    2 +-
 cogl/cogl-indices.h          |    3 +++
 cogl/cogl-vertex-attribute.c |    2 +-
 4 files changed, 5 insertions(+), 5 deletions(-)

commit fbc01d659c81c86bb13e376ed0749d61a4418c21
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Nov 16 08:38:59 2010 +0000

    build: cogl-clip-state.h depends on cogl-clip-stack.h
    
    This adds a #include "cogl-clip-stack.h" to cogl-clip-state.h which
    depends on the CoglClipStack typedef.

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

commit 26f68b6f0eb0def3ccee999a64b77471a5d2a5a0
Merge: dedceb2 8c3bfaf
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Nov 15 15:41:46 2010 +0000

    Merge remote branch 'elliot/cookbook-opacity-values-fix'
    
    * elliot/cookbook-opacity-values-fix:
      cookbook: Fix opacity examples in recipe
      cookbook: Fix incorrect value for opacity

commit dedceb2647a2156cf079eb202d99d7eb55b4c2bc
Merge: 7e9a209 8c3bfaf
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Nov 15 15:37:42 2010 +0000

    Merge remote branch 'elliot/cookbook-animations-looping'
    
    * elliot/cookbook-animations-looping:
      cookbook: Recipe for "looping animations"
      cookbook: Clarify how signals are emitted during looped animation
      cookbook: First draft for looping animations recipe
      cookbook: Recipe skeleton for "looping animations"
      cookbook: Looping animation examples

commit 7e9a20960cf52b8e6d5f9c08f432d8cc11e435fc
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Nov 15 15:26:07 2010 +0000

    Merge remote branch 'elliot/c90-fix'

commit 8c3bfaf8d9447f077c82884fe142ff3c4fc7346b
Merge: 081eb2d 353ea52
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Nov 11 17:53:42 2010 +0000

    Merge branch 'wip/static-colors'
    
    * wip/static-colors:
      Move tests to static colors where possible
      color: Add named, global colors

commit 081eb2d75d83322f89ccf32049dffdeb4ce2abb1
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Nov 11 16:24:54 2010 +0000

    cogl-texture: Remove the gl_handle from CoglTextureSliceCallback
    
    There's no longer any need to use the GL handle in the callback for
    _cogl_texture_foreach_sub_texture_in_region because it can now work in
    terms of primitive cogl textures so it has now been removed. This
    would be helpful if we ever want to make the foreach function public
    so that apps could implement their own primitives using sliced
    textures.

 cogl/cogl-primitives.c        |    2 --
 cogl/cogl-sub-texture.c       |    4 +---
 cogl/cogl-texture-2d-sliced.c |    4 ----
 cogl/cogl-texture-2d.c        |    2 --
 cogl/cogl-texture-3d.c        |    2 --
 cogl/cogl-texture-private.h   |    2 --
 cogl/cogl-texture-rectangle.c |    2 --
 7 files changed, 1 insertions(+), 17 deletions(-)

commit 22c61c53157840011936b1f5cee3756b19504f45
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Nov 11 16:18:25 2010 +0000

    cogl-pipeline: Use layer overrides as CoglHandles instead of GLuint
    
    Since d5634e37 the sliced texture backend now works in terms of
    CoglTexture2Ds so there's no need to have special casing for
    overriding the texture of a pipeline layer with a GL handle. Instead
    we can just use cogl_pipeline_set_layer_texture with the
    CoglHandle. The special _cogl_pipeline_set_layer_gl_texture_slice
    function has now been removed and parts of the code for comparing
    materials have been simplified.

 cogl/cogl-journal-private.h  |    2 +-
 cogl/cogl-journal.c          |    2 +-
 cogl/cogl-pipeline-opengl.c  |   35 ++++----------
 cogl/cogl-pipeline-private.h |    7 +--
 cogl/cogl-pipeline.c         |  105 +++++-------------------------------------
 cogl/cogl-primitives.c       |   15 +++++-
 6 files changed, 38 insertions(+), 128 deletions(-)

commit 9302d146d16c843603fe06cac142f21f7569893b
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Nov 11 15:42:12 2010 +0000

    CoglTexture2DSliced: Pass slice tex to callback in foreach_sub_texture
    
    The cogl_texture_foreach_sub_texture_in_region virtual for the sliced
    texture backend was previously passing the CoglHandle of the sliced
    texture to the callback. Since d5634e37 the slice texture backend now
    works in terms of 2D textures so it's possible to pass the underlying
    slice texture as a handle too. This makes all of the foreach callbacks
    consistent in that they pass a CoglHandle of the primitive texture
    type that matches the GL handle.

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

commit cce8645aba8d076e250e4efe93e8689585aa12f5
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Nov 4 00:27:47 2010 +0000

    path 2.0: update path API for experimental 2.0 API
    
    When COGL_ENABLE_EXPERIMENTAL_2_0_API is defined cogl.h will now include
    cogl2-path.h which changes cogl_path_new() so it can directly return a
    CoglPath pointer; it no longer exposes a prototype for
    cogl_{get,set}_path and all the remaining cogl_path_ functions now take
    an explicit path as their first argument.
    
    The idea is that we want to encourage developers to retain path objects
    for as long as possible so they can take advantage of us uploading the
    path geometry to the GPU. Currently although it is possible to start a
    new path and query the current path, it is not convenient.
    
    The other thing is that we want to get Cogl to the point where nothing
    depends on a global, current context variable. This will allow us to one
    day define a sensible threading model if/when that is ever desired.

 cogl/Makefile.am                |   15 +-
 cogl/cogl-clip-state.c          |    8 +-
 cogl/cogl-context.c             |    4 +-
 cogl/cogl-context.h             |    2 +-
 cogl/cogl-path-private.h        |   14 +-
 cogl/cogl-path.c                | 1363 ++----------------------------------
 cogl/cogl-path.h                |    2 +
 cogl/cogl.h                     |    6 +
 cogl/cogl2-path.c               | 1466 +++++++++++++++++++++++++++++++++++++++
 cogl/cogl2-path.h               |  506 ++++++++++++++
 pango/cogl-pango-display-list.c |    7 +-
 11 files changed, 2085 insertions(+), 1308 deletions(-)

commit 1b75ad9c80e250a56e3c049bfd3bd166641a5cbb
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Nov 3 20:26:20 2010 +0000

    cogl: Adds COGL_ENABLE_EXPERIMENTAL_2_0_API define
    
    For now this new define is simply an alias for
    COGL_ENABLE_EXPERIMENTAL_API but the intention is that we will also use
    it to start experimenting with changes that need to break the existing
    Cogl API in incompatible ways.

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

commit 353ea5299b40df57e1b20dccba68a065fa1a47d3
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Jul 23 17:46:41 2010 +0100

    cogl-shader: Prepend boilerplate for portable shaders
    
    We now prepend a set of defines to any given GLSL shader so that we can
    define builtin uniforms/attributes within the "cogl" namespace that we
    can use to provide compatibility across a range of the earlier versions
    of GLSL.
    
    This updates test-cogl-shader-glsl.c and test-shader.c so they no longer
    needs to special case GLES vs GL when splicing together its shaders as
    well as the blur, colorize and desaturate effects.
    
    To get a feel for the new, portable uniform/attribute names here are the
    defines for OpenGL vertex shaders:
    
     #define cogl_position_in gl_Vertex
     #define cogl_color_in gl_Color
     #define cogl_tex_coord_in  gl_MultiTexCoord0
     #define cogl_tex_coord0_in gl_MultiTexCoord0
     #define cogl_tex_coord1_in gl_MultiTexCoord1
     #define cogl_tex_coord2_in gl_MultiTexCoord2
     #define cogl_tex_coord3_in gl_MultiTexCoord3
     #define cogl_tex_coord4_in gl_MultiTexCoord4
     #define cogl_tex_coord5_in gl_MultiTexCoord5
     #define cogl_tex_coord6_in gl_MultiTexCoord6
     #define cogl_tex_coord7_in gl_MultiTexCoord7
     #define cogl_normal_in gl_Normal
    
     #define cogl_position_out gl_Position
     #define cogl_point_size_out gl_PointSize
     #define cogl_color_out gl_FrontColor
     #define cogl_tex_coord_out gl_TexCoord
    
     #define cogl_modelview_matrix gl_ModelViewMatrix
     #define cogl_modelview_projection_matrix gl_ModelViewProjectionMatrix
     #define cogl_projection_matrix gl_ProjectionMatrix
     #define cogl_texture_matrix gl_TextureMatrix
    
    And for fragment shaders we have:
    
     #define cogl_color_in gl_Color
     #define cogl_tex_coord_in gl_TexCoord
    
     #define cogl_color_out gl_FragColor
     #define cogl_depth_out gl_FragDepth
    
     #define cogl_front_facing gl_FrontFacing

 cogl/cogl-context.c                              |    2 +-
 cogl/cogl-path.c                                 |    4 +-
 cogl/cogl-pipeline-arbfp.c                       |    3 +-
 cogl/cogl-pipeline-fixed.c                       |    3 +-
 cogl/cogl-pipeline-glsl.c                        |   44 +++++-
 cogl/cogl-pipeline-opengl-private.h              |    3 +-
 cogl/cogl-pipeline-opengl.c                      |    6 +-
 cogl/cogl-pipeline-private.h                     |    3 +-
 cogl/cogl-shader-boilerplate.h                   |  107 +++++++++++
 cogl/cogl-shader-private.h                       |    5 +
 cogl/cogl-shader.c                               |  206 +++++++++++++++++-----
 cogl/cogl-vertex-attribute.c                     |    4 +-
 cogl/cogl-vertex-buffer.c                        |   86 +++++++++-
 cogl/cogl.c                                      |   16 ++-
 cogl/driver/gles/cogl-fixed-fragment-shader.glsl |   24 ++--
 cogl/driver/gles/cogl-fixed-vertex-shader.glsl   |   40 +++--
 cogl/driver/gles/cogl-gles2-wrapper.c            |   62 ++++---
 17 files changed, 494 insertions(+), 124 deletions(-)

commit 7a4c7b41c213de3eca8895084d59a16b567722c9
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Nov 8 16:01:19 2010 +0000

    gtk-doc: Fixes for the API references

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

commit d2ddd9c945a9c6456c4fe2704c8fee7b08a32185
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sat Nov 6 18:12:41 2010 +0000

    Remove a compiler warning

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

commit ff8130101aa4696b9c0403bc5067b6ef48de4cc8
Author: Maxim Ermilov <zaspire@rambler.ru>
Date:   Fri Nov 5 20:20:14 2010 +0300

    CoglContext: correct initialization order
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2401

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

commit 3bd20acfb4209f595f847394bd48365aec6d9b5e
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Nov 5 14:38:19 2010 +0000

    cogl-texture-2d-sliced: Fix the foreach callback for waste textures
    
    When converting the virtual coordinates of the underlying texture for
    a slice to virtual coordinates for the whole texture it was using the
    size and offset of the intersection as the size of the child
    texture. This would be incorrect if the texture contains waste or the
    texture coordinates are not the default. Instead the sliced foreach
    function now passes the CoglSpan to the callback instead of the
    intersection.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2398

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

commit 3203c2382f53275314f9f706f652817cc515c25d
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Nov 5 14:55:46 2010 +0000

    Replace the disable-npots tool with a COGL_DEBUG option
    
    Previously in the tests/tools directory we build a disable-npots
    library which was used as an LD_PRELOAD to trick Cogl in to thinking
    there is no NPOT texture extension. This is a little awkward to use so
    it seems much simpler to just define a COGL_DEBUG option to disable
    npot textures.

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

commit 117ef6baff7c644534d2c1ab81ef77b937ab4ec7
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Nov 1 22:07:11 2010 +0000

    matrix-stack: use GArray instead of GSList for stack
    
    In some micro-benchmarks testing journal throughput the list
    manipulation jumps pretty high in the profile. This replaces the GSList
    usage with a GArray instead which is effectively a grow only allocation
    that means we avoid ongoing allocations while manipulating the stack
    mid-scene.

 cogl/cogl-matrix-stack.c |   55 ++++++++++++++-------------------------------
 1 files changed, 17 insertions(+), 38 deletions(-)

commit b41bf9e67fd09a71600f333947c4b50ae6eeed1e
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Nov 1 20:33:20 2010 +0000

    pipeline: Avoid costly checking of lighting properties
    
    During _cogl_pipeline_needs_blending_enabled we were always checking the
    current lighting properties (ambient,diffuse,specular,emission) which
    had a notable impact during micro-benchmarks that exercise journal
    throughput of simple colored rectangles. This #if 0's the offending code
    considering that Cogl doesn't actually support lighting currently and
    when it actually does then we will be able to optimize this by avoiding
    the checks when lighting is disabled.

 cogl/cogl-pipeline.c |   42 ++++++++++++++++++++++++------------------
 1 files changed, 24 insertions(+), 18 deletions(-)

commit e5eff5fc89fb0a789b1130135d3c699b4c78c370
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Nov 1 20:27:32 2010 +0000

    cogl: add separate material for blended source_colors
    
    When using cogl_set_source_color4ub there is a notable difference
    between colors that require blending and those that dont. When trying to
    modify the color of pipeline referenced by the journal we don't force a
    flush of the journal unless the color change will also change the
    blending state. By using two separate pipeline objects for handing
    opaque or transparent colors we can avoid ever flushing the journal when
    repeatedly using cogl_set_source_color and jumping between opaque and
    transparent colors.

 cogl/cogl-context.c |   13 ++++++++-----
 cogl/cogl-context.h |    5 +++--
 cogl/cogl.c         |   19 ++++++++++++++-----
 3 files changed, 25 insertions(+), 12 deletions(-)

commit 4bd64b6ba69ed71ef0855cffe09ae1922708e5c1
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Nov 1 18:55:48 2010 +0000

    texture_quad_multiple_primitives: rework wrap mode overrides
    
    This reworks _cogl_texture_quad_multiple_primitives so instead of using
    the CoglPipelineWrapModeOverrides mechanism to force the clamp to edge
    repeat mode we now derive an override pipeline using cogl_pipeline_copy
    instead. This avoids a relatively large, unconditional, memset.

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

commit 636310a81ebb29be934ceea3933ebae1c6a7c52d
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Nov 1 18:33:17 2010 +0000

    _multitexture_quad_single_primitive: avoid wrap overrides
    
    This avoids using the wrap mode overrides mechanism to implement
    _cogl_multitexture_quad_single_primitive which requires memsetting a
    fairly large array. This updates it to use cogl_pipeline_foreach_layer()
    and we now derive an override_material to handle changes to the wrap
    modes instead of using the CoglPipelineWrapModeOverrides.

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

commit a25aad954e4a7bef577fea0cd9b88439b536f096
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Nov 3 16:02:27 2010 +0000

    cogl-path: Don't bother filling the path if less than 3 nodes
    
    Previously there was a check to avoid filling the path if there are
    zero nodes. However the tesselator also won't generate any triangles
    if there are less than 3 nodes so we might as well bail out in that
    case too. If we don't emit any triangles then we would end up trying
    to create an empty VBO. Although I don't think this should necessarily
    be a problem, this seems to cause Mesa to segfault in version 7.8.1
    when calling glBufferSubData (although not in
    master). test-cogl-primitives tries to fill a path with only two
    points so it's convenient to be able to avoid the crash in this case.

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

commit 3c8c1951151f16bedc7e298e2f0a8af536643617
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Nov 2 17:35:17 2010 +0000

    cogl-journal: Log the clip state in the journal
    
    When adding a new entry to the journal a reference is now taken on the
    current clip stack. Modifying the current clip state no longer causes
    a journal flush. The journal flushing code now has an extra stage to
    compare the clip state of each entry. The comparison can simply be
    done by comparing the pointers. Although different clip states will
    still end up with multiple draw calls this at leasts allows a scene
    comprising of multiple different clips to be upload with one vbo. It
    also lays the groundwork to do certain tricks when drawing clipped
    rectangles such as modifying the geometry instead of setting a clip
    state.

 cogl/cogl-clip-state.c      |   24 ----------
 cogl/cogl-journal-private.h |    2 +
 cogl/cogl-journal.c         |  106 +++++++++++++++++++++++++++++++++----------
 3 files changed, 83 insertions(+), 49 deletions(-)

commit 6cf01ff0f49f085e7fc90e0263246ec070bb0e0c
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Nov 2 17:34:51 2010 +0000

    cogl-framebuffer: Add a flag to skip flushing the clip state
    
    This adds a flag to avoid flushing the clip state when flushing the
    framebuffer state. This will be used by the journal to manage its own
    clip state flushing.

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

commit caa991d7a1b9b3ee34a04b54db6adcf99ed0d72d
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Nov 2 17:15:06 2010 +0000

    cogl: Don't flush the journal when flushing clip state
    
    Flushing the clip state no longer does anything that would cause the
    journal to flush. The clip state is only flushed when flushing the
    framebuffer state and in all cases this ends up flushing the journal
    in one way or another anyway. Avoiding flushing the journal will make
    it easier to log the clip state in the journal.
    
    Previously when trying to set up a rectangle clip that can't be
    scissored or when using a path clip the code would use cogl_rectangle
    as part of the process to fill the stencil buffer. This is now changed
    to use a new internal _cogl_rectangle_immediate function which
    directly uses the vertex array API to draw a triangle strip without
    affecting the journal. This should be just as efficient as the
    previous journalled code because these places would end up flushing
    the journal immediately before and after submitting the single
    rectangle anyway and flushing the journal always creates a new vbo so
    it would effectively do the same thing.
    
    Similarly there is also a new internal _cogl_clear function that does
    not flush the journal.

 cogl/Makefile.am               |    2 +
 cogl/cogl-clip-stack.c         |   47 +++++++++++--------------
 cogl/cogl-clip-state.c         |    5 +++
 cogl/cogl-path.c               |   76 ++++++++++++++++++++--------------------
 cogl/cogl-primitives-private.h |   43 ++++++++++++++++++++++
 cogl/cogl-primitives.c         |   40 +++++++++++++++++++++
 cogl/cogl-private.h            |   34 ++++++++++++++++++
 cogl/cogl.c                    |   30 ++++++++++-----
 8 files changed, 203 insertions(+), 74 deletions(-)

commit db86a5a4867b4a31a9f18a3486cdbd3ff1758502
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Nov 3 15:48:56 2010 +0000

    cogl-path: Use the vertex array API instead of CoglVertexBuffer
    
    The new vertex array is now implemented in terms of the
    CoglVertexBuffer anyway so it should be slightly faster to use a
    vertex array directly.

 cogl/cogl-path-private.h |   26 ++++++++-------
 cogl/cogl-path.c         |   81 ++++++++++++++++++++++++++--------------------
 2 files changed, 60 insertions(+), 47 deletions(-)

commit 0c8eb904c0657ee730c9569afad7467736d68dcc
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Nov 2 14:28:12 2010 +0000

    cogl: Move the clip stack dirtiness to the context rather than the FB
    
    Previously we tracked whether the clip stack needs flushing as part of
    the CoglClipState which is part of the CoglFramebuffer state. This is
    a bit odd because most of the clipping state (such as the clip planes
    and the scissor) are part of the GL context's state rather than the
    framebuffer. We were marking the clip state on the framebuffer dirty
    every time we change the framebuffer anyway so it seems to make more
    sense to have the dirtiness be part of the global context.
    
    Instead of a just a single boolean to record whether the state needs
    flushing, the CoglContext now holds a reference to the clip stack that
    was flushed. That way we can flush arbitrary stack states and if it
    happens to be the same as the state already flushed then Cogl will do
    nothing. This will be useful if we log the clip stack in the journal
    because then we will need to flush unrelated clip stack states for
    each batch.

 cogl/cogl-clip-stack.c  |   44 ++++++++++++++++++++++++++++++++++++++------
 cogl/cogl-clip-stack.h  |    6 ++++--
 cogl/cogl-clip-state.c  |   40 +++-------------------------------------
 cogl/cogl-clip-state.h  |    6 ------
 cogl/cogl-context.c     |    5 +++++
 cogl/cogl-context.h     |   22 ++++++++++++++++++++++
 cogl/cogl-framebuffer.c |    2 +-
 cogl/cogl-path.c        |   10 +++-------
 8 files changed, 76 insertions(+), 59 deletions(-)

commit f15b47cc03b2f8f2388b785706d61e2f2c05707a
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Nov 1 19:52:45 2010 +0000

    cogl-clip-stack: Don't allocate a separate struct for CoglClipStack
    
    Instead of having a separate CoglHandle for CoglClipStack the code is
    now expected to directly hold a pointer to the top entry on the
    stack. The empty stack is then the NULL pointer. This saves an
    allocation when we want to copy the stack because we can just take a
    reference on a stack entry. The idea is that this will make it
    possible to store the clip stack in the journal without any extra
    allocations.
    
    The _cogl_get_clip_stack and set functions now take a CoglClipStack
    pointer instead of a handle so it would no longer make sense to make
    them public. However I think the only reason we would have wanted that
    in the first place would be to save the clip state between switching
    FBOs and that is no longer necessary.

 cogl/cogl-clip-stack.c |  193 ++++++++++++++++++-----------------------------
 cogl/cogl-clip-stack.h |   38 ++++------
 cogl/cogl-clip-state.c |   55 +++++---------
 cogl/cogl-clip-state.h |   20 ++---
 4 files changed, 116 insertions(+), 190 deletions(-)

commit af5ddb0b132c4088285f6ebbcb3e9b17cca0d6b7
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Nov 3 13:34:21 2010 +0000

    cogl: Don't flush the framebuffer state for the internal draw
    
    CoglVertexAttribute has an internal draw function that is used by the
    CoglJournal to avoid the call to cogl_journal_flush which would
    otherwise end up recursively flushing the journal forever. The
    enable_gl_state function called by this was previously also calling
    _cogl_flush_framebuffer_state. However the journal code tries to
    handle this function specially by calling it with a flag to disable
    flushing the modelview matrix. This is useful because the journal
    handles flushing the modelview itself. Without this patch the journal
    state ends up getting flushed twice. This isn't a particularly big
    problem currently because the matrix stack has caching to recognise
    when it would push the same state twice and bails out. However if we
    later want to use the framebuffer flush flags to override a particular
    state of the framebuffer (such as the clip state) then we need to make
    sure the flush isn't called twice.

 cogl/cogl-vertex-attribute.c |   29 +++++++++++++++++++----------
 1 files changed, 19 insertions(+), 10 deletions(-)

commit 6027aa04a4bd1943ffd98db1f258e948198a0926
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Nov 4 16:01:23 2010 +0000

    cogl-buffer: Use void* instead of guint8* for map and set_data
    
    Unless the CoglBuffer is being used for texture data then it's
    relatively unlikely that the data will contain an array of bytes. For
    example if it's used as a vertex array then it's more likely to be
    floats or some vertex struct. In that case it's much more convenient
    if set_data and map use void* pointers so that we can avoid a cast.

 cogl/cogl-buffer-private.h |    8 ++++----
 cogl/cogl-buffer.c         |   12 ++++++------
 cogl/cogl-buffer.h         |    4 ++--
 cogl/cogl-journal.c        |    2 +-
 cogl/cogl-primitive.c      |   16 ++++++++--------
 cogl/cogl-primitives.c     |    2 +-
 6 files changed, 22 insertions(+), 22 deletions(-)

commit 2155bd754653c1ccfad8b411f96c31b507f03deb
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Nov 4 17:21:56 2010 +0000

    cogl-primitive: Fix the texture attribute offsets
    
    The offsets for the texture coordinate attributes in the convenience
    constructors were all wrong.

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

commit 7aa39f18a4e0fa7f089498676578fc2e90c137dc
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Nov 4 16:54:20 2010 +0000

    cogl-primitive: Fix a typo in new_with_attributes_array
    
    A typo in the g_return_val_if_fail was causing it to segfault.

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

commit ec080f2db09dca52cdac7a2a915f59c18ba47605
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Nov 4 16:42:11 2010 +0000

    cogl-primitive: Add the missing cogl_primitive_new_p2 function
    
    There was a struct defined for CoglP2Vertex but there was no
    constructor function to use it.

 cogl/cogl-primitive.c |   27 +++++++++++++++++++++++++++
 cogl/cogl-primitive.h |   44 ++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 71 insertions(+), 0 deletions(-)

commit 5dc1b2fb8fe79c67fda72951ccce8f42a9e707fb
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Nov 4 16:13:01 2010 +0000

    cogl-primitive: Fix the ref-counting for the convenience constuctors
    
    The convenience constructors for the builtin vertex structs were
    creating the primitive and then immediately destroying it and
    returning the pointer. I think the intention was to unref the
    attributes instead. This adds an internal wrapper around the
    new_with_attributes_array constructor which unrefs the attributes
    instead of the primitive. The convenience constructors now use that.

 cogl/cogl-primitive.c |   89 ++++++++++++++++++++++++++++++-------------------
 1 files changed, 55 insertions(+), 34 deletions(-)

commit 18e302c5cd40e1fff9a742495b7e3ed135e80c38
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu Nov 4 13:23:23 2010 +0000

    primitive: fix prototypes and start adding docs
    
    This fixes the prototypes for the cogl_primitive_new_xyz functions and
    also adds documentation with examples for each one.

 cogl/cogl-primitive.h |  329 +++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 307 insertions(+), 22 deletions(-)

commit 2a7e7fb6d38a7679a19dcc44004e78898aa9cc01
Author: Neil Roberts <neil@linux.intel.com>
Date:   Thu Nov 4 14:56:44 2010 +0000

    cogl-gles2-wrapper: Fix a reference to the old name for CoglPipeline
    
    The GLES2 wrapper was referring to COGL_MATERIAL_PROGRAM_TYPE_GLSL but
    this has since been renamed to COGL_PIPELINE_PROGRAM_TYPE_GLSL so the
    GLES2 backend wouldn't compile.

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

commit 61bb91a2e76d105d7bbbede3b339f01ac72463a5
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Oct 29 15:49:25 2010 +0100

    gles2: disable vbos until while we rework backend
    
    The gles2 wrapper functions don't understand about the CoglBuffer API so
    they don't support attributes stored in a CoglVertexArray. Instead of
    teaching the backend about buffers we are going to wait until we have
    overhauled the GLES 2 backend. We are currently making progress
    consolidating the GLES 2 backend with a new GLSL backend for
    CoglMaterial. This will hugely simplify the GLES 2 support and share
    code with the OpenGL backend. In the end it's hoped that this problem
    will simply go away so it doesn't make much sense to solve it with the
    current design.

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

commit f80cb197a9113da847375c3f60334a1282a639bc
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Oct 27 18:54:57 2010 +0100

    cogl: rename CoglMaterial -> CoglPipeline
    
    This applies an API naming change that's been deliberated over for a
    while now which is to rename CoglMaterial to CoglPipeline.
    
    For now the new pipeline API is marked as experimental and public
    headers continue to talk about materials not pipelines. The CoglMaterial
    API is now maintained in terms of the cogl_pipeline API internally.
    Currently this API is targeting Cogl 2.0 so we will have time to
    integrate it properly with other upcoming Cogl 2.0 work.
    
    The basic reasons for the rename are:
    - That the term "material" implies to many people that they are
      constrained to fragment processing; perhaps as some kind of high-level
      texture abstraction.
        - In Clutter they get exposed by ClutterTexture actors which may be
          re-inforcing this misconception.
    - When comparing how other frameworks use the term material, a material
      sometimes describes a multi-pass fragment processing technique which
      isn't the case in Cogl.
    - In code, "CoglPipeline" will hopefully be a much more self documenting
      summary of what these objects represent; a full GPU pipeline
      configuration including, for example, vertex processing, fragment
      processing and blending.
    - When considering the API documentation story, at some point we need a
      document introducing developers to how the "GPU pipeline" works so it
      should become intuitive that CoglPipeline maps back to that
      description of the GPU pipeline.
    - This is consistent in terminology and concept to OpenGL 4's new
      pipeline object which is a container for program objects.
    
    Note: The cogl-material.[ch] files have been renamed to
    cogl-material-compat.[ch] because otherwise git doesn't seem to treat
    the change as a moving the old cogl-material.c->cogl-pipeline.c and so
    we loose all our git-blame history.

 cogl/Makefile.am                            |   24 +-
 cogl/cogl-atlas-texture.c                   |   14 +-
 cogl/cogl-atlas.c                           |    2 +-
 cogl/cogl-buffer-private.h                  |    2 +-
 cogl/cogl-clip-stack.c                      |    6 +-
 cogl/cogl-context.c                         |   48 +-
 cogl/cogl-context.h                         |   28 +-
 cogl/cogl-framebuffer.c                     |    2 +-
 cogl/cogl-journal-private.h                 |    8 +-
 cogl/cogl-journal.c                         |  128 +-
 cogl/cogl-material-arbfp-private.h          |   36 -
 cogl/cogl-material-arbfp.c                  | 1218 ------
 cogl/cogl-material-compat.c                 |  495 +++
 cogl/cogl-material-compat.h                 | 1396 +++++++
 cogl/cogl-material-fixed-private.h          |   36 -
 cogl/cogl-material-fixed.c                  |  261 --
 cogl/cogl-material-glsl-private.h           |   36 -
 cogl/cogl-material-glsl.c                   |  452 ---
 cogl/cogl-material-opengl-private.h         |  155 -
 cogl/cogl-material-opengl.c                 | 1212 ------
 cogl/cogl-material-private.h                |  957 -----
 cogl/cogl-material.c                        | 5743 ---------------------------
 cogl/cogl-material.h                        | 1440 -------
 cogl/cogl-path.c                            |   42 +-
 cogl/cogl-pipeline-arbfp-private.h          |   36 +
 cogl/cogl-pipeline-arbfp.c                  | 1218 ++++++
 cogl/cogl-pipeline-fixed-private.h          |   36 +
 cogl/cogl-pipeline-fixed.c                  |  261 ++
 cogl/cogl-pipeline-glsl-private.h           |   36 +
 cogl/cogl-pipeline-glsl.c                   |  452 +++
 cogl/cogl-pipeline-opengl-private.h         |  156 +
 cogl/cogl-pipeline-opengl.c                 | 1212 ++++++
 cogl/cogl-pipeline-private.h                |  993 +++++
 cogl/cogl-pipeline.c                        | 5725 ++++++++++++++++++++++++++
 cogl/cogl-pipeline.h                        | 1234 ++++++
 cogl/cogl-primitives.c                      |  212 +-
 cogl/cogl-texture-2d-private.h              |    2 +-
 cogl/cogl-texture-2d-sliced-private.h       |    2 +-
 cogl/cogl-texture-2d-sliced.c               |    2 +-
 cogl/cogl-texture-2d.c                      |    2 +-
 cogl/cogl-texture-3d-private.h              |    4 +-
 cogl/cogl-texture-3d.c                      |    4 +-
 cogl/cogl-texture-private.h                 |    4 +-
 cogl/cogl-texture-rectangle-private.h       |    2 +-
 cogl/cogl-texture-rectangle.c               |    2 +-
 cogl/cogl-texture.c                         |   26 +-
 cogl/cogl-types.h                           |   52 +-
 cogl/cogl-util.c                            |    2 +-
 cogl/cogl-vertex-attribute.c                |   76 +-
 cogl/cogl-vertex-buffer.c                   |   92 +-
 cogl/cogl.c                                 |   68 +-
 cogl/cogl.h                                 |    9 +-
 cogl/driver/gl/cogl-texture-driver-gl.c     |    4 +-
 cogl/driver/gles/cogl-texture-driver-gles.c |    4 +-
 cogl/winsys/cogl-texture-pixmap-x11.c       |    6 +-
 55 files changed, 13713 insertions(+), 11962 deletions(-)

commit 47ceb34ba914efde2621c05ff9776ed74e7f33ad
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Oct 27 12:43:36 2010 +0100

    pango: Use CoglMaterial type for materials
    
    Instead of using the CoglHandle type for material variables this updates
    the pango code to use CoglMaterial * instead. CoglHandle is the old
    typename which is being phased out of the API.

 pango/cogl-pango-display-list.c |    6 +++---
 pango/cogl-pango-display-list.h |    4 ++--
 pango/cogl-pango-render.c       |    4 ++--
 3 files changed, 7 insertions(+), 7 deletions(-)

commit e673de0b55c0757306539fee1c91117fd170c677
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Oct 27 12:36:24 2010 +0100

    pango: push/pop source instead of trashing users source
    
    The pango-display-list code was calling cogl_set_source in numerous
    places and it didn't appear to be saving the users source to restore
    later. This could result in the user inadvertantly drawing a primitive
    with one of these internally managed materials instead of one that they
    chose. To rectify this the code now uses cogl_{push,pop}_source to save
    and restore the users source.

 pango/cogl-pango-display-list.c |   76 +++++++++++++++++++++++----------------
 1 files changed, 45 insertions(+), 31 deletions(-)

commit 44644d0a9e793aa9d1d60090e00d847a6fc9bd0e
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Oct 18 17:17:22 2010 +0100

    primitives: implements cogl_polygon on vertex_attributes
    
    This updates the implementation of cogl_polygon so it sits on the new
    CoglVertexArray and CoglVertexAttribute apis. This lets us minimize the
    number of different drawing paths we have to maintain in Cogl.
    
    Since the sliced texture support for cogl_polygon has been broken for a
    long time now and no one has complained this patch also greatly
    simplifies the code by not doing any special material validation so
    cogl_polygon will be restricted in the same way as
    cogl_draw_vertex_attributes. (i.e. sliced textures not supported).

 cogl/cogl-context.c    |    5 +
 cogl/cogl-context.h    |    3 +-
 cogl/cogl-primitives.c |  579 +++++++++++++----------------------------------
 3 files changed, 167 insertions(+), 420 deletions(-)

commit 37657a5dd84539152fff4e4788f20700c157b1a9
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Oct 26 19:22:57 2010 +0100

    journal: port to the vertex_attributes API
    
    Instead of using raw OpenGL in the journal we now use the vertex
    attributes API instead. This is part of an ongoing effort to reduce the
    number of drawing paths we maintain in Cogl.

 cogl/cogl-context.c |    4 +
 cogl/cogl-context.h |    1 +
 cogl/cogl-journal.c |  262 +++++++++++++++++++++++++++------------------------
 3 files changed, 145 insertions(+), 122 deletions(-)

commit afb8a64bc431ba9e6c6392a49faa311e4d5817da
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Oct 26 18:56:57 2010 +0100

    vertex-buffer: use cogl_get_rectangle_indices
    
    The functionality of cogl_vertex_buffer_indices_get_for_quads is now
    provided by cogl_get_rectangle_indices so this reworks the former to now
    work in terms of the latter so we don't have duplicated logic.

 cogl/cogl-context.c       |    9 ----
 cogl/cogl-context.h       |    6 ---
 cogl/cogl-vertex-buffer.c |  101 ++++++++++++++++-----------------------------
 3 files changed, 36 insertions(+), 80 deletions(-)

commit c6761aa93b50fef7c22267c6065fe197e9173a94
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Oct 12 12:55:23 2010 +0100

    vertex-buffer: port to CoglVertexAttributes + CoglPrimitive
    
    As part of an ongoing effort to reduce the number of draw paths we have
    in Cogl this re-works CoglVertexBuffer to use the CoglVertexAttribute
    and CoglPrimitive APIs instead of using raw GL.

 cogl/cogl-vertex-buffer-private.h |   42 +-
 cogl/cogl-vertex-buffer.c         | 1140 ++++++++++++-------------------------
 2 files changed, 371 insertions(+), 811 deletions(-)

commit b03f905094fdbb62bfc9d5089173ab79a161a505
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Oct 26 18:57:33 2010 +0100

    primitive: adds immutable ref/unref mechanism
    
    This adds a way to mark that a primitive is in use so that modifications
    will generate a warning. The plan is to use this mechanism when batching
    primitives in the journal to warn users that mid-scene modifications of
    primitives is not allowed.

 cogl/cogl-primitive-private.h |    8 ++++
 cogl/cogl-primitive.c         |   77 +++++++++++++++++++++++++++++++++++++++++
 2 files changed, 85 insertions(+), 0 deletions(-)

commit a03a5814e7b8af7d6cefcaf1cbc2b9dd13252a6b
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Oct 12 15:48:31 2010 +0100

    primitive: Adds convenience constructors
    
    This adds convenience primitive constructors named like:
      cogl_primitive_new_p3 or
      cogl_primitive_new_p3c4 or
      cogl_primitive_new_p3t2c4
    where the letters correspond to the interleved vertex attributes layouts
    such as CoglP3Vertex which is a struct with 3 float x,y,z members for
    the [p]osition, or CoglP3T2C4Vertex which is a struct with 3 float x,y,z
    members for the [p]osition, 2 float s,t members for the [t]exture
    coordinates and 4 unsigned byte r,g,b,a members for the [c]olor.
    
    The hope is that people will find these convenient enough to replace
    cogl_polygon.

 cogl/cogl-primitive.c |  246 +++++++++++++++++++++++++++++++++++++++++++++++++
 cogl/cogl-primitive.h |   66 ++++++++++---
 2 files changed, 296 insertions(+), 16 deletions(-)

commit 9498d505dd94657e1af72147515c9fb746519115
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Oct 12 12:54:07 2010 +0100

    cogl: Adds experimental CoglPrimitive API
    
    A CoglPrimitive is a retainable object for drawing a single primitive,
    such as a triangle strip, fan or list.
    
    CoglPrimitives build on CoglVertexAttributes and CoglIndices which
    themselves build on CoglVertexArrays and CoglIndexArrays respectively.
    
    A CoglPrimitive encapsulates enough information such that it can be
    retained in a queue (e.g. the Cogl Journal, or renderlists in the
    future) and drawn at some later time.

 cogl/Makefile.am              |    3 +
 cogl/cogl-primitive-private.h |   46 ++++++
 cogl/cogl-primitive.c         |  223 +++++++++++++++++++++++++++++
 cogl/cogl-primitive.h         |  311 +++++++++++++++++++++++++++++++++++++++++
 cogl/cogl.h                   |    1 +
 5 files changed, 584 insertions(+), 0 deletions(-)

commit 070d90937be07d66449ba35c3b67a0aee42b4d59
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Oct 12 12:53:10 2010 +0100

    cogl: Adds experimental CoglVertexAttribute API
    
    A CoglVertexAttribute defines a single attribute contained in a
    CoglVertexArray. I.e. a CoglVertexArray is simply a buffer of N bytes
    intended for containing a collection of attributes (position, color,
    normals etc) and a CoglVertexAttribute defines one such attribute by
    specifying its start offset in the array, its type, the number of
    components and the stride etc.

 cogl/Makefile.am                     |    3 +
 cogl/cogl-vertex-attribute-private.h |   80 +++
 cogl/cogl-vertex-attribute.c         |  882 ++++++++++++++++++++++++++++++++++
 cogl/cogl-vertex-attribute.h         |  205 ++++++++
 cogl/cogl.h                          |    1 +
 5 files changed, 1171 insertions(+), 0 deletions(-)

commit 6e620e94b69dea9ee2fb3c859de0a9a517129e22
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Oct 12 12:48:58 2010 +0100

    cogl: Adds experimental CoglIndices API
    
    CoglIndices define a range of indices inside a CoglIndexArray. I.e. a
    CoglIndexArray is simply a buffer of N bytes and you can then
    instantiate multiple CoglIndices collections that define a sub-region of
    a CoglIndexArray by specifying a start offset and an index data type.

 cogl/Makefile.am            |    3 +
 cogl/cogl-context.c         |   18 +++
 cogl/cogl-context.h         |   10 ++
 cogl/cogl-indices-private.h |   57 ++++++++++
 cogl/cogl-indices.c         |  253 +++++++++++++++++++++++++++++++++++++++++++
 cogl/cogl-indices.h         |   74 +++++++++++++
 cogl/cogl.h                 |    1 +
 7 files changed, 416 insertions(+), 0 deletions(-)

commit 296d14e94625b95304092d0b66d1d37871f58b71
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Oct 12 12:34:27 2010 +0100

    cogl: Adds experimental CoglVertexArray type
    
    This adds a new CoglVertexArray object which is a subclass of CoglBuffer
    used to hold vertex attributes. A later commit will add a
    CoglVertexAttribute API which will be used to describe the attributes
    inside a CoglVertexArray.

 cogl/Makefile.am                 |    3 +
 cogl/cogl-vertex-array-private.h |   39 +++++++++++++++++++
 cogl/cogl-vertex-array.c         |   70 ++++++++++++++++++++++++++++++++++
 cogl/cogl-vertex-array.h         |   77 ++++++++++++++++++++++++++++++++++++++
 cogl/cogl.h                      |    1 +
 5 files changed, 190 insertions(+), 0 deletions(-)

commit 4d990a93a8ee0dfcbb16d91d944f7c096f55b9f8
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Oct 12 12:36:22 2010 +0100

    cogl: Adds experimental CoglIndexArray type
    
    A CoglIndexArray is a subclass of CoglBuffer and will be used to hold
    vertex indices. A later commit will add a CoglIndices API which will
    allow describing a range of indices inside a CoglIndexArray.

 cogl/Makefile.am                |    3 +
 cogl/cogl-index-array-private.h |   39 ++++++++++++
 cogl/cogl-index-array.c         |  131 +++++++++++++++++++++++++++++++++++++++
 cogl/cogl-index-array.h         |   79 +++++++++++++++++++++++
 cogl/cogl.h                     |    1 +
 5 files changed, 253 insertions(+), 0 deletions(-)

commit 7901e30aacda2dad8d4aae791721ad0ad79eac2d
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Oct 26 19:08:51 2010 +0100

    buffer: adds immutable ref/unref mechanism
    
    This adds an internal mechanism to mark that a buffer is in-use so that
    a warning can be generated if the user attempts to modify the buffer.
    
    The plans is for the journal to use this mechanism so that we can warn
    users about mid-scene modifications of buffers.

 cogl/cogl-buffer-private.h |    8 ++++++++
 cogl/cogl-buffer.c         |   42 ++++++++++++++++++++++++++++++++++++++++--
 2 files changed, 48 insertions(+), 2 deletions(-)

commit 7cc6dedea495f9b84bd974209b770f2cfe389f52
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Oct 12 13:14:17 2010 +0100

    buffer: make _bind() return base pointer
    
    We now make _cogl_buffer_bind return a base pointer for the bound buffer
    which can be used with OpenGL. The pointer will be NULL for GPU based
    buffers or may point to an malloc'd buffer. Since OpenGL expects an
    offset instead of a pointer when dealing with buffer objects this means
    we can handle fallback malloc buffers and GPU buffers in a consistent
    way.

 cogl/cogl-bitmap.c         |   28 ++++++++--------------------
 cogl/cogl-buffer-private.h |    2 +-
 cogl/cogl-buffer.c         |   17 ++++++++++-------
 3 files changed, 19 insertions(+), 28 deletions(-)

commit 406d0c4a289a1388f9fc1aeb0b6938309b625218
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Oct 26 19:02:04 2010 +0100

    material: Bail out faster if re-flushing unchanged material
    
    This allows _cogl_material_flush_gl_state to bail out faster if
    repeatedly asked to flush the same material and we can see the material
    hasn't changed.
    
    Since we can rely on the material age incrementing when any material
    property changes or any associated layer property changes then we can
    track the age of the material after flushing so it can be compared with
    the age of the material if it is subsequently re-flushed. If the age is
    the same we only have to re-assert the texture object state.

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

commit 8f15f63212389aac582db2f99696a9c7d6d2714d
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Oct 26 17:43:16 2010 +0100

    material-node: track if node owns reference on parent
    
    MaterialNodes are used for the sparse graph of material state and layer
    state. In the case of materials there is the idea of weak materials that
    don't take a reference on their parent and in that case we need to be
    careful not to unref our parent during
    _cogl_material_node_unparent_real. This adds a has_parent_reference
    member to the CoglMaterialNode struct so we now know when to skip the
    unref.

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

commit 7927aed5d60e494c9072087bf5451617d49d6b49
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Oct 26 17:38:58 2010 +0100

    cogl-object: correctly free user_data_array in _unref
    
    If there is private data associated with a CoglObject then there may be
    a user_data_array that needs to be freed. The code was mistakenly
    freeing the array inside the loop that was actually iterating over the
    user data array notifying the objects destruction instead of waiting
    until all the data entries had been destroyed.

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

commit 63206a208b30c036b785cdf58c312088bafd62cd
Author: Neil Roberts <neil@linux.intel.com>
Date:   Fri Oct 15 18:00:29 2010 +0100

    Merge cogl-program-{gl,gles}.c into one cogl-program.c
    
    This merges the two implementations of CoglProgram for the GLES2 and
    GL backends into one. The implementation is more like the GLES2
    version which would track the uniform values and delay sending them to
    GL. CoglProgram is now effectively just a GList of CoglShaders along
    with an array of stored uniform values. CoglProgram never actually
    creates a GL program, instead this is left up to the GLSL material
    backend. This is necessary on GLES2 where we may need to relink the
    user's program with different generated shaders depending on the other
    emulated fixed function state. It will also be necessary in the future
    GLSL backends for regular OpenGL. The GLSL and ARBfp material backends
    are now the ones that create and link the GL program from the list of
    shaders. The linked program is attached to the private material state
    so that it can be reused if the CoglProgram is used again with the
    same material. This does mean the program will get relinked if the
    shader is used with multiple materials. This will be particularly bad
    if the legacy cogl_program_use function is used because that
    effectively always makes one-shot materials. This problem will
    hopefully be alleviated if we make a hash table with a cache of
    generated programs. The cogl program would then need to become part of
    the hash lookup.
    
    Each CoglProgram now has an age counter which is incremented every
    time a shader is added. This is used by the material backends to
    detect when we need to create a new GL program for the user program.
    
    The internal _cogl_use_program function now takes a GL program handle
    rather than a CoglProgram. It no longer needs any special differences
    for GLES2. The GLES2 wrapper function now also uses this function to
    bind its generated shaders.
    
    The ARBfp shaders no longer store a copy of the program source but
    instead just directly create a program object when cogl_shader_source
    is called. This avoids having to reupload the source if the same
    shader is used in multiple materials.
    
    There are currently a few gross hacks to get the GLES2 backend to work
    with this. The problem is that the GLSL material backend is now
    generating a complete GL program but the GLES2 wrapper still needs to
    add its fixed function emulation shaders if the program doesn't
    provide either a vertex or fragment shader. There is a new function in
    the GLES2 wrapper called _cogl_gles2_use_program which replaces the
    previous cogl_program_use implementation. It extracts the GL shaders
    from the GL program object and creates a new GL program containing all
    of the shaders plus its fixed function emulation. This new program is
    returned to the GLSL material backend so that it can still flush the
    custom uniforms using it. The user_program is attached to the GLES2
    settings struct as before but its stored using a GL program handle
    rather than a CoglProgram pointer. This hack will go away once the
    GLSL material backend replaces the GLES2 wrapper by generating the
    code itself.
    
    Under Mesa this currently generates some GL errors when glClear is
    called in test-cogl-shader-glsl. I think this is due to a bug in Mesa
    however. When the user program on the material is changed the GLSL
    backend gets notified and deletes the GL program that it linked from
    the user shaders. The program will still be bound in GL
    however. Leaving a deleted shader bound exposes a bug in Mesa's
    glClear implementation. More details are here:
    
    https://bugs.freedesktop.org/show_bug.cgi?id=31194

 cogl/Makefile.am                           |    6 +-
 cogl/cogl-internal.h                       |    4 +-
 cogl/cogl-material-arbfp.c                 |   36 +-
 cogl/cogl-material-fixed.c                 |   17 +-
 cogl/cogl-material-glsl.c                  |  355 ++++++++++++++-
 cogl/cogl-material-opengl.c                |  158 +++-----
 cogl/cogl-material-private.h               |    2 +-
 cogl/cogl-program-private.h                |   78 ++++
 cogl/cogl-program.c                        |  683 ++++++++++++++++++++++++++++
 cogl/cogl-shader-private.h                 |    1 -
 cogl/cogl-shader.c                         |   56 ++-
 cogl/driver/gl/cogl-feature-functions-gl.h |   11 +
 cogl/driver/gl/cogl-program-gl.c           |  488 --------------------
 cogl/driver/gl/cogl-program-gl.h           |   46 --
 cogl/driver/gles/cogl-gles2-wrapper.c      |  194 +++------
 cogl/driver/gles/cogl-gles2-wrapper.h      |    9 +-
 cogl/driver/gles/cogl-program-gles.c       |  437 ------------------
 cogl/driver/gles/cogl-program-gles.h       |   52 ---
 18 files changed, 1308 insertions(+), 1325 deletions(-)

commit 7ab928a4e015fb0df5507c5482b83e113be43396
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Oct 27 15:07:03 2010 +0100

    cogl: Use separate materials for set_source_color and texture
    
    Previously cogl_set_source_color and cogl_set_source_texture modified
    a single global material. If an application then mixes using
    cogl_set_source_color and texture then the material will constantly
    need a new ARBfp program because the numbers of layers alternates
    between 0 and 1. This patch just adds a second global material that is
    only used for cogl_set_source_texture. I think it would still end up
    flushing the journal if cogl_set_source_texture is used with multiple
    different textures but at least it should avoid a recompile unless the
    texture target also changes. It might be nice to somehow attach a
    material to the CoglTexture for use with cogl_set_source_texture but
    it would be difficult to implement this without creating a circular
    reference.

 cogl/cogl-context.c |    3 +++
 cogl/cogl-context.h |    3 ++-
 cogl/cogl.c         |   11 ++---------
 3 files changed, 7 insertions(+), 10 deletions(-)

commit 812dd1d83ded5936dd0bc1985856efd8746e8e47
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Oct 12 12:53:44 2010 +0100

    Move IndicesType and VerticesMode typedefs to cogl-types.h
    
    This moves the CoglIndicesType and CoglVerticesMode typedefs from
    cogl-vertex-buffer.h to cogl-types.h so they can be shared with the
    anticipated cogl vertex attribute API.

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

commit 6fe6dd18ac06eee4c8129cdea618fe7036a8cbc2
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Oct 26 16:05:00 2010 +0100

    buffer: BufferBindTarget + BufferUsageHint enum renaming
    
    This renames the BufferBindTarget + BufferUsageHint enums to match the
    anticipated new APIs for "index arrays" and "vertex arrays" as opposed
    to using the terms "vertices" or "indices".

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

commit 525504f9bf82eac89a0950c134544aa7ef034d64
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Oct 18 18:50:02 2010 +0100

    buffer: warn if (offset + size) > buffer->size
    
    previously we would silently bail out if the given offset + data size
    would overflow the buffer size. Now we use g_return_val_if_fail so we
    get a warning if we hit this case.

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

commit aafcee31b20d8afe6b91fa84a30de855b07f2020
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Oct 12 13:25:05 2010 +0100

    pixel-array: Remove some benign variables
    
    There were some completely unused static global variables declared in
    cogl-pixel-array.c which this patch removes.

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

commit 46b614a7c3c5b1b30d1f29a3c7b5c6e082e11c2c
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Oct 12 13:23:44 2010 +0100

    pixel-array: Remove flags member and flag macros
    
    There are no flags associated with pixel-arrays so we don't need the
    flags member or flag macros.

 cogl/cogl-pixel-array-private.h |   18 ------------------
 cogl/cogl-pixel-array.c         |    2 --
 2 files changed, 0 insertions(+), 20 deletions(-)

commit e18bfd92e4985fb69692916741334dc2209ef85b
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Oct 26 16:06:46 2010 +0100

    buffer: Add a store_created bit field member
    
    This adds a store_created bit field to CoglBuffer so we know if the
    underlying buffer has been allocated yet. Previously the code was trying
    to do something really wrong by accidentally using the
    COGL_PIXEL_ARRAY_FLAG_IS_SET macro (note "PIXEL_ARRAY") and what is more
    odd was the declaration of a CoglPixelArray *pixel_array in
    cogl-buffer.c which the buffer was being cast too before calling using
    the macro. Probably this was the fall-out of some previous code
    re-factoring.

 cogl/cogl-buffer-private.h |    2 ++
 cogl/cogl-buffer.c         |   25 +++++++++++--------------
 2 files changed, 13 insertions(+), 14 deletions(-)

commit 071253c48be87926a942d6e1d5d0f6289220f9b5
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Oct 12 11:46:29 2010 +0100

    buffer: remove flag macros
    
    All the macros get used for are to |= (a new flag bit), &= ~(a flag bit)
    or use the & operator to test if a flag bit is set. I haven't found the
    code more readable with these macros, but several times now I've felt
    the need to double check if these macros do anything else behind the
    hood or I've forgotten what flags are available so I've had to go to the
    macro definition to see what the full enum names are for the flags (the
    macros use symbol concatenation) so I can search for the definition of
    all the flags. It turns out they are defined next to the macro so you
    don't have to search far, but without the macro that wouldn't have been
    necessary.
    
    The more common use of the _IS_SET macro is actually more concise
    expanded and imho since it doesn't hide anything in a separate header
    file the code is more readable without the macro.

 cogl/cogl-bitmap.c         |    4 ++--
 cogl/cogl-buffer-private.h |    9 ---------
 cogl/cogl-buffer.c         |   20 ++++++++++----------
 3 files changed, 12 insertions(+), 21 deletions(-)

commit 1bed79d19a3e6add697955f9dfb5c21bfaf04c84
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Oct 12 12:35:47 2010 +0100

    material: Adds _cogl_material_get_layer_texture
    
    This is a counter part for _cogl_material_layer_get_texture which takes
    a layer index instead of a direct CoglMaterialLayer pointer. The aim is
    to phase out code that directly iterates the internal layer pointers of
    a material since the layer pointers can change if any property of any
    layer is changed making direct layer pointers very fragile.

 cogl/cogl-material-private.h |    4 ++++
 cogl/cogl-material.c         |    9 +++++++++
 2 files changed, 13 insertions(+), 0 deletions(-)

commit a74c26d8d14fd6f703f4887569b70c5dfd2aff5f
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Oct 18 19:00:50 2010 +0100

    material: add internal layer filter getters
    
    This adds internal _cogl_material_get_layer_filters and
    _cogl_material_get_layer_{min,mag}_filter functions which can be used to
    query the filters associated with a layer using a layer_index, as
    opposed to a layer pointer. Accessing layer pointers is considered
    deprecated so we need to provide layer_index based replacements.

 cogl/cogl-material-private.h |   14 +++++++++++++
 cogl/cogl-material.c         |   45 ++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 59 insertions(+), 0 deletions(-)

commit 0330a7a2e68531773107d14a81626aa1d7d77a51
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sun Aug 1 23:05:28 2010 +0100

    material: Adds missing get_layer_wrap_mode_xyz prototypes
    
    This adds missing getter function prototypes for
    cogl_material_get_layer_wrap_mode_{s,t,p}

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

commit 876bf6cb287000de5d982199324453c7c18bbdaa
Author: Robert Bragg <robert@linux.intel.com>
Date:   Sun Aug 1 16:07:38 2010 +0100

    vertex-buffer: remove the unstrided CBO type
    
    When we come to submitting the users given attributes we sort them into
    different types of buffers. Previously we had three types; strided,
    unstrided and multi-pack. Really though unstrided was just a limited
    form of multi-pack buffer and didn't imply any hind of special
    optimization so this patch consolidates some code by reducing to just
    two types; strided and multi-pack.

 cogl/cogl-vertex-buffer-private.h |    5 ++---
 cogl/cogl-vertex-buffer.c         |   33 ++++++---------------------------
 2 files changed, 8 insertions(+), 30 deletions(-)

commit b64c1c97817fb51c61f17a21beeae7fabde70c69
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Jul 28 13:59:34 2010 +0100

    material: Adds _cogl_material_pre_paint_for_layer
    
    This is a counter part for _cogl_material_layer_pre_paint which takes a
    layer index instead of a direct CoglMaterialLayer pointer. The aim is to
    phase out code that directly iterates the internal layer pointers of a
    material since the layer pointers can change if any property of any
    layer is changed making direct layer pointers very fragile.

 cogl/cogl-material-private.h |    9 +++++++++
 cogl/cogl-material.c         |    8 ++++++++
 2 files changed, 17 insertions(+), 0 deletions(-)

commit 1b9a247174d7d23a1de36738437046734ef9568d
Author: Robert Bragg <robert@linux.intel.com>
Date:   Mon Oct 25 13:25:21 2010 +0100

    cogl: Adds {push,pop,get}_source functions
    
    This exposes the idea of a stack of source materials instead of just
    having a single current material. This allows the writing of orthogonal
    code that can change the current source material and restore it to its
    previous state. It also allows the implementation of new composite
    primitives that may want to validate the current source material and
    possibly make override changes in a derived material.

 cogl/cogl-clip-stack.c               |    7 +--
 cogl/cogl-context.c                  |    6 +-
 cogl/cogl-context.h                  |    2 +-
 cogl/cogl-material-private.h         |    3 +
 cogl/cogl-path.c                     |   41 ++++++-------
 cogl/cogl-primitives.c               |   99 ++++++++++++++----------------
 cogl/cogl-texture.c                  |    7 +--
 cogl/cogl-vertex-buffer.c            |   38 +++++++-----
 cogl/cogl.c                          |  109 +++++++++++++++++++++++++++++++---
 cogl/cogl.h                          |   58 +++++++++++++++---
 doc/reference/cogl/cogl-sections.txt |    3 +
 11 files changed, 252 insertions(+), 121 deletions(-)

commit 4ccd915064754e1f7718e44d5603f6ef50f017ba
Merge: 8986877 c6977cd
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Oct 25 23:44:53 2010 +0100

    Merge branch 'private-cleanup'
    
    * private-cleanup:
      Add copyright notices
      Clean up clutter-private.h/6
      Clean up clutter-private.h/5
      Clean up clutter-private.h/4
      Clean up clutter-private.h/3
      Clean up clutter-private.h/2
      Clean up clutter-private.h/1

commit 8986877c3ec0d362c7b694f6eb13bdbc92a8214d
Merge: c381f0c 66680d2
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Oct 25 17:09:46 2010 +0100

    Merge branch 'wip/path-constraint'
    
    * wip/path-constraint:
      docs: Add PathConstraint
      tests: Add a PathConstraint interactive test
      Add ClutterPathConstraint
      actor-box: Add setters for origin and size

commit c381f0cb8b0edcc6927438626730904397e113f3
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Oct 25 13:15:01 2010 +0100

    cogl-context-winsys: Avoid zero-length arrays
    
    When compiling for non-glx platforms the winsys feature data array
    ends up empty. Empty arrays cause problems for MSVC so this patch adds
    a stub entry so that the array always has at least one entry.
    
    Based on a patch by Ole André Vadla Ravnås

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

commit 371e6bd47ccea22a0f309c04765c2d2f1cb9b429
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Oct 25 13:08:52 2010 +0100

    Avoid mixing declarations and code
    
    Mixing declarations and code causes problems for MSVC as it is a C99
    feature so we should try to avoid it.

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

commit 66680d22f82449f991a4f5e8e2589bc276d6caa9
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Oct 4 14:34:24 2010 +0100

    cogl-texture-2d-sliced: Use the other backends for the slices
    
    Instead of directly manipulating GL textures itself,
    CoglTexture2DSliced now works in terms of CoglHandles. It creates the
    texture slices using cogl_texture_new_with_size which should always
    end up creating a CoglTexture2D because the size should fit. This
    allows us to avoid replicating some code such as the first pixel
    mipmap tracking and it better enforces the separation that each
    texture backend is the only place that contains code dealing with each
    texture target.

 cogl/cogl-texture-2d-sliced-private.h |   20 +-
 cogl/cogl-texture-2d-sliced.c         | 1103 ++++++++++++++-------------------
 2 files changed, 462 insertions(+), 661 deletions(-)

commit b540dcb75a45c2f39c59752e5d582d6299da38d5
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Oct 4 15:27:38 2010 +0100

    Support foreign textures in the texture-2d and rectangle backends
    
    This adds two new internal functions to create a foreign texture for
    the texture 2d and rectangle backends. cogl_texture_new_from_foreign
    will now use one of these backends directly if there is no waste
    instead of always using the sliced texture backend.

 cogl/cogl-texture-2d-private.h        |    7 ++
 cogl/cogl-texture-2d.c                |  135 +++++++++++++++++++++++++++++++--
 cogl/cogl-texture-rectangle-private.h |    7 ++
 cogl/cogl-texture-rectangle.c         |  118 +++++++++++++++++++++++++++--
 cogl/cogl-texture.c                   |   42 ++++++++--
 5 files changed, 287 insertions(+), 22 deletions(-)

commit c6977cdb13fd0c2743863edddf9e2e18b7725203
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Thu Oct 14 16:32:13 2010 +0100

    build: Fix EGL/CEX100 build with GLES2
    
    Some headers files have been renamed or removed and the gles(2) did not
    compile anymore, fix that.

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

commit 963a0662b430c00da0e9ee94e41652f326902f92
Author: Kristian Høgsberg <krh@bitplanet.net>
Date:   Tue Sep 28 10:17:46 2010 -0400

    Add wayland backend
    
    This adds a clutter backend for running under the wayland window system.
    Initial cogl framebuffer integration by Robert Bragg.

 cogl/Makefile.am       |    4 ++++
 cogl/winsys/cogl-egl.c |   10 +++++++---
 2 files changed, 11 insertions(+), 3 deletions(-)

commit a80a65ce8f0d77522a70e4cb00a8531a8902c831
Author: Neil Roberts <neil@linux.intel.com>
Date:   Tue Oct 5 17:17:53 2010 +0100

    cogl-texture-2d-sliced: Use the smallest possible waste
    
    When picking a size for the last slice in a texture, Cogl would always
    pick the biggest power of two size that doesn't create too much
    waste and is less than or equal to the previous slice size. However
    this can end up creating a texture that is bigger than needed if there
    is a smaller power of two.
    
    For example, if the maximum waste is 127 (the current default) and we
    try to create a texture that is 257 pixels wide it will decide that
    the next power of two (512) is too much waste (255) so it will create
    the first slice at 256 pixels wide. Then we only have 1 pixel left to
    allocate but Cogl would pick the next smaller size that has a small
    enough waste which is 128. But of course 1 is already a power of two
    so that's redundantly oversized by 127.
    
    This patch fixes it so that whenever it finds a size that would be big
    enough, instead of using exactly that it picks the next power of two
    up from the size we need to fill.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2355

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

commit 01e72335a030735d97889528f29694179106f8c5
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Tue Oct 5 08:03:19 2010 +0100

    cogl: Use Cogl (not COGL) consistently
    
    If I remember correctly, Robert wants to name Cogl, Cogl (not COGL) so
    start by having a consistent naming in the code.

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

commit c878acf6cf4c0e4532d57538f9f5892616f9b610
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Oct 4 14:12:21 2010 +0100

    cogl-x11: Trap glXDestroyPixmap()
    
    There are ordering issues in the pixmap destruction with current and
    past X11 server, Mesa and dri2. Under some circumstances, an X pixmap
    might be destroyed with the GLX pixmap still referencing it, and thus
    the X server will decide to destroy the GLX pixmap as well; then, when
    Cogl tries to destroy the GLX pixmap, it gets BadDrawable errors.
    
    Clutter 1.2 used to trap + sync all calls to glXDestroyPixmap(), but
    then we assumed that the ordering issue had been solved. So, we're back
    to square 1.
    
    I left a Big Fat Comment™ right above the glXDestroyPixmap() call
    referencing the bug and the reasoning behind the trap, so that we don't
    go and remove it in the future without checking that the issue has been
    in fact solved.
    
    http://bugzilla.clutter-project.org/show_bug.cgi?id=2324

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

commit d9e18215015b37da6845d4bfdc6abbf29aa5ec3f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Oct 4 08:57:29 2010 +0100

    build: Unconditionally add GLES2 shaders to EXTRA_DIST

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

commit ac9e59721a52a01b110152ce05759603da0be07c
Merge: f85d152 51b0905
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Sep 30 12:24:32 2010 +0100

    Merge remote branch 'elliot/events-buttons'
    
    * elliot/events-buttons:
      cookbook: Add recipe about handling button events
      cookbook: Example of using button press and release events
      cookbook: Example of ClutterClickAction
      cookbook: Example of simple handling of button events

commit f85d1520a01fe433fde857462a1d431db6a5d956
Author: Robert Bragg <robert@linux.intel.com>
Date:   Fri Sep 24 01:01:33 2010 +0100

    material: tweak dot file debug code
    
    When using the debug function _cogl_debug_dump_materials_dot_file to
    write a dot file representing the sparse graph of material state we now
    only show a link between materials and layers when the material directly
    owns that layer reference (i.e. just those referenced in
    material->layer_differences) This makes it possible to see when
    ancestors of a material are being deferred too for layer state.
    
    For example when looking at the graph if you see that a material has an
    n_layers of 3 but there is only a link to 2 layers, then you know you
    need to look at it's ancestors to find the last layer.

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

commit 51b090541a0879e1f117deb0a4d6f66efae16fd1
Author: Neil Roberts <neil@linux.intel.com>
Date:   Wed Sep 29 15:40:22 2010 +0100

    cogl-texture-2d-sliced: Don't create the slice textures twice
    
    Both of the cogl_texture_2d_sliced_new functions called the
    slices_create function which creates the underlying GL
    textures. However this was also called by init_base so the textures
    would end up being created twice. This would make it leak the GL
    textures and the arrays which point to them.

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

commit c4638fa1df9b8c9ad58f96dab84c7087893018fa
Merge: d011502 eb179d4
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Sep 29 15:55:58 2010 +0100

    Merge branch 'wip/non-recursive'
    
    * wip/non-recursive:
      build: Start moving to a non-recursive layout

commit d011502603bcb442ed51f641d6bd14c978582afd
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Sep 7 23:35:26 2010 +0100

    cogl: removes unused _cogl_setup_viewport
    
    Clutter has now taken responsibility for managing its viewport,
    projection matrix and view transform as part of ClutterStage so
    _cogl_setup_viewport is no longer used by anything, and since it's quite
    an obscure API anyway it's we've taken the opportunity to remove the
    function.

 cogl/cogl.c |   74 -----------------------------------------------------------
 cogl/cogl.h |   26 --------------------
 2 files changed, 0 insertions(+), 100 deletions(-)

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

    build: Start moving to a non-recursive layout
    
            *** WARNING: THIS COMMIT CHANGES THE BUILD ***
    
    Do not recurse into the backend directories to build private, internal
    libraries.
    
    We only recurse from clutter/ into the cogl sub-directory; from there,
    we don't recurse any further. All the backend-specific code in Cogl and
    Clutter is compiled conditionally depending on the macros defined by the
    configure script.
    
    We still recurse from the top-level directory into doc, clutter and
    tests, because gtk-doc and tests do not deal nicely with non-recursive
    layouts.
    
    This change makes Clutter compile slightly faster, and cleans up the
    build system, especially when dealing with introspection data.
    
    Ideally, we also want to make Cogl part of the top-level build, so that
    we can finally drop the sed trick to change the shared library from the
    GIR before compiling it.
    
    Currently disabled:
    
      ‣ OSX backend
      ‣ Fruity backend
    
    Currently enabled but untested:
    
      ‣ EGL backend
      ‣ Windows backend

 cogl/Makefile.am                               |  136 +++++--
 cogl/cogl-context.h                            |   10 +-
 cogl/cogl-material-arbfp.c                     |    9 +-
 cogl/cogl-material-fixed.c                     |    9 +-
 cogl/cogl-material-glsl.c                      |    8 +-
 cogl/cogl-material-opengl.c                    |    9 +-
 cogl/driver/gl/Makefile.am                     |   34 --
 cogl/driver/gl/cogl-context-driver-gl.c        |   39 ++
 cogl/driver/gl/cogl-context-driver-gl.h        |   53 +++
 cogl/driver/gl/cogl-context-driver.c           |   39 --
 cogl/driver/gl/cogl-context-driver.h           |   53 ---
 cogl/driver/gl/cogl-feature-functions-gl.h     |  410 +++++++++++++++++++
 cogl/driver/gl/cogl-feature-functions.h        |  410 -------------------
 cogl/driver/gl/cogl-gl.c                       |  237 +++++++++++
 cogl/driver/gl/cogl-program-gl.c               |  488 ++++++++++++++++++++++
 cogl/driver/gl/cogl-program-gl.h               |   46 ++
 cogl/driver/gl/cogl-program.c                  |  488 ----------------------
 cogl/driver/gl/cogl-program.h                  |   46 --
 cogl/driver/gl/cogl-texture-driver-gl.c        |  522 ++++++++++++++++++++++++
 cogl/driver/gl/cogl-texture-driver.c           |  522 ------------------------
 cogl/driver/gl/cogl.c                          |  237 -----------
 cogl/driver/gles/Makefile.am                   |   57 ---
 cogl/driver/gles/cogl-context-driver-gles.c    |   46 ++
 cogl/driver/gles/cogl-context-driver-gles.h    |   56 +++
 cogl/driver/gles/cogl-context-driver.c         |   46 --
 cogl/driver/gles/cogl-context-driver.h         |   56 ---
 cogl/driver/gles/cogl-feature-functions-gles.h |  111 +++++
 cogl/driver/gles/cogl-feature-functions.h      |  111 -----
 cogl/driver/gles/cogl-gles.c                   |  117 ++++++
 cogl/driver/gles/cogl-gles2-wrapper.c          |    1 -
 cogl/driver/gles/cogl-gles2-wrapper.h          |    2 +-
 cogl/driver/gles/cogl-program-gles.c           |  437 ++++++++++++++++++++
 cogl/driver/gles/cogl-program-gles.h           |   52 +++
 cogl/driver/gles/cogl-program.c                |  437 --------------------
 cogl/driver/gles/cogl-program.h                |   52 ---
 cogl/driver/gles/cogl-texture-driver-gles.c    |  504 +++++++++++++++++++++++
 cogl/driver/gles/cogl-texture-driver.c         |  504 -----------------------
 cogl/driver/gles/cogl.c                        |  117 ------
 cogl/driver/gles/stringify.sh                  |   94 -----
 39 files changed, 3248 insertions(+), 3357 deletions(-)

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