+/**
+ * Returns a pointer to the vertex attribute data in a client array,
+ * or the offset into the vertex buffer for an array that resides in
+ * a vertex buffer.
+ */
+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))
+ return (const GLubyte *) (binding->Offset + array->RelativeOffset);
+ else
+ return array->Ptr;
+}
+
+
+static inline bool
+_mesa_attr_zero_aliases_vertex(const struct gl_context *ctx)
+{
+ return ctx->_AttribZeroAliasesVertex;
+}
+
+
+extern void
+_mesa_update_array_format(struct gl_context *ctx,
+ struct gl_vertex_array_object *vao,
+ gl_vert_attrib attrib, GLint size, GLenum type,
+ GLenum format, GLboolean normalized,
+ GLboolean integer, GLboolean doubles,
+ GLuint relativeOffset);
+
+extern void
+_mesa_enable_vertex_array_attribs(struct gl_context *ctx,
+ struct gl_vertex_array_object *vao,
+ GLbitfield attrib_bits);
+
+static inline void
+_mesa_enable_vertex_array_attrib(struct gl_context *ctx,
+ struct gl_vertex_array_object *vao,
+ gl_vert_attrib attrib)
+{
+ assert(attrib < VERT_ATTRIB_MAX);
+ _mesa_enable_vertex_array_attribs(ctx, vao, VERT_BIT(attrib));
+}
+
+
+extern void
+_mesa_disable_vertex_array_attribs(struct gl_context *ctx,
+ struct gl_vertex_array_object *vao,
+ GLbitfield attrib_bits);
+
+static inline void
+_mesa_disable_vertex_array_attrib(struct gl_context *ctx,
+ struct gl_vertex_array_object *vao,
+ gl_vert_attrib attrib)
+{
+ assert(attrib < VERT_ATTRIB_MAX);
+ _mesa_disable_vertex_array_attribs(ctx, vao, VERT_BIT(attrib));
+}
+
+
+extern void
+_mesa_vertex_attrib_binding(struct gl_context *ctx,
+ struct gl_vertex_array_object *vao,
+ gl_vert_attrib attribIndex,
+ GLuint bindingIndex);
+
+
+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_no_error(GLint size, GLenum type, GLsizei stride,
+ const GLvoid *ptr);