c3448314d5
Many operations, like mixing two textures together or alpha-blending onto a destination with alpha, are done most logically if texture data is in premultiplied form. We also have many sources of premultiplied texture data, like X pixmaps, FBOs, cairo surfaces. Rather than trying to work with two different types of texture data, simplify things by always premultiplying texture data before uploading to GL. Because the default blend function is changed to accommodate this, uses of pure-color CoglMaterial need to be adapted to add premultiplication. gl/cogl-texture.c gles/cogl-texture.c: Always premultiply non-premultiplied texture data before uploading to GL. cogl-material.c cogl-material.h: Switch the default blend functions to ONE, ONE_MINUS_SRC_ALPHA so they work correctly with premultiplied data. cogl.c: Make cogl_set_source_color() premultiply the color. cogl.h.in color-material.h: Add some documentation about premultiplication and its interaction with color values. cogl-pango-render.c clutter-texture.c tests/interactive/test-cogl-offscreen.c: Use premultiplied colors. http://bugzilla.openedhand.com/show_bug.cgi?id=1406 Signed-off-by: Robert Bragg <robert@linux.intel.com> |
||
---|---|---|
.. | ||
cogl-bitmap-fallback.c | ||
cogl-bitmap-pixbuf.c | ||
cogl-bitmap-private.h | ||
cogl-bitmap.c | ||
cogl-blend-string.c | ||
cogl-blend-string.h | ||
cogl-clip-stack.c | ||
cogl-clip-stack.h | ||
cogl-color.c | ||
cogl-current-matrix.c | ||
cogl-current-matrix.h | ||
cogl-debug.c | ||
cogl-enum-types.c.in | ||
cogl-enum-types.h.in | ||
cogl-fixed.c | ||
cogl-handle.h | ||
cogl-internal.h | ||
cogl-material-private.h | ||
cogl-material.c | ||
cogl-matrix-stack.c | ||
cogl-matrix-stack.h | ||
cogl-matrix.c | ||
cogl-primitives.c | ||
cogl-primitives.h | ||
cogl-util.c | ||
cogl-util.h | ||
cogl-vertex-buffer-private.h | ||
cogl-vertex-buffer.c | ||
cogl.c | ||
Makefile.am | ||
stb_image.c |