OSDN Git Service

Enabling Transform Feedback
[android-x86/external-swiftshader.git] / src / OpenGL / libGLESv2 / utilities.cpp
index 09e5975..1143546 100644 (file)
@@ -1422,37 +1422,44 @@ namespace es2sw
                }
        }
 
-       bool ConvertPrimitiveType(GLenum primitiveType, GLsizei elementCount, GLenum elementType,  sw::DrawType &drawType, int &primitiveCount)
+       bool ConvertPrimitiveType(GLenum primitiveType, GLsizei elementCount, GLenum elementType, sw::DrawType &drawType, int &primitiveCount, int &verticesPerPrimitive)
        {
                switch(primitiveType)
                {
                case GL_POINTS:
                        drawType = sw::DRAW_POINTLIST;
                        primitiveCount = elementCount;
+                       verticesPerPrimitive = 1;
                        break;
                case GL_LINES:
                        drawType = sw::DRAW_LINELIST;
                        primitiveCount = elementCount / 2;
+                       verticesPerPrimitive = 2;
                        break;
                case GL_LINE_LOOP:
                        drawType = sw::DRAW_LINELOOP;
                        primitiveCount = elementCount;
+                       verticesPerPrimitive = 2;
                        break;
                case GL_LINE_STRIP:
                        drawType = sw::DRAW_LINESTRIP;
                        primitiveCount = elementCount - 1;
+                       verticesPerPrimitive = 2;
                        break;
                case GL_TRIANGLES:
                        drawType = sw::DRAW_TRIANGLELIST;
                        primitiveCount = elementCount / 3;
+                       verticesPerPrimitive = 3;
                        break;
                case GL_TRIANGLE_STRIP:
                        drawType = sw::DRAW_TRIANGLESTRIP;
                        primitiveCount = elementCount - 2;
+                       verticesPerPrimitive = 3;
                        break;
                case GL_TRIANGLE_FAN:
                        drawType = sw::DRAW_TRIANGLEFAN;
                        primitiveCount = elementCount - 2;
+                       verticesPerPrimitive = 3;
                        break;
                default:
                        return false;