Implement queries and enums for buffer mapping.
GetBufferPointerv, GetBufferParameteri64v, and new values
for GetBufferParameteriv.
BUG=angle:565
Change-Id: I179a3193987b2bff1b0628e47f6a0d627541b0cf
Reviewed-on: https://chromium-review.googlesource.com/188203
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libGLESv2/validationES.cpp b/src/libGLESv2/validationES.cpp
index b2883f2..5ed852c 100644
--- a/src/libGLESv2/validationES.cpp
+++ b/src/libGLESv2/validationES.cpp
@@ -94,6 +94,27 @@
}
}
+bool ValidBufferParameter(const Context *context, GLenum pname)
+{
+ switch (pname)
+ {
+ case GL_BUFFER_USAGE:
+ case GL_BUFFER_SIZE:
+ return true;
+
+ // GL_BUFFER_MAP_POINTER is a special case, and may only be
+ // queried with GetBufferPointerv
+ case GL_BUFFER_ACCESS_FLAGS:
+ case GL_BUFFER_MAPPED:
+ case GL_BUFFER_MAP_OFFSET:
+ case GL_BUFFER_MAP_LENGTH:
+ return (context->getClientVersion() >= 3);
+
+ default:
+ return false;
+ }
+}
+
bool ValidMipLevel(const Context *context, GLenum target, GLint level)
{
int maxLevel = 0;