All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
VertexLayoutPool.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Types.h"
6 #include "Rendering.h"
7 
8 namespace Eegeo
9 {
10  namespace Rendering
11  {
12  namespace VertexLayouts
13  {
18  {
19  public:
22 
23  const VertexLayout& GetForPackedDiffuseVertex() const;
24  const VertexLayout& GetForDiffuseVertex() const;
25  const VertexLayout& GetFor2DTexturedVertex() const;
26  const VertexLayout& GetForTextVertex() const;
27  const VertexLayout& GetForScreenTextVertex() const;
28  const VertexLayout& GetForWorldTextVertex() const;
29  const VertexLayout& GetForPackedTwoTextureVertex() const;
30  const VertexLayout& GetForPackedStencilShadowVertex() const;
31  const VertexLayout& GetForPositionVertex() const;
32  const VertexLayout& GetForColoredVertex() const;
33  const VertexLayout& GetForTexturedVertex() const;
34  const VertexLayout& GetForTexturedColoredVertex() const;
35  const VertexLayout& GetForModelDiffuseVertex() const;
36  const VertexLayout& GetForPackedPositionUvLightDotsColourVertex() const;
37  const VertexLayout& GetForPackedPositionNormalUvColourVertex() const;
38  const VertexLayout& GetForPackedPositionNormalUvVertex() const;
39 
40  private:
41  VertexLayout* m_pPackedDiffuseLayout;
42  VertexLayout* m_pDiffuseLayout;
43  VertexLayout* m_p2dTexturedLayout;
44  VertexLayout* m_pTextLayout;
45  VertexLayout* m_pScreenTextLayout;
46  VertexLayout* m_pWorldTextLayout;
47  VertexLayout* m_pPackedTwoTextureLayout;
48  VertexLayout* m_pPackedStencilShadowLayout;
49  VertexLayout* m_pPositionLayout;
50  VertexLayout* m_pTexturedLayout;
51  VertexLayout* m_pColoredLayout;
52  VertexLayout* m_pTexturedColoredLayout;
53  VertexLayout* m_pModelDiffuseLayout;
54  VertexLayout* m_pPackedPositionUvLightDotsColourVertex;
55  VertexLayout* m_pPackedPositionNormalUvColourVertex;
56  VertexLayout* m_pPackedPositionNormalUvVertex;
57 
58  static VertexLayout* CreateForPackedDiffuseVertex();
59  static VertexLayout* CreateForDiffuseVertex();
60  static VertexLayout* CreateFor2DTexturedVertex();
61  static VertexLayout* CreateForTextVertex();
62  static VertexLayout* CreateForScreenTextVertex();
63  static VertexLayout* CreateForWorldTextVertex();
64  static VertexLayout* CreateForPackedTwoTextureVertex();
65  static VertexLayout* CreateForPackedStencilShadowVertex();
66  static VertexLayout* CreateForPositionVertex();
67  static VertexLayout* CreateForTexturedVertex();
68  static VertexLayout* CreateForColoredVertex();
69  static VertexLayout* CreateForTexturedColoredVertex();
70  static VertexLayout* CreateForModelDiffuseVertex();
71  static VertexLayout* CreateForPackedPositionUvLightDotsColourVertex();
72  static VertexLayout* CreateForPackedPositionNormalUvColourVertex();
73  static VertexLayout* CreateForPackedPositionNormalUvVertex();
74  };
75  }
76  }
77 }