OSDN Git Service

Fix framebuffer attachment parameter query error.
authorNicolas Capens <capn@google.com>
Thu, 14 Apr 2016 04:10:42 +0000 (00:10 -0400)
committerNicolas Capens <capn@google.com>
Thu, 14 Apr 2016 19:56:52 +0000 (19:56 +0000)
OpenGL ES 2.0 expects GL_INVALID_OPERATION when querying default framebuffer
attachment parameters.

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

index ec6a512..28838c8 100644 (file)
@@ -2730,30 +2730,33 @@ void GetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenu
 \r
        if(context)\r
        {\r
-               if(target != GL_FRAMEBUFFER && target != GL_DRAW_FRAMEBUFFER_ANGLE && target != GL_READ_FRAMEBUFFER_ANGLE)\r
+               if(target != GL_FRAMEBUFFER && target != GL_DRAW_FRAMEBUFFER && target != GL_READ_FRAMEBUFFER)\r
                {\r
                        return error(GL_INVALID_ENUM);\r
                }\r
 \r
                GLint clientVersion = context->getClientVersion();\r
 \r
-               es2::Framebuffer *framebuffer = NULL;\r
-               if(target == GL_READ_FRAMEBUFFER_ANGLE)\r
+               es2::Framebuffer *framebuffer = nullptr;\r
+               if(target == GL_READ_FRAMEBUFFER)\r
                {\r
                        if(context->getReadFramebufferName() == 0)\r
                        {\r
-                               switch(attachment)\r
+                               if(clientVersion < 3)\r
+                               {\r
+                                       return error(GL_INVALID_OPERATION);\r
+                               }\r
+                               else\r
                                {\r
-                               case GL_BACK:\r
-                               case GL_DEPTH:\r
-                               case GL_STENCIL:\r
-                                       if(clientVersion >= 3)\r
+                                       switch(attachment)\r
                                        {\r
+                                       case GL_BACK:\r
+                                       case GL_DEPTH:\r
+                                       case GL_STENCIL:\r
                                                break;\r
+                                       default:\r
+                                               return error(GL_INVALID_ENUM);\r
                                        }\r
-                                       // fall through\r
-                               default:\r
-                                       return error(GL_INVALID_ENUM);\r
                                }\r
                        }\r
 \r
@@ -2763,18 +2766,21 @@ void GetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenu
                {\r
                        if(context->getDrawFramebufferName() == 0)\r
                        {\r
-                               switch(attachment)\r
+                               if(clientVersion < 3)\r
+                               {\r
+                                       return error(GL_INVALID_OPERATION);\r
+                               }\r
+                               else\r
                                {\r
-                               case GL_BACK:\r
-                               case GL_DEPTH:\r
-                               case GL_STENCIL:\r
-                                       if(clientVersion >= 3)\r
+                                       switch(attachment)\r
                                        {\r
+                                       case GL_BACK:\r
+                                       case GL_DEPTH:\r
+                                       case GL_STENCIL:\r
                                                break;\r
+                                       default:\r
+                                               return error(GL_INVALID_ENUM);\r
                                        }\r
-                                       // fall through\r
-                               default:\r
-                                       return error(GL_INVALID_ENUM);\r
                                }\r
                        }\r
 \r