]> git.tdb.fi Git - libs/gl.git/blobdiff - source/primitivetype.cpp
Share shader data between copied RenderPasses
[libs/gl.git] / source / primitivetype.cpp
index c11a59f7fd1da1e067f50893e1a4a407756a9c29..c9a827926a108805ef9c7e1b6aba8fc7c02f4699 100644 (file)
@@ -1,44 +1,37 @@
-/* $Id$
-
-This file is part of libmspgl
-Copyright © 2007 Mikko Rasa, Mikkosoft Productions
-Distributed under the LGPL
-*/
-
+#include <msp/strings/format.h>
 #include "primitivetype.h"
 
 namespace Msp {
 namespace GL {
 
-std::istream &operator>>(std::istream &in, PrimitiveType &pt)
+void operator>>(const LexicalConverter &conv, PrimitiveType &pt)
 {
-       std::string str;
-       in>>str;
-
-       if(str=="POINTS")
-               pt=POINTS;
-       else if(str=="LINES")
-               pt=LINES;
-       else if(str=="LINE_LOOP")
-               pt=LINE_LOOP;
-       else if(str=="LINE_STRIP")
-               pt=LINE_STRIP;
-       else if(str=="TRIANGLES")
-               pt=TRIANGLES;
-       else if(str=="TRIANGLE_STRIP")
-               pt=TRIANGLE_STRIP;
-       else if(str=="TRIANGLE_FAN")
-               pt=TRIANGLE_FAN;
-       else if(str=="QUADS")
-               pt=QUADS;
-       else if(str=="QUAD_STRIP")
-               pt=QUAD_STRIP;
-       else if(str=="POLYGON")
-               pt=POLYGON;
+       if(conv.get()=="POINTS")
+               pt = POINTS;
+       else if(conv.get()=="LINES")
+               pt = LINES;
+       else if(conv.get()=="LINE_LOOP")
+               pt = LINE_LOOP;
+       else if(conv.get()=="LINE_STRIP")
+               pt = LINE_STRIP;
+       else if(conv.get()=="TRIANGLES")
+               pt = TRIANGLES;
+       else if(conv.get()=="TRIANGLE_STRIP")
+               pt = TRIANGLE_STRIP;
+       else if(conv.get()=="TRIANGLE_FAN")
+               pt = TRIANGLE_FAN;
+       else if(conv.get()=="QUADS")
+               pt = QUADS;
+       else if(conv.get()=="QUAD_STRIP")
+               pt = QUAD_STRIP;
        else
-               in.setstate(std::ios_base::failbit);
+               throw lexical_error(format("conversion of '%s' to PrimitiveType", conv.get()));
+}
 
-       return in;
+void require_primitive_type(PrimitiveType type)
+{
+       if(type==QUADS || type==QUAD_STRIP)
+               static Require _req(MSP_legacy_features);
 }
 
 } // namespace GL