mutter/cogl
Neil Roberts d69d49fada pipeline: Unify how the backends store private data
Previously the fragends had a separate private data pointer which was
used by the GLSL and ARBfp fragends to store a tiny struct containing
a single pointer to the ref-counted shader state. The space for the
private data pointer is reserved in all of the pipelines for all of
the potential backends. The vertends and progends however did this
differently by directly storing the pointer to the ref counted data
using cogl_object_set_user_data. This patch unifies the different
methods so that they all use cogl_object_set_user_data and the
fragends don't bother with the separate tiny allocation for the
private data. The private data pointer array has been removed from
CoglPipeline and the corresponding fragend virtual to free the private
data has also been removed because this can instead be done with the
destroy notify from the object user data.

The variable names used have been unified so that all of the vertends
and fragends name their data struct CoglPipelineShaderState and use a
variable called shader_state to refer to it. The progend uses
CoglPipelineProgramState and a variable called program_state.

This should also fix two potential bugs. the ARBfp fragend was
apprently leaking a reference to the private state when it creates the
private data because it was adding a reference before stroring the
pointer to the newly allocated data but the ref count is already set
to 1 on creation. The other potential bug is that the free function
for CoglPipeline was only calling the free_priv virtual for the
currently used fragend of the pipeline. The design of the fragends is
meant to allow a pipeline to have multiple fragend priv datas because
a child pipeline could be attaching its fragend data to the ancestor
and its allowed to pick a different fragend.
2011-07-13 12:30:07 +01:00
..
driver Dynamically load the GL or GLES library 2011-07-11 12:57:38 +01:00
tesselator build: Do not build a noinst library for the tesselator 2010-09-12 19:25:47 +01:00
winsys Dynamically load the GL or GLES library 2011-07-11 12:57:38 +01:00
cogl2-clip-state.c framebuffer: expose experimental cogl_get_draw_framebuffer 2011-04-11 15:28:53 +01:00
cogl2-clip-state.h cogl-clip-state: Adapt to experimental cogl2 API. 2011-03-10 13:05:43 +00:00
cogl2-path.c Use all core GL functions through indirect pointers 2011-07-08 15:35:46 +01:00
cogl2-path.h path 2.0: update path API for experimental 2.0 API 2010-11-11 13:17:26 +00:00
cogl-1.0.pc.in Give cogl-pango it's own pkg-config file 2011-05-06 12:12:08 +01:00
cogl-2.0-experimental.pc.in Make it clearer that the 2.0 API is experimental 2011-06-14 17:09:55 +01:00
cogl-atlas-texture-private.h cogl-atlas-texture: Add a callback for when any atlas reorganizes 2011-05-05 17:32:28 +01:00
cogl-atlas-texture.c cogl-atlas-texture: Add a callback for when any atlas reorganizes 2011-05-05 17:32:28 +01:00
cogl-atlas.c Move the cogl texture driver functions to a vtable 2011-07-08 15:35:51 +01:00
cogl-atlas.h cogl: Use GHookList instead of CoglCallbackList 2011-03-14 18:18:15 +00:00
cogl-attribute-buffer-private.h Rename CoglVertexArray to CoglAttributeBuffer 2011-05-16 14:31:31 +01:00
cogl-attribute-buffer.c Rename CoglVertexArray to CoglAttributeBuffer 2011-05-16 14:31:31 +01:00
cogl-attribute-buffer.h Rename CoglVertexArray to CoglAttributeBuffer 2011-05-16 14:31:31 +01:00
cogl-attribute-private.h Don't pass around NULL terminated CoglAttribute arrays 2011-05-16 14:32:37 +01:00
cogl-attribute.c Dynamically load the GL or GLES library 2011-07-11 12:57:38 +01:00
cogl-attribute.h Don't pass around NULL terminated CoglAttribute arrays 2011-05-16 14:32:37 +01:00
cogl-bitmap-fallback.c
cogl-bitmap-pixbuf.c Fix ISO C90 compiler warnings in Cogl 2011-02-15 12:40:11 +00:00
cogl-bitmap-private.h cogl-bitmap-private.h: Include cogl-bitmap.h 2011-05-05 17:32:29 +01: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-context: Store winsys features in an array of unsigned ints 2011-04-20 18:20:10 +01:00
cogl-blend-string.c Dynamically load the GL or GLES library 2011-07-11 12:57:38 +01:00
cogl-blend-string.h
cogl-blit.c Make CoglTexture2D public as experimental API 2011-06-01 20:44:41 +01:00
cogl-blit.h cogl-atlas: Try 4 different approaches for migrating textures 2011-02-15 12:10:54 +00:00
cogl-buffer-private.h Rename CoglIndexArray to CoglIndexBuffer 2011-05-16 14:31:31 +01:00
cogl-buffer.c Dynamically load the GL or GLES library 2011-07-11 12:57:38 +01:00
cogl-buffer.h buffer: Improve the CoglBuffer API description 2011-06-30 14:33:12 +01:00
cogl-clip-stack.c Dynamically load the GL or GLES library 2011-07-11 12:57:38 +01:00
cogl-clip-stack.h clip-stack: Adds _cogl_clip_stack_get_bounds API 2011-01-21 16:18:10 +00:00
cogl-clip-state-private.h cogl-clip-state: Adapt to experimental cogl2 API. 2011-03-10 13:05:43 +00:00
cogl-clip-state.c framebuffer: expose experimental cogl_get_draw_framebuffer 2011-04-11 15:28:53 +01:00
cogl-clip-state.h cogl-clip-state: Adapt to experimental cogl2 API. 2011-03-10 13:05:43 +00:00
cogl-clutter.c Make stub winsys into a proper winsys backend 2011-06-01 20:44:41 +01:00
cogl-clutter.h Moves all GLX code down from Clutter to Cogl 2011-04-11 17:54:36 +01:00
cogl-color-private.h pipeline: Implements _cogl_pipeline_hash function 2010-12-07 16:00:32 +00:00
cogl-color.c
cogl-color.h
cogl-context-private.h Dynamically load the GL or GLES library 2011-07-11 12:57:38 +01:00
cogl-context.c fix namespace for cogl_context_egl_get_egl_context 2011-07-11 14:07:02 +01:00
cogl-context.h fix namespace for cogl_context_egl_get_egl_context 2011-07-11 14:07:02 +01:00
cogl-debug-options.h cogl-debug: Add an option to disable atlasing sharing 2011-05-05 17:32:31 +01:00
cogl-debug.c Add internal _cogl_init() function 2011-06-30 14:33:11 +01:00
cogl-debug.h Add internal _cogl_init() function 2011-06-30 14:33:11 +01:00
cogl-defines.h.in Add _cogl_egl_texture_2d_new_from_image API 2011-06-01 20:44:42 +01:00
cogl-deprecated.h Remove mentions of the FSF address 2010-03-01 12:56:10 +00:00
cogl-depth-state-private.h Adds missing cogl-depth-state-private.h 2011-05-16 18:45:51 +01:00
cogl-depth-state.c Revert "Do not use "near" and "far" variables" 2011-06-14 14:40:27 +01:00
cogl-depth-state.h Fix some gtk-doc annotations in cogl-depth-state.h 2011-06-14 17:09:55 +01:00
cogl-display-private.h Dynamically load the GL or GLES library 2011-07-11 12:57:38 +01:00
cogl-display.c Dynamically load the GL or GLES library 2011-07-11 12:57:38 +01:00
cogl-display.h Adds _cogl_wayland_texture_2d_new_from_buffer API 2011-06-01 20:44:42 +01:00
cogl-enum-types.c.in
cogl-enum-types.h.in
cogl-euler.c math: Adds an experimental euler API 2011-05-16 14:12:42 +01:00
cogl-euler.h Add compile time checks for size of public structs 2011-05-16 14:12:49 +01:00
cogl-ext-functions.h Dynamically load the GL or GLES library 2011-07-11 12:57:38 +01:00
cogl-feature-private.c Dynamically load the GL or GLES library 2011-07-11 12:57:38 +01:00
cogl-feature-private.h Dynamically load the GL or GLES library 2011-07-11 12:57:38 +01:00
cogl-fixed.c Fixed "the the" repetitions in some doc strings 2010-11-25 18:18:51 +00:00
cogl-fixed.h
cogl-flags.h cogl-context: Store winsys features in an array of unsigned ints 2011-04-20 18:20:10 +01:00
cogl-framebuffer-private.h framebuffer: expose viewport getters/setters 2011-06-30 14:33:11 +01:00
cogl-framebuffer.c onscreen: make platform specific onscreen apis consistent 2011-07-11 14:07:01 +01:00
cogl-framebuffer.h onscreen: make platform specific onscreen apis consistent 2011-07-11 14:07:01 +01:00
cogl-glx-display-private.h work towards consistent platform file/symbol naming 2011-06-30 14:34:33 +01:00
cogl-glx-renderer-private.h Dynamically load the GL or GLES library 2011-07-11 12:57:38 +01:00
cogl-gtype-private.h matrix gtype: registers a boxed type for CoglMatrix 2010-12-07 12:16:50 +00:00
cogl-handle.h
cogl-index-buffer-private.h Rename CoglIndexArray to CoglIndexBuffer 2011-05-16 14:31:31 +01:00
cogl-index-buffer.c Rename CoglIndexArray to CoglIndexBuffer 2011-05-16 14:31:31 +01:00
cogl-index-buffer.h Rename CoglIndexArray to CoglIndexBuffer 2011-05-16 14:31:31 +01:00
cogl-indices-private.h Rename CoglIndexArray to CoglIndexBuffer 2011-05-16 14:31:31 +01:00
cogl-indices.c Rename CoglIndexArray to CoglIndexBuffer 2011-05-16 14:31:31 +01:00
cogl-indices.h Rename CoglIndexArray to CoglIndexBuffer 2011-05-16 14:31:31 +01:00
cogl-internal.h Dynamically load the GL or GLES library 2011-07-11 12:57:38 +01:00
cogl-journal-private.h cogl-journal: Use a pool of vertex arrays 2011-06-01 14:41:59 +01:00
cogl-journal.c Dynamically load the GL or GLES library 2011-07-11 12:57:38 +01:00
cogl-material-compat.c Remove G_CONST_RETURN 2011-06-09 16:21:15 +01:00
cogl-material-compat.h Remove G_CONST_RETURN 2011-06-09 16:21:15 +01:00
cogl-matrix-private.h matrix-mesa: move to _cogl_matrix namespace 2011-07-04 15:31:50 +01:00
cogl-matrix-stack.c Dynamically load the GL or GLES library 2011-07-11 12:57:38 +01:00
cogl-matrix-stack.h cogl: upload matrices with uniforms on GLES2 2010-12-13 17:29:13 +00:00
cogl-matrix.c matrix: Adds cogl_matrix_is_identity API 2011-07-04 15:31:50 +01:00
cogl-matrix.h matrix: Adds cogl_matrix_is_identity API 2011-07-04 15:31:50 +01:00
cogl-object-private.h cogl-debug: add instrumentation to track the number of objects 2011-06-14 12:14:02 +01:00
cogl-object.c cogl-debug: add instrumentation to track the number of objects 2011-06-14 12:14:02 +01:00
cogl-object.h cogl-debug: add instrumentation to track the number of objects 2011-06-14 12:14:02 +01:00
cogl-offscreen.h Add some more introspection annotations 2010-09-06 16:11:46 +01:00
cogl-onscreen-template-private.h Adds renderer,display,onscreen-template and swap-chain stubs 2011-04-11 17:54:35 +01:00
cogl-onscreen-template.c Adds renderer,display,onscreen-template and swap-chain stubs 2011-04-11 17:54:35 +01:00
cogl-onscreen-template.h Adds renderer,display,onscreen-template and swap-chain stubs 2011-04-11 17:54:35 +01:00
cogl-pango.h deprecate #include <cogl/cogl-pango.h> 2011-05-16 13:28:17 +01:00
cogl-path-private.h Rename CoglVertexArray to CoglAttributeBuffer 2011-05-16 14:31:31 +01:00
cogl-path.c cogl: rename cogl-context.h cogl-context-private.h 2011-04-11 15:18:12 +01: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: Unify how the backends store private data 2011-07-13 12:30:07 +01: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: Unify how the backends store private data 2011-07-13 12:30:07 +01: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: Unify how the backends store private data 2011-07-13 12:30:07 +01: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 Dynamically load the GL or GLES library 2011-07-11 12:57:38 +01:00
cogl-pipeline-private.h pipeline: Unify how the backends store private data 2011-07-13 12:30:07 +01:00
cogl-pipeline-progend-glsl-private.h cogl: rename CoglVertexAttribute CoglAttribute 2011-01-21 16:24:14 +00:00
cogl-pipeline-progend-glsl.c pipeline: Unify how the backends store private data 2011-07-13 12:30:07 +01: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 Dynamically load the GL or GLES library 2011-07-11 12:57:38 +01: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: Unify how the backends store private data 2011-07-13 12:30:07 +01:00
cogl-pipeline.c pipeline: Unify how the backends store private data 2011-07-13 12:30:07 +01:00
cogl-pipeline.h Add CoglDepthState API 2011-05-16 18:36:44 +01:00
cogl-pixel-buffer-private.h Rename CoglPixelArray to CoglPixelBuffer 2011-05-16 14:31:31 +01:00
cogl-pixel-buffer.c Use all core GL functions through indirect pointers 2011-07-08 15:35:46 +01:00
cogl-pixel-buffer.h Rename CoglPixelArray to CoglPixelBuffer 2011-05-16 14:31:31 +01:00
cogl-point-in-poly-private.h util: tune point_in_poly test for polys in screen coords 2011-03-07 13:26:19 +00:00
cogl-point-in-poly.c util: tune point_in_poly test for polys in screen coords 2011-03-07 13:26:19 +00:00
cogl-primitive-private.h Rename CoglVertexArray to CoglAttributeBuffer 2011-05-16 14:31:31 +01:00
cogl-primitive.c cogl-primitive: Fix some broken changes for removal of NULL terminator 2011-05-16 18:34:22 +01:00
cogl-primitive.h Don't pass around NULL terminated CoglAttribute arrays 2011-05-16 14:32:37 +01: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 Use all core GL functions through indirect pointers 2011-07-08 15:35:46 +01:00
cogl-primitives.h
cogl-private.h Dynamically load the GL or GLES library 2011-07-11 12:57:38 +01:00
cogl-profile.c cogl-debug: Split the flags to support more than 32 2011-01-24 15:45:45 +00: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 Dynamically load the GL or GLES library 2011-07-11 12:57:38 +01:00
cogl-quaternion-private.h math: Adds an experimental quaternion API 2011-05-16 14:11:47 +01:00
cogl-quaternion.c math: Adds an experimental euler API 2011-05-16 14:12:42 +01:00
cogl-quaternion.h doc: fix the name of the cogl_quaternion_equal args 2011-05-16 17:08:30 +01:00
cogl-queue.h cogl-queue: Make suitable for use in Cogl source code 2011-07-01 17:52:55 +01:00
cogl-rectangle-map.c debug: Allow to compile a debug Cogl without cairo 2011-05-17 15:24:54 +01:00
cogl-rectangle-map.h cogl-atlas: Rename to CoglRectangleMap 2010-08-12 11:54:42 +01:00
cogl-renderer-private.h Dynamically load the GL or GLES library 2011-07-11 12:57:38 +01:00
cogl-renderer.c Dynamically load the GL or GLES library 2011-07-11 12:57:38 +01:00
cogl-renderer.h renderer: split win32 api out into separate header 2011-06-30 14:34:46 +01:00
cogl-shader-boilerplate.h Dynamically load the GL or GLES library 2011-07-11 12:57:38 +01:00
cogl-shader-private.h Dynamically load the GL or GLES library 2011-07-11 12:57:38 +01:00
cogl-shader.c Dynamically load the GL or GLES library 2011-07-11 12:57:38 +01: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
cogl-sub-texture-private.h
cogl-sub-texture.c cogl: rename cogl-context.h cogl-context-private.h 2011-04-11 15:18:12 +01:00
cogl-swap-chain-private.h EGL: Updates GDL platform support 2011-05-05 14:46:02 +01:00
cogl-swap-chain.c EGL: Updates GDL platform support 2011-05-05 14:46:02 +01:00
cogl-swap-chain.h EGL: Updates GDL platform support 2011-05-05 14:46:02 +01:00
cogl-texture-2d-private.h Add _cogl_egl_texture_2d_new_from_image API 2011-06-01 20:44:42 +01:00
cogl-texture-2d-sliced-private.h cogl: rename CoglMaterial -> CoglPipeline 2010-11-03 18:09:23 +00:00
cogl-texture-2d-sliced.c Move the cogl texture driver functions to a vtable 2011-07-08 15:35:51 +01:00
cogl-texture-2d.c Dynamically load the GL or GLES library 2011-07-11 12:57:38 +01:00
cogl-texture-2d.h include required cogl-context.h in cogl-texture-2d.h 2011-06-14 17:09:55 +01:00
cogl-texture-3d-private.h cogl: rename CoglMaterial -> CoglPipeline 2010-11-03 18:09:23 +00:00
cogl-texture-3d.c Dynamically load the GL or GLES library 2011-07-11 12:57:38 +01:00
cogl-texture-3d.h
cogl-texture-driver.h Move the cogl texture driver functions to a vtable 2011-07-08 15:35:51 +01:00
cogl-texture-private.h Move the cogl texture driver functions to a vtable 2011-07-08 15:35:51 +01:00
cogl-texture-rectangle-private.h cogl: rename CoglMaterial -> CoglPipeline 2010-11-03 18:09:23 +00:00
cogl-texture-rectangle.c Dynamically load the GL or GLES library 2011-07-11 12:57:38 +01:00
cogl-texture.c Dynamically load the GL or GLES library 2011-07-11 12:57:38 +01:00
cogl-texture.h Add _cogl_egl_texture_2d_new_from_image API 2011-06-01 20:44:42 +01:00
cogl-types.h replace public native_event APIs with typesafe APIs 2011-06-30 14:33:13 +01:00
cogl-util.c Moves all GLX code down from Clutter to Cogl 2011-04-11 17:54:36 +01: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
cogl-vector.h
cogl-vertex-buffer-private.h Rename CoglVertexArray to CoglAttributeBuffer 2011-05-16 14:31:31 +01:00
cogl-vertex-buffer.c cogl-vertex-buffer: make sure to unref weak pipelines 2011-06-13 17:48:23 +01:00
cogl-vertex-buffer.h docs: clarify cogl_vertex_buffer_adds docs 2011-02-09 19:12:12 +00:00
cogl-wayland-renderer.h Updates wayland symbol names to be consistent 2011-06-30 14:34:46 +01:00
cogl-win32-renderer.c replace public native_event APIs with typesafe APIs 2011-06-30 14:33:13 +01:00
cogl-win32-renderer.h renderer: split win32 api out into separate header 2011-06-30 14:34:46 +01:00
cogl-x11-renderer-private.h work towards consistent platform file/symbol naming 2011-06-30 14:34:33 +01:00
cogl-xlib-display-private.h work towards consistent platform file/symbol naming 2011-06-30 14:34:33 +01:00
cogl-xlib-private.h replace _xlib_add_filter use with _cogl_renderer API 2011-06-01 20:44:42 +01:00
cogl-xlib-renderer-private.h work towards consistent platform file/symbol naming 2011-06-30 14:34:33 +01:00
cogl-xlib-renderer.c work towards consistent platform file/symbol naming 2011-06-30 14:34:33 +01:00
cogl-xlib-renderer.h work towards consistent platform file/symbol naming 2011-06-30 14:34:33 +01:00
cogl-xlib.c work towards consistent platform file/symbol naming 2011-06-30 14:34:33 +01:00
cogl-xlib.h cogl-renderer: Move the XEvent filters to be generic for all renderers 2011-04-20 18:17:06 +01:00
cogl.c Dynamically load the GL or GLES library 2011-07-11 12:57:38 +01:00
cogl.h framebuffer: Add _get_XYZ_bits() functions 2011-07-04 15:31:50 +01:00
Makefile.am dist: Make sure to dist cogl-winsys-egl-feature-functions.h 2011-07-11 15:40:02 +01:00
stb_image.c