mutter/clutter
Owen W. Taylor c3448314d5 Default to a blend function that expects premultiplied colors
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>
2009-06-11 14:17:52 +01:00
..
cogl Default to a blend function that expects premultiplied colors 2009-06-11 14:17:52 +01:00
eglnative [docs] Various gtk-docs fixes 2009-06-09 14:47:36 +01:00
eglx [docs] Various gtk-docs fixes 2009-06-09 14:47:36 +01:00
fruity Remove unnecessary setting of CLUTTER_ACTOR_REALIZED flag 2009-06-08 11:07:33 +01:00
glx Use correct texture format for pixmap textures and FBO's 2009-06-11 14:17:51 +01:00
json [json] Update the internal JSON-GLib copy 2009-06-09 14:07:22 +01:00
osx Remove unnecessary setting of CLUTTER_ACTOR_REALIZED flag 2009-06-08 11:07:33 +01:00
pango Default to a blend function that expects premultiplied colors 2009-06-11 14:17:52 +01:00
sdl [stage] Rename :fullscreen to :fullscreen-set 2009-06-09 14:07:35 +01:00
win32 Remove unnecessary setting of CLUTTER_ACTOR_REALIZED flag 2009-06-08 11:07:33 +01:00
x11 Use correct texture format for pixmap textures and FBO's 2009-06-11 14:17:51 +01:00
clutter-actor.c Be more tolerant about natural_width < min_width 2009-06-08 11:07:13 +01:00
clutter-actor.h [actor] Use flags to control allocations 2009-06-04 16:30:31 +01:00
clutter-alpha.c [timeline] Remove the concept of frames from timelines 2009-06-04 13:21:57 +01:00
clutter-alpha.h
clutter-animatable.c [animatable] Allow validation in ::animate_property 2009-05-27 13:01:31 +01:00
clutter-animatable.h [animatable] Allow validation in ::animate_property 2009-05-27 13:01:31 +01:00
clutter-animation.c [animation] Keep a reference during notify::alpha 2009-06-08 14:42:22 +01:00
clutter-animation.h [animation] Remove InitiallyUnowned from Animation 2009-05-14 16:12:36 +01:00
clutter-backend.c Remove usage of Units and macros 2009-06-04 16:30:30 +01:00
clutter-backend.h [backend] Abstract the GL context creation 2009-05-13 22:21:48 +01:00
clutter-behaviour-depth.c
clutter-behaviour-depth.h [docs] Bring down the undocumented symbols to 2% 2009-03-16 15:00:55 +00:00
clutter-behaviour-ellipse.c [docs] Remove ClutterFixed from the documentation 2009-03-10 12:38:04 +00:00
clutter-behaviour-ellipse.h Move ClutterBehaviourEllipse to CoglFixed 2009-03-10 12:38:03 +00:00
clutter-behaviour-opacity.c
clutter-behaviour-opacity.h [docs] Bring down the undocumented symbols to 2% 2009-03-16 15:00:55 +00:00
clutter-behaviour-path.c
clutter-behaviour-path.h [docs] Bring down the undocumented symbols to 2% 2009-03-16 15:00:55 +00:00
clutter-behaviour-rotate.c Move ClutterBehaviourRotate to CoglFixed 2009-03-10 12:38:03 +00:00
clutter-behaviour-rotate.h Move ClutterBehaviourRotate to CoglFixed 2009-03-10 12:38:03 +00:00
clutter-behaviour-scale.c Move BehaviourScale to CoglFixed 2009-03-10 12:38:03 +00:00
clutter-behaviour-scale.h Move BehaviourScale to CoglFixed 2009-03-10 12:38:03 +00:00
clutter-behaviour.c Remove Units from the public API 2009-05-06 16:44:47 +01:00
clutter-behaviour.h
clutter-bezier.c
clutter-bezier.h
clutter-binding-pool.c
clutter-binding-pool.h
clutter-cairo-texture.c Merge commit 'origin/master' into 1.0-integration 2009-05-20 16:49:22 +01:00
clutter-cairo-texture.h [cairo-texture] Document redrawing behavior 2009-05-14 15:53:59 +01:00
clutter-child-meta.c
clutter-child-meta.h [docs] Bring down the undocumented symbols to 2% 2009-03-16 15:00:55 +00:00
clutter-clone.c [actor] Use flags to control allocations 2009-06-04 16:30:31 +01:00
clutter-clone.h [docs] Bring down the undocumented symbols to 2% 2009-03-16 15:00:55 +00:00
clutter-color.c [color] Add support for the "#rgba" color format 2009-06-01 18:42:28 +01:00
clutter-color.h Clean up of the ClutterColor API 2009-03-10 12:38:02 +00:00
clutter-container.c Add ClutterContainer::foreach_with_internals() 2009-04-24 15:25:08 +01:00
clutter-container.h [docs] Fixes for the API reference 2009-05-28 17:18:13 +01:00
clutter-debug.h Add debug annotations for the layout process 2009-04-15 17:25:50 +01:00
clutter-deprecated.h [stage] Rename fullscreen methods 2009-06-09 14:07:35 +01:00
clutter-enum-types.c.in Use g_once when registering enumeration types 2009-05-29 12:40:23 +01:00
clutter-enum-types.h.in
clutter-event.c [docs] Various gtk-docs fixes 2009-06-09 14:47:36 +01:00
clutter-event.h introspection-friendly ClutterEvent accessors 2009-06-08 12:05:20 +01:00
clutter-feature.c
clutter-feature.h
clutter-fixed.c [docs] Remove ClutterFixed from the documentation 2009-03-10 12:38:04 +00:00
clutter-fixed.h [fixed] Remove ClutterFixed API 2009-03-10 12:38:04 +00:00
clutter-frame-source.c Count timeline frames using the FPS instead of an integer interval 2009-03-16 15:40:18 +00:00
clutter-frame-source.h Count timeline frames using the FPS instead of an integer interval 2009-03-16 15:40:18 +00:00
clutter-group.c Use double temporaries when computing group size 2009-06-08 11:07:05 +01:00
clutter-group.h [group] avoid double evaluation of arguments in clutter_group_add 2009-04-08 18:19:46 +01:00
clutter-id-pool.c
clutter-id-pool.h
clutter-interval.c Remove usage of Units and macros 2009-06-04 16:30:30 +01:00
clutter-interval.h
clutter-json.h.in
clutter-keysyms-table.h
clutter-keysyms.h
clutter-list-model.c Fix chain-up in clutter_list_model_dispose() 2009-05-12 16:31:41 +01:00
clutter-list-model.h
clutter-main.c [repaint] Run the repaint functions in clutter_redraw() 2009-06-05 17:57:05 +01:00
clutter-main.h [docs] Fixes for the API reference 2009-05-28 17:18:13 +01:00
clutter-marshal.list [actor] Add the ::allocation-changed signal 2009-06-04 16:30:31 +01:00
clutter-master-clock.c Revert commit 762873e7 2009-06-03 14:05:05 +01:00
clutter-master-clock.h Use a single master "clock" to drive timelines 2009-04-24 15:28:15 +01:00
clutter-media.c
clutter-media.h [docs] Bring down the undocumented symbols to 2% 2009-03-16 15:00:55 +00:00
clutter-model-private.h [model] Add a private row mutator to ClutterModelIter 2009-05-05 20:18:28 +01:00
clutter-model.c [model] Add a private row mutator to ClutterModelIter 2009-05-05 20:18:28 +01:00
clutter-model.h Add more padding in Model and ModelIter classes 2009-05-20 16:06:09 +01:00
clutter-path.c Prevent a possible zero division 2009-04-16 17:16:31 +01:00
clutter-path.h
clutter-private.h [repaint] Run the repaint functions in clutter_redraw() 2009-06-05 17:57:05 +01:00
clutter-rectangle.c
clutter-rectangle.h [docs] Bring down the undocumented symbols to 2% 2009-03-16 15:00:55 +00:00
clutter-score.c Remove usage of the grave accent as quotation mark 2009-03-17 14:13:31 +00:00
clutter-score.h [docs] Bring down the undocumented symbols to 2% 2009-03-16 15:00:55 +00:00
clutter-script-parser.c
clutter-script-private.h
clutter-script.c [json] Update the internal JSON-GLib copy 2009-06-09 14:07:22 +01:00
clutter-script.h [docs] Bring down the undocumented symbols to 2% 2009-03-16 15:00:55 +00:00
clutter-scriptable.c Intern the ClutterScriptable type name 2009-02-26 14:57:58 +00:00
clutter-scriptable.h
clutter-shader-types.c [cogl] Remove the COGL{enum,int,uint} typedefs 2009-05-12 14:53:44 +01:00
clutter-shader-types.h [cogl] Remove the COGL{enum,int,uint} typedefs 2009-05-12 14:53:44 +01:00
clutter-shader.c [cogl-shader] Make get_info_log() slightly nicer 2009-06-01 17:40:23 +01:00
clutter-shader.h [shader] Remove deprecated set_uniform_1f() 2009-04-03 12:47:21 +01:00
clutter-stage-manager.c [stage manager] Add peek_stages() 2009-05-29 15:13:55 +01:00
clutter-stage-manager.h [stage manager] Add peek_stages() 2009-05-29 15:13:55 +01:00
clutter-stage-window.c
clutter-stage-window.h [x11] Rework map/unmap and resizing 2009-06-04 16:30:32 +01:00
clutter-stage.c [docs] Various gtk-docs fixes 2009-06-09 14:47:36 +01:00
clutter-stage.h [stage] Rename fullscreen methods 2009-06-09 14:07:35 +01:00
clutter-text.c introspection-friendly ClutterEvent accessors 2009-06-08 12:05:20 +01:00
clutter-text.h [text] Expose position_to_coords() 2009-05-14 16:19:15 +01:00
clutter-texture.c Default to a blend function that expects premultiplied colors 2009-06-11 14:17:52 +01:00
clutter-texture.h [cogl] Remove max_waste argument from Texture ctors 2009-05-23 19:35:19 +01:00
clutter-timeline.c [docs] Various gtk-docs fixes 2009-06-09 14:47:36 +01:00
clutter-timeline.h [timeline] Remove the concept of frames from timelines 2009-06-04 13:21:57 +01:00
clutter-timeout-interval.c Count timeline frames using the FPS instead of an integer interval 2009-03-16 15:40:18 +00:00
clutter-timeout-interval.h Count timeline frames using the FPS instead of an integer interval 2009-03-16 15:40:18 +00:00
clutter-timeout-pool.c [docs] Fix naming of the interval parameter 2009-03-16 16:56:51 +00:00
clutter-timeout-pool.h Count timeline frames using the FPS instead of an integer interval 2009-03-16 15:40:18 +00:00
clutter-types.h Remove Units from the public API 2009-05-06 16:44:47 +01:00
clutter-units.c [docs] Various gtk-docs fixes 2009-06-09 14:47:36 +01:00
clutter-units.h [docs] Various gtk-docs fixes 2009-06-09 14:47:36 +01:00
clutter-util.c
clutter-util.h
clutter-version.h.in
clutter.h Add more deprecation notices 2009-03-13 14:29:27 +00:00
Makefile.am [introspection] Add --c-include to g-ir-scanner 2009-06-09 12:45:23 +01:00