Implement gl_PointSize point sprite emulation using D3D11 geometry shaders.
TRAC #22412
Signed-off-by: Nicolas Capens
Signed-off-by: Shannon Woods
Author: Jamie Madill
git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1786 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/Context.cpp b/src/libGLESv2/Context.cpp
index e45921d..441f2aa 100644
--- a/src/libGLESv2/Context.cpp
+++ b/src/libGLESv2/Context.cpp
@@ -1712,7 +1712,17 @@
// Applies the fixed-function state (culling, depth test, alpha blending, stenciling, etc) to the Direct3D 9 device
void Context::applyState(GLenum drawMode)
{
- mRenderer->setRasterizerState(mState.rasterizer);
+ // 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);
+ }
unsigned int mask = 0;
if (mState.sampleCoverage)