Commit ebe9bbda by Alexis Hetu Committed by Alexis Hétu

Fixed element array buffer name crash

Added missing NULL pointer check Bug 20676373 Change-Id: Ia99cac8e6abb4157441d8ff1741b5d81981a1270 Reviewed-on: https://swiftshader-review.googlesource.com/3000Reviewed-by: 's avatarNicolas Capens <capn@google.com> Tested-by: 's avatarAlexis Hétu <sugoi@google.com>
parent eb195b6e
...@@ -721,6 +721,12 @@ GLuint Context::getArrayBufferName() const ...@@ -721,6 +721,12 @@ GLuint Context::getArrayBufferName() const
return mState.arrayBuffer.name(); return mState.arrayBuffer.name();
} }
GLuint Context::getElementArrayBufferName() const
{
Buffer* elementArrayBuffer = getCurrentVertexArray()->getElementArrayBuffer();
return elementArrayBuffer ? elementArrayBuffer->name : 0;
}
GLuint Context::getActiveQuery(GLenum target) const GLuint Context::getActiveQuery(GLenum target) const
{ {
Query *queryObject = NULL; Query *queryObject = NULL;
...@@ -1695,7 +1701,7 @@ bool Context::getIntegerv(GLenum pname, GLint *params) const ...@@ -1695,7 +1701,7 @@ bool Context::getIntegerv(GLenum pname, GLint *params) const
case GL_NUM_SHADER_BINARY_FORMATS: *params = 0; break; case GL_NUM_SHADER_BINARY_FORMATS: *params = 0; break;
case GL_SHADER_BINARY_FORMATS: /* no shader binary formats are supported */ break; case GL_SHADER_BINARY_FORMATS: /* no shader binary formats are supported */ break;
case GL_ARRAY_BUFFER_BINDING: *params = getArrayBufferName(); break; case GL_ARRAY_BUFFER_BINDING: *params = getArrayBufferName(); break;
case GL_ELEMENT_ARRAY_BUFFER_BINDING: *params = getCurrentVertexArray()->getElementArrayBuffer()->name; break; case GL_ELEMENT_ARRAY_BUFFER_BINDING: *params = getElementArrayBufferName(); break;
// case GL_FRAMEBUFFER_BINDING: // now equivalent to GL_DRAW_FRAMEBUFFER_BINDING_ANGLE // case GL_FRAMEBUFFER_BINDING: // now equivalent to GL_DRAW_FRAMEBUFFER_BINDING_ANGLE
case GL_DRAW_FRAMEBUFFER_BINDING_ANGLE: *params = mState.drawFramebuffer; break; case GL_DRAW_FRAMEBUFFER_BINDING_ANGLE: *params = mState.drawFramebuffer; break;
case GL_READ_FRAMEBUFFER_BINDING_ANGLE: *params = mState.readFramebuffer; break; case GL_READ_FRAMEBUFFER_BINDING_ANGLE: *params = mState.readFramebuffer; break;
......
...@@ -429,6 +429,7 @@ public: ...@@ -429,6 +429,7 @@ public:
GLuint getActiveQuery(GLenum target) const; GLuint getActiveQuery(GLenum target) const;
GLuint getArrayBufferName() const; GLuint getArrayBufferName() const;
GLuint getElementArrayBufferName() const;
void setEnableVertexAttribArray(unsigned int attribNum, bool enabled); void setEnableVertexAttribArray(unsigned int attribNum, bool enabled);
void setVertexAttribDivisor(unsigned int attribNum, GLuint divisor); void setVertexAttribDivisor(unsigned int attribNum, GLuint divisor);
......
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