mirror of
https://github.com/brl/mutter.git
synced 2024-11-25 17:40:40 -05:00
bb3a008318
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
62 lines
1.3 KiB
Makefile
62 lines
1.3 KiB
Makefile
include $(top_srcdir)/build/autotools/Makefile.am.silent
|
|
|
|
NULL =
|
|
|
|
INCLUDES = \
|
|
-I$(top_srcdir) \
|
|
-I$(srcdir) \
|
|
-I$(srcdir)/../.. \
|
|
-I$(srcdir)/../../.. \
|
|
-I$(srcdir)/winsys \
|
|
-I$(srcdir)/driver/$(COGL_DRIVER) \
|
|
-I../.. \
|
|
-I../../.. \
|
|
-DG_DISABLE_SINGLE_INCLUDES \
|
|
-DG_LOG_DOMAIN=\"Cogl-Driver\" \
|
|
-DCLUTTER_COMPILATION
|
|
|
|
noinst_LTLIBRARIES = libclutter-cogl-driver.la
|
|
libclutter_cogl_driver_la_CPPFLAGS = \
|
|
$(CLUTTER_CFLAGS) \
|
|
$(COGL_DEBUG_CFLAGS) \
|
|
$(CLUTTER_DEBUG_CFLAGS) \
|
|
$(MAINTAINER_CFLAGS)
|
|
libclutter_cogl_driver_la_SOURCES = \
|
|
cogl.c \
|
|
cogl-primitives.c \
|
|
cogl-texture-driver.c \
|
|
cogl-context-driver.c \
|
|
cogl-context-driver.h \
|
|
cogl-gles2-wrapper.h \
|
|
cogl-program.h \
|
|
cogl-program.c \
|
|
cogl-shader-private.h \
|
|
cogl-shader.c
|
|
|
|
if USE_GLES2_WRAPPER
|
|
libclutter_cogl_driver_la_SOURCES += \
|
|
cogl-gles2-wrapper.c \
|
|
cogl-fixed-vertex-shader.h \
|
|
cogl-fixed-vertex-shader.c \
|
|
cogl-fixed-fragment-shader.h \
|
|
cogl-fixed-fragment-shader.c
|
|
endif
|
|
|
|
EXTRA_DIST = \
|
|
cogl-defines.h.in \
|
|
stringify.sh \
|
|
cogl-fixed-vertex-shader.glsl \
|
|
cogl-fixed-fragment-shader.glsl
|
|
|
|
BUILT_SOURCES = \
|
|
cogl-fixed-vertex-shader.h \
|
|
cogl-fixed-vertex-shader.c \
|
|
cogl-fixed-fragment-shader.h \
|
|
cogl-fixed-fragment-shader.c
|
|
|
|
%.h: $(srcdir)/%.glsl
|
|
/bin/sh $(srcdir)/stringify.sh -h $< > $@
|
|
%.c: $(srcdir)/%.glsl
|
|
/bin/sh $(srcdir)/stringify.sh $< > $@
|
|
|