Scissor test state is set as part of the Renderer::setScissor method.
TRAC #22206
Moved scissorTest out of RasterizerState.
Fixes buffer-offscreen-test and buffer-preserve-test CTS regressions.
Signed-off-by: Nicolas Capens
Signed-off-by: Daniel Koch
git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1549 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/Context.cpp b/src/libGLESv2/Context.cpp
index 2250b80..911a3ed 100644
--- a/src/libGLESv2/Context.cpp
+++ b/src/libGLESv2/Context.cpp
@@ -50,7 +50,7 @@
mState.rasterizer.polygonOffsetFill = false;
mState.rasterizer.polygonOffsetFactor = 0.0f;
mState.rasterizer.polygonOffsetUnits = 0.0f;
- mState.rasterizer.scissorTest = false;
+ mState.scissorTest = false;
mState.scissor.x = 0;
mState.scissor.y = 0;
mState.scissor.width = 0;
@@ -523,12 +523,12 @@
void Context::setScissorTest(bool enabled)
{
- mState.rasterizer.scissorTest = enabled;
+ mState.scissorTest = enabled;
}
bool Context::isScissorTestEnabled() const
{
- return mState.rasterizer.scissorTest;
+ return mState.scissorTest;
}
void Context::setDither(bool enabled)
@@ -1211,7 +1211,7 @@
case GL_POLYGON_OFFSET_FILL: *params = mState.rasterizer.polygonOffsetFill; break;
case GL_SAMPLE_ALPHA_TO_COVERAGE: *params = mState.blend.sampleAlphaToCoverage; break;
case GL_SAMPLE_COVERAGE: *params = mState.sampleCoverage; break;
- case GL_SCISSOR_TEST: *params = mState.rasterizer.scissorTest; break;
+ case GL_SCISSOR_TEST: *params = mState.scissorTest; break;
case GL_STENCIL_TEST: *params = mState.depthStencil.stencilTest; break;
case GL_DEPTH_TEST: *params = mState.depthStencil.depthTest; break;
case GL_BLEND: *params = mState.blend.blend; break;
@@ -1723,7 +1723,7 @@
}
mDxUniformsDirty = false;
- mRenderer->setScissorRectangle(mState.scissor);
+ mRenderer->setScissorRectangle(mState.scissor, mState.scissorTest);
return true;
}
@@ -2738,7 +2738,7 @@
Rectangle sourceScissoredRect = sourceRect;
Rectangle destScissoredRect = destRect;
- if (mState.rasterizer.scissorTest)
+ if (mState.scissorTest)
{
// Only write to parts of the destination framebuffer which pass the scissor test.
if (destRect.x < mState.scissor.x)