Add min and max blend modes.

TRAC #22836 Signed-off-by: Geoff Lang Signed-off-by: Nicolas Capens Author: Jamie Madill git-svn-id: https://angleproject.googlecode.com/svn/branches/es3proto@2120 736b8ea6-26fd-11df-bfd4-992fa37f6226
parent a8885866
...@@ -559,12 +559,23 @@ void __stdcall glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha) ...@@ -559,12 +559,23 @@ void __stdcall glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha)
try try
{ {
gl::Context *context = gl::getNonLostContext();
switch (modeRGB) switch (modeRGB)
{ {
case GL_FUNC_ADD: case GL_FUNC_ADD:
case GL_FUNC_SUBTRACT: case GL_FUNC_SUBTRACT:
case GL_FUNC_REVERSE_SUBTRACT: case GL_FUNC_REVERSE_SUBTRACT:
break; break;
case GL_MIN:
case GL_MAX:
if (context && context->getClientVersion() < 3)
{
return gl::error(GL_INVALID_ENUM);
}
break;
default: default:
return gl::error(GL_INVALID_ENUM); return gl::error(GL_INVALID_ENUM);
} }
...@@ -575,12 +586,19 @@ void __stdcall glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha) ...@@ -575,12 +586,19 @@ void __stdcall glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha)
case GL_FUNC_SUBTRACT: case GL_FUNC_SUBTRACT:
case GL_FUNC_REVERSE_SUBTRACT: case GL_FUNC_REVERSE_SUBTRACT:
break; break;
case GL_MIN:
case GL_MAX:
if (context && context->getClientVersion() < 3)
{
return gl::error(GL_INVALID_ENUM);
}
break;
default: default:
return gl::error(GL_INVALID_ENUM); return gl::error(GL_INVALID_ENUM);
} }
gl::Context *context = gl::getNonLostContext();
if (context) if (context)
{ {
context->setBlendEquation(modeRGB, modeAlpha); context->setBlendEquation(modeRGB, modeAlpha);
......
...@@ -51,6 +51,8 @@ D3D11_BLEND_OP ConvertBlendOp(GLenum glBlendOp) ...@@ -51,6 +51,8 @@ D3D11_BLEND_OP ConvertBlendOp(GLenum glBlendOp)
case GL_FUNC_ADD: d3dBlendOp = D3D11_BLEND_OP_ADD; break; case GL_FUNC_ADD: d3dBlendOp = D3D11_BLEND_OP_ADD; break;
case GL_FUNC_SUBTRACT: d3dBlendOp = D3D11_BLEND_OP_SUBTRACT; break; case GL_FUNC_SUBTRACT: d3dBlendOp = D3D11_BLEND_OP_SUBTRACT; break;
case GL_FUNC_REVERSE_SUBTRACT: d3dBlendOp = D3D11_BLEND_OP_REV_SUBTRACT; break; case GL_FUNC_REVERSE_SUBTRACT: d3dBlendOp = D3D11_BLEND_OP_REV_SUBTRACT; break;
case GL_MIN: d3dBlendOp = D3D11_BLEND_OP_MIN; break;
case GL_MAX: d3dBlendOp = D3D11_BLEND_OP_MAX; break;
default: UNREACHABLE(); default: UNREACHABLE();
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment