Browse Source

mesa: added _mesa_GetBufferParameteri64v()

This is a new function in GL 3.2.  No dispatch for this function yet.
tags/7.8-rc1
Brian Paul 15 years ago
parent
commit
1fbc71937f
2 changed files with 45 additions and 0 deletions
  1. 42
    0
      src/mesa/main/bufferobj.c
  2. 3
    0
      src/mesa/main/bufferobj.h

+ 42
- 0
src/mesa/main/bufferobj.c View File

@@ -1389,6 +1389,48 @@ _mesa_GetBufferParameterivARB(GLenum target, GLenum pname, GLint *params)
}


/**
* New in GL 3.2
* This is pretty much a duplicate of GetBufferParameteriv() but the
* GL_BUFFER_SIZE_ARB attribute will be 64-bits on a 64-bit system.
*/
void GLAPIENTRY
_mesa_GetBufferParameteri64v(GLenum target, GLenum pname, GLint64 *params)
{
GET_CURRENT_CONTEXT(ctx);
struct gl_buffer_object *bufObj;
ASSERT_OUTSIDE_BEGIN_END(ctx);

bufObj = get_buffer(ctx, target);
if (!bufObj) {
_mesa_error(ctx, GL_INVALID_ENUM, "GetBufferParameteri64v(target)" );
return;
}
if (!_mesa_is_bufferobj(bufObj)) {
_mesa_error(ctx, GL_INVALID_OPERATION, "GetBufferParameteri64v" );
return;
}

switch (pname) {
case GL_BUFFER_SIZE_ARB:
*params = bufObj->Size;
break;
case GL_BUFFER_USAGE_ARB:
*params = bufObj->Usage;
break;
case GL_BUFFER_ACCESS_ARB:
*params = simplified_access_mode(bufObj->AccessFlags);
break;
case GL_BUFFER_MAPPED_ARB:
*params = _mesa_bufferobj_mapped(bufObj);
break;
default:
_mesa_error(ctx, GL_INVALID_ENUM, "glGetBufferParameteri64v(pname)");
return;
}
}


void GLAPIENTRY
_mesa_GetBufferPointervARB(GLenum target, GLenum pname, GLvoid **params)
{

+ 3
- 0
src/mesa/main/bufferobj.h View File

@@ -154,6 +154,9 @@ _mesa_UnmapBufferARB(GLenum target);
extern void GLAPIENTRY
_mesa_GetBufferParameterivARB(GLenum target, GLenum pname, GLint *params);

extern void GLAPIENTRY
_mesa_GetBufferParameteri64v(GLenum target, GLenum pname, GLint64 *params);

extern void GLAPIENTRY
_mesa_GetBufferPointervARB(GLenum target, GLenum pname, GLvoid **params);


Loading…
Cancel
Save