From: Nicolas Capens Date: Thu, 14 Apr 2016 04:10:42 +0000 (-0400) Subject: Fix framebuffer attachment parameter query error. X-Git-Tag: android-x86-7.1-r1~573 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=e5f3d7f6cb43afcdc589fecf8cbf894a113312c1;p=android-x86%2Fexternal-swiftshader.git Fix framebuffer attachment parameter query error. 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 Reviewed-by: Alexis Hétu Reviewed-by: Nicolas Capens --- diff --git a/src/OpenGL/libGLESv2/libGLESv2.cpp b/src/OpenGL/libGLESv2/libGLESv2.cpp index ec6a512ea..28838c89b 100644 --- a/src/OpenGL/libGLESv2/libGLESv2.cpp +++ b/src/OpenGL/libGLESv2/libGLESv2.cpp @@ -2730,30 +2730,33 @@ void GetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenu if(context) { - if(target != GL_FRAMEBUFFER && target != GL_DRAW_FRAMEBUFFER_ANGLE && target != GL_READ_FRAMEBUFFER_ANGLE) + if(target != GL_FRAMEBUFFER && target != GL_DRAW_FRAMEBUFFER && target != GL_READ_FRAMEBUFFER) { return error(GL_INVALID_ENUM); } GLint clientVersion = context->getClientVersion(); - es2::Framebuffer *framebuffer = NULL; - if(target == GL_READ_FRAMEBUFFER_ANGLE) + es2::Framebuffer *framebuffer = nullptr; + if(target == GL_READ_FRAMEBUFFER) { if(context->getReadFramebufferName() == 0) { - switch(attachment) + if(clientVersion < 3) + { + return error(GL_INVALID_OPERATION); + } + else { - case GL_BACK: - case GL_DEPTH: - case GL_STENCIL: - if(clientVersion >= 3) + switch(attachment) { + case GL_BACK: + case GL_DEPTH: + case GL_STENCIL: break; + default: + return error(GL_INVALID_ENUM); } - // fall through - default: - return error(GL_INVALID_ENUM); } } @@ -2763,18 +2766,21 @@ void GetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenu { if(context->getDrawFramebufferName() == 0) { - switch(attachment) + if(clientVersion < 3) + { + return error(GL_INVALID_OPERATION); + } + else { - case GL_BACK: - case GL_DEPTH: - case GL_STENCIL: - if(clientVersion >= 3) + switch(attachment) { + case GL_BACK: + case GL_DEPTH: + case GL_STENCIL: break; + default: + return error(GL_INVALID_ENUM); } - // fall through - default: - return error(GL_INVALID_ENUM); } }