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,32 +2730,35 @@ void GetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenu ...@@ -2730,32 +2730,35 @@ 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)
{ {
if(clientVersion < 3)
{
return error(GL_INVALID_OPERATION);
}
else
{
switch(attachment) switch(attachment)
{ {
case GL_BACK: case GL_BACK:
case GL_DEPTH: case GL_DEPTH:
case GL_STENCIL: case GL_STENCIL:
if(clientVersion >= 3)
{
break; break;
}
// fall through
default: default:
return error(GL_INVALID_ENUM); return error(GL_INVALID_ENUM);
} }
} }
}
framebuffer = context->getReadFramebuffer(); framebuffer = context->getReadFramebuffer();
} }
...@@ -2763,20 +2766,23 @@ void GetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenu ...@@ -2763,20 +2766,23 @@ void GetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenu
{ {
if(context->getDrawFramebufferName() == 0) if(context->getDrawFramebufferName() == 0)
{ {
if(clientVersion < 3)
{
return error(GL_INVALID_OPERATION);
}
else
{
switch(attachment) switch(attachment)
{ {
case GL_BACK: case GL_BACK:
case GL_DEPTH: case GL_DEPTH:
case GL_STENCIL: case GL_STENCIL:
if(clientVersion >= 3)
{
break; break;
}
// fall through
default: default:
return error(GL_INVALID_ENUM); return error(GL_INVALID_ENUM);
} }
} }
}
framebuffer = context->getDrawFramebuffer(); framebuffer = context->getDrawFramebuffer();
} }
......
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