Fix regressions in the unit tests related to setting gl_PointSize, and using other draw modes.
This had two regressions, using gl_PointSize and drawing triangles, and drawing points and triangles
with the same binary program.
TRAC #22526
Signed-off-by: Nicolas Capens
Signed-off-by: Shannon Woods
Author: Jamie Madill
git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1853 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/Context.cpp b/src/libGLESv2/Context.cpp
index cbd827a..8e4b703 100644
--- a/src/libGLESv2/Context.cpp
+++ b/src/libGLESv2/Context.cpp
@@ -59,6 +59,7 @@
mState.rasterizer.polygonOffsetFill = false;
mState.rasterizer.polygonOffsetFactor = 0.0f;
mState.rasterizer.polygonOffsetUnits = 0.0f;
+ mState.rasterizer.pointDrawMode = false;
mState.scissorTest = false;
mState.scissor.x = 0;
mState.scissor.y = 0;
@@ -1712,17 +1713,8 @@
// Applies the fixed-function state (culling, depth test, alpha blending, stenciling, etc) to the Direct3D 9 device
void Context::applyState(GLenum drawMode)
{
- // disable face culling for point sprite emulation (done as geometry shader quads)
- if (getCurrentProgramBinary()->usesPointSpriteEmulation())
- {
- RasterizerState rasterizerStateCopy = mState.rasterizer;
- rasterizerStateCopy.cullFace = false;
- mRenderer->setRasterizerState(rasterizerStateCopy);
- }
- else
- {
- mRenderer->setRasterizerState(mState.rasterizer);
- }
+ mState.rasterizer.pointDrawMode = (drawMode == GL_POINTS);
+ mRenderer->setRasterizerState(mState.rasterizer);
unsigned int mask = 0;
if (mState.sampleCoverage)