]> Dogcows Code - chaz/yoink/blobdiff - src/moof/opengl.hh
mesh and other random adjustments
[chaz/yoink] / src / moof / opengl.hh
index 347f3e5bd55da409c47e32a0115ec65d43ae0ae8..06ffbaa9866dec512ce397be6179ed867e0d06f5 100644 (file)
@@ -20,6 +20,8 @@
 
 #include "config.h"
 
+#include <vector>
+
 #include <SDL/SDL_opengl.h>
 
 #include <moof/math.hh>
@@ -105,6 +107,36 @@ OPENGL_GENERIC_FUNC(void,  Rect,           S4);
 OPENGL_GENERIC_FUNC(void,      Rect,           V4);
 
 
+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 USE_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 USE_DOUBLE_PRECISION
 inline void glGetScalar(GLenum a, GLscalar* b) { glGetDoublev(a, b); }
 #else
This page took 0.020069 seconds and 4 git commands to generate.