+inline void glMaterial(GLenum face, GLenum pname, moof::scalar s)
+{
+ glMaterialf(face, pname, float(s));
+}
+
+inline void glMaterial(GLenum face, GLenum pname, const moof::vector4& v)
+{
+#if ENABLE_DOUBLE_PRECISION
+ float f[] = {v[0], v[1], v[2], v[3]};
+ glMaterialfv(face, pname, f);
+#else
+ glMaterialfv(face, pname, v.data());
+#endif
+}
+
+inline void glVertexPointer(const std::vector<moof::vector3>& v)
+{
+ glVertexPointer(3, GL_SCALAR, 0, v[0].data());
+}
+inline void glTexCoordPointer(const std::vector<moof::vector2>& v)
+{
+ glTexCoordPointer(2, GL_SCALAR, 0, v[0].data());
+}
+
+inline void glDrawElements(GLenum type, const std::vector<GLuint>& v)
+{
+ glDrawElements(type, v.size(), GL_UNSIGNED_INT, &v[0]);
+}
+
+
+#if ENABLE_DOUBLE_PRECISION