Commit 18319182 by John Bauman Committed by Commit Bot

Re-land "Fix glGetIntegerv(GL_TEXTURE_BINDING_EXTERNAL_OES, ...)"

BUG=angleproject:1332 Change-Id: Ie970466c4528cb80b2363d0c0683da2d9c23c4f4 Reviewed-on: https://chromium-review.googlesource.com/392267 Commit-Queue: John Bauman <jbauman@chromium.org> Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
parent 7f9a55f7
...@@ -278,6 +278,14 @@ bool ValidationContext::getQueryParameterInfo(GLenum pname, GLenum *type, unsign ...@@ -278,6 +278,14 @@ bool ValidationContext::getQueryParameterInfo(GLenum pname, GLenum *type, unsign
*type = GL_INT; *type = GL_INT;
*numParams = 1; *numParams = 1;
return true; return true;
case GL_TEXTURE_BINDING_EXTERNAL_OES:
if (!getExtensions().eglStreamConsumerExternal && !getExtensions().eglImageExternal)
{
return false;
}
*type = GL_INT;
*numParams = 1;
return true;
} }
if (getExtensions().debug) if (getExtensions().debug)
......
...@@ -1744,6 +1744,11 @@ void State::getIntegerv(const ContextState &data, GLenum pname, GLint *params) ...@@ -1744,6 +1744,11 @@ void State::getIntegerv(const ContextState &data, GLenum pname, GLint *params)
*params = *params =
getSamplerTextureId(static_cast<unsigned int>(mActiveSampler), GL_TEXTURE_2D_ARRAY); getSamplerTextureId(static_cast<unsigned int>(mActiveSampler), GL_TEXTURE_2D_ARRAY);
break; break;
case GL_TEXTURE_BINDING_EXTERNAL_OES:
ASSERT(mActiveSampler < mMaxCombinedTextureImageUnits);
*params = getSamplerTextureId(static_cast<unsigned int>(mActiveSampler),
GL_TEXTURE_EXTERNAL_OES);
break;
case GL_UNIFORM_BUFFER_BINDING: case GL_UNIFORM_BUFFER_BINDING:
*params = mGenericUniformBuffer.id(); *params = mGenericUniformBuffer.id();
break; break;
......
...@@ -1735,10 +1735,12 @@ bool ValidateStateQuery(ValidationContext *context, ...@@ -1735,10 +1735,12 @@ bool ValidateStateQuery(ValidationContext *context,
case GL_TEXTURE_BINDING_2D_ARRAY: case GL_TEXTURE_BINDING_2D_ARRAY:
break; break;
case GL_TEXTURE_BINDING_EXTERNAL_OES: case GL_TEXTURE_BINDING_EXTERNAL_OES:
if (!context->getExtensions().eglStreamConsumerExternal) if (!context->getExtensions().eglStreamConsumerExternal &&
!context->getExtensions().eglImageExternal)
{ {
context->handleError( context->handleError(Error(GL_INVALID_ENUM,
Error(GL_INVALID_ENUM, "NV_EGL_stream_consumer_external extension not enabled")); "Neither NV_EGL_stream_consumer_external nor "
"GL_OES_EGL_image_external extensions enabled"));
return false; return false;
} }
break; break;
......
...@@ -1196,6 +1196,30 @@ TEST_P(Texture2DTest, NegativeAPISubImage) ...@@ -1196,6 +1196,30 @@ TEST_P(Texture2DTest, NegativeAPISubImage)
EXPECT_GL_ERROR(GL_INVALID_VALUE); EXPECT_GL_ERROR(GL_INVALID_VALUE);
} }
// Test that querying GL_TEXTURE_BINDING* doesn't cause an unexpected error.
TEST_P(Texture2DTest, QueryBinding)
{
glBindTexture(GL_TEXTURE_2D, 0);
EXPECT_GL_ERROR(GL_NO_ERROR);
GLint textureBinding;
glGetIntegerv(GL_TEXTURE_BINDING_2D, &textureBinding);
EXPECT_GL_NO_ERROR();
EXPECT_EQ(0, textureBinding);
glGetIntegerv(GL_TEXTURE_BINDING_EXTERNAL_OES, &textureBinding);
if (extensionEnabled("GL_OES_EGL_image_external") ||
extensionEnabled("GL_NV_EGL_stream_consumer_external"))
{
EXPECT_GL_NO_ERROR();
EXPECT_EQ(0, textureBinding);
}
else
{
EXPECT_GL_ERROR(GL_INVALID_ENUM);
}
}
TEST_P(Texture2DTest, ZeroSizedUploads) TEST_P(Texture2DTest, ZeroSizedUploads)
{ {
glBindTexture(GL_TEXTURE_2D, mTexture2D); glBindTexture(GL_TEXTURE_2D, mTexture2D);
......
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