cogl: Add a GLSL 'progend'
authorNeil Roberts <neil@linux.intel.com>
Thu, 2 Dec 2010 14:00:46 +0000 (14:00 +0000)
committerNeil Roberts <neil@linux.intel.com>
Mon, 13 Dec 2010 17:22:57 +0000 (17:22 +0000)
commit313adc7bdf9c8a0d61cedf7e34d1cd3e961a7ea2
tree2bf290701a5f9b921d9785d70d771895dc088bd2
parent1e3cdb60d6a6ad67c4e693687c5c9c64a25d7cec
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.
clutter/cogl/cogl/Makefile.am
clutter/cogl/cogl/cogl-pipeline-fragend-glsl-private.h
clutter/cogl/cogl/cogl-pipeline-fragend-glsl.c
clutter/cogl/cogl/cogl-pipeline-opengl.c
clutter/cogl/cogl/cogl-pipeline-private.h
clutter/cogl/cogl/cogl-pipeline-progend-glsl-private.h [new file with mode: 0644]
clutter/cogl/cogl/cogl-pipeline-progend-glsl.c [new file with mode: 0644]
clutter/cogl/cogl/cogl-pipeline.c