VR-Forces 4.3 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DtEffectRenderer.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2010 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
13 #include <vrvGraphics/DtEffect.h>
14 
15 namespace makVrv
16 {
17  template <typename MemberType>
18  struct DtAttributeType;
19 
20  template <>
21  struct DtAttributeType<float>
22  {
23  enum { size = 1 };
24  enum { value = GL_FLOAT };
25  };
26  template <>
27  struct DtAttributeType<float[2]>
28  {
29  enum { size = 2 };
30  enum { value = GL_FLOAT };
31  };
32  template <>
33  struct DtAttributeType<float[3]>
34  {
35  enum { size = 3 };
36  enum { value = GL_FLOAT };
37  };
38  template <>
39  struct DtAttributeType<float[4]>
40  {
41  enum { size = 4 };
42  enum { value = GL_FLOAT };
43  };
44 
45  template <>
46  struct DtAttributeType<int>
47  {
48  enum { size = 1 };
49  enum { value = GL_INT };
50  };
51  template <>
52  struct DtAttributeType<int[2]>
53  {
54  enum { size = 2 };
55  enum { value = GL_INT };
56  };
57  template <>
58  struct DtAttributeType<int[3]>
59  {
60  enum { size = 3 };
61  enum { value = GL_INT };
62  };
63  template <>
64  struct DtAttributeType<int[4]>
65  {
66  enum { size = 4 };
67  enum { value = GL_INT };
68  };
69 
70  template <>
71  struct DtAttributeType<unsigned int>
72  {
73  enum { size = 1 };
74  enum { value = GL_UNSIGNED_INT };
75  };
76  template <>
77  struct DtAttributeType<unsigned int[2]>
78  {
79  enum { size = 2 };
80  enum { value = GL_UNSIGNED_INT };
81  };
82  template <>
83  struct DtAttributeType<unsigned int[3]>
84  {
85  enum { size = 3 };
86  enum { value = GL_UNSIGNED_INT };
87  };
88  template <>
89  struct DtAttributeType<unsigned int[4]>
90  {
91  enum { size = 4 };
92  enum { value = GL_UNSIGNED_INT };
93  };
94 
95  class DtEffect;
96  template <typename VertexFormat>
97  class DtEffectRenderer : public DtFormatRenderer<VertexFormat>
98  {
99  public:
100 
101  template <typename MemberType>
103  const VertexFormat* base, const MemberType VertexFormat::* member)
104  {
106  reinterpret_cast<const GLvoid*>(&(base->*member)),
107  DtAttributeType<MemberType>::value,
108  DtAttributeType<MemberType>::size);
109  }
110 
112  : myEffect(effect)
113  {
114  myEffect->enable();
115  }
116 
118  {
119  if(myEffect->enabled())
120  {
121  myEffect->disable();
122  }
123  }
124 
125  protected:
127  };
128 }
129 

Document ID: Generated on Wed Mar 11 21:20:57 EDT 2015 from SVN revision 150940
Copyright © 2005-2014 VT MÄK. All Rights Reserved (www.mak.com)