mesa: add ARB_vertex_attrib_64bit VertexArrayVertexAttribLOffsetEXT
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
@@ -387,14 +387,14 @@ GL_EXT_direct_state_access additions from other extensions (complete list):
|
|||||||
GL_ARB_texture_buffer_range not started
|
GL_ARB_texture_buffer_range not started
|
||||||
GL_ARB_texture_storage DONE
|
GL_ARB_texture_storage DONE
|
||||||
GL_ARB_texture_storage_multisample not started
|
GL_ARB_texture_storage_multisample not started
|
||||||
GL_ARB_vertex_attrib_64bit not started
|
GL_ARB_vertex_attrib_64bit DONE
|
||||||
GL_ARB_vertex_attrib_binding DONE
|
GL_ARB_vertex_attrib_binding DONE
|
||||||
GL_EXT_buffer_storage DONE
|
GL_EXT_buffer_storage DONE
|
||||||
GL_EXT_external_buffer n/a
|
GL_EXT_external_buffer n/a
|
||||||
GL_EXT_separate_shader_objects n/a
|
GL_EXT_separate_shader_objects n/a
|
||||||
GL_EXT_sparse_texture n/a
|
GL_EXT_sparse_texture n/a
|
||||||
GL_EXT_texture_storage n/a
|
GL_EXT_texture_storage n/a
|
||||||
GL_EXT_vertex_attrib_64bit not started
|
GL_EXT_vertex_attrib_64bit DONE
|
||||||
GL_EXT_EGL_image_storage n/a
|
GL_EXT_EGL_image_storage n/a
|
||||||
GL_NV_bindless_texture n/a
|
GL_NV_bindless_texture n/a
|
||||||
GL_NV_gpu_shader5 n/a
|
GL_NV_gpu_shader5 n/a
|
||||||
|
@@ -64,6 +64,16 @@
|
|||||||
<param name="pname" type="GLenum"/>
|
<param name="pname" type="GLenum"/>
|
||||||
<param name="params" type="GLdouble *"/>
|
<param name="params" type="GLdouble *"/>
|
||||||
</function>
|
</function>
|
||||||
|
|
||||||
|
<function name="VertexArrayVertexAttribLOffsetEXT">
|
||||||
|
<param name="vaobj" type="GLuint" />
|
||||||
|
<param name="buffer" type="GLuint" />
|
||||||
|
<param name="index" type="GLuint" />
|
||||||
|
<param name="size" type="GLint" />
|
||||||
|
<param name="type" type="GLenum" />
|
||||||
|
<param name="stride" type="GLsizei" />
|
||||||
|
<param name="offset" type="GLintptr" />
|
||||||
|
</function>
|
||||||
</category>
|
</category>
|
||||||
|
|
||||||
</OpenGLAPI>
|
</OpenGLAPI>
|
||||||
|
@@ -1618,6 +1618,7 @@ offsets = {
|
|||||||
"GetVertexArrayPointeri_vEXT": 1582,
|
"GetVertexArrayPointeri_vEXT": 1582,
|
||||||
"NamedFramebufferParameteriEXT": 1583,
|
"NamedFramebufferParameteriEXT": 1583,
|
||||||
"GetNamedFramebufferParameterivEXT": 1584,
|
"GetNamedFramebufferParameterivEXT": 1584,
|
||||||
|
"VertexArrayVertexAttribLOffsetEXT": 1585,
|
||||||
}
|
}
|
||||||
|
|
||||||
functions = [
|
functions = [
|
||||||
|
@@ -616,6 +616,7 @@ const struct function common_desktop_functions_possible[] = {
|
|||||||
{ "glVertexAttribL4dv", 41, -1 },
|
{ "glVertexAttribL4dv", 41, -1 },
|
||||||
{ "glVertexAttribLPointer", 41, -1 },
|
{ "glVertexAttribLPointer", 41, -1 },
|
||||||
{ "glGetVertexAttribLdv", 41, -1 },
|
{ "glGetVertexAttribLdv", 41, -1 },
|
||||||
|
{ "glVertexArrayVertexAttribLOffsetEXT", 41, -1 },
|
||||||
|
|
||||||
/* GL 4.3 */
|
/* GL 4.3 */
|
||||||
{ "glIsRenderbuffer", 43, -1 },
|
{ "glIsRenderbuffer", 43, -1 },
|
||||||
|
@@ -1410,6 +1410,40 @@ _mesa_VertexArrayVertexAttribOffsetEXT(GLuint vaobj, GLuint buffer, GLuint index
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void GLAPIENTRY
|
||||||
|
_mesa_VertexArrayVertexAttribLOffsetEXT(GLuint vaobj, GLuint buffer, GLuint index, GLint size,
|
||||||
|
GLenum type, GLsizei stride, GLintptr offset)
|
||||||
|
{
|
||||||
|
GET_CURRENT_CONTEXT(ctx);
|
||||||
|
GLenum format = GL_RGBA;
|
||||||
|
struct gl_vertex_array_object* vao;
|
||||||
|
struct gl_buffer_object* vbo;
|
||||||
|
|
||||||
|
if (!_lookup_vao_and_vbo_dsa(ctx, vaobj, buffer, offset,
|
||||||
|
&vao, &vbo,
|
||||||
|
"glVertexArrayVertexAttribLOffsetEXT"))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (index >= ctx->Const.Program[MESA_SHADER_VERTEX].MaxAttribs) {
|
||||||
|
_mesa_error(ctx, GL_INVALID_VALUE, "glVertexArrayVertexAttribLOffsetEXT(idx)");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const GLbitfield legalTypes = DOUBLE_BIT;
|
||||||
|
|
||||||
|
if (!validate_array_and_format(ctx, "glVertexArrayVertexAttribLOffsetEXT",
|
||||||
|
vao, vbo,
|
||||||
|
VERT_ATTRIB_GENERIC(index), legalTypes,
|
||||||
|
1, 4, size, type, stride,
|
||||||
|
GL_FALSE, GL_FALSE, GL_TRUE, format, (void*) offset))
|
||||||
|
return;
|
||||||
|
|
||||||
|
update_array(ctx, vao, vbo,
|
||||||
|
VERT_ATTRIB_GENERIC(index), format, 4,
|
||||||
|
size, type, stride, GL_FALSE, GL_FALSE, GL_TRUE, (void*) offset);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void GLAPIENTRY
|
void GLAPIENTRY
|
||||||
_mesa_VertexAttribIPointer_no_error(GLuint index, GLint size, GLenum type,
|
_mesa_VertexAttribIPointer_no_error(GLuint index, GLint size, GLenum type,
|
||||||
GLsizei stride, const GLvoid *ptr)
|
GLsizei stride, const GLvoid *ptr)
|
||||||
|
@@ -494,6 +494,10 @@ extern void GLAPIENTRY
|
|||||||
_mesa_VertexArrayVertexAttribIOffsetEXT(GLuint vaobj, GLuint buffer, GLuint index, GLint size,
|
_mesa_VertexArrayVertexAttribIOffsetEXT(GLuint vaobj, GLuint buffer, GLuint index, GLint size,
|
||||||
GLenum type, GLsizei stride, GLintptr offset);
|
GLenum type, GLsizei stride, GLintptr offset);
|
||||||
|
|
||||||
|
extern void GLAPIENTRY
|
||||||
|
_mesa_VertexArrayVertexAttribLOffsetEXT(GLuint vaobj, GLuint buffer, GLuint index, GLint size,
|
||||||
|
GLenum type, GLsizei stride, GLintptr offset);
|
||||||
|
|
||||||
extern void GLAPIENTRY
|
extern void GLAPIENTRY
|
||||||
_mesa_GetVertexArrayIntegervEXT(GLuint vaobj, GLenum pname, GLint *param);
|
_mesa_GetVertexArrayIntegervEXT(GLuint vaobj, GLenum pname, GLint *param);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user