VR-Forces 4.7 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties 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 #include <cstddef>
15 
16 namespace makVrv
17 {
18  template <typename MemberType>
19  struct DtAttributeType;
20 
21  template <>
22  struct DtAttributeType<float>
23  {
24  enum { size = 1 };
25  enum { value = GL_FLOAT };
26  };
27  template <>
28  struct DtAttributeType<float[2]>
29  {
30  enum { size = 2 };
31  enum { value = GL_FLOAT };
32  };
33  template <>
34  struct DtAttributeType<float[3]>
35  {
36  enum { size = 3 };
37  enum { value = GL_FLOAT };
38  };
39  template <>
40  struct DtAttributeType<float[4]>
41  {
42  enum { size = 4 };
43  enum { value = GL_FLOAT };
44  };
45 
46  template <>
47  struct DtAttributeType<int>
48  {
49  enum { size = 1 };
50  enum { value = GL_INT };
51  };
52  template <>
53  struct DtAttributeType<int[2]>
54  {
55  enum { size = 2 };
56  enum { value = GL_INT };
57  };
58  template <>
59  struct DtAttributeType<int[3]>
60  {
61  enum { size = 3 };
62  enum { value = GL_INT };
63  };
64  template <>
65  struct DtAttributeType<int[4]>
66  {
67  enum { size = 4 };
68  enum { value = GL_INT };
69  };
70 
71  template <>
72  struct DtAttributeType<unsigned int>
73  {
74  enum { size = 1 };
75  enum { value = GL_UNSIGNED_INT };
76  };
77  template <>
78  struct DtAttributeType<unsigned int[2]>
79  {
80  enum { size = 2 };
81  enum { value = GL_UNSIGNED_INT };
82  };
83  template <>
84  struct DtAttributeType<unsigned int[3]>
85  {
86  enum { size = 3 };
87  enum { value = GL_UNSIGNED_INT };
88  };
89  template <>
90  struct DtAttributeType<unsigned int[4]>
91  {
92  enum { size = 4 };
93  enum { value = GL_UNSIGNED_INT };
94  };
95 
96  class DtEffect;
97  template <typename VertexFormat>
98  class DtEffectRenderer : public DtFormatRenderer<VertexFormat>
99  {
100  public:
101 
102  template <typename MemberType>
104  const VertexFormat* base, const MemberType VertexFormat::* member)
105  {
107  reinterpret_cast<const GLvoid*>(&(base->*member)),
108  DtAttributeType<MemberType>::value,
110  }
111 
113  : myEffect(effect)
114  {
115  myEffect->enable();
116  }
117 
119  {
120  if(myEffect->enabled())
121  {
122  myEffect->disable();
123  }
124  }
125 
126  protected:
128  };
129 }
130 

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)