mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-30 03:30:10 +01:00
mesa: add EXT_dsa NamedBuffer functions
This commit is contained in:
parent
9265e9d11a
commit
e26c6764f2
5 changed files with 150 additions and 9 deletions
|
|
@ -375,6 +375,31 @@
|
|||
<param name="buffer" type="GLuint" />
|
||||
</function>
|
||||
|
||||
<function name="GetNamedBufferSubDataEXT">
|
||||
<param name="buffer" type="GLuint" />
|
||||
<param name="offset" type="GLintptr" />
|
||||
<param name="size" type="GLsizeiptr" />
|
||||
<param name="data" type="GLvoid *" />
|
||||
</function>
|
||||
|
||||
<function name="GetNamedBufferPointervEXT">
|
||||
<param name="buffer" type="GLuint" />
|
||||
<param name="pname" type="GLenum" />
|
||||
<param name="params" type="GLvoid **" />
|
||||
</function>
|
||||
|
||||
<function name="GetNamedBufferParameterivEXT">
|
||||
<param name="buffer" type="GLuint" />
|
||||
<param name="pname" type="GLenum" />
|
||||
<param name="params" type="GLint *" />
|
||||
</function>
|
||||
|
||||
<function name="FlushMappedNamedBufferRangeEXT">
|
||||
<param name="buffer" type="GLuint" />
|
||||
<param name="offset" type="GLintptr" />
|
||||
<param name="length" type="GLsizeiptr" />
|
||||
</function>
|
||||
|
||||
<!-- OpenGL 3.0 -->
|
||||
|
||||
<function name="MapNamedBufferRangeEXT">
|
||||
|
|
|
|||
|
|
@ -1500,6 +1500,10 @@ offsets = {
|
|||
"GetTextureImageEXT": 1464,
|
||||
"GetTextureLevelParameterivEXT": 1465,
|
||||
"GetTextureLevelParameterfvEXT": 1466,
|
||||
"GetNamedBufferSubDataEXT": 1467,
|
||||
"GetNamedBufferPointervEXT": 1468,
|
||||
"GetNamedBufferParameterivEXT": 1469,
|
||||
"FlushMappedNamedBufferRangeEXT": 1470,
|
||||
}
|
||||
|
||||
functions = [
|
||||
|
|
|
|||
|
|
@ -2193,7 +2193,7 @@ _mesa_NamedBufferDataEXT(GLuint buffer, GLsizeiptr size, const GLvoid *data,
|
|||
|
||||
if (!buffer) {
|
||||
_mesa_error(ctx, GL_INVALID_OPERATION,
|
||||
"glNamedBufferDataEXT(invalid buffer 0)");
|
||||
"glNamedBufferDataEXT(buffer=0)");
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -2342,7 +2342,7 @@ _mesa_NamedBufferSubDataEXT(GLuint buffer, GLintptr offset,
|
|||
|
||||
if (!buffer) {
|
||||
_mesa_error(ctx, GL_INVALID_OPERATION,
|
||||
"glNamedBufferSubDataEXT(invalid buffer 0)");
|
||||
"glNamedBufferSubDataEXT(buffer=0)");
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -2401,6 +2401,33 @@ _mesa_GetNamedBufferSubData(GLuint buffer, GLintptr offset,
|
|||
}
|
||||
|
||||
|
||||
void GLAPIENTRY
|
||||
_mesa_GetNamedBufferSubDataEXT(GLuint buffer, GLintptr offset,
|
||||
GLsizeiptr size, GLvoid *data)
|
||||
{
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
struct gl_buffer_object *bufObj;
|
||||
|
||||
if (!buffer) {
|
||||
_mesa_error(ctx, GL_INVALID_OPERATION,
|
||||
"glGetNamedBufferSubDataEXT(buffer=0)");
|
||||
return;
|
||||
}
|
||||
|
||||
bufObj = _mesa_lookup_bufferobj(ctx, buffer);
|
||||
if (!_mesa_handle_bind_buffer_gen(ctx, buffer,
|
||||
&bufObj, "glGetNamedBufferSubDataEXT"))
|
||||
return;
|
||||
|
||||
if (!buffer_object_subdata_range_good(ctx, bufObj, offset, size, false,
|
||||
"glGetNamedBufferSubDataEXT")) {
|
||||
return;
|
||||
}
|
||||
|
||||
assert(ctx->Driver.GetBufferSubData);
|
||||
ctx->Driver.GetBufferSubData(ctx, offset, size, data, bufObj);
|
||||
}
|
||||
|
||||
/**
|
||||
* \param subdata true if caller is *SubData, false if *Data
|
||||
*/
|
||||
|
|
@ -2718,7 +2745,7 @@ _mesa_UnmapNamedBufferEXT(GLuint buffer)
|
|||
|
||||
if (!buffer) {
|
||||
_mesa_error(ctx, GL_INVALID_OPERATION,
|
||||
"glUnmapNamedBufferEXT(invalid buffer 0)");
|
||||
"glUnmapNamedBufferEXT(buffer=0)");
|
||||
return GL_FALSE;
|
||||
}
|
||||
|
||||
|
|
@ -2843,6 +2870,31 @@ _mesa_GetNamedBufferParameteriv(GLuint buffer, GLenum pname, GLint *params)
|
|||
*params = (GLint) parameter;
|
||||
}
|
||||
|
||||
void GLAPIENTRY
|
||||
_mesa_GetNamedBufferParameterivEXT(GLuint buffer, GLenum pname, GLint *params)
|
||||
{
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
struct gl_buffer_object *bufObj;
|
||||
GLint64 parameter;
|
||||
|
||||
if (!buffer) {
|
||||
_mesa_error(ctx, GL_INVALID_OPERATION,
|
||||
"glGetNamedBufferParameterivEXT: buffer=0");
|
||||
return;
|
||||
}
|
||||
|
||||
bufObj = _mesa_lookup_bufferobj(ctx, buffer);
|
||||
if (!_mesa_handle_bind_buffer_gen(ctx, buffer,
|
||||
&bufObj, "glGetNamedBufferParameterivEXT"))
|
||||
return;
|
||||
|
||||
if (!get_buffer_parameter(ctx, bufObj, pname, ¶meter,
|
||||
"glGetNamedBufferParameterivEXT"))
|
||||
return; /* Error already recorded. */
|
||||
|
||||
*params = (GLint) parameter;
|
||||
}
|
||||
|
||||
void GLAPIENTRY
|
||||
_mesa_GetNamedBufferParameteri64v(GLuint buffer, GLenum pname,
|
||||
GLint64 *params)
|
||||
|
|
@ -2904,6 +2956,30 @@ _mesa_GetNamedBufferPointerv(GLuint buffer, GLenum pname, GLvoid **params)
|
|||
*params = bufObj->Mappings[MAP_USER].Pointer;
|
||||
}
|
||||
|
||||
void GLAPIENTRY
|
||||
_mesa_GetNamedBufferPointervEXT(GLuint buffer, GLenum pname, GLvoid **params)
|
||||
{
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
struct gl_buffer_object *bufObj;
|
||||
|
||||
if (!buffer) {
|
||||
_mesa_error(ctx, GL_INVALID_OPERATION,
|
||||
"glGetNamedBufferPointervEXT(buffer=0)");
|
||||
return;
|
||||
}
|
||||
if (pname != GL_BUFFER_MAP_POINTER) {
|
||||
_mesa_error(ctx, GL_INVALID_ENUM, "glGetNamedBufferPointervEXT(pname != "
|
||||
"GL_BUFFER_MAP_POINTER)");
|
||||
return;
|
||||
}
|
||||
|
||||
bufObj = _mesa_lookup_bufferobj(ctx, buffer);
|
||||
if (!_mesa_handle_bind_buffer_gen(ctx, buffer,
|
||||
&bufObj, "glGetNamedBufferPointervEXT"))
|
||||
return;
|
||||
|
||||
*params = bufObj->Mappings[MAP_USER].Pointer;
|
||||
}
|
||||
|
||||
static void
|
||||
copy_buffer_sub_data(struct gl_context *ctx, struct gl_buffer_object *src,
|
||||
|
|
@ -3333,7 +3409,7 @@ _mesa_MapNamedBufferRangeEXT(GLuint buffer, GLintptr offset, GLsizeiptr length,
|
|||
GET_CURRENT_CONTEXT(ctx);
|
||||
if (!buffer) {
|
||||
_mesa_error(ctx, GL_INVALID_OPERATION,
|
||||
"glMapNamedBufferRangeEXT(invalid buffer 0)");
|
||||
"glMapNamedBufferRangeEXT(buffer=0)");
|
||||
return NULL;
|
||||
}
|
||||
return map_named_buffer_range(buffer, offset, length, access, true,
|
||||
|
|
@ -3459,7 +3535,7 @@ _mesa_MapNamedBufferEXT(GLuint buffer, GLenum access)
|
|||
GLbitfield accessFlags;
|
||||
if (!buffer) {
|
||||
_mesa_error(ctx, GL_INVALID_OPERATION,
|
||||
"glMapNamedBufferEXT(invalid buffer 0)");
|
||||
"glMapNamedBufferEXT(buffer=0)");
|
||||
return NULL;
|
||||
}
|
||||
if (!get_map_buffer_access_flags(ctx, access, &accessFlags)) {
|
||||
|
|
@ -3590,6 +3666,28 @@ _mesa_FlushMappedNamedBufferRange(GLuint buffer, GLintptr offset,
|
|||
"glFlushMappedNamedBufferRange");
|
||||
}
|
||||
|
||||
void GLAPIENTRY
|
||||
_mesa_FlushMappedNamedBufferRangeEXT(GLuint buffer, GLintptr offset,
|
||||
GLsizeiptr length)
|
||||
{
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
struct gl_buffer_object *bufObj;
|
||||
|
||||
if (!buffer) {
|
||||
_mesa_error(ctx, GL_INVALID_OPERATION,
|
||||
"glFlushMappedNamedBufferRangeEXT(buffer=0)");
|
||||
return;
|
||||
}
|
||||
|
||||
bufObj = _mesa_lookup_bufferobj(ctx, buffer);
|
||||
if (!_mesa_handle_bind_buffer_gen(ctx, buffer,
|
||||
&bufObj, "glFlushMappedNamedBufferRangeEXT"))
|
||||
return;
|
||||
|
||||
flush_mapped_buffer_range(ctx, bufObj, offset, length,
|
||||
"glFlushMappedNamedBufferRangeEXT");
|
||||
}
|
||||
|
||||
static void
|
||||
bind_buffer_range_uniform_buffer(struct gl_context *ctx, GLuint index,
|
||||
struct gl_buffer_object *bufObj,
|
||||
|
|
|
|||
|
|
@ -254,6 +254,10 @@ void GLAPIENTRY
|
|||
_mesa_GetNamedBufferSubData(GLuint buffer, GLintptr offset,
|
||||
GLsizeiptr size, GLvoid *data);
|
||||
|
||||
void GLAPIENTRY
|
||||
_mesa_GetNamedBufferSubDataEXT(GLuint buffer, GLintptr offset,
|
||||
GLsizeiptr size, GLvoid *data);
|
||||
|
||||
void GLAPIENTRY
|
||||
_mesa_ClearBufferData_no_error(GLenum target, GLenum internalformat,
|
||||
GLenum format, GLenum type, const GLvoid *data);
|
||||
|
|
@ -316,6 +320,9 @@ _mesa_GetBufferParameteri64v(GLenum target, GLenum pname, GLint64 *params);
|
|||
void GLAPIENTRY
|
||||
_mesa_GetNamedBufferParameteriv(GLuint buffer, GLenum pname, GLint *params);
|
||||
|
||||
void GLAPIENTRY
|
||||
_mesa_GetNamedBufferParameterivEXT(GLuint buffer, GLenum pname, GLint *params);
|
||||
|
||||
void GLAPIENTRY
|
||||
_mesa_GetNamedBufferParameteri64v(GLuint buffer, GLenum pname,
|
||||
GLint64 *params);
|
||||
|
|
@ -326,6 +333,9 @@ _mesa_GetBufferPointerv(GLenum target, GLenum pname, GLvoid **params);
|
|||
void GLAPIENTRY
|
||||
_mesa_GetNamedBufferPointerv(GLuint buffer, GLenum pname, GLvoid **params);
|
||||
|
||||
void GLAPIENTRY
|
||||
_mesa_GetNamedBufferPointervEXT(GLuint buffer, GLenum pname, GLvoid **params);
|
||||
|
||||
void GLAPIENTRY
|
||||
_mesa_CopyBufferSubData_no_error(GLenum readTarget, GLenum writeTarget,
|
||||
GLintptr readOffset, GLintptr writeOffset,
|
||||
|
|
@ -387,6 +397,10 @@ void GLAPIENTRY
|
|||
_mesa_FlushMappedNamedBufferRange(GLuint buffer, GLintptr offset,
|
||||
GLsizeiptr length);
|
||||
|
||||
void GLAPIENTRY
|
||||
_mesa_FlushMappedNamedBufferRangeEXT(GLuint buffer, GLintptr offset,
|
||||
GLsizeiptr length);
|
||||
|
||||
void GLAPIENTRY
|
||||
_mesa_BindBufferRange_no_error(GLenum target, GLuint index, GLuint buffer,
|
||||
GLintptr offset, GLsizeiptr size);
|
||||
|
|
|
|||
|
|
@ -1129,9 +1129,9 @@ const struct function common_desktop_functions_possible[] = {
|
|||
{ "glNamedBufferSubDataEXT", 15, -1 },
|
||||
{ "glMapNamedBufferEXT", 15, -1 },
|
||||
{ "glUnmapNamedBufferEXT", 15, -1 },
|
||||
//{ "glGetNamedBufferParameterivEXT", 15, -1 },
|
||||
//{ "glGetNamedBufferPointervEXT", 15, -1 },
|
||||
//{ "glGetNamedBufferSubDataEXT", 15, -1 },
|
||||
{ "glGetNamedBufferParameterivEXT", 15, -1 },
|
||||
{ "glGetNamedBufferPointervEXT", 15, -1 },
|
||||
{ "glGetNamedBufferSubDataEXT", 15, -1 },
|
||||
/* GL_EXT_direct_state_access - GL 2.0 */
|
||||
//{ "glProgramUniform1iEXT", 20, -1 },
|
||||
//{ "glProgramUniform1ivEXT", 20, -1 },
|
||||
|
|
@ -1222,7 +1222,7 @@ const struct function common_desktop_functions_possible[] = {
|
|||
//{ "glGetVertexArrayIntegeri_vEXT", 30, -1 },
|
||||
//{ "glGetVertexArrayPointeri_vEXT", 30, -1 },
|
||||
{ "glMapNamedBufferRangeEXT", 30, -1 },
|
||||
//{ "glFlushMappedNamedBufferRangeEXT", 30, -1 },
|
||||
{ "glFlushMappedNamedBufferRangeEXT", 30, -1 },
|
||||
|
||||
/* GL_ARB_internalformat_query */
|
||||
{ "glGetInternalformativ", 30, -1 },
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue