Add helper methods for buffer enum tagets.
A query helper method in Context and a validation helper
method reduce code redundancy quite a bit.
BUG=angle:565
Change-Id: I96b9ecc4614e7e31240e31594223e8b9636d22c2
Reviewed-on: https://chromium-review.googlesource.com/188201
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libGLESv2/Context.cpp b/src/libGLESv2/Context.cpp
index a6dba2a..f0b65cd 100644
--- a/src/libGLESv2/Context.cpp
+++ b/src/libGLESv2/Context.cpp
@@ -1504,6 +1504,22 @@
}
}
+Buffer *Context::getTargetBuffer(GLenum target) const
+{
+ switch (target)
+ {
+ case GL_ARRAY_BUFFER: return mState.arrayBuffer.get();
+ case GL_COPY_READ_BUFFER: return mState.copyReadBuffer.get();
+ case GL_COPY_WRITE_BUFFER: return mState.copyWriteBuffer.get();
+ case GL_ELEMENT_ARRAY_BUFFER: return getCurrentVertexArray()->getElementArrayBuffer();
+ case GL_PIXEL_PACK_BUFFER: return mState.pack.pixelBuffer.get();
+ case GL_PIXEL_UNPACK_BUFFER: return mState.unpack.pixelBuffer.get();
+ case GL_TRANSFORM_FEEDBACK_BUFFER: return mState.genericTransformFeedbackBuffer.get();
+ case GL_UNIFORM_BUFFER: return mState.genericUniformBuffer.get();
+ default: UNREACHABLE(); return NULL;
+ }
+}
+
Buffer *Context::getArrayBuffer()
{
return mState.arrayBuffer.get();