7 #include <glbinding/gl/types.h> 11 #include <globjects/globjects_api.h> 19 class VertexAttributeBinding;
28 , VertexAttribBindingARB
32 static void hintAttributeImplementation(AttributeImplementation impl);
48 void enable(gl::GLint attributeIndex);
49 void disable(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;
58 void drawArraysInstancedBaseInstance(gl::GLenum mode, gl::GLint first, gl::GLsizei count, gl::GLsizei instanceCount, gl::GLuint baseInstance)
const;
59 void drawArraysIndirect(gl::GLenum mode,
const void * indirect =
nullptr)
const;
61 void multiDrawArrays(gl::GLenum mode, gl::GLint * first,
const gl::GLsizei * count, gl::GLsizei drawCount)
const;
62 void multiDrawArraysIndirect(gl::GLenum mode,
const void * indirect, gl::GLsizei drawCount, gl::GLsizei stride)
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;
69 void drawElementsInstancedBaseVertexBaseInstance(gl::GLenum mode, gl::GLsizei count, gl::GLenum type,
const void * indices, gl::GLsizei instanceCount, gl::GLint baseVertex, gl::GLuint baseInstance)
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;
100 void multiDrawElementsBaseVertex(gl::GLenum mode, gl::GLenum type,
const std::vector<MultiDrawElementsBaseVertexRange> & ranges)
const;
102 virtual gl::GLenum objectType()
const override;
109 std::map<gl::GLuint, ref_ptr<VertexAttributeBinding>>
m_bindings;
Definition: VertexArray.h:22
GLOBJECTS_API void disable(gl::GLenum capability)
Contains all the classes that wrap OpenGL functionality.
Superclass of all wrapped OpenGL objects.
Definition: Object.h:26
Definition: VertexAttributeBinding.h:21
gl::GLsizei count
Definition: VertexArray.h:82
gl::GLsizei count
Definition: VertexArray.h:87
Definition: VertexArray.h:79
void * indices
Definition: VertexArray.h:94
gl::GLsizei count
Definition: VertexArray.h:93
void * indices
Definition: VertexArray.h:88
Definition: VertexArray.h:85
gl::GLint first
Definition: VertexArray.h:81
Implements a Visitor Pattern to iterate over all tracked globjects objects.
Definition: ObjectVisitor.h:29
std::map< gl::GLuint, ref_ptr< VertexAttributeBinding > > m_bindings
Definition: VertexArray.h:109
Definition: VertexArray.h:91
gl::GLint baseVertex
Definition: VertexArray.h:95
GLOBJECTS_API void enable(gl::GLenum capability)
AttributeImplementation
Definition: VertexArray.h:25