Allolib  1.0
C++ Components For Interactive Multimedia
al::EasyVAO Struct Reference

EasyVAO class. More...

#include <C:/Users/Andres/source/repos/casm_viewer/external/tinc/external/allolib/include/al/graphics/al_EasyVAO.hpp>

Inheritance diagram for al::EasyVAO:
al::VAO al::GPUObject

Classes

struct  MeshAttrib
 

Public Types

enum  AttribLayout : unsigned int { LAYOUT_POSITION = 0 , LAYOUT_COLOR = 1 , LAYOUT_TEXCOORD = 2 , LAYOUT_NORMAL = 3 }
 
enum  AttribDimension : unsigned int { DIMENSION_POSITION = 3 , DIMENSION_COLOR = 4 , DIMENSION_TEXCOORD = 2 , DIMENSION_NORMAL = 3 }
 
enum  DataType : unsigned int {
  BYTE = GL_BYTE , UBYTE = GL_UNSIGNED_BYTE , SHORT = GL_SHORT , USHORT = GL_UNSIGNED_SHORT ,
  INT = GL_INT , UINT = GL_UNSIGNED_INT , FLOAT = GL_FLOAT , DOUBLE = GL_DOUBLE
}
 

Public Member Functions

void update (void *data, size_t typeSize, size_t arraySize, MeshAttrib &attrib, unsigned int dataType=GL_FLOAT)
 
template<typename T >
void updatePosition (T *data, int arraySize, unsigned int dataType=GL_FLOAT)
 
template<typename T >
void updateColor (T *data, size_t arraySize, unsigned int dataType=GL_FLOAT)
 
template<typename T >
void updateTexcoord (T *data, size_t arraySize, unsigned int dataType=GL_FLOAT)
 
template<typename T >
void updateNormal (T *data, size_t arraySize, unsigned int dataType=GL_FLOAT)
 
void updateIndices (const unsigned int *data, size_t size)
 
void primitive (unsigned int prim)
 
void draw ()
 
void updateWithoutBinding (const void *data, size_t typeSize, size_t arraySize, MeshAttrib &attrib, unsigned int dataType=GL_FLOAT)
 
virtual void onCreate () override
 Called when currently assigned context is created.
 
virtual void onDestroy () override
 Called when currently assigned context is destroyed.
 
void bind ()
 
void unbind ()
 
void enableAttrib (unsigned int index)
 
void disableAttrib (unsigned int index)
 
void attribPointer (unsigned int index, BufferObject &buffer, int size, unsigned int type=GL_FLOAT, unsigned char normalized=GL_FALSE, int stride=0, void const *offset=NULL)
 
bool created () const
 Returns whether object has been created.
 
void create ()
 Creates object on GPU.
 
void destroy ()
 Destroys object on GPU.
 
unsigned long id () const
 Returns the assigned object id.
 
void id (unsigned long v)
 
void validate ()
 Ensure that the GPUObject is ready to use. More...
 
void invalidate ()
 Triggers re-creation of object safely.
 

Public Attributes

unsigned int mGLPrimMode = GL_TRIANGLES
 
int mNumVertices = 0
 
int mNumIndices = 0
 
MeshAttrib mPositionAtt {LAYOUT_POSITION, DIMENSION_POSITION}
 
MeshAttrib mColorAtt {LAYOUT_COLOR, DIMENSION_COLOR}
 
MeshAttrib mTexcoord2dAtt {LAYOUT_TEXCOORD, DIMENSION_TEXCOORD}
 
MeshAttrib mNormalAtt {LAYOUT_NORMAL, DIMENSION_NORMAL}
 
BufferObject mIndexBuffer
 

Protected Attributes

unsigned int mID
 
bool mResubmit
 

Detailed Description

EasyVAO class.

Definition at line 23 of file al_EasyVAO.hpp.

Member Function Documentation

◆ validate()

void al::GPUObject::validate ( )
inherited

Ensure that the GPUObject is ready to use.

This is typically placed before any rendering implementation. If the object has been invalidated, the object will be destroyed and then created again. Otherwise, the object will simply be created if not already created.


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