mutter/cogl
Robert Bragg 03dbf67ca4 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.
2011-01-13 12:23:33 +00:00
..
driver cogl-texture-driver-gles: Don't copy the bitmap if alignment matches 2011-01-10 16:55:00 +00:00
tesselator build: Do not build a noinst library for the tesselator 2010-09-12 19:25:47 +01:00
winsys cogl: rename CoglMaterial -> CoglPipeline 2010-11-03 18:09:23 +00:00
cogl2-path.c cogl-vertex-attribute: Add flags to _cogl_draw_vertex_attributes_array 2011-01-10 17:11:41 +00:00
cogl2-path.h path 2.0: update path API for experimental 2.0 API 2010-11-11 13:17:26 +00:00
cogl-atlas-texture-private.h Allow multiple CoglAtlases for textures 2010-12-13 18:59:41 +00:00
cogl-atlas-texture.c cogl-atlas-texture: Don't disable atlas if can't read texture data 2011-01-13 11:50:09 +00:00
cogl-atlas.c Allow multiple CoglAtlases for textures 2010-12-13 18:59:41 +00:00
cogl-atlas.h Allow multiple CoglAtlases for textures 2010-12-13 18:59:41 +00:00
cogl-bitmap-fallback.c cogl-bitmap: Encapsulate the CoglBitmap even internally 2010-07-15 17:24:01 +01:00
cogl-bitmap-pixbuf.c cogl: Don't assume that CoglBitmaps are allocated to height*rowstride 2011-01-10 16:55:01 +00:00
cogl-bitmap-private.h cogl: Don't assume that CoglBitmaps are allocated to height*rowstride 2011-01-10 16:55:01 +00:00
cogl-bitmap.c cogl-texture: Don't use the source rowstride if we have to copy bitmap 2011-01-10 16:54:58 +00:00
cogl-bitmap.h docs: Fixes for the Cogl API reference 2010-12-22 09:52:35 +00:00
cogl-bitmask.c cogl-vertex-attribute: Use glVertexAttribPointer on GLES2 2010-12-13 17:28:29 +00:00
cogl-bitmask.h cogl-vertex-attribute: Use glVertexAttribPointer on GLES2 2010-12-13 17:28:29 +00:00
cogl-blend-string.c Remove the disabling of layer constants for GLES2 2010-11-24 18:06:44 +00:00
cogl-blend-string.h blend-strings: removes the AUTO_COMPOSITE function enum 2010-06-15 15:26:27 +01:00
cogl-buffer-private.h cogl-buffer: Use void* instead of guint8* for map and set_data 2010-11-04 18:04:03 +00:00
cogl-buffer.c Remove the GLES2 wrapper 2010-12-13 17:29:14 +00:00
cogl-buffer.h docs: Fixes for the Cogl API reference 2010-12-22 09:52:35 +00:00
cogl-callback-list.c cogl: Add an internal utility to maintain a list of callback functions 2010-08-12 11:54:42 +01:00
cogl-callback-list.h cogl: Add an internal utility to maintain a list of callback functions 2010-08-12 11:54:42 +01:00
cogl-clip-stack.c Remove the GLES2 wrapper 2010-12-13 17:29:14 +00:00
cogl-clip-stack.h cogl-clip-stack: Move the struct definitions to the header 2010-12-03 17:16:58 +00:00
cogl-clip-state.c cogl-clip-stack: Don't convert rect clips to window clips 2010-12-03 17:16:57 +00:00
cogl-clip-state.h build: cogl-clip-state.h depends on cogl-clip-stack.h 2010-11-19 13:27:30 +00:00
cogl-color-private.h pipeline: Implements _cogl_pipeline_hash function 2010-12-07 16:00:32 +00:00
cogl-color.c cogl-color: add cogl_color_init_from_xyz funcs 2010-06-15 15:26:27 +01:00
cogl-color.h cogl-color: add cogl_color_init_from_xyz funcs 2010-06-15 15:26:27 +01:00
cogl-context.c Allow multiple CoglAtlases for textures 2010-12-13 18:59:41 +00:00
cogl-context.h Allow multiple CoglAtlases for textures 2010-12-13 18:59:41 +00:00
cogl-debug-options.h arbfp: Adds an ARBfp program cache 2010-12-07 16:00:32 +00:00
cogl-debug.c arbfp: Adds an ARBfp program cache 2010-12-07 16:00:32 +00:00
cogl-debug.h arbfp: Adds an ARBfp program cache 2010-12-07 16:00:32 +00:00
cogl-defines.h.in configure: Include gl2ext.h or glext.h under GLES 2010-07-13 14:28:51 +01:00
cogl-deprecated.h Remove mentions of the FSF address 2010-03-01 12:56:10 +00:00
cogl-enum-types.c.in
cogl-enum-types.h.in
cogl-feature-private.c cogl: Add the infrastructure for checking for winsys extensions 2010-06-22 12:22:43 +01:00
cogl-feature-private.h cogl: Add the infrastructure for checking for winsys extensions 2010-06-22 12:22:43 +01:00
cogl-fixed.c Fixed "the the" repetitions in some doc strings 2010-11-25 18:18:51 +00:00
cogl-fixed.h analysis: Fix some CoglFixed API 2010-06-01 12:08:18 +01:00
cogl-framebuffer-private.h cogl-framebuffer: Try to track format of the framebuffer 2010-11-24 15:56:35 +00:00
cogl-framebuffer.c Remove the GLES2 wrapper 2010-12-13 17:29:14 +00:00
cogl-gtype-private.h matrix gtype: registers a boxed type for CoglMatrix 2010-12-07 12:16:50 +00:00
cogl-handle.h CoglObject: Adds cogl_object_{get,set}_user_data 2010-06-04 14:44:15 +01:00
cogl-index-array-private.h cogl: Adds experimental CoglIndexArray type 2010-11-03 18:04:00 +00:00
cogl-index-array.c cogl: Adds experimental CoglIndexArray type 2010-11-03 18:04:00 +00:00
cogl-index-array.h docs: Fixes for the Cogl API reference 2010-12-22 09:52:35 +00:00
cogl-indices-private.h indices: Makes cogl_indices_get_array public 2010-11-19 13:27:30 +00:00
cogl-indices.c indices: Makes cogl_indices_get_array public 2010-11-19 13:27:30 +00:00
cogl-indices.h indices: Makes cogl_indices_get_array public 2010-11-19 13:27:30 +00:00
cogl-internal.h cogl-vertex-attribute: Use glVertexAttribPointer on GLES2 2010-12-13 17:28:29 +00:00
cogl-journal-private.h cogl-journal: Attempt to clip manually to avoid breaking up batches 2010-12-03 17:16:58 +00:00
cogl-journal.c cogl-vertex-attribute: Optionally avoid applying the legacy state 2011-01-11 14:06:09 +00:00
cogl-material-compat.c cogl: rename CoglMaterial -> CoglPipeline 2010-11-03 18:09:23 +00:00
cogl-material-compat.h docs: Fixes for the Cogl API reference 2010-12-22 09:52:35 +00:00
cogl-matrix-mesa.c Remove mentions of the FSF address 2010-03-01 12:56:10 +00:00
cogl-matrix-mesa.h Remove mentions of the FSF address 2010-03-01 12:56:10 +00:00
cogl-matrix-private.h Remove mentions of the FSF address 2010-03-01 12:56:10 +00:00
cogl-matrix-stack.c cogl: upload matrices with uniforms on GLES2 2010-12-13 17:29:13 +00:00
cogl-matrix-stack.h cogl: upload matrices with uniforms on GLES2 2010-12-13 17:29:13 +00:00
cogl-matrix.c matrix gtype: registers a boxed type for CoglMatrix 2010-12-07 12:16:50 +00:00
cogl-matrix.h matrix gtype: registers a boxed type for CoglMatrix 2010-12-07 12:16:50 +00:00
cogl-object-private.h cogl-object-private.h: Include cogl-debug.h 2010-09-17 17:22:16 +01:00
cogl-object.c cogl-object: remove un-used cogl_object_get_type 2010-12-07 12:16:50 +00:00
cogl-object.h docs: Fixes for the Cogl API reference 2010-12-22 09:52:35 +00:00
cogl-offscreen.h Add some more introspection annotations 2010-09-06 16:11:46 +01:00
cogl-path-private.h cogl-path: Stroke using the vertex attribute API 2010-12-13 17:28:28 +00:00
cogl-path.c path 2.0: update path API for experimental 2.0 API 2010-11-11 13:17:26 +00:00
cogl-path.h docs: Fixes for the Cogl API reference 2010-12-22 09:52:35 +00:00
cogl-pipeline-fragend-arbfp-private.h Rename CoglPipelineBackend to CoglPipelineFragend 2010-12-13 17:22:57 +00:00
cogl-pipeline-fragend-arbfp.c pipeline: differentiate texture target and data state 2011-01-13 12:23:33 +00:00
cogl-pipeline-fragend-fixed-private.h Rename CoglPipelineBackend to CoglPipelineFragend 2010-12-13 17:22:57 +00:00
cogl-pipeline-fragend-fixed.c pipeline: differentiate texture target and data state 2011-01-13 12:23:33 +00:00
cogl-pipeline-fragend-glsl-private.h cogl: Add a GLSL 'progend' 2010-12-13 17:22:57 +00:00
cogl-pipeline-fragend-glsl.c pipeline: differentiate texture target and data state 2011-01-13 12:23:33 +00:00
cogl-pipeline-opengl-private.h cogl-pipeline: Move texture enabling/disabling to fixed fragend 2010-12-13 17:22:57 +00:00
cogl-pipeline-opengl.c pipeline: differentiate texture target and data state 2011-01-13 12:23:33 +00:00
cogl-pipeline-private.h pipeline: differentiate texture target and data state 2011-01-13 12:23:33 +00:00
cogl-pipeline-progend-glsl-private.h cogl-vertex-attribute: Use glVertexAttribPointer on GLES2 2010-12-13 17:28:29 +00:00
cogl-pipeline-progend-glsl.c pipeline: differentiate texture target and data state 2011-01-13 12:23:33 +00:00
cogl-pipeline-vertend-fixed-private.h cogl: Add a fixed function vertend 2010-12-13 17:22:57 +00:00
cogl-pipeline-vertend-fixed.c cogl: Add a vertend to generate GLSL 2010-12-13 17:28:28 +00:00
cogl-pipeline-vertend-glsl-private.h cogl: Add a vertend to generate GLSL 2010-12-13 17:28:28 +00:00
cogl-pipeline-vertend-glsl.c pipeline: differentiate texture target and data state 2011-01-13 12:23:33 +00:00
cogl-pipeline.c pipeline: differentiate texture target and data state 2011-01-13 12:23:33 +00:00
cogl-pipeline.h docs: Fixes for the Cogl API reference 2010-12-22 09:52:35 +00:00
cogl-pixel-array-private.h pixel-array: Remove flags member and flag macros 2010-10-26 16:16:40 +01:00
cogl-pixel-array.c Remove the GLES2 wrapper 2010-12-13 17:29:14 +00:00
cogl-pixel-array.h pixel-array: Only allow allocation of arrays with a 2D size 2010-07-05 15:20:04 +01:00
cogl-primitive-private.h primitive: adds immutable ref/unref mechanism 2010-11-03 18:04:31 +00:00
cogl-primitive.c vertex-array: Adds data arg for _vertex_array_new() 2010-11-19 13:27:30 +00:00
cogl-primitive.h cogl-primitive: Add the missing cogl_primitive_new_p2 function 2010-11-04 17:59:28 +00:00
cogl-primitives-private.h cogl: Don't flush the journal when flushing clip state 2010-11-04 18:10:08 +00:00
cogl-primitives.c cogl-vertex-attribute: Add flags to _cogl_draw_vertex_attributes_array 2011-01-10 17:11:41 +00:00
cogl-primitives.h Use begin/end macros in cogl-primitives.h 2010-03-25 09:33:26 +00:00
cogl-private.h Add an internal _cogl_read_pixels_with_rowstride 2010-11-24 15:56:34 +00:00
cogl-profile.c Initialize the cogl uprof state in cogl_create_context 2010-09-14 12:43:17 +01:00
cogl-profile.h Initialize the cogl uprof state in cogl_create_context 2010-09-14 12:43:17 +01:00
cogl-program-private.h cogl-program: Add private functions to check if have each shader type 2010-12-13 17:22:57 +00:00
cogl-program.c cogl-program: Add private functions to check if have each shader type 2010-12-13 17:22:57 +00:00
cogl-rectangle-map.c cogl-rectangle-map: Record largest gap rather than the remaining space 2010-08-12 11:57:00 +01:00
cogl-rectangle-map.h cogl-atlas: Rename to CoglRectangleMap 2010-08-12 11:54:42 +01:00
cogl-shader-boilerplate.h cogl-shader-boilerplate: Don't put the color attrib in location 0 2010-12-13 17:28:28 +00:00
cogl-shader-private.h Revert "cogl: Remove the generated array size for cogl_tex_coord_in" 2010-12-03 15:27:17 +00:00
cogl-shader.c cogl-shader-boilerplate: Add the 3D texture extension on GLES2 2010-12-13 17:29:14 +00:00
cogl-shader.h cogl-shader: Add deprecation guards for cogl_program_uniform_* 2010-09-03 16:59:01 +01:00
cogl-spans.c Remove mentions of the FSF address 2010-03-01 12:56:10 +00:00
cogl-spans.h Remove mentions of the FSF address 2010-03-01 12:56:10 +00:00
cogl-sub-texture-private.h Remove mentions of the FSF address 2010-03-01 12:56:10 +00:00
cogl-sub-texture.c Use FBOs and use cogl_read_pixels() to efficiently read partial textures 2010-11-24 15:56:35 +00:00
cogl-texture-2d-private.h cogl: rename CoglMaterial -> CoglPipeline 2010-11-03 18:09:23 +00:00
cogl-texture-2d-sliced-private.h cogl: rename CoglMaterial -> CoglPipeline 2010-11-03 18:09:23 +00:00
cogl-texture-2d-sliced.c Use FBOs and use cogl_read_pixels() to efficiently read partial textures 2010-11-24 15:56:35 +00:00
cogl-texture-2d.c Remove the GLES2 wrapper 2010-12-13 17:29:14 +00:00
cogl-texture-3d-private.h cogl: rename CoglMaterial -> CoglPipeline 2010-11-03 18:09:23 +00:00
cogl-texture-3d.c Remove the GLES2 wrapper 2010-12-13 17:29:14 +00:00
cogl-texture-3d.h Add a Cogl texture 3D backend 2010-07-13 14:28:52 +01:00
cogl-texture-driver.h Add a Cogl texture 3D backend 2010-07-13 14:28:52 +01:00
cogl-texture-private.h cogl-texture: Remove the gl_handle from CoglTextureSliceCallback 2010-11-11 16:25:13 +00:00
cogl-texture-rectangle-private.h cogl: rename CoglMaterial -> CoglPipeline 2010-11-03 18:09:23 +00:00
cogl-texture-rectangle.c cogl-texture: Remove the gl_handle from CoglTextureSliceCallback 2010-11-11 16:25:13 +00:00
cogl-texture.c cogl-texture: Don't use the source rowstride if we have to copy bitmap 2011-01-10 16:54:58 +00:00
cogl-texture.h Remove mentions of the FSF address 2010-03-01 12:56:10 +00:00
cogl-types.h docs: Fixes for the Cogl API reference 2010-12-22 09:52:35 +00:00
cogl-util.c cogl-util: Add an internal wrapper for the ffs function 2011-01-10 16:55:00 +00:00
cogl-util.h cogl-util: Add an internal wrapper for the ffs function 2011-01-10 16:55:00 +00:00
cogl-vector.c math: Adds an experimental cogl_vector3_* API 2010-05-20 17:18:24 +01:00
cogl-vector.h cogl: declare experimental symbols consistently 2010-06-30 18:51:31 +01:00
cogl-vertex-array-private.h cogl: Adds experimental CoglVertexArray type 2010-11-03 18:04:00 +00:00
cogl-vertex-array.c vertex-array: Adds data arg for _vertex_array_new() 2010-11-19 13:27:30 +00:00
cogl-vertex-array.h docs: Fixes for the Cogl API reference 2010-12-22 09:52:35 +00:00
cogl-vertex-attribute-private.h cogl-vertex-attribute: Optionally avoid applying the legacy state 2011-01-11 14:06:09 +00:00
cogl-vertex-attribute.c cogl-vertex-attribute: Optionally avoid applying the legacy state 2011-01-11 14:06:09 +00:00
cogl-vertex-attribute.h gtk-doc: Fixes for the API references 2010-11-08 16:01:19 +00:00
cogl-vertex-buffer-private.h vertex-buffer: port to CoglVertexAttributes + CoglPrimitive 2010-11-03 18:09:15 +00:00
cogl-vertex-buffer.c Fixed "the the" repetitions in some doc strings 2010-11-25 18:18:51 +00:00
cogl-vertex-buffer.h docs: Fixes for the Cogl API reference 2010-12-22 09:52:35 +00:00
cogl.c Remove the GLES2 wrapper 2010-12-13 17:29:14 +00:00
cogl.h matrix gtype: registers a boxed type for CoglMatrix 2010-12-07 12:16:50 +00:00
cogl.pc.in
Makefile.am Remove the GLES2 wrapper 2010-12-13 17:29:14 +00:00
stb_image.c Update stb_image.c 2010-03-03 17:02:51 +00:00