mutter/cogl
Robert Bragg bb3a008318 [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
2009-11-03 17:23:03 +00:00
..
driver [draw-buffers] First pass at overhauling Cogl's framebuffer management 2009-11-03 17:23:03 +00:00
winsys build: Make COGL pass distcheck 2009-10-23 13:38:40 +01:00
cogl-bitmap-fallback.c Intial Re-layout of the Cogl source code and introduction of a Cogl Winsys 2009-10-16 18:58:50 +01:00
cogl-bitmap-pixbuf.c Intial Re-layout of the Cogl source code and introduction of a Cogl Winsys 2009-10-16 18:58:50 +01:00
cogl-bitmap-private.h Intial Re-layout of the Cogl source code and introduction of a Cogl Winsys 2009-10-16 18:58:50 +01:00
cogl-bitmap.c Intial Re-layout of the Cogl source code and introduction of a Cogl Winsys 2009-10-16 18:58:50 +01:00
cogl-bitmap.h Intial Re-layout of the Cogl source code and introduction of a Cogl Winsys 2009-10-16 18:58:50 +01:00
cogl-blend-string.c Intial Re-layout of the Cogl source code and introduction of a Cogl Winsys 2009-10-16 18:58:50 +01:00
cogl-blend-string.h Intial Re-layout of the Cogl source code and introduction of a Cogl Winsys 2009-10-16 18:58:50 +01:00
cogl-clip-stack.c [draw-buffers] First pass at overhauling Cogl's framebuffer management 2009-11-03 17:23:03 +00:00
cogl-clip-stack.h [draw-buffers] First pass at overhauling Cogl's framebuffer management 2009-11-03 17:23:03 +00:00
cogl-color.c Intial Re-layout of the Cogl source code and introduction of a Cogl Winsys 2009-10-16 18:58:50 +01:00
cogl-color.h Intial Re-layout of the Cogl source code and introduction of a Cogl Winsys 2009-10-16 18:58:50 +01:00
cogl-context.c [draw-buffers] First pass at overhauling Cogl's framebuffer management 2009-11-03 17:23:03 +00:00
cogl-context.h [draw-buffers] First pass at overhauling Cogl's framebuffer management 2009-11-03 17:23:03 +00:00
cogl-debug.c Intial Re-layout of the Cogl source code and introduction of a Cogl Winsys 2009-10-16 18:58:50 +01:00
cogl-debug.h Intial Re-layout of the Cogl source code and introduction of a Cogl Winsys 2009-10-16 18:58:50 +01:00
cogl-deprecated.h Intial Re-layout of the Cogl source code and introduction of a Cogl Winsys 2009-10-16 18:58:50 +01:00
cogl-draw-buffer-private.h [draw-buffers] First pass at overhauling Cogl's framebuffer management 2009-11-03 17:23:03 +00:00
cogl-draw-buffer.c [draw-buffers] First pass at overhauling Cogl's framebuffer management 2009-11-03 17:23:03 +00:00
cogl-enum-types.c.in Intial Re-layout of the Cogl source code and introduction of a Cogl Winsys 2009-10-16 18:58:50 +01:00
cogl-enum-types.h.in Intial Re-layout of the Cogl source code and introduction of a Cogl Winsys 2009-10-16 18:58:50 +01:00
cogl-fixed.c Intial Re-layout of the Cogl source code and introduction of a Cogl Winsys 2009-10-16 18:58:50 +01:00
cogl-fixed.h Intial Re-layout of the Cogl source code and introduction of a Cogl Winsys 2009-10-16 18:58:50 +01:00
cogl-handle.h [cogl-texture] Split CoglTexture into an abstract class + CoglTexture2dSliced 2009-10-16 18:58:51 +01:00
cogl-internal.h [cogl] Removes the cogl-current-matrix abstraction 2009-10-20 12:32:50 +01:00
cogl-journal-private.h [cogl-primitives] Split the journal out from cogl-primitives.c 2009-10-16 18:58:52 +01:00
cogl-journal.c [draw-buffers] First pass at overhauling Cogl's framebuffer management 2009-11-03 17:23:03 +00:00
cogl-material-private.h Intial Re-layout of the Cogl source code and introduction of a Cogl Winsys 2009-10-16 18:58:50 +01:00
cogl-material.c [cogl] Removes the cogl-current-matrix abstraction 2009-10-20 12:32:50 +01:00
cogl-material.h Intial Re-layout of the Cogl source code and introduction of a Cogl Winsys 2009-10-16 18:58:50 +01:00
cogl-matrix-stack.c [matrix-stack] Adds ctx->flushed_matrix_mode to cache the gl matrix mode 2009-10-20 12:32:50 +01:00
cogl-matrix-stack.h Intial Re-layout of the Cogl source code and introduction of a Cogl Winsys 2009-10-16 18:58:50 +01:00
cogl-matrix.c Intial Re-layout of the Cogl source code and introduction of a Cogl Winsys 2009-10-16 18:58:50 +01:00
cogl-matrix.h Intial Re-layout of the Cogl source code and introduction of a Cogl Winsys 2009-10-16 18:58:50 +01:00
cogl-offscreen.h Intial Re-layout of the Cogl source code and introduction of a Cogl Winsys 2009-10-16 18:58:50 +01:00
cogl-path.h Intial Re-layout of the Cogl source code and introduction of a Cogl Winsys 2009-10-16 18:58:50 +01:00
cogl-primitives.c [draw-buffers] First pass at overhauling Cogl's framebuffer management 2009-11-03 17:23:03 +00:00
cogl-primitives.h Intial Re-layout of the Cogl source code and introduction of a Cogl Winsys 2009-10-16 18:58:50 +01:00
cogl-shader.h Intial Re-layout of the Cogl source code and introduction of a Cogl Winsys 2009-10-16 18:58:50 +01:00
cogl-spans.c [cogl-spans] split out cogl-spans code from cogl-texture-2d-sliced 2009-10-16 18:58:52 +01:00
cogl-spans.h [cogl-spans] split out cogl-spans code from cogl-texture-2d-sliced 2009-10-16 18:58:52 +01:00
cogl-texture-2d-sliced-private.h [cogl-spans] split out cogl-spans code from cogl-texture-2d-sliced 2009-10-16 18:58:52 +01:00
cogl-texture-2d-sliced.c [cogl-spans] split out cogl-spans code from cogl-texture-2d-sliced 2009-10-16 18:58:52 +01:00
cogl-texture-driver.h [cogl-texture] Split CoglTexture into an abstract class + CoglTexture2dSliced 2009-10-16 18:58:51 +01:00
cogl-texture-private.h [cogl-primitives] Split the journal out from cogl-primitives.c 2009-10-16 18:58:52 +01:00
cogl-texture.c [draw-buffers] First pass at overhauling Cogl's framebuffer management 2009-11-03 17:23:03 +00:00
cogl-texture.h [docs] switch gl_handle+gl_target docs for cogl_texture_new_from_foreign 2009-10-16 18:58:51 +01:00
cogl-types.h Intial Re-layout of the Cogl source code and introduction of a Cogl Winsys 2009-10-16 18:58:50 +01:00
cogl-util.c [cogl] Removes the cogl-current-matrix abstraction 2009-10-20 12:32:50 +01:00
cogl-util.h Intial Re-layout of the Cogl source code and introduction of a Cogl Winsys 2009-10-16 18:58:50 +01:00
cogl-vertex-buffer-private.h Intial Re-layout of the Cogl source code and introduction of a Cogl Winsys 2009-10-16 18:58:50 +01:00
cogl-vertex-buffer.c [draw-buffers] First pass at overhauling Cogl's framebuffer management 2009-11-03 17:23:03 +00:00
cogl-vertex-buffer.h Intial Re-layout of the Cogl source code and introduction of a Cogl Winsys 2009-10-16 18:58:50 +01:00
cogl.c [draw-buffers] First pass at overhauling Cogl's framebuffer management 2009-11-03 17:23:03 +00:00
cogl.h.in [draw-buffers] First pass at overhauling Cogl's framebuffer management 2009-11-03 17:23:03 +00:00
cogl.pc.in Intial Re-layout of the Cogl source code and introduction of a Cogl Winsys 2009-10-16 18:58:50 +01:00
Makefile.am [draw-buffers] First pass at overhauling Cogl's framebuffer management 2009-11-03 17:23:03 +00:00
stb_image.c Intial Re-layout of the Cogl source code and introduction of a Cogl Winsys 2009-10-16 18:58:50 +01:00