From: Ian Romanick <[email protected]>

v2: Add proper core-profile and GLES3 filtering.

Signed-off-by: Ian Romanick <[email protected]>
---
 src/mesa/main/APIspec.xml |    7 -------
 src/mesa/main/bufferobj.c |   13 ++++++++-----
 2 files changed, 8 insertions(+), 12 deletions(-)

diff --git a/src/mesa/main/APIspec.xml b/src/mesa/main/APIspec.xml
index 83a32d8..3121226 100644
--- a/src/mesa/main/APIspec.xml
+++ b/src/mesa/main/APIspec.xml
@@ -1874,13 +1874,6 @@
                <param name="pname" type="GLenum"/>
                <vector name="params" type="GLtype *" size="dynamic"/>
        </proto>
-
-       <desc name="pname">
-               <value name="GL_BUFFER_SIZE"/>
-               <value name="GL_BUFFER_USAGE"/>
-               <value name="GL_BUFFER_ACCESS_OES" category="OES_mapbuffer"/>
-               <value name="GL_BUFFER_MAPPED_OES" category="OES_mapbuffer"/>
-       </desc>
 </template>
 
 <template name="IsBuffer" direction="get">
diff --git a/src/mesa/main/bufferobj.c b/src/mesa/main/bufferobj.c
index 6ad0787..f8938a5 100644
--- a/src/mesa/main/bufferobj.c
+++ b/src/mesa/main/bufferobj.c
@@ -1142,7 +1142,7 @@ _mesa_MapBufferARB(GLenum target, GLenum access)
    switch (access) {
    case GL_READ_ONLY_ARB:
       accessFlags = GL_MAP_READ_BIT;
-      valid_access = (ctx->API == API_OPENGL);
+      valid_access = _mesa_is_desktop_gl(ctx);
       break;
    case GL_WRITE_ONLY_ARB:
       accessFlags = GL_MAP_WRITE_BIT;
@@ -1150,7 +1150,7 @@ _mesa_MapBufferARB(GLenum target, GLenum access)
       break;
    case GL_READ_WRITE_ARB:
       accessFlags = GL_MAP_READ_BIT | GL_MAP_WRITE_BIT;
-      valid_access = (ctx->API == API_OPENGL);
+      valid_access = _mesa_is_desktop_gl(ctx);
       break;
    default:
       valid_access = false;
@@ -1311,17 +1311,20 @@ _mesa_GetBufferParameterivARB(GLenum target, GLenum 
pname, GLint *params)
       *params = _mesa_bufferobj_mapped(bufObj);
       return;
    case GL_BUFFER_ACCESS_FLAGS:
-      if (!ctx->Extensions.ARB_map_buffer_range)
+      if ((!_mesa_is_desktop_gl(ctx) || !ctx->Extensions.ARB_map_buffer_range)
+          && !_mesa_is_gles3(ctx))
          goto invalid_pname;
       *params = bufObj->AccessFlags;
       return;
    case GL_BUFFER_MAP_OFFSET:
-      if (!ctx->Extensions.ARB_map_buffer_range)
+      if ((!_mesa_is_desktop_gl(ctx) || !ctx->Extensions.ARB_map_buffer_range)
+          && !_mesa_is_gles3(ctx))
          goto invalid_pname;
       *params = (GLint) bufObj->Offset;
       return;
    case GL_BUFFER_MAP_LENGTH:
-      if (!ctx->Extensions.ARB_map_buffer_range)
+      if ((!_mesa_is_desktop_gl(ctx) || !ctx->Extensions.ARB_map_buffer_range)
+          && !_mesa_is_gles3(ctx))
          goto invalid_pname;
       *params = (GLint) bufObj->Length;
       return;
-- 
1.7.6.5

_______________________________________________
mesa-dev mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to