mesa: add support for glNamedBuffer*DataEXT()

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
Timothy Arceri 2018-05-18 15:20:35 +10:00 committed by Marek Olšák
parent 0972b0b059
commit 83ed9485b7
5 changed files with 57 additions and 3 deletions

View file

@ -129,6 +129,21 @@
<param name="matrixMode" type="GLenum" />
<param name="m" type="const GLdouble *" />
</function>
</category>
<!-- OpenGL 1.5 -->
<function name="NamedBufferDataEXT">
<param name="buffer" type="GLuint" />
<param name="size" type="GLsizeiptr" />
<param name="data" type="const GLvoid *" />
<param name="usage" type="GLenum" />
</function>
<function name="NamedBufferSubDataEXT">
<param name="buffer" type="GLuint" />
<param name="offset" type="GLintptr" />
<param name="size" type="GLsizeiptr" />
<param name="data" type="const GLvoid *" />
</function>
</category>
</OpenGLAPI>

View file

@ -1474,6 +1474,8 @@ offsets = {
"MatrixMultTransposefEXT": 1438,
"MatrixMultTransposedEXT": 1439,
"BindMultiTextureEXT": 1440,
"NamedBufferDataEXT": 1441,
"NamedBufferSubDataEXT": 1442,
}
functions = [

View file

@ -2169,6 +2169,20 @@ _mesa_NamedBufferData(GLuint buffer, GLsizeiptr size, const GLvoid *data,
"glNamedBufferData");
}
void GLAPIENTRY
_mesa_NamedBufferDataEXT(GLuint buffer, GLsizeiptr size, const GLvoid *data,
GLenum usage)
{
GET_CURRENT_CONTEXT(ctx);
struct gl_buffer_object *bufObj = _mesa_lookup_bufferobj(ctx, buffer);
if (!_mesa_handle_bind_buffer_gen(ctx, buffer,
&bufObj, "glNamedBufferDataEXT"))
return;
_mesa_buffer_data(ctx, bufObj, GL_NONE, size, data, usage,
"glNamedBufferDataEXT");
}
static bool
validate_buffer_sub_data(struct gl_context *ctx,
@ -2297,6 +2311,23 @@ _mesa_NamedBufferSubData(GLuint buffer, GLintptr offset,
"glNamedBufferSubData");
}
void GLAPIENTRY
_mesa_NamedBufferSubDataEXT(GLuint buffer, GLintptr offset,
GLsizeiptr size, const GLvoid *data)
{
GET_CURRENT_CONTEXT(ctx);
struct gl_buffer_object *bufObj = _mesa_lookup_bufferobj(ctx, buffer);
if (!_mesa_handle_bind_buffer_gen(ctx, buffer,
&bufObj, "glNamedBufferSubDataEXT"))
return;
if (validate_buffer_sub_data(ctx, bufObj, offset, size,
"glNamedBufferSubDataEXT")) {
_mesa_buffer_sub_data(ctx, bufObj, offset, size, data);
}
}
void GLAPIENTRY
_mesa_GetBufferSubData(GLenum target, GLintptr offset,

View file

@ -222,6 +222,9 @@ _mesa_NamedBufferData_no_error(GLuint buffer, GLsizeiptr size,
void GLAPIENTRY
_mesa_NamedBufferData(GLuint buffer, GLsizeiptr size,
const GLvoid *data, GLenum usage);
void GLAPIENTRY
_mesa_NamedBufferDataEXT(GLuint buffer, GLsizeiptr size,
const GLvoid *data, GLenum usage);
void GLAPIENTRY
_mesa_BufferSubData_no_error(GLenum target, GLintptr offset,
@ -236,6 +239,9 @@ _mesa_NamedBufferSubData_no_error(GLuint buffer, GLintptr offset,
void GLAPIENTRY
_mesa_NamedBufferSubData(GLuint buffer, GLintptr offset,
GLsizeiptr size, const GLvoid *data);
void GLAPIENTRY
_mesa_NamedBufferSubDataEXT(GLuint buffer, GLintptr offset,
GLsizeiptr size, const GLvoid *data);
void GLAPIENTRY
_mesa_GetBufferSubData(GLenum target, GLintptr offset,

View file

@ -1126,8 +1126,8 @@ const struct function common_desktop_functions_possible[] = {
{ "glMatrixMultTransposefEXT", 13, -1 },
{ "glMatrixMultTransposedEXT", 13, -1 },
/* GL_EXT_direct_state_access - GL 1.5 */
//{ "glNamedBufferDataEXT", 15, -1 },
//{ "glNamedBufferSubDataEXT", 15, -1 },
{ "glNamedBufferDataEXT", 15, -1 },
{ "glNamedBufferSubDataEXT", 15, -1 },
//{ "glMapNamedBufferEXT", 15, -1 },
//{ "glUnmapNamedBufferEXT", 15, -1 },
//{ "glGetNamedBufferParameterivEXT", 15, -1 },