X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=source%2Fvertexformat.cpp;h=b9bd7b9402414f16ad3b0c70d11a835b12ef9c3f;hb=e20075bffbbe1f3aaa9cc149953525a7e855f496;hp=232690ede2f99f2c7d1ebb8411d9ad442c68dffa;hpb=b8fef9be469eb16e54068bac7e275ea225efc71c;p=libs%2Fgl.git diff --git a/source/vertexformat.cpp b/source/vertexformat.cpp index 232690ed..b9bd7b94 100644 --- a/source/vertexformat.cpp +++ b/source/vertexformat.cpp @@ -1,7 +1,7 @@ /* $Id$ This file is part of libmspgl -Copyright © 2007 Mikko Rasa, Mikkosoft Productions +Copyright © 2007-2009 Mikko Rasa, Mikkosoft Productions Distributed under the LGPL */ @@ -10,6 +10,8 @@ Distributed under the LGPL #include "except.h" #include "vertexformat.h" +using namespace std; + namespace Msp { namespace GL { @@ -87,9 +89,9 @@ VertexFormat operator,(const VertexFormat &f, unsigned i) if(*c28) + if(i>=28) throw InvalidParameterValue("Generic attribute index out of range"); - *c+=(i-1)*4; + *c+=i*4; return r; } @@ -102,16 +104,16 @@ uint get_stride(const VertexFormat &f) return stride; } -std::istream &operator>>(std::istream &in, VertexFormat &f) +istream &operator>>(istream &in, VertexFormat &f) { - std::string str; + string str; in>>str; unsigned start=0; while(1) { - unsigned underscore=str.find('_', start); + string::size_type underscore=str.find('_', start); bool fail=false; if(!str.compare(start, underscore-start, "VERTEX2")) f=(f,VERTEX2); @@ -162,11 +164,11 @@ std::istream &operator>>(std::istream &in, VertexFormat &f) if(fail) { - in.setstate(std::ios_base::failbit); + in.setstate(ios_base::failbit); break; } - if(underscore==std::string::npos) + if(underscore==string::npos) break; start=underscore+1; }