Added utility functions for gl to D3D11 depth stencil states.

TRAC #22044 Signed-off-by: Nicolas Capens Signed-off-by: Daniel Koch Author: Geoff Lang git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1437 736b8ea6-26fd-11df-bfd4-992fa37f6226
parent dcf1e676
...@@ -100,6 +100,55 @@ D3D11_CULL_MODE ConvertCullMode(bool cullEnabled, GLenum cullMode) ...@@ -100,6 +100,55 @@ D3D11_CULL_MODE ConvertCullMode(bool cullEnabled, GLenum cullMode)
return cull; return cull;
} }
D3D11_COMPARISON_FUNC ConvertComparison(GLenum comparison)
{
D3D11_COMPARISON_FUNC d3dComp = D3D11_COMPARISON_NEVER;
switch (comparison)
{
case GL_NEVER: d3dComp = D3D11_COMPARISON_NEVER; break;
case GL_ALWAYS: d3dComp = D3D11_COMPARISON_ALWAYS; break;
case GL_LESS: d3dComp = D3D11_COMPARISON_LESS; break;
case GL_LEQUAL: d3dComp = D3D11_COMPARISON_LESS_EQUAL; break;
case GL_EQUAL: d3dComp = D3D11_COMPARISON_EQUAL; break;
case GL_GREATER: d3dComp = D3D11_COMPARISON_GREATER; break;
case GL_GEQUAL: d3dComp = D3D11_COMPARISON_GREATER_EQUAL; break;
case GL_NOTEQUAL: d3dComp = D3D11_COMPARISON_NOT_EQUAL; break;
default: UNREACHABLE();
}
return d3dComp;
}
D3D11_DEPTH_WRITE_MASK ConvertDepthMask(bool depthWriteEnabled)
{
return depthWriteEnabled ? D3D11_DEPTH_WRITE_MASK_ALL : D3D11_DEPTH_WRITE_MASK_ZERO;
}
UINT8 ConvertStencilMask(GLuint stencilmask)
{
return static_cast<UINT8>(stencilmask);
}
D3D11_STENCIL_OP ConvertStencilOp(GLenum stencilOp)
{
D3D11_STENCIL_OP d3dStencilOp = D3D11_STENCIL_OP_KEEP;
switch (stencilOp)
{
case GL_ZERO: d3dStencilOp = D3D11_STENCIL_OP_ZERO; break;
case GL_KEEP: d3dStencilOp = D3D11_STENCIL_OP_KEEP; break;
case GL_REPLACE: d3dStencilOp = D3D11_STENCIL_OP_REPLACE; break;
case GL_INCR: d3dStencilOp = D3D11_STENCIL_OP_INCR_SAT; break;
case GL_DECR: d3dStencilOp = D3D11_STENCIL_OP_DECR_SAT; break;
case GL_INVERT: d3dStencilOp = D3D11_STENCIL_OP_INVERT; break;
case GL_INCR_WRAP: d3dStencilOp = D3D11_STENCIL_OP_INCR; break;
case GL_DECR_WRAP: d3dStencilOp = D3D11_STENCIL_OP_DECR; break;
default: UNREACHABLE();
}
return d3dStencilOp;
}
} }
namespace d3d11_gl namespace d3d11_gl
......
...@@ -23,6 +23,11 @@ UINT8 ConvertColorMask(bool maskRed, bool maskGreen, bool maskBlue, bool maskAlp ...@@ -23,6 +23,11 @@ UINT8 ConvertColorMask(bool maskRed, bool maskGreen, bool maskBlue, bool maskAlp
D3D11_CULL_MODE ConvertCullMode(bool cullEnabled, GLenum cullMode); D3D11_CULL_MODE ConvertCullMode(bool cullEnabled, GLenum cullMode);
D3D11_COMPARISON_FUNC ConvertComparison(GLenum comparison);
D3D11_DEPTH_WRITE_MASK ConvertDepthMask(bool depthWriteEnabled);
UINT8 ConvertStencilMask(GLuint stencilmask);
D3D11_STENCIL_OP ConvertStencilOp(GLenum stencilOp);
} }
namespace d3d11_gl namespace d3d11_gl
......
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