X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmesa%2Fmain%2Fvarray.h;h=8c30d16ea3a5df9ffa0f3c8c9abbba1cd52093a7;hb=7c16552f8dcc869b14cf7ef443a1b5de83b07973;hp=295c54b31a8b8fe1cfaaf59728cc8fa1d3651c00;hpb=0a895c379e649b64efd5c0978fb6252dabf9d285;p=mesa.git diff --git a/src/mesa/main/varray.h b/src/mesa/main/varray.h index 295c54b31a8..8c30d16ea3a 100644 --- a/src/mesa/main/varray.h +++ b/src/mesa/main/varray.h @@ -31,7 +31,7 @@ #include "glheader.h" #include "bufferobj.h" -struct gl_client_array; +struct gl_vertex_array; struct gl_context; /** @@ -40,7 +40,7 @@ struct gl_context; * a vertex buffer. */ static inline const GLubyte * -_mesa_vertex_attrib_address(const struct gl_vertex_attrib_array *array, +_mesa_vertex_attrib_address(const struct gl_array_attributes *array, const struct gl_vertex_buffer_binding *binding) { if (_mesa_is_bufferobj(binding->BufferObj)) @@ -50,22 +50,20 @@ _mesa_vertex_attrib_address(const struct gl_vertex_attrib_array *array, } /** - * Sets the fields in a gl_client_array to values derived from a + * Sets the fields in a gl_vertex_array to values derived from a * gl_vertex_attrib_array and a gl_vertex_buffer_binding. */ static inline void _mesa_update_client_array(struct gl_context *ctx, - struct gl_client_array *dst, - const struct gl_vertex_attrib_array *src, + struct gl_vertex_array *dst, + const struct gl_array_attributes *src, const struct gl_vertex_buffer_binding *binding) { dst->Size = src->Size; dst->Type = src->Type; dst->Format = src->Format; - dst->Stride = src->Stride; dst->StrideB = binding->Stride; dst->Ptr = _mesa_vertex_attrib_address(src, binding); - dst->Enabled = src->Enabled; dst->Normalized = src->Normalized; dst->Integer = src->Integer; dst->Doubles = src->Doubles; @@ -90,6 +88,26 @@ _mesa_attr_zero_aliases_vertex(struct gl_context *ctx) && !is_forward_compatible_context)); } +extern void +_mesa_update_array_format(struct gl_context *ctx, + struct gl_vertex_array_object *vao, + GLuint attrib, GLint size, GLenum type, + GLenum format, GLboolean normalized, + GLboolean integer, GLboolean doubles, + GLuint relativeOffset, bool flush_vertices); + +extern void +_mesa_enable_vertex_array_attrib(struct gl_context *ctx, + struct gl_vertex_array_object *vao, + unsigned attrib); + +extern void +_mesa_bind_vertex_buffer(struct gl_context *ctx, + struct gl_vertex_array_object *vao, + GLuint index, + struct gl_buffer_object *vbo, + GLintptr offset, GLsizei stride); + extern void GLAPIENTRY _mesa_VertexPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *ptr); @@ -212,6 +230,16 @@ extern void GLAPIENTRY _mesa_GetVertexAttribPointerv(GLuint index, GLenum pname, GLvoid **pointer); +void GLAPIENTRY +_mesa_GetVertexArrayIndexediv(GLuint vaobj, GLuint index, + GLenum pname, GLint *param); + + +void GLAPIENTRY +_mesa_GetVertexArrayIndexed64iv(GLuint vaobj, GLuint index, + GLenum pname, GLint64 *param); + + extern void GLAPIENTRY _mesa_InterleavedArrays(GLenum format, GLsizei stride, const GLvoid *pointer); @@ -345,13 +373,13 @@ _mesa_VertexArrayBindingDivisor(GLuint vaobj, GLuint bindingIndex, GLuint diviso extern void _mesa_copy_client_array(struct gl_context *ctx, - struct gl_client_array *dst, - struct gl_client_array *src); + struct gl_vertex_array *dst, + struct gl_vertex_array *src); extern void _mesa_copy_vertex_attrib_array(struct gl_context *ctx, - struct gl_vertex_attrib_array *dst, - const struct gl_vertex_attrib_array *src); + struct gl_array_attributes *dst, + const struct gl_array_attributes *src); extern void _mesa_copy_vertex_buffer_binding(struct gl_context *ctx,