X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fprimitivetype.cpp;h=c9a827926a108805ef9c7e1b6aba8fc7c02f4699;hp=c11a59f7fd1da1e067f50893e1a4a407756a9c29;hb=ff85f90d33023d908c534b0bf5d9a65e9fc2cce2;hpb=f71aee8c20ff85e4857e4dfad0c20ce606ea3717 diff --git a/source/primitivetype.cpp b/source/primitivetype.cpp index c11a59f7..c9a82792 100644 --- a/source/primitivetype.cpp +++ b/source/primitivetype.cpp @@ -1,44 +1,37 @@ -/* $Id$ - -This file is part of libmspgl -Copyright © 2007 Mikko Rasa, Mikkosoft Productions -Distributed under the LGPL -*/ - +#include #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