mesa: Fix NetBSD compiler macro.
[mesa.git] / src / mesa / main / varray.h
index ecb463f42d3085bfd82adf67601fc15f90a17203..48c257993eb74799a59ea66b708fb5cf2d643445 100644 (file)
@@ -45,7 +45,7 @@ static inline const GLubyte *
 _mesa_vertex_attrib_address(const struct gl_array_attributes *array,
                             const struct gl_vertex_buffer_binding *binding)
 {
-   if (_mesa_is_bufferobj(binding->BufferObj))
+   if (binding->BufferObj)
       return (const GLubyte *) (binding->Offset + array->RelativeOffset);
    else
       return array->Ptr;
@@ -109,7 +109,8 @@ _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);
+                         GLintptr offset, GLsizei stride,
+                         bool offset_is_int32, bool take_vbo_ownership);
 
 extern void GLAPIENTRY
 _mesa_VertexPointer_no_error(GLint size, GLenum type, GLsizei stride,
@@ -317,12 +318,14 @@ extern void GLAPIENTRY
 _mesa_VertexAttribDivisor_no_error(GLuint index, GLuint divisor);
 extern void GLAPIENTRY
 _mesa_VertexAttribDivisor(GLuint index, GLuint divisor);
+extern void GLAPIENTRY
+_mesa_VertexArrayVertexAttribDivisorEXT(GLuint vaobj, GLuint index, GLuint divisor);
 
 static inline unsigned
-_mesa_primitive_restart_index(const struct gl_context *ctx,
-                              unsigned index_size)
+_mesa_get_prim_restart_index(bool fixed_index, unsigned restart_index,
+                             unsigned index_size)
 {
-   /* The index_size parameter is menat to be in bytes. */
+   /* The index_size parameter is meant to be in bytes. */
    assert(index_size == 1 || index_size == 2 || index_size == 4);
 
    /* From the OpenGL 4.3 core specification, page 302:
@@ -330,12 +333,20 @@ _mesa_primitive_restart_index(const struct gl_context *ctx,
     *  enabled, the index value determined by PRIMITIVE_RESTART_FIXED_INDEX
     *  is used."
     */
-   if (ctx->Array.PrimitiveRestartFixedIndex) {
+   if (fixed_index) {
       /* 1 -> 0xff, 2 -> 0xffff, 4 -> 0xffffffff */
       return 0xffffffffu >> 8 * (4 - index_size);
    }
 
-   return ctx->Array.RestartIndex;
+   return restart_index;
+}
+
+static inline unsigned
+_mesa_primitive_restart_index(const struct gl_context *ctx,
+                              unsigned index_size)
+{
+   return _mesa_get_prim_restart_index(ctx->Array.PrimitiveRestartFixedIndex,
+                                       ctx->Array.RestartIndex, index_size);
 }
 
 extern void GLAPIENTRY
@@ -353,6 +364,10 @@ extern void GLAPIENTRY
 _mesa_VertexArrayVertexBuffer(GLuint vaobj, GLuint bindingIndex, GLuint buffer,
                               GLintptr offset, GLsizei stride);
 
+extern void GLAPIENTRY
+_mesa_VertexArrayBindVertexBufferEXT(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,
@@ -362,6 +377,12 @@ extern void GLAPIENTRY
 _mesa_BindVertexBuffers(GLuint first, GLsizei count, const GLuint *buffers,
                         const GLintptr *offsets, const GLsizei *strides);
 
+void
+_mesa_InternalBindVertexBuffers(struct gl_context *ctx,
+                                const struct glthread_attrib_binding *attribs,
+                                GLbitfield attrib_mask,
+                                GLboolean restore_pointers);
+
 void GLAPIENTRY
 _mesa_VertexArrayVertexBuffers_no_error(GLuint vaobj, GLuint first,
                                         GLsizei count, const GLuint *buffers,
@@ -382,6 +403,11 @@ _mesa_VertexArrayAttribFormat(GLuint vaobj, GLuint attribIndex, GLint size,
                               GLenum type, GLboolean normalized,
                               GLuint relativeOffset);
 
+extern void GLAPIENTRY
+_mesa_VertexArrayVertexAttribFormatEXT(GLuint vaobj, GLuint attribIndex, GLint size,
+                                       GLenum type, GLboolean normalized,
+                                       GLuint relativeOffset);
+
 extern void GLAPIENTRY
 _mesa_VertexAttribIFormat(GLuint attribIndex, GLint size, GLenum type,
                           GLuint relativeOffset);
@@ -391,6 +417,11 @@ _mesa_VertexArrayAttribIFormat(GLuint vaobj, GLuint attribIndex,
                                GLint size, GLenum type,
                                GLuint relativeOffset);
 
+extern void GLAPIENTRY
+_mesa_VertexArrayVertexAttribIFormatEXT(GLuint vaobj, GLuint attribIndex,
+                                        GLint size, GLenum type,
+                                        GLuint relativeOffset);
+
 extern void GLAPIENTRY
 _mesa_VertexAttribLFormat(GLuint attribIndex, GLint size, GLenum type,
                           GLuint relativeOffset);
@@ -400,6 +431,11 @@ _mesa_VertexArrayAttribLFormat(GLuint vaobj, GLuint attribIndex,
                                GLint size, GLenum type,
                                GLuint relativeOffset);
 
+extern void GLAPIENTRY
+_mesa_VertexArrayVertexAttribLFormatEXT(GLuint vaobj, GLuint attribIndex,
+                                        GLint size, GLenum type,
+                                        GLuint relativeOffset);
+
 void GLAPIENTRY
 _mesa_VertexAttribBinding_no_error(GLuint attribIndex, GLuint bindingIndex);
 
@@ -414,6 +450,10 @@ extern void GLAPIENTRY
 _mesa_VertexArrayAttribBinding(GLuint vaobj, GLuint attribIndex,
                                GLuint bindingIndex);
 
+extern void GLAPIENTRY
+_mesa_VertexArrayVertexAttribBindingEXT(GLuint vaobj, GLuint attribIndex,
+                                        GLuint bindingIndex);
+
 void GLAPIENTRY
 _mesa_VertexBindingDivisor_no_error(GLuint bindingIndex, GLuint divisor);
 
@@ -428,6 +468,10 @@ extern void GLAPIENTRY
 _mesa_VertexArrayBindingDivisor(GLuint vaobj, GLuint bindingIndex,
                                 GLuint divisor);
 
+extern void GLAPIENTRY
+_mesa_VertexArrayVertexBindingDivisorEXT(GLuint vaobj, GLuint bindingIndex,
+                                         GLuint divisor);
+
 
 extern void
 _mesa_copy_vertex_attrib_array(struct gl_context *ctx,
@@ -494,6 +538,10 @@ extern void GLAPIENTRY
 _mesa_VertexArrayVertexAttribIOffsetEXT(GLuint vaobj, GLuint buffer, GLuint index, GLint size,
                                         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
 _mesa_GetVertexArrayIntegervEXT(GLuint vaobj, GLenum pname, GLint *param);