summaryrefslogtreecommitdiff
path: root/src/gallium/state_trackers/vega/shaders_cache.h
diff options
context:
space:
mode:
authorChia-I Wu <olv@lunarg.com>2010-12-04 12:03:07 +0800
committerChia-I Wu <olv@lunarg.com>2010-12-04 13:20:38 +0800
commite8ff3931f801dffdfd54832c298351e933688235 (patch)
tree44a830b96b474489bce1b7b02fa3d0008e799a35 /src/gallium/state_trackers/vega/shaders_cache.h
parenta19eaaa6c1956add5343295af7e9f682efa08d74 (diff)
st/vega: Add support for per-channel alpha.
Drawing an image in VG_DRAW_IMAGE_STENCIL mode produces per-channel alpha for use in blending. Add a new shader stage to produce and save it in TEMP[1]. For other modes that do not need per-channel alpha, the stage does MOV TEMP[1], TEMP[0].wwww
Diffstat (limited to 'src/gallium/state_trackers/vega/shaders_cache.h')
-rw-r--r--src/gallium/state_trackers/vega/shaders_cache.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/gallium/state_trackers/vega/shaders_cache.h b/src/gallium/state_trackers/vega/shaders_cache.h
index 008e4f5b94..9265c547ed 100644
--- a/src/gallium/state_trackers/vega/shaders_cache.h
+++ b/src/gallium/state_trackers/vega/shaders_cache.h
@@ -36,6 +36,7 @@ struct shaders_cache;
#define _SHADERS_PAINT_BITS 3
#define _SHADERS_IMAGE_BITS 2
#define _SHADERS_COLOR_TRANSFORM_BITS 1
+#define _SHADERS_ALPHA_BITS 2
#define _SHADERS_BLEND_BITS 3
#define _SHADERS_MASK_BITS 1
#define _SHADERS_PREMULTIPLY_BITS 2
@@ -44,7 +45,8 @@ struct shaders_cache;
#define SHADERS_PAINT_SHIFT (0)
#define SHADERS_IMAGE_SHIFT (SHADERS_PAINT_SHIFT + _SHADERS_PAINT_BITS)
#define SHADERS_COLOR_TRANSFORM_SHIFT (SHADERS_IMAGE_SHIFT + _SHADERS_IMAGE_BITS)
-#define SHADERS_BLEND_SHIFT (SHADERS_COLOR_TRANSFORM_SHIFT + _SHADERS_COLOR_TRANSFORM_BITS)
+#define SHADERS_ALPHA_SHIFT (SHADERS_COLOR_TRANSFORM_SHIFT + _SHADERS_COLOR_TRANSFORM_BITS)
+#define SHADERS_BLEND_SHIFT (SHADERS_ALPHA_SHIFT + _SHADERS_ALPHA_BITS)
#define SHADERS_MASK_SHIFT (SHADERS_BLEND_SHIFT + _SHADERS_BLEND_BITS)
#define SHADERS_PREMULTIPLY_SHIFT (SHADERS_MASK_SHIFT + _SHADERS_MASK_BITS)
#define SHADERS_BW_SHIFT (SHADERS_PREMULTIPLY_SHIFT + _SHADERS_PREMULTIPLY_BITS)
@@ -55,6 +57,7 @@ struct shaders_cache;
#define SHADERS_GET_PAINT_SHADER(id) _SHADERS_GET_STAGE(PAINT, id)
#define SHADERS_GET_IMAGE_SHADER(id) _SHADERS_GET_STAGE(IMAGE, id)
#define SHADERS_GET_COLOR_TRANSFORM_SHADER(id) _SHADERS_GET_STAGE(COLOR_TRANSFORM, id)
+#define SHADERS_GET_ALPHA_SHADER(id) _SHADERS_GET_STAGE(ALPHA, id)
#define SHADERS_GET_BLEND_SHADER(id) _SHADERS_GET_STAGE(BLEND, id)
#define SHADERS_GET_MASK_SHADER(id) _SHADERS_GET_STAGE(MASK, id)
#define SHADERS_GET_PREMULTIPLY_SHADER(id) _SHADERS_GET_STAGE(PREMULTIPLY, id)
@@ -73,6 +76,9 @@ enum VegaShaderType {
VEGA_COLOR_TRANSFORM_SHADER = 1 << SHADERS_COLOR_TRANSFORM_SHIFT,
+ VEGA_ALPHA_NORMAL_SHADER = 1 << SHADERS_ALPHA_SHIFT,
+ VEGA_ALPHA_PER_CHANNEL_SHADER = 2 << SHADERS_ALPHA_SHIFT,
+
VEGA_BLEND_MULTIPLY_SHADER = 1 << SHADERS_BLEND_SHIFT,
VEGA_BLEND_SCREEN_SHADER = 2 << SHADERS_BLEND_SHIFT,
VEGA_BLEND_DARKEN_SHADER = 3 << SHADERS_BLEND_SHIFT,