globjects  2.0.0.690708773bba
Strict OpenGL objects wrapper.

#include <globjects/include/globjects/VertexArray.h>

Inheritance diagram for globjects::VertexArray:
globjects::Object globjects::Instantiator< VertexArray >

Classes

struct  MultiDrawArraysRange
 
struct  MultiDrawElementsBaseVertexRange
 
struct  MultiDrawElementsRange
 

Public Types

enum  AttributeImplementation { AttributeImplementation::DirectStateAccessARB, AttributeImplementation::VertexAttribBindingARB, AttributeImplementation::Legacy }
 
- Public Types inherited from globjects::Object
enum  NameImplementation { NameImplementation::DebugKHR, NameImplementation::Legacy }
 

Public Member Functions

 VertexArray ()
 
virtual ~VertexArray ()
 
virtual void accept (ObjectVisitor &visitor) override
 
void bind () const
 
VertexAttributeBindingbinding (gl::GLuint bindingIndex)
 
const VertexAttributeBindingbinding (gl::GLuint bindingIndex) const
 
void enable (gl::GLint attributeIndex)
 
void disable (gl::GLint attributeIndex)
 
std::vector< VertexAttributeBinding * > bindings ()
 
std::vector< const VertexAttributeBinding * > bindings () const
 
void drawArrays (gl::GLenum mode, gl::GLint first, gl::GLsizei count) const
 
void drawArraysInstanced (gl::GLenum mode, gl::GLint first, gl::GLsizei count, gl::GLsizei instanceCount) const
 
void drawArraysInstancedBaseInstance (gl::GLenum mode, gl::GLint first, gl::GLsizei count, gl::GLsizei instanceCount, gl::GLuint baseInstance) const
 
void drawArraysIndirect (gl::GLenum mode, const void *indirect=nullptr) const
 
void multiDrawArrays (gl::GLenum mode, gl::GLint *first, const gl::GLsizei *count, gl::GLsizei drawCount) const
 
void multiDrawArraysIndirect (gl::GLenum mode, const void *indirect, gl::GLsizei drawCount, gl::GLsizei stride) const
 
void drawElements (gl::GLenum mode, gl::GLsizei count, gl::GLenum type, const void *indices=nullptr) const
 
void drawElementsBaseVertex (gl::GLenum mode, gl::GLsizei count, gl::GLenum type, const void *indices, gl::GLint baseVertex) const
 
void drawElementsInstanced (gl::GLenum mode, gl::GLsizei count, gl::GLenum type, const void *indices, gl::GLsizei primitiveCount) const
 
void drawElementsInstancedBaseInstance (gl::GLenum mode, gl::GLsizei count, gl::GLenum type, const void *indices, gl::GLsizei instanceCount, gl::GLuint baseInstance) const
 
void drawElementsInstancedBaseVertex (gl::GLenum mode, gl::GLsizei count, gl::GLenum type, const void *indices, gl::GLsizei instanceCount, gl::GLint baseVertex) 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 multiDrawElements (gl::GLenum mode, const gl::GLsizei *count, gl::GLenum type, const void **indices, gl::GLsizei drawCount) const
 
void multiDrawElementsBaseVertex (gl::GLenum mode, const gl::GLsizei *count, gl::GLenum type, const void **indices, gl::GLsizei drawCount, gl::GLint *baseVertex) const
 
void multiDrawElementsIndirect (gl::GLenum mode, gl::GLenum type, const void *indirect, gl::GLsizei drawCount, gl::GLsizei stride) const
 
void drawRangeElements (gl::GLenum mode, gl::GLuint start, gl::GLuint end, gl::GLsizei count, gl::GLenum type, const void *indices=nullptr) 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
 
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 multiDrawElementsBaseVertex (gl::GLenum mode, gl::GLenum type, const std::vector< MultiDrawElementsBaseVertexRange > &ranges) const
 
virtual gl::GLenum objectType () const override
 
- Public Member Functions inherited from globjects::Object
gl::GLuint id () const
 
std::string name () const
 
void setName (const std::string &name)
 
bool hasName () const
 
bool isDefault () const
 
void detach ()
 

Static Public Member Functions

static void hintAttributeImplementation (AttributeImplementation impl)
 
static std::unique_ptr< VertexArrayfromId (gl::GLuint id)
 
static std::unique_ptr< VertexArraydefaultVAO ()
 
static void unbind ()
 
- Static Public Member Functions inherited from globjects::Object
static void hintNameImplementation (NameImplementation impl)
 
- Static Public Member Functions inherited from globjects::Instantiator< VertexArray >
static std::unique_ptr< VertexArraycreate (Args &&...args)
 
static std::unique_ptr< VertexArrayfromId (gl::GLuint id, Args &&...args)
 

Protected Member Functions

 VertexArray (std::unique_ptr< IDResource > &&resource)
 
- Protected Member Functions inherited from globjects::Object
 Object (std::unique_ptr< IDResource > &&resource)
 
virtual ~Object ()
 

Protected Attributes

std::map< gl::GLuint, std::unique_ptr< VertexAttributeBinding > > m_bindings
 
- Protected Attributes inherited from globjects::Object
std::unique_ptr< IDResourcem_resource
 
void * m_objectLabelState
 

Member Enumeration Documentation

Enumerator
DirectStateAccessARB 
VertexAttribBindingARB 
Legacy 

Constructor & Destructor Documentation

globjects::VertexArray::VertexArray ( )
virtual globjects::VertexArray::~VertexArray ( )
virtual
globjects::VertexArray::VertexArray ( std::unique_ptr< IDResource > &&  resource)
protected

Member Function Documentation

static void globjects::VertexArray::hintAttributeImplementation ( AttributeImplementation  impl)
static
static std::unique_ptr<VertexArray> globjects::VertexArray::fromId ( gl::GLuint  id)
static
static std::unique_ptr<VertexArray> globjects::VertexArray::defaultVAO ( )
static
virtual void globjects::VertexArray::accept ( ObjectVisitor visitor)
overridevirtual

Implements globjects::Object.

void globjects::VertexArray::bind ( ) const
static void globjects::VertexArray::unbind ( )
static
VertexAttributeBinding* globjects::VertexArray::binding ( gl::GLuint  bindingIndex)
const VertexAttributeBinding* globjects::VertexArray::binding ( gl::GLuint  bindingIndex) const
void globjects::VertexArray::enable ( gl::GLint  attributeIndex)
void globjects::VertexArray::disable ( gl::GLint  attributeIndex)
std::vector<VertexAttributeBinding *> globjects::VertexArray::bindings ( )
std::vector<const VertexAttributeBinding *> globjects::VertexArray::bindings ( ) const
void globjects::VertexArray::drawArrays ( gl::GLenum  mode,
gl::GLint  first,
gl::GLsizei  count 
) const
void globjects::VertexArray::drawArraysInstanced ( gl::GLenum  mode,
gl::GLint  first,
gl::GLsizei  count,
gl::GLsizei  instanceCount 
) const
void globjects::VertexArray::drawArraysInstancedBaseInstance ( gl::GLenum  mode,
gl::GLint  first,
gl::GLsizei  count,
gl::GLsizei  instanceCount,
gl::GLuint  baseInstance 
) const
void globjects::VertexArray::drawArraysIndirect ( gl::GLenum  mode,
const void *  indirect = nullptr 
) const
void globjects::VertexArray::multiDrawArrays ( gl::GLenum  mode,
gl::GLint *  first,
const gl::GLsizei *  count,
gl::GLsizei  drawCount 
) const
void globjects::VertexArray::multiDrawArraysIndirect ( gl::GLenum  mode,
const void *  indirect,
gl::GLsizei  drawCount,
gl::GLsizei  stride 
) const
void globjects::VertexArray::drawElements ( gl::GLenum  mode,
gl::GLsizei  count,
gl::GLenum  type,
const void *  indices = nullptr 
) const
void globjects::VertexArray::drawElementsBaseVertex ( gl::GLenum  mode,
gl::GLsizei  count,
gl::GLenum  type,
const void *  indices,
gl::GLint  baseVertex 
) const
void globjects::VertexArray::drawElementsInstanced ( gl::GLenum  mode,
gl::GLsizei  count,
gl::GLenum  type,
const void *  indices,
gl::GLsizei  primitiveCount 
) const
void globjects::VertexArray::drawElementsInstancedBaseInstance ( gl::GLenum  mode,
gl::GLsizei  count,
gl::GLenum  type,
const void *  indices,
gl::GLsizei  instanceCount,
gl::GLuint  baseInstance 
) const
void globjects::VertexArray::drawElementsInstancedBaseVertex ( gl::GLenum  mode,
gl::GLsizei  count,
gl::GLenum  type,
const void *  indices,
gl::GLsizei  instanceCount,
gl::GLint  baseVertex 
) const
void globjects::VertexArray::drawElementsInstancedBaseVertexBaseInstance ( gl::GLenum  mode,
gl::GLsizei  count,
gl::GLenum  type,
const void *  indices,
gl::GLsizei  instanceCount,
gl::GLint  baseVertex,
gl::GLuint  baseInstance 
) const
void globjects::VertexArray::multiDrawElements ( gl::GLenum  mode,
const gl::GLsizei *  count,
gl::GLenum  type,
const void **  indices,
gl::GLsizei  drawCount 
) const
void globjects::VertexArray::multiDrawElementsBaseVertex ( gl::GLenum  mode,
const gl::GLsizei *  count,
gl::GLenum  type,
const void **  indices,
gl::GLsizei  drawCount,
gl::GLint *  baseVertex 
) const
void globjects::VertexArray::multiDrawElementsIndirect ( gl::GLenum  mode,
gl::GLenum  type,
const void *  indirect,
gl::GLsizei  drawCount,
gl::GLsizei  stride 
) const
void globjects::VertexArray::drawRangeElements ( gl::GLenum  mode,
gl::GLuint  start,
gl::GLuint  end,
gl::GLsizei  count,
gl::GLenum  type,
const void *  indices = nullptr 
) const
void globjects::VertexArray::drawRangeElementsBaseVertex ( gl::GLenum  mode,
gl::GLuint  start,
gl::GLuint  end,
gl::GLsizei  count,
gl::GLenum  type,
const void *  indices,
gl::GLint  baseVertex 
) const
void globjects::VertexArray::multiDrawArrays ( gl::GLenum  mode,
const std::vector< MultiDrawArraysRange > &  ranges 
) const
void globjects::VertexArray::multiDrawElements ( gl::GLenum  mode,
gl::GLenum  type,
const std::vector< MultiDrawElementsRange > &  ranges 
) const
void globjects::VertexArray::multiDrawElementsBaseVertex ( gl::GLenum  mode,
gl::GLenum  type,
const std::vector< MultiDrawElementsBaseVertexRange > &  ranges 
) const
virtual gl::GLenum globjects::VertexArray::objectType ( ) const
overridevirtual

Implements globjects::Object.

Member Data Documentation

std::map<gl::GLuint, std::unique_ptr<VertexAttributeBinding> > globjects::VertexArray::m_bindings
protected

The documentation for this class was generated from the following file: