diff options
author | Dave Airlie <[email protected]> | 2012-03-24 13:33:00 +0000 |
---|---|---|
committer | Dave Airlie <[email protected]> | 2012-04-13 17:18:55 +0100 |
commit | f8cf79936b42405a8366613b80e3bde21aadaa02 (patch) | |
tree | fc77c2e3bc4976c6cd9e99a02fa7c90b70b25744 /src/mesa/main/blend.c | |
parent | a75c6163e605f35b14f26930dd9227e4f337ec9e (diff) |
mesa: add support for ARB_blend_func_extended (v4)
Add implementations of the two API functions,
Add a new strings to uint mapping for index bindings
Add the blending mode validation for SRC1 + SRC_ALPHA_SATURATE
Add get for MAX_DUAL_SOURCE_DRAW_BUFFERS
v2:
Add check in valid_to_render to address case in spec ERRORS.
v3:
Add index to ir.h so this patch compiles on its own
fixup comment
v4: fixup Brian's comments
The GLSL patch will setup the indices.
Signed-off-by: Dave Airlie <[email protected]>
Diffstat (limited to 'src/mesa/main/blend.c')
-rw-r--r-- | src/mesa/main/blend.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/mesa/main/blend.c b/src/mesa/main/blend.c index 09acdf5c588..bc446edcabb 100644 --- a/src/mesa/main/blend.c +++ b/src/mesa/main/blend.c @@ -63,6 +63,11 @@ legal_src_factor(const struct gl_context *ctx, GLenum factor) case GL_CONSTANT_ALPHA: case GL_ONE_MINUS_CONSTANT_ALPHA: return GL_TRUE; + case GL_SRC1_COLOR: + case GL_SRC1_ALPHA: + case GL_ONE_MINUS_SRC1_COLOR: + case GL_ONE_MINUS_SRC1_ALPHA: + return ctx->Extensions.ARB_blend_func_extended; default: return GL_FALSE; } @@ -93,6 +98,12 @@ legal_dst_factor(const struct gl_context *ctx, GLenum factor) case GL_CONSTANT_ALPHA: case GL_ONE_MINUS_CONSTANT_ALPHA: return GL_TRUE; + case GL_SRC_ALPHA_SATURATE: + case GL_SRC1_COLOR: + case GL_SRC1_ALPHA: + case GL_ONE_MINUS_SRC1_COLOR: + case GL_ONE_MINUS_SRC1_ALPHA: + return ctx->Extensions.ARB_blend_func_extended; default: return GL_FALSE; } |