X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmesa%2Fmain%2Fvarray.h;h=ca49042653c58b4a9b334f98cd5578ced29364ab;hb=aeade86db5761313f8b8c3c8555d3813d92e92ff;hp=ac49434ab900ec816d02792d0b1f83540229b1c3;hpb=e473fdcdabcdb58df17716a33d532a765e39bf72;p=mesa.git diff --git a/src/mesa/main/varray.h b/src/mesa/main/varray.h index ac49434ab90..ca49042653c 100644 --- a/src/mesa/main/varray.h +++ b/src/mesa/main/varray.h @@ -223,18 +223,31 @@ _mesa_VertexAttribLPointer(GLuint index, GLint size, GLenum type, extern void GLAPIENTRY _mesa_EnableVertexAttribArray(GLuint index); +extern void GLAPIENTRY +_mesa_EnableVertexAttribArray_no_error(GLuint index); + extern void GLAPIENTRY _mesa_EnableVertexArrayAttrib(GLuint vaobj, GLuint index); +extern void GLAPIENTRY +_mesa_EnableVertexArrayAttrib_no_error(GLuint vaobj, GLuint index); + + extern void GLAPIENTRY _mesa_DisableVertexAttribArray(GLuint index); +extern void GLAPIENTRY +_mesa_DisableVertexAttribArray_no_error(GLuint index); + extern void GLAPIENTRY _mesa_DisableVertexArrayAttrib(GLuint vaobj, GLuint index); +extern void GLAPIENTRY +_mesa_DisableVertexArrayAttrib_no_error(GLuint vaobj, GLuint index); + extern void GLAPIENTRY _mesa_GetVertexAttribdv(GLuint index, GLenum pname, GLdouble *params); @@ -248,6 +261,9 @@ _mesa_GetVertexAttribLdv(GLuint index, GLenum pname, GLdouble *params); extern void GLAPIENTRY _mesa_GetVertexAttribiv(GLuint index, GLenum pname, GLint *params); +extern void GLAPIENTRY +_mesa_GetVertexAttribLui64vARB(GLuint index, GLenum pname, GLuint64EXT *params); + extern void GLAPIENTRY _mesa_GetVertexAttribIiv(GLuint index, GLenum pname, GLint *params); @@ -343,22 +359,53 @@ _mesa_VertexAttribDivisor_no_error(GLuint index, GLuint divisor); extern void GLAPIENTRY _mesa_VertexAttribDivisor(GLuint index, GLuint divisor); -extern unsigned +static inline unsigned _mesa_primitive_restart_index(const struct gl_context *ctx, - unsigned index_size); + unsigned index_size) +{ + /* From the OpenGL 4.3 core specification, page 302: + * "If both PRIMITIVE_RESTART and PRIMITIVE_RESTART_FIXED_INDEX are + * enabled, the index value determined by PRIMITIVE_RESTART_FIXED_INDEX + * is used." + */ + if (ctx->Array.PrimitiveRestartFixedIndex) { + /* 1 -> 0xff, 2 -> 0xffff, 4 -> 0xffffffff */ + return 0xffffffffu >> 8 * (4 - index_size); + } + return ctx->Array.RestartIndex; +} + +extern void GLAPIENTRY +_mesa_BindVertexBuffer_no_error(GLuint bindingIndex, GLuint buffer, + GLintptr offset, GLsizei stride); extern void GLAPIENTRY _mesa_BindVertexBuffer(GLuint bindingIndex, GLuint buffer, GLintptr offset, GLsizei stride); +void GLAPIENTRY +_mesa_VertexArrayVertexBuffer_no_error(GLuint vaobj, GLuint bindingIndex, + GLuint buffer, GLintptr offset, + GLsizei stride); extern void GLAPIENTRY _mesa_VertexArrayVertexBuffer(GLuint vaobj, GLuint bindingIndex, GLuint buffer, GLintptr offset, GLsizei stride); +void GLAPIENTRY +_mesa_BindVertexBuffers_no_error(GLuint first, GLsizei count, + const GLuint *buffers, const GLintptr *offsets, + const GLsizei *strides); + extern void GLAPIENTRY _mesa_BindVertexBuffers(GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides); +void GLAPIENTRY +_mesa_VertexArrayVertexBuffers_no_error(GLuint vaobj, GLuint first, + GLsizei count, const GLuint *buffers, + const GLintptr *offsets, + const GLsizei *strides); + extern void GLAPIENTRY _mesa_VertexArrayVertexBuffers(GLuint vaobj, GLuint first, GLsizei count, const GLuint *buffers, @@ -391,9 +438,16 @@ _mesa_VertexArrayAttribLFormat(GLuint vaobj, GLuint attribIndex, GLint size, GLenum type, GLuint relativeOffset); +void GLAPIENTRY +_mesa_VertexAttribBinding_no_error(GLuint attribIndex, GLuint bindingIndex); + extern void GLAPIENTRY _mesa_VertexAttribBinding(GLuint attribIndex, GLuint bindingIndex); +void GLAPIENTRY +_mesa_VertexArrayAttribBinding_no_error(GLuint vaobj, GLuint attribIndex, + GLuint bindingIndex); + extern void GLAPIENTRY _mesa_VertexArrayAttribBinding(GLuint vaobj, GLuint attribIndex, GLuint bindingIndex);