mutter/cogl
Neil Roberts 0b2dc74dbc cogl-texture: Don't use the source rowstride if we have to copy bitmap
If we have to copy the bitmap to do the premultiplication then we were
previously using the rowstride of the source image as the rowstride
for the new image. This is wasteful if the source image is a subregion
of a larger image which would make it use a large rowstride. If we
have to copy the data anyway we might as well compact it to the
smallest rowstride. This also prevents the copy from reading past the
end of the last row of pixels.

An internal function called _cogl_bitmap_copy has been added to do the
copy. It creates a new bitmap with the smallest possible rowstride
rounded up the nearest multiple of 4 bytes. There may be other places
in Cogl that are currently assuming we can read height*rowstride of
the source buffer so they may want to take advantage of this function
too.

http://bugzilla.clutter-project.org/show_bug.cgi?id=2491
2011-01-10 16:54:58 +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 cogl-texture: Don't use the source rowstride if we have to copy bitmap 2011-01-10 16:54:58 +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 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 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 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 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 cogl-pipeline-fragend-arbfp: Generate ARBfp if user vertex shader 2010-12-14 13:12:28 +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 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 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 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 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 docs: Fixes for the Cogl API reference 2010-12-22 09:52:35 +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 cogl-vertex-attribute: Fix the name of the cogl_normal_in attribute 2011-01-10 14:29:25 +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 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