OSDN Git Service

Added proper transform feedback checks to glDrawRangeElements
authorAlexis Hetu <sugoi@google.com>
Tue, 23 Jun 2015 15:33:20 +0000 (11:33 -0400)
committerAlexis Hétu <sugoi@google.com>
Thu, 25 Jun 2015 15:47:13 +0000 (15:47 +0000)
It is illegal to start a new draw operation while a transform
feedback is active.

Change-Id: I5ebb01889ce5154162a51f5e6cfbc8431554c879
Reviewed-on: https://swiftshader-review.googlesource.com/3549
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
src/OpenGL/libGLESv2/libGLESv3.cpp

index 6091210..ef9eeff 100644 (file)
@@ -549,6 +549,12 @@ GL_APICALL void GL_APIENTRY glDrawRangeElements(GLenum mode, GLuint start, GLuin
 \r
        if(context)\r
        {\r
+               es2::TransformFeedback* transformFeedback = context->getTransformFeedback();\r
+               if(transformFeedback && transformFeedback->isActive() && !transformFeedback->isPaused())\r
+               {\r
+                       return error(GL_INVALID_OPERATION);\r
+               }\r
+\r
                context->drawElements(mode, start, end, count, type, indices);\r
        }\r
 }\r