mutter/common
Robert Bragg 99f53c3922 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.
2009-06-30 17:13:38 +01:00
..
cogl-bitmap-fallback.c [bitmap] Fixes _cogl_bitmap_fallback_unpremult 2009-06-11 14:17:52 +01:00
cogl-bitmap-pixbuf.c Implement premultiplication for CoglBitmap 2009-06-11 14:17:51 +01:00
cogl-bitmap-private.h Implement premultiplication for CoglBitmap 2009-06-11 14:17:51 +01:00
cogl-bitmap.c Implement premultiplication for CoglBitmap 2009-06-11 14:17:51 +01:00
cogl-blend-string.c [build] Fix compiler warnings 2009-06-05 16:46:12 +01:00
cogl-blend-string.h [cogl-material] Support string based blending and layer combine descriptions 2009-05-28 02:43:28 +01:00
cogl-clip-stack.c [cogl] Improving Cogl journal to minimize driver overheads + GPU state changes 2009-06-30 17:13:34 +01:00
cogl-clip-stack.h [cogl] Updates all file headers and removes lots of trailing white space 2009-05-02 04:12:25 +01:00
cogl-color.c [cogl-color] Adds a cogl_color_equal() function 2009-06-30 17:13:35 +01:00
cogl-current-matrix.c [cogl] Force Cogl to always use the client side matrix stack 2009-06-30 17:13:35 +01:00
cogl-current-matrix.h [cogl matrix] Adds ability to dirty state cached by the client matrix apis 2009-06-29 23:49:06 +01:00
cogl-debug.c [cogl journal] Perform software modelview transform on logged quads. 2009-06-30 17:13:36 +01:00
cogl-enum-types.c.in Use g_once when registering enumeration types 2009-05-29 12:40:23 +01:00
cogl-enum-types.h.in [cogl] Generate enumeration GTypes 2009-05-29 12:31:47 +01:00
cogl-fixed.c [cogl] Updates all file headers and removes lots of trailing white space 2009-05-02 04:12:25 +01:00
cogl-handle.h [material] Reduce the material API in preperation for releasing Clutter 1.0 2009-05-28 02:43:34 +01:00
cogl-internal.h [build] The cogl GE macro wasn't passing an int according to the format string 2009-05-21 15:10:38 +01:00
cogl-material-private.h [cogl material] optimize logging of material colors in the journal 2009-06-30 17:13:35 +01:00
cogl-material.c [cogl-material] Be more carefull about flushing in cogl_material_remove_layer 2009-06-30 17:13:38 +01:00
cogl-matrix-stack.c [cogl matrix] Adds ability to dirty state cached by the client matrix apis 2009-06-29 23:49:06 +01:00
cogl-matrix-stack.h [cogl matrix] Adds ability to dirty state cached by the client matrix apis 2009-06-29 23:49:06 +01:00
cogl-matrix.c [cogl matrix] Support ortho and perspective projections. 2009-05-28 02:43:35 +01:00
cogl-primitives.c [journal] Don't resize a singlton VBO; create and destroy a VBO each flush 2009-06-30 17:13:37 +01:00
cogl-primitives.h [cogl] Improving Cogl journal to minimize driver overheads + GPU state changes 2009-06-30 17:13:34 +01:00
cogl-util.c [cogl] Generate enumeration GTypes 2009-05-29 12:31:47 +01:00
cogl-util.h [cogl] Updates all file headers and removes lots of trailing white space 2009-05-02 04:12:25 +01:00
cogl-vertex-buffer-private.h Use GL_QUADS for flushing a quad batch 2009-06-01 17:29:01 +01:00
cogl-vertex-buffer.c [cogl-vertex-buffer] Disable unused client tex coord arrays 2009-06-30 17:13:37 +01:00
cogl.c Adds a cogl_flush() to give developers breaking into raw GL a fighting chance 2009-06-30 17:13:38 +01:00
Makefile.am Disable single header inclusion for GLib 2009-06-15 11:29:37 +01:00
stb_image.c Merged clutter-ivan branch into trunk. 2008-04-25 13:37:36 +00:00