aboutsummaryrefslogtreecommitdiff
path: root/shared/OpenglCodecCommon
diff options
context:
space:
mode:
authorYahan Zhou <yahan@google.com>2016-11-22 14:03:56 -0800
committerYahan Zhou <yahan@google.com>2016-11-22 14:59:07 -0800
commitb99406c86fcf4bf9e0eec5fc08d2f59515cf9e3f (patch)
treec400efe1466974af9b8c28355920277dc800e4ca /shared/OpenglCodecCommon
parent442169e391640f8696c0678e72fee88d58090c0c (diff)
downloadgoldfish-opengl-b99406c86fcf4bf9e0eec5fc08d2f59515cf9e3f.tar.gz
Fix glLinkProgram with invalid program name
glLinkProgram might try setting up program attributes even when an invalid program name is passed to it. This patch fixes it. BUG: 33069416 Change-Id: I93ed140095b67df47b158ba837c4aac8eb9e8e50
Diffstat (limited to 'shared/OpenglCodecCommon')
-rwxr-xr-xshared/OpenglCodecCommon/GLSharedGroup.cpp7
-rwxr-xr-xshared/OpenglCodecCommon/GLSharedGroup.h1
2 files changed, 8 insertions, 0 deletions
diff --git a/shared/OpenglCodecCommon/GLSharedGroup.cpp b/shared/OpenglCodecCommon/GLSharedGroup.cpp
index 1f7c6290..3b5211f6 100755
--- a/shared/OpenglCodecCommon/GLSharedGroup.cpp
+++ b/shared/OpenglCodecCommon/GLSharedGroup.cpp
@@ -452,6 +452,13 @@ bool GLSharedGroup::setSamplerUniform(GLuint program, GLint appLoc, GLint val, G
return pData ? pData->setSamplerUniform(appLoc, val, target) : false;
}
+bool GLSharedGroup::isShader(GLuint shader)
+{
+ android::AutoMutex _lock(m_lock);
+ ShaderData* pData = m_shaders.valueFor(shader);
+ return (pData!=NULL);
+}
+
bool GLSharedGroup::addShaderData(GLuint shader)
{
android::AutoMutex _lock(m_lock);
diff --git a/shared/OpenglCodecCommon/GLSharedGroup.h b/shared/OpenglCodecCommon/GLSharedGroup.h
index b03b40bd..4057b52b 100755
--- a/shared/OpenglCodecCommon/GLSharedGroup.h
+++ b/shared/OpenglCodecCommon/GLSharedGroup.h
@@ -135,6 +135,7 @@ public:
GLint getNextSamplerUniform(GLuint program, GLint index, GLint* val, GLenum* target) const;
bool setSamplerUniform(GLuint program, GLint appLoc, GLint val, GLenum* target);
+ bool isShader(GLuint shader);
bool addShaderData(GLuint shader);
// caller must hold a reference to the shader as long as it holds the pointer
ShaderData* getShaderData(GLuint shader);