Commit e5f3d7f6 by Nicolas Capens

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/5124Tested-by: 's avatarNicolas Capens <capn@google.com> Reviewed-by: 's avatarAlexis Hétu <sugoi@google.com> Reviewed-by: 's avatarNicolas Capens <capn@google.com>
parent b5e346f5
...@@ -2730,30 +2730,33 @@ void GetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenu ...@@ -2730,30 +2730,33 @@ void GetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenu
if(context) 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); return error(GL_INVALID_ENUM);
} }
GLint clientVersion = context->getClientVersion(); GLint clientVersion = context->getClientVersion();
es2::Framebuffer *framebuffer = NULL; es2::Framebuffer *framebuffer = nullptr;
if(target == GL_READ_FRAMEBUFFER_ANGLE) if(target == GL_READ_FRAMEBUFFER)
{ {
if(context->getReadFramebufferName() == 0) if(context->getReadFramebufferName() == 0)
{ {
switch(attachment) if(clientVersion < 3)
{
return error(GL_INVALID_OPERATION);
}
else
{ {
case GL_BACK: switch(attachment)
case GL_DEPTH:
case GL_STENCIL:
if(clientVersion >= 3)
{ {
case GL_BACK:
case GL_DEPTH:
case GL_STENCIL:
break; 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 ...@@ -2763,18 +2766,21 @@ void GetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenu
{ {
if(context->getDrawFramebufferName() == 0) if(context->getDrawFramebufferName() == 0)
{ {
switch(attachment) if(clientVersion < 3)
{
return error(GL_INVALID_OPERATION);
}
else
{ {
case GL_BACK: switch(attachment)
case GL_DEPTH:
case GL_STENCIL:
if(clientVersion >= 3)
{ {
case GL_BACK:
case GL_DEPTH:
case GL_STENCIL:
break; break;
default:
return error(GL_INVALID_ENUM);
} }
// fall through
default:
return error(GL_INVALID_ENUM);
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment