18 template <
typename MemberType>
19 struct DtAttributeType;
22 struct DtAttributeType<float>
25 enum { value = GL_FLOAT };
28 struct DtAttributeType<float[2]>
31 enum { value = GL_FLOAT };
34 struct DtAttributeType<float[3]>
37 enum { value = GL_FLOAT };
40 struct DtAttributeType<float[4]>
43 enum { value = GL_FLOAT };
47 struct DtAttributeType<
int>
50 enum { value = GL_INT };
53 struct DtAttributeType<
int[2]>
56 enum { value = GL_INT };
59 struct DtAttributeType<
int[3]>
62 enum { value = GL_INT };
65 struct DtAttributeType<
int[4]>
68 enum { value = GL_INT };
75 enum { value = GL_UNSIGNED_INT };
81 enum { value = GL_UNSIGNED_INT };
87 enum { value = GL_UNSIGNED_INT };
93 enum { value = GL_UNSIGNED_INT };
97 template <
typename VertexFormat>
102 template <
typename MemberType>
104 const VertexFormat* base,
const MemberType VertexFormat::* member)
107 reinterpret_cast<const GLvoid*>(&(base->*member)),
108 DtAttributeType<MemberType>::value,