Make GL_ANGLE_framebuffer_blit enableable.
BUG=angleproject:1523
Change-Id: I5d6df35d2e65be6d73ec6100e3351ba5f9ff53a2
Reviewed-on: https://chromium-review.googlesource.com/688639
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
diff --git a/src/libANGLE/validationES.cpp b/src/libANGLE/validationES.cpp
index 5b9e41b..9b2434d 100644
--- a/src/libANGLE/validationES.cpp
+++ b/src/libANGLE/validationES.cpp
@@ -757,7 +757,7 @@
}
}
-bool ValidFramebufferTarget(GLenum target)
+bool ValidFramebufferTarget(const ValidationContext *context, GLenum target)
{
static_assert(GL_DRAW_FRAMEBUFFER_ANGLE == GL_DRAW_FRAMEBUFFER &&
GL_READ_FRAMEBUFFER_ANGLE == GL_READ_FRAMEBUFFER,
@@ -767,10 +767,12 @@
{
case GL_FRAMEBUFFER:
return true;
+
case GL_READ_FRAMEBUFFER:
- return true;
case GL_DRAW_FRAMEBUFFER:
- return true;
+ return (context->getExtensions().framebufferBlit ||
+ context->getClientMajorVersion() >= 3);
+
default:
return false;
}
@@ -1280,7 +1282,7 @@
GLenum renderbuffertarget,
GLuint renderbuffer)
{
- if (!ValidFramebufferTarget(target))
+ if (!ValidFramebufferTarget(context, target))
{
context->handleError(InvalidEnum());
return false;
@@ -3000,7 +3002,7 @@
GLuint texture,
GLint level)
{
- if (!ValidFramebufferTarget(target))
+ if (!ValidFramebufferTarget(context, target))
{
ANGLE_VALIDATION_ERR(context, InvalidEnum(), InvalidFramebufferTarget);
return false;
@@ -3796,7 +3798,7 @@
GLenum pname,
GLsizei *numParams)
{
- if (!ValidFramebufferTarget(target))
+ if (!ValidFramebufferTarget(context, target))
{
context->handleError(InvalidEnum());
return false;