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();