All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
VertexFormat.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Types.h"
6 
7 namespace Eegeo
8 {
9 class ShaderOld;
10 class GLShader;
11 
13 {
14  int attribBinding;
15  u32 number;
16  u32 type;
17  u32 offset;
18 };
19 
21 {
22 public:
23  enum Format
24  {
25  kFloat1,
26  kFloat2,
27  kFloat3,
28  kFloat4,
29  kByte4,
30 
31  kU32,
32  };
33 
34  struct FormatData
35  {
36  const char* semanticName;
37  u32 semanticIndex;
38  u32 format;
39  u32 stream;
40  u32 offset;
41  };
42 
43  VertexFormat ( u32 numAttributes, const FormatData* pAttributeData, GLShader* pShader );
44  ~VertexFormat ();
45 
46  static u32 ConvertFormat ( u32& type, u32& number, const u32 format );
47 
48  u32 m_numAttributes;
49  FormatDataGL* m_pAttributeData;
50  u32 m_stride;
51 
52 };
53 
54 }