1 #ifndef INCLUDE_AL_VAOMESH_HPP 
    2 #define INCLUDE_AL_VAOMESH_HPP 
    7 #include "al/graphics/al_BufferObject.hpp" 
    8 #include "al/graphics/al_Mesh.hpp" 
    9 #include "al/graphics/al_VAO.hpp" 
   13 #include <unordered_map> 
   18 enum AttribLayout : 
unsigned int {
 
   21   ATTRIB_TEXCOORD_2D = 2,
 
   40     MeshAttrib(
unsigned int i, 
int s) : index(i), size(s) {}
 
   44     unsigned int GLPrimMode = GL_TRIANGLES;
 
   46     MeshAttrib positionAtt{ATTRIB_POSITION, 3}, colorAtt{ATTRIB_COLOR, 4},
 
   47         texcoord2dAtt{ATTRIB_TEXCOORD_2D, 2},
 
   48         normalAtt{ATTRIB_NORMAL, 3}  
 
   54   std::shared_ptr<VAOWrapper> vaoWrapper;
 
   63   VAO& vao() { 
return vaoWrapper->vao; }
 
   64   MeshAttrib& positionAtt() { 
return vaoWrapper->positionAtt; }
 
   65   MeshAttrib& colorAtt() { 
return vaoWrapper->colorAtt; }
 
   66   MeshAttrib& texcoord2dAtt() { 
return vaoWrapper->texcoord2dAtt; }
 
   67   MeshAttrib& normalAtt() { 
return vaoWrapper->normalAtt; }
 
   68   BufferObject& indexBuffer() { 
return vaoWrapper->indexBuffer; }
 
   76   void updateAttrib(std::vector<T> 
const& data, MeshAttrib& att);
 
Stores buffers related to rendering graphical objects.
 
VAOMesh classStores gpu objects as shared pointer to that this class can be copied for moved this is ...