mutter/cogl
Robert Bragg cad5624a2a material-arbfp: Another pass at simplifying the code
Previously the backend private state was used to either link to an
authority material or provide authoritative program state. The mechanism
seemed overly complex and felt very fragile. I made a recent comment
which added a lot of documentation to make it easier to understand but
still it didn't feel very elegant.

This patch takes a slightly different approach; we now have a
ref-counted ArbfpProgramState object which encapsulates a single ARBfp
program and the backend private state now just has a single member which
is a pointer to one of these arbfp_program_state objects. We no longer
need to cache pointers to our arbfp-authority and so we can get rid of
a lot of awkward code that ensured these pointers were
updated/invalidated at the right times. The program state objects are
not tightly bound to a material so it will also allow us to later
implement a cache mechanism that lets us share state outside a materials
ancestry. This may help to optimize code not following the
recommendations of deriving materials from templates, avoiding one-shot
materials and not repeatedly modifying materials because even if a
material's ancestry doesn't naturally lead us to shareable state we can
fallback to searching for shareable state using central hash tables.
2010-09-15 14:07:50 +01:00
..
driver cogl-program: Adds use_uniform_xyz methods 2010-08-12 16:50:46 +01:00
tesselator build: Do not build a noinst library for the tesselator 2010-09-12 19:25:47 +01:00
winsys cogl: don't include cogl-debug.h in cogl.h or install 2010-08-02 17:41:42 +01:00
cogl-atlas-texture-private.h cogl-atlas-texture: Split out the atlas data structure 2010-08-12 11:56:59 +01:00
cogl-atlas-texture.c cogl-atlas: Support multiple formats and clearing the texture 2010-08-12 11:56:59 +01:00
cogl-atlas.c cogl-atlas: Verify that the chosen initial size is supported 2010-08-12 11:57:00 +01:00
cogl-atlas.h cogl-atlas: Support multiple formats and clearing the texture 2010-08-12 11:56:59 +01: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-bitmap-pixbuf: Avoid copying the buffer in more circumstances 2010-07-22 20:13:37 +01:00
cogl-bitmap-private.h Add an internal _cogl_bitmap_new_from_buffer 2010-07-15 17:27:15 +01:00
cogl-bitmap.c cogl: don't include cogl-debug.h in cogl.h or install 2010-08-02 17:41:42 +01:00
cogl-bitmap.h Make a public CoglBitmapError enum 2010-07-13 14:28:45 +01:00
cogl-bitmask.c cogl: Add an internal CoglBitmask type 2010-05-24 16:10:56 +01:00
cogl-bitmask.h cogl: Add an internal CoglBitmask type 2010-05-24 16:10:56 +01:00
cogl-blend-string.c blend-strings: removes the AUTO_COMPOSITE function enum 2010-06-15 15:26:27 +01: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: Move malloc fallback logic into CoglBuffer 2010-07-07 14:08:11 +01:00
cogl-buffer.c cogl-buffer: Move malloc fallback logic into CoglBuffer 2010-07-07 14:08:11 +01:00
cogl-buffer.h Enumeration value should be on the same line 2010-09-15 11:56:59 +01: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 Don't define public cogl_is_* functions for internal types 2010-07-09 18:57:54 +01:00
cogl-clip-stack.h clip_stack: Remove use of CoglHandle in the CoglClipStack API 2010-06-01 12:20:59 +01:00
cogl-clip-state.c framebuffer: Replace CoglHandle with CoglFramebuffer * 2010-07-07 14:41:54 +01:00
cogl-clip-state.h cogl: Implement retained clip stacks 2010-04-15 14:51:01 +01:00
cogl-color-private.h cogl-color: add private _cogl_color_get_rgba_4ubv API 2010-06-15 15:26:27 +01: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 Initialize the cogl uprof state in cogl_create_context 2010-09-14 12:43:17 +01:00
cogl-context.h cogl-atlas-texture: Split out the atlas data structure 2010-08-12 11:56:59 +01:00
cogl-debug-options.h profile: Update to uprof-0.3 dep for --enable-profile 2010-09-14 12:43:16 +01:00
cogl-debug.c profile: Update to uprof-0.3 dep for --enable-profile 2010-09-14 12:43:16 +01:00
cogl-debug.h profile: Update to uprof-0.3 dep for --enable-profile 2010-09-14 12:43:16 +01: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 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-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 Remove mentions of the FSF address 2010-03-01 12:56:10 +00:00
cogl-fixed.h analysis: Fix some CoglFixed API 2010-06-01 12:08:18 +01:00
cogl-framebuffer-private.h framebuffer: Replace CoglHandle with CoglFramebuffer * 2010-07-07 14:41:54 +01:00
cogl-framebuffer.c cogl-framebuffer: fix leak when popping framebuffer 2010-09-14 14:19:39 +01:00
cogl-handle.h CoglObject: Adds cogl_object_{get,set}_user_data 2010-06-04 14:44:15 +01:00
cogl-internal.h cogl: Adds a COGL_FEATURE_SHADERS_ARBFP feature flag 2010-08-09 17:27:02 +01:00
cogl-journal-private.h cogl: remove _cogl_material_flush_gl_state flush options 2010-06-15 15:26:27 +01:00
cogl-journal.c journal: provide more detailed uprof instrumentation 2010-09-14 12:43:17 +01:00
cogl-material-arbfp-private.h material: don't declare backend vtables in headers 2010-09-15 14:07:50 +01:00
cogl-material-arbfp.c material-arbfp: Another pass at simplifying the code 2010-09-15 14:07:50 +01:00
cogl-material-fixed-private.h material: don't declare backend vtables in headers 2010-09-15 14:07:50 +01:00
cogl-material-fixed.c material: don't declare backend vtables in headers 2010-09-15 14:07:50 +01:00
cogl-material-glsl-private.h material: don't declare backend vtables in headers 2010-09-15 14:07:50 +01:00
cogl-material-glsl.c material: don't declare backend vtables in headers 2010-09-15 14:07:50 +01:00
cogl-material-opengl-private.h cogl-program: gles2: bind programs lazily as for GL 2010-08-03 15:00:07 +01:00
cogl-material-opengl.c material: Adds experimental cogl_material_foreach_layer API 2010-09-15 14:07:50 +01:00
cogl-material-private.h material: Adds experimental cogl_material_foreach_layer API 2010-09-15 14:07:50 +01:00
cogl-material.c material: Adds experimental cogl_material_foreach_layer API 2010-09-15 14:07:50 +01:00
cogl-material.h material: Adds experimental cogl_material_foreach_layer API 2010-09-15 14:07:50 +01: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 Remove mentions of the FSF address 2010-03-01 12:56:10 +00:00
cogl-matrix-stack.h Remove mentions of the FSF address 2010-03-01 12:56:10 +00:00
cogl-matrix.c cogl: don't include cogl-debug.h in cogl.h or install 2010-08-02 17:41:42 +01:00
cogl-matrix.h docs: Fixes for gtk-doc 2010-09-03 16:12:24 +01:00
cogl-object-private.h Don't define public cogl_is_* functions for internal types 2010-07-09 18:57:54 +01:00
cogl-object.c CoglObject: Adds cogl_object_{get,set}_user_data 2010-06-04 14:44:15 +01:00
cogl-object.h CoglObject: Adds a COGL_OBJECT macro for casting 2010-06-04 14:44:15 +01:00
cogl-offscreen.h Add some more introspection annotations 2010-09-06 16:11:46 +01:00
cogl-path-private.h cogl-path: Allow changing the fill rule 2010-06-29 20:37:14 +01:00
cogl-path.c material: splits out all the state flushing code 2010-07-13 19:26:58 +01:00
cogl-path.h cogl-path: Allow changing the fill rule 2010-06-29 20:37:14 +01:00
cogl-pixel-array-private.h cogl-buffer: Track the last used bind target in CoglBuffer 2010-07-07 14:08:11 +01:00
cogl-pixel-array.c cogl-buffer: Move malloc fallback logic into CoglBuffer 2010-07-07 14:08:11 +01: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-primitives.c cogl: don't include cogl-debug.h in cogl.h or install 2010-08-02 17:41:42 +01:00
cogl-primitives.h Use begin/end macros in cogl-primitives.h 2010-03-25 09:33:26 +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-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-private.h cogl: Allow setting ARBfp source on a CoglShader 2010-08-09 17:27:02 +01:00
cogl-shader.c cogl-shader: get_info_log should always use strdup 2010-08-12 16:50:47 +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 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 Rename the third texure coordinate from 'r' to 'p' 2010-07-13 14:29:07 +01:00
cogl-texture-2d-private.h cogl-bitmap: Encapsulate the CoglBitmap even internally 2010-07-15 17:24:01 +01:00
cogl-texture-2d-sliced-private.h cogl-bitmap: Encapsulate the CoglBitmap even internally 2010-07-15 17:24:01 +01:00
cogl-texture-2d-sliced.c cogl: don't include cogl-debug.h in cogl.h or install 2010-08-02 17:41:42 +01:00
cogl-texture-2d.c cogl-bitmap: Encapsulate the CoglBitmap even internally 2010-07-15 17:24:01 +01:00
cogl-texture-3d-private.h cogl-bitmap: Encapsulate the CoglBitmap even internally 2010-07-15 17:24:01 +01:00
cogl-texture-3d.c profile: Update to uprof-0.3 dep for --enable-profile 2010-09-14 12:43:16 +01: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-bitmap: Encapsulate the CoglBitmap even internally 2010-07-15 17:24:01 +01:00
cogl-texture-rectangle-private.h cogl-bitmap: Encapsulate the CoglBitmap even internally 2010-07-15 17:24:01 +01:00
cogl-texture-rectangle.c cogl-bitmap: Encapsulate the CoglBitmap even internally 2010-07-15 17:24:01 +01:00
cogl-texture.c Add an internal _cogl_bitmap_new_from_buffer 2010-07-15 17:27:15 +01:00
cogl-texture.h Remove mentions of the FSF address 2010-03-01 12:56:10 +00:00
cogl-types.h Remove trailin enum commas, avoiding C++ warnings. 2010-09-13 15:45:55 +01:00
cogl-util.c CoglObject: Adds cogl_object_{get,set}_user_data 2010-06-04 14:44:15 +01:00
cogl-util.h Move _cogl_texture_2d_is_pot to cogl-util.h 2010-07-13 14:28:35 +01: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-buffer-private.h Remove mentions of the FSF address 2010-03-01 12:56:10 +00:00
cogl-vertex-buffer.c cogl-vertex-buffer: Flush the framebuffer state first 2010-09-09 12:19:53 +01:00
cogl-vertex-buffer.h Remove trailin enum commas, avoiding C++ warnings. 2010-09-13 15:45:55 +01:00
cogl.c Replace cogl_color_set_from_* with cogl_color_init_from_* 2010-09-03 16:58:47 +01:00
cogl.h cogl: don't include cogl-debug.h in cogl.h or install 2010-08-02 17:41:42 +01: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 build: Add tesselator to the include paths 2010-09-13 11:31:46 +01:00
stb_image.c Update stb_image.c 2010-03-03 17:02:51 +00:00