7#include <glbinding/gl/types.h>
11#include <globjects/globjects_api.h>
19class VertexAttributeBinding;
28 , VertexAttribBindingARB
48 void enable(gl::GLint attributeIndex);
51 std::vector<VertexAttributeBinding *>
bindings();
52 std::vector<const VertexAttributeBinding *>
bindings()
const;
56 void drawArrays(gl::GLenum mode, gl::GLint first, gl::GLsizei count)
const;
57 void drawArraysInstanced(gl::GLenum mode, gl::GLint first, gl::GLsizei count, gl::GLsizei instanceCount)
const;
61 void multiDrawArrays(gl::GLenum mode, gl::GLint * first,
const gl::GLsizei * count, gl::GLsizei drawCount)
const;
64 void drawElements(gl::GLenum mode, gl::GLsizei count, gl::GLenum type,
const void * indices =
nullptr)
const;
65 void drawElementsBaseVertex(gl::GLenum mode, gl::GLsizei count, gl::GLenum type,
const void * indices, gl::GLint baseVertex)
const;
66 void drawElementsInstanced(gl::GLenum mode, gl::GLsizei count, gl::GLenum type,
const void * indices, gl::GLsizei primitiveCount)
const;
67 void drawElementsInstancedBaseInstance(gl::GLenum mode, gl::GLsizei count, gl::GLenum type,
const void * indices, gl::GLsizei instanceCount, gl::GLuint baseInstance)
const;
68 void drawElementsInstancedBaseVertex(gl::GLenum mode, gl::GLsizei count, gl::GLenum type,
const void * indices, gl::GLsizei instanceCount, gl::GLint baseVertex)
const;
71 void multiDrawElements(gl::GLenum mode,
const gl::GLsizei * count, gl::GLenum type,
const void ** indices, gl::GLsizei drawCount)
const;
72 void multiDrawElementsBaseVertex(gl::GLenum mode,
const gl::GLsizei * count, gl::GLenum type,
const void ** indices, gl::GLsizei drawCount, gl::GLint * baseVertex)
const;
73 void multiDrawElementsIndirect(gl::GLenum mode, gl::GLenum type,
const void * indirect, gl::GLsizei drawCount, gl::GLsizei stride)
const;
75 void drawRangeElements(gl::GLenum mode, gl::GLuint start, gl::GLuint end, gl::GLsizei count, gl::GLenum type,
const void * indices =
nullptr)
const;
76 void drawRangeElementsBaseVertex(gl::GLenum mode, gl::GLuint start, gl::GLuint end, gl::GLsizei count, gl::GLenum type,
const void * indices, gl::GLint baseVertex)
const;
98 void multiDrawArrays(gl::GLenum mode,
const std::vector<MultiDrawArraysRange> & ranges)
const;
99 void multiDrawElements(gl::GLenum mode, gl::GLenum type,
const std::vector<MultiDrawElementsRange> & ranges)
const;
109 std::map<gl::GLuint, ref_ptr<VertexAttributeBinding>>
m_bindings;
Superclass of all wrapped OpenGL objects.
Definition Object.h:27
Implements a Visitor Pattern to iterate over all tracked globjects objects.
Definition ObjectVisitor.h:30
Definition VertexArray.h:23
virtual void accept(ObjectVisitor &visitor) override
std::vector< VertexAttributeBinding * > bindings()
VertexAttributeBinding * binding(gl::GLuint bindingIndex)
VertexArray(IDResource *resource)
void drawElementsBaseVertex(gl::GLenum mode, gl::GLsizei count, gl::GLenum type, const void *indices, gl::GLint baseVertex) const
void drawRangeElements(gl::GLenum mode, gl::GLuint start, gl::GLuint end, gl::GLsizei count, gl::GLenum type, const void *indices=nullptr) const
void multiDrawArrays(gl::GLenum mode, const std::vector< MultiDrawArraysRange > &ranges) const
void multiDrawElements(gl::GLenum mode, gl::GLenum type, const std::vector< MultiDrawElementsRange > &ranges) const
void drawElementsInstancedBaseInstance(gl::GLenum mode, gl::GLsizei count, gl::GLenum type, const void *indices, gl::GLsizei instanceCount, gl::GLuint baseInstance) const
void drawElementsInstancedBaseVertexBaseInstance(gl::GLenum mode, gl::GLsizei count, gl::GLenum type, const void *indices, gl::GLsizei instanceCount, gl::GLint baseVertex, gl::GLuint baseInstance) const
void enable(gl::GLint attributeIndex)
void multiDrawElementsBaseVertex(gl::GLenum mode, const gl::GLsizei *count, gl::GLenum type, const void **indices, gl::GLsizei drawCount, gl::GLint *baseVertex) const
AttributeImplementation
Definition VertexArray.h:26
void drawArraysIndirect(gl::GLenum mode, const void *indirect=nullptr) const
const VertexAttributeBinding * binding(gl::GLuint bindingIndex) const
void multiDrawArraysIndirect(gl::GLenum mode, const void *indirect, gl::GLsizei drawCount, gl::GLsizei stride) const
void drawArraysInstancedBaseInstance(gl::GLenum mode, gl::GLint first, gl::GLsizei count, gl::GLsizei instanceCount, gl::GLuint baseInstance) const
void disable(gl::GLint attributeIndex)
static void hintAttributeImplementation(AttributeImplementation impl)
std::map< gl::GLuint, ref_ptr< VertexAttributeBinding > > m_bindings
Definition VertexArray.h:109
static VertexArray * defaultVAO()
static VertexArray * fromId(gl::GLuint id)
void drawElements(gl::GLenum mode, gl::GLsizei count, gl::GLenum type, const void *indices=nullptr) const
void multiDrawElements(gl::GLenum mode, const gl::GLsizei *count, gl::GLenum type, const void **indices, gl::GLsizei drawCount) const
void multiDrawArrays(gl::GLenum mode, gl::GLint *first, const gl::GLsizei *count, gl::GLsizei drawCount) const
virtual gl::GLenum objectType() const override
void drawArrays(gl::GLenum mode, gl::GLint first, gl::GLsizei count) const
void drawElementsInstancedBaseVertex(gl::GLenum mode, gl::GLsizei count, gl::GLenum type, const void *indices, gl::GLsizei instanceCount, gl::GLint baseVertex) const
void drawElementsInstanced(gl::GLenum mode, gl::GLsizei count, gl::GLenum type, const void *indices, gl::GLsizei primitiveCount) const
void multiDrawElementsBaseVertex(gl::GLenum mode, gl::GLenum type, const std::vector< MultiDrawElementsBaseVertexRange > &ranges) const
std::vector< const VertexAttributeBinding * > bindings() const
void drawArraysInstanced(gl::GLenum mode, gl::GLint first, gl::GLsizei count, gl::GLsizei instanceCount) const
void multiDrawElementsIndirect(gl::GLenum mode, gl::GLenum type, const void *indirect, gl::GLsizei drawCount, gl::GLsizei stride) const
void drawRangeElementsBaseVertex(gl::GLenum mode, gl::GLuint start, gl::GLuint end, gl::GLsizei count, gl::GLenum type, const void *indices, gl::GLint baseVertex) const
Definition VertexAttributeBinding.h:22
Contains all the classes that wrap OpenGL functionality.
Definition VertexArray.h:80
gl::GLint first
Definition VertexArray.h:81
gl::GLsizei count
Definition VertexArray.h:82
Definition VertexArray.h:92
gl::GLsizei count
Definition VertexArray.h:93
void * indices
Definition VertexArray.h:94
gl::GLint baseVertex
Definition VertexArray.h:95
Definition VertexArray.h:86
void * indices
Definition VertexArray.h:88
gl::GLsizei count
Definition VertexArray.h:87