mutter/cogl
Neil Roberts 8f8b05f0e5 cogl-atlas-texture: Don't let textures be destroyed during migration
If an atlas texture's last reference is held by the journal or by the
last flushed pipeline then if an atlas migration is started it can
cause a crash. This is because the atlas migration will cause a
journal flush and can sometimes change the current pipeline which
means that the texture would be destroyed during migration.

This patch adds an extra 'post_reorganize' callback to the existing
'reorganize' callback (which is now renamed to 'pre_reorganize'). The
pre_reorganize callback is now called before the atlas grabs a list of
the current textures instead of after so that it doesn't matter if the
journal flush destroys some of those textures. The pre_reorganize
callback for CoglAtlasTexture grabs a reference to all of the textures
so that they can not be destroyed when the migration changes the
pipeline. In the post_reorganize callback the reference is removed
again.

http://bugzilla.clutter-project.org/show_bug.cgi?id=2538
2011-02-17 13:39:30 +00:00
..
driver cogl-gles: Check for the GL_ANGLE_framebuffer_blit extension 2011-02-15 12:10:54 +00:00
tesselator build: Do not build a noinst library for the tesselator 2010-09-12 19:25:47 +01:00
winsys cogl: call _cogl_texture_init for x11 tfp 2011-01-21 18:58:58 +00:00
cogl2-path.c cogl-framebuffer: Separate the draw and read buffer 2011-02-15 12:10:54 +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 let textures be destroyed during migration 2011-02-17 13:39:30 +00:00
cogl-atlas.c cogl-atlas-texture: Don't let textures be destroyed during migration 2011-02-17 13:39:30 +00:00
cogl-atlas.h cogl-atlas-texture: Don't let textures be destroyed during migration 2011-02-17 13:39:30 +00:00
cogl-attribute-private.h cogl: rename CoglVertexAttribute CoglAttribute 2011-01-21 16:24:14 +00:00
cogl-attribute.c cogl: Avoid pointer arithmetic on void* pointers 2011-02-15 14:26:17 +00:00
cogl-attribute.h cogl: rename CoglVertexAttribute CoglAttribute 2011-01-21 16:24:14 +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 Fix ISO C90 compiler warnings in Cogl 2011-02-15 12:40:11 +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 Fix ISO C90 compiler warnings in Cogl 2011-02-15 12:40:11 +00:00
cogl-blend-string.h blend-strings: removes the AUTO_COMPOSITE function enum 2010-06-15 15:26:27 +01:00
cogl-blit.c cogl-atlas: Try 4 different approaches for migrating textures 2011-02-15 12:10:54 +00: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 cogl: Fallback to set_data when mapping a buffer to fill it 2011-01-13 16:36:32 +00:00
cogl-buffer.c cogl-buffer: Support mapping buffers for write on GLES 2011-01-13 16:36:45 +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 cogl-framebuffer: Separate the draw and read buffer 2011-02-15 12:10:54 +00: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.c cogl-framebuffer: Separate the draw and read buffer 2011-02-15 12:10:54 +00:00
cogl-clip-state.h clip: rename get_clip_stack + add framebuffer_get_stack 2011-01-21 16:18:10 +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 cogl-atlas: Try 4 different approaches for migrating textures 2011-02-15 12:10:54 +00:00
cogl-context.h cogl-atlas: Try 4 different approaches for migrating textures 2011-02-15 12:10:54 +00:00
cogl-debug-options.h cogl-debug: Add a debug option for tracing clipping 2011-01-24 17:39:48 +00:00
cogl-debug.c cogl-debug: Don't define _cogl_debug_flags when debugging disabled 2011-02-15 14:26:17 +00:00
cogl-debug.h cogl-debug: Add a debug option for tracing clipping 2011-01-24 17:39:48 +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 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 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: Add _cogl_blit_framebuffer 2011-02-15 12:10:54 +00:00
cogl-framebuffer.c cogl-framebuffer: Add _cogl_blit_framebuffer 2011-02-15 12:10:54 +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: rename CoglVertexAttribute CoglAttribute 2011-01-21 16:24:14 +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: Implements a software only read-pixel fast-path 2011-01-21 16:18:11 +00:00
cogl-journal.c cogl: Avoid pointer arithmetic on void* pointers 2011-02-15 14:26:17 +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 cogl-debug: Split the flags to support more than 32 2011-01-24 15:45:45 +00:00
cogl-matrix-stack.c cogl-framebuffer: Separate the draw and read buffer 2011-02-15 12:10:54 +00:00
cogl-matrix-stack.h cogl: upload matrices with uniforms on GLES2 2010-12-13 17:29:13 +00:00
cogl-matrix.c cogl-matrix: Get rid of the *_packed variants 2011-02-01 13:18:43 +00:00
cogl-matrix.h matrix: note that _matrix_multiply can multiply in-place 2011-02-09 17:21:48 +00:00
cogl-object-private.h cogl-object: Adds an internal _cogl_object_set_user_data 2011-01-21 16:18:10 +00:00
cogl-object.c cogl-object: Adds an internal _cogl_object_set_user_data 2011-01-21 16:18:10 +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: rename CoglVertexAttribute CoglAttribute 2011-01-21 16:24:14 +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 cogl-debug: Split the flags to support more than 32 2011-01-24 15:45:45 +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 cogl-debug: Split the flags to support more than 32 2011-01-24 15:45:45 +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 cogl-pipeline: Flush the lighting params in common code not vertend 2011-01-24 12:09:11 +00:00
cogl-pipeline-private.h journal: Support per-framebuffer journals 2011-01-21 16:18:10 +00:00
cogl-pipeline-progend-glsl-private.h cogl: rename CoglVertexAttribute CoglAttribute 2011-01-21 16:24:14 +00:00
cogl-pipeline-progend-glsl.c cogl-pipeline-progend-glsl: Generalize updating GLES2 uniforms 2011-01-24 12:09:11 +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: Set the layer matrix on the right layer instead of a random one 2011-02-09 16:14:13 +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 cogl: Set the layer matrix on the right layer instead of a random one 2011-02-09 16:14:13 +00:00
cogl-pipeline.c cogl-pipeline: Fix comparing the color in set_layer_combine_constant 2011-02-01 17:50:10 +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-point-in-poly-private.h cogl: Adds _cogl_util_point_in_polygon API 2011-01-21 16:18:11 +00:00
cogl-point-in-poly.c cogl: Adds _cogl_util_point_in_polygon API 2011-01-21 16:18:11 +00:00
cogl-primitive-private.h primitive: adds immutable ref/unref mechanism 2010-11-03 18:04:31 +00:00
cogl-primitive.c cogl: rename CoglVertexAttribute CoglAttribute 2011-01-21 16:24:14 +00:00
cogl-primitive.h cogl: rename CoglVertexAttribute CoglAttribute 2011-01-21 16:24:14 +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-framebuffer: Separate the draw and read buffer 2011-02-15 12:10:54 +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 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 cogl-program: Don't use separate definitions on GLES 1.1 2011-01-17 12:56:58 +00:00
cogl-rectangle-map.c cogl-debug: Split the flags to support more than 32 2011-01-24 15:45:45 +00: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: Move the uniforms to the common code 2011-01-24 12:09:11 +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-debug: Split the flags to support more than 32 2011-01-24 15:45:45 +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 journal: Support per-framebuffer journals 2011-01-21 16:18:10 +00:00
cogl-texture-2d-private.h cogl-texture-2d: Add _cogl_is_texture_2d to the private header 2011-02-15 12:10:54 +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 journal: Support per-framebuffer journals 2011-01-21 16:18:10 +00:00
cogl-texture-2d.c cogl-texture-2d: Add an internal wrapper around glCopyTexSubImage2D 2011-02-15 12:10:54 +00:00
cogl-texture-3d-private.h cogl: rename CoglMaterial -> CoglPipeline 2010-11-03 18:09:23 +00:00
cogl-texture-3d.c journal: Support per-framebuffer journals 2011-01-21 16:18:10 +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 journal: Support per-framebuffer journals 2011-01-21 16:18:10 +00:00
cogl-texture-rectangle-private.h cogl: rename CoglMaterial -> CoglPipeline 2010-11-03 18:09:23 +00:00
cogl-texture-rectangle.c journal: Support per-framebuffer journals 2011-01-21 16:18:10 +00:00
cogl-texture.c cogl-framebuffer: Separate the draw and read buffer 2011-02-15 12:10:54 +00:00
cogl-texture.h Remove mentions of the FSF address 2010-03-01 12:56:10 +00:00
cogl-types.h cogl: rename CoglVertexAttribute CoglAttribute 2011-01-21 16:24:14 +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-buffer-private.h cogl: rename CoglVertexAttribute CoglAttribute 2011-01-21 16:24:14 +00:00
cogl-vertex-buffer.c cogl-vertex-buffer: Use a ref count on the pipeline private data 2011-02-01 18:47:05 +00:00
cogl-vertex-buffer.h docs: clarify cogl_vertex_buffer_adds docs 2011-02-09 19:12:12 +00:00
cogl.c cogl-framebuffer: Separate the draw and read buffer 2011-02-15 12:10:54 +00:00
cogl.h cogl: rename CoglVertexAttribute CoglAttribute 2011-01-21 16:24:14 +00: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 cogl-atlas: Try 4 different approaches for migrating textures 2011-02-15 12:10:54 +00:00
stb_image.c Update stb_image.c 2010-03-03 17:02:51 +00:00