All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
VertexLayoutElement.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Graphics.h"
6 #include "VertexSemantics.h"
7 
8 namespace Eegeo
9 {
10  namespace Rendering
11  {
12  namespace VertexLayouts
13  {
18  {
19  public:
20  // Arguments in same order as SetVertexAttribPointer().
21  VertexLayoutElement(const VertexSemanticId::IdValues semantic, GLint numOfFields, GLenum dataType, GLboolean normalized, GLint offset)
22  : m_semantic(semantic)
23  , m_dataType(dataType)
24  , m_numOfFields(numOfFields)
25  , m_offset(offset)
26  , m_normalized(normalized)
27  {
28  }
29 
30  VertexLayoutElement(const VertexSemanticId::IdValues semantic, GLint numOfFields, GLenum dataType, GLint offset)
31  : m_semantic(semantic)
32  , m_dataType(dataType)
33  , m_numOfFields(numOfFields)
34  , m_offset(offset)
35  , m_normalized(GL_TRUE)
36  {
37  }
38 
39  VertexSemanticId::IdValues GetSemanticId() const
40  {
41  return m_semantic;
42  }
43 
44  GLenum GetDataType() const
45  {
46  return m_dataType;
47  }
48 
49  GLint GetNumOfFields() const
50  {
51  return m_numOfFields;
52  }
53 
54  GLint GetOffset() const
55  {
56  return m_offset;
57  }
58 
59  GLboolean GetNormalized() const
60  {
61  return m_normalized;
62  }
63 
64  private:
65  VertexSemanticId::IdValues m_semantic;
66  GLenum m_dataType;
67  GLint m_numOfFields;
68  GLint m_offset;
69  GLboolean m_normalized;
70  };
71  }
72  }
73 }