mutter/cogl
Neil Roberts 9aea72fab5 Allow multiple CoglAtlases for textures
Previously Cogl would only ever use one atlas for textures and if it
reached the maximum texture size then all other new textures would get
their own GL texture. This patch makes it so that we create as many
atlases as needed. This should avoid breaking up some batches and it
will be particularly good if we switch to always using multi-texturing
with a default shader that selects between multiple atlases using a
vertex attribute.

Whenever a new atlas is created it is stored in a GSList on the
context. A weak weference is taken on the atlas using
cogl_object_set_user_data so that it can be removed from the list when
the atlas is destroyed. The atlas textures themselves take a reference
to the atlas and this is the only thing that keeps the atlas
alive. This means that once the atlas becomes empty it will
automatically be destroyed.

All of the COGL_NOTEs pertaining to atlases are now prefixed with the
atlas pointer to make it clearer which atlas is changing.
2010-12-13 18:59:41 +00:00
..
driver Remove the GLES2 wrapper 2010-12-13 17:29:14 +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 cogl2-path: Don't flush the enable flags 2010-12-13 17:29:14 +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 Allow multiple CoglAtlases for textures 2010-12-13 18:59:41 +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-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 buffer: make _bind() return base pointer 2010-11-03 17:28:45 +00:00
cogl-bitmap.h Make a public CoglBitmapError enum 2010-07-13 14:28:45 +01: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 cogl-buffer: Use void* instead of guint8* for map and set_data 2010-11-04 18:04:03 +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 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: 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 cogl: Adds experimental CoglIndexArray type 2010-11-03 18:04:00 +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 pipeline: generalize _cogl_pipeline_equal 2010-12-07 16:00:32 +00:00
cogl-material-compat.c cogl: rename CoglMaterial -> CoglPipeline 2010-11-03 18:09:23 +00:00
cogl-material-compat.h cogl: rename CoglMaterial -> CoglPipeline 2010-11-03 18:09:23 +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 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: 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 path 2.0: update path API for experimental 2.0 API 2010-11-11 13:17:26 +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 Remove the GLES2 wrapper 2010-12-13 17:29:14 +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: Add a vertend to generate GLSL 2010-12-13 17:28:28 +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 Remove the GLES2 wrapper 2010-12-13 17:29:14 +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 Remove the GLES2 wrapper 2010-12-13 17:29:14 +00:00
cogl-pipeline-private.h cogl-pipeline: Use enums for the layer combine values 2010-12-13 17:29:14 +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 Remove the GLES2 wrapper 2010-12-13 17:29:14 +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 Remove the GLES2 wrapper 2010-12-13 17:29:14 +00:00
cogl-pipeline.c cogl-pipeline: Use enums for the layer combine values 2010-12-13 17:29:14 +00:00
cogl-pipeline.h cogl-pipeline: Add getters for the alpha test state 2010-11-24 18:06:44 +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 primitives: avoid leaking polygon override materials 2010-11-26 14:33:50 +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 Use FBOs and use cogl_read_pixels() to efficiently read partial textures 2010-11-24 15:56:35 +00:00
cogl-texture.h Remove mentions of the FSF address 2010-03-01 12:56:10 +00:00
cogl-types.h cogl: rename CoglMaterial -> CoglPipeline 2010-11-03 18:09:23 +00:00
cogl-util.c pipeline: Implements _cogl_pipeline_hash function 2010-12-07 16:00:32 +00:00
cogl-util.h pipeline: Implements _cogl_pipeline_hash function 2010-12-07 16:00:32 +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 vertex-array: Adds data arg for _vertex_array_new() 2010-11-19 13:27:30 +00:00
cogl-vertex-attribute-private.h cogl-vertex-attribute: Use glVertexAttribPointer on GLES2 2010-12-13 17:28:29 +00:00
cogl-vertex-attribute.c Remove the GLES2 wrapper 2010-12-13 17:29:14 +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 Move IndicesType and VerticesMode typedefs to cogl-types.h 2010-10-26 17:25:33 +01: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 Intial Re-layout of the Cogl source code and introduction of a Cogl Winsys 2009-10-16 18:58:50 +01:00
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