]> git.tdb.fi Git - libs/gl.git/blobdiff - source/core/primitivetype.cpp
Disconnect the PrimitiveType enum from OpenGL constants
[libs/gl.git] / source / core / primitivetype.cpp
index 81375843c9f649609e4ef2c7e60873eca3534dfa..848da8000d786ee26d05d8007453e90437bdac7b 100644 (file)
@@ -1,9 +1,26 @@
 #include <msp/strings/format.h>
 #include "primitivetype.h"
 
+using namespace std;
+
 namespace Msp {
 namespace GL {
 
+GLenum get_gl_primitive_type(PrimitiveType pt)
+{
+       switch(pt)
+       {
+       case POINTS: return GL_POINTS;
+       case LINES: return GL_LINES;
+       case LINE_STRIP: return GL_LINE_STRIP;
+       case LINE_LOOP: return GL_LINE_LOOP;
+       case TRIANGLES: return GL_TRIANGLES;
+       case TRIANGLE_STRIP: return GL_TRIANGLE_STRIP;
+       case TRIANGLE_FAN: return GL_TRIANGLE_FAN;
+       default: throw invalid_argument("get_gl_primitive_type");
+       }
+}
+
 void operator>>(const LexicalConverter &conv, PrimitiveType &pt)
 {
        if(conv.get()=="POINTS")