[Mesa-dev] [PATCH 04/23] main: Tex[ture]Buffer[Range] functions now use _mesa_lookup_bufferobj_err.

Laura Ekstrand laura at jlekstrand.net
Wed Feb 11 18:05:42 PST 2015


---
 src/mesa/main/teximage.c | 46 +++++++++++++++++++++++++---------------------
 1 file changed, 25 insertions(+), 21 deletions(-)

diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c
index ce6f446..d17f15e 100644
--- a/src/mesa/main/teximage.c
+++ b/src/mesa/main/teximage.c
@@ -5091,11 +5091,13 @@ _mesa_TexBuffer(GLenum target, GLenum internalFormat, GLuint buffer)
       return;
    }
 
-   bufObj = _mesa_lookup_bufferobj(ctx, buffer);
-   if (!bufObj && buffer) {
-      _mesa_error(ctx, GL_INVALID_OPERATION, "glTexBuffer(buffer %u)", buffer);
-      return;
+   if (buffer) {
+      bufObj = _mesa_lookup_bufferobj_err(ctx, buffer, "glTexBuffer");
+      if (!bufObj)
+         return;
    }
+   else
+      bufObj = NULL;
 
    texObj = _mesa_get_current_tex_object(ctx, target);
    if (!texObj)
@@ -5128,8 +5130,11 @@ _mesa_TexBufferRange(GLenum target, GLenum internalFormat, GLuint buffer,
       return;
    }
 
-   bufObj = _mesa_lookup_bufferobj(ctx, buffer);
-   if (bufObj) {
+   if (buffer) {
+      bufObj = _mesa_lookup_bufferobj_err(ctx, buffer, "glTexBufferRange");
+      if (!bufObj)
+         return;
+
       if (offset < 0 ||
           size <= 0 ||
           (offset + size) > bufObj->Size) {
@@ -5141,13 +5146,10 @@ _mesa_TexBufferRange(GLenum target, GLenum internalFormat, GLuint buffer,
                      "glTexBufferRange(invalid offset alignment)");
          return;
       }
-   } else if (buffer) {
-      _mesa_error(ctx, GL_INVALID_OPERATION, "glTexBufferRange(buffer %u)",
-                  buffer);
-      return;
    } else {
       offset = 0;
       size = 0;
+      bufObj = NULL;
    }
 
    texObj = _mesa_get_current_tex_object(ctx, target);
@@ -5175,12 +5177,13 @@ _mesa_TextureBuffer(GLuint texture, GLenum internalFormat, GLuint buffer)
       return;
    }
 
-   bufObj = _mesa_lookup_bufferobj(ctx, buffer);
-   if (!bufObj && buffer) {
-      _mesa_error(ctx, GL_INVALID_OPERATION, "glTextureBuffer(buffer %u)",
-                  buffer);
-      return;
+   if (buffer) {
+      bufObj = _mesa_lookup_bufferobj_err(ctx, buffer, "glTextureBuffer");
+      if (!bufObj)
+         return;
    }
+   else
+      bufObj = NULL;
 
    /* Get the texture object by Name. */
    texObj = _mesa_lookup_texture_err(ctx, texture,
@@ -5217,8 +5220,12 @@ _mesa_TextureBufferRange(GLuint texture, GLenum internalFormat, GLuint buffer,
       return;
    }
 
-   bufObj = _mesa_lookup_bufferobj(ctx, buffer);
-   if (bufObj) {
+   if (buffer) {
+      bufObj = _mesa_lookup_bufferobj_err(ctx, buffer,
+                                          "glTextureBufferRange");
+      if (!bufObj)
+         return;
+
       /* OpenGL 4.5 core spec (30.10.2014) says in Section 8.9 Buffer
        * Textures:
        *    "An INVALID_VALUE error is generated if offset is negative, if
@@ -5255,10 +5262,6 @@ _mesa_TextureBufferRange(GLuint texture, GLenum internalFormat, GLuint buffer,
                      "glTextureBufferRange(invalid offset alignment)");
          return;
       }
-   } else if (buffer) {
-      _mesa_error(ctx, GL_INVALID_OPERATION,
-                  "glTextureBufferRange(unrecognized buffer %u)", buffer);
-      return;
    } else {
 
       /* OpenGL 4.5 core spec (30.10.2014) says in Section 8.9 Buffer
@@ -5270,6 +5273,7 @@ _mesa_TextureBufferRange(GLuint texture, GLenum internalFormat, GLuint buffer,
        */
       offset = 0;
       size = 0;
+      bufObj = NULL;
    }
 
    /* Get the texture object by Name. */
-- 
2.1.0



More information about the mesa-dev mailing list