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;