Implement applyPrimitiveType for Renderer11.
TRAC #22153
Signed-off-by: Shannon Woods
Signed-off-by: Daniel Koch
Author: Nicolas Capens
git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1532 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/renderer/Renderer11.cpp b/src/libGLESv2/renderer/Renderer11.cpp
index d0b0ae3..9fc81ce 100644
--- a/src/libGLESv2/renderer/Renderer11.cpp
+++ b/src/libGLESv2/renderer/Renderer11.cpp
@@ -473,10 +473,24 @@
bool Renderer11::applyPrimitiveType(GLenum mode, GLsizei count)
{
- // TODO
- UNIMPLEMENTED();
+ mPrimitiveTopology = D3D_PRIMITIVE_TOPOLOGY_UNDEFINED;
- return false;
+ switch (mode)
+ {
+ case GL_POINTS: mPrimitiveTopology = D3D11_PRIMITIVE_TOPOLOGY_POINTLIST; break;
+ case GL_LINES: mPrimitiveTopology = D3D_PRIMITIVE_TOPOLOGY_LINELIST; break;
+ case GL_LINE_LOOP: UNIMPLEMENTED(); /* TODO */ break;
+ case GL_LINE_STRIP: mPrimitiveTopology = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP; break;
+ case GL_TRIANGLES: mPrimitiveTopology = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST; break;
+ case GL_TRIANGLE_STRIP: mPrimitiveTopology = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP; break;
+ case GL_TRIANGLE_FAN: UNIMPLEMENTED(); /* TODO */ break;
+ default:
+ return error(GL_INVALID_ENUM, false);
+ }
+
+ mVertexCount = count;
+
+ return count > 0;
}
bool Renderer11::applyRenderTarget(gl::Framebuffer *framebuffer)