X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fvertexformat.cpp;h=5c02f2ab3aec7180f2a40a4a12b225bbe8ae5c38;hb=982005bfbccb429767d0676bd840caf1118c9e21;hp=25c2b02313e43c3d5b14d64c4ed9136608551d6e;hpb=85facfb688035b5bbc9a3a87d080582fbf34930b;p=libs%2Fgl.git diff --git a/source/vertexformat.cpp b/source/vertexformat.cpp index 25c2b023..5c02f2ab 100644 --- a/source/vertexformat.cpp +++ b/source/vertexformat.cpp @@ -24,42 +24,42 @@ std::istream &operator>>(std::istream &in, VertexFormat &f) in>>str; unsigned start=0; - unsigned comma; f=NODATA; while(1) { - comma=str.find(',', start); - if(str.compare(start, comma-start, "VERTEX2")) - f=f,VERTEX2; - else if(str.compare(start, comma-start, "VERTEX3")) - f=f,VERTEX3; - else if(str.compare(start, comma-start, "VERTEX4")) - f=f,VERTEX4; - else if(str.compare(start, comma-start, "NORMAL3")) - f=f,NORMAL3; - else if(str.compare(start, comma-start, "TEXCOORD1")) - f=f,TEXCOORD1; - else if(str.compare(start, comma-start, "TEXCOORD2")) - f=f,TEXCOORD2; - else if(str.compare(start, comma-start, "TEXCOORD3")) - f=f,TEXCOORD3; - else if(str.compare(start, comma-start, "TEXCOORD4")) - f=f,TEXCOORD4; - else if(str.compare(start, comma-start, "COLOR4_UBYTE")) - f=f,COLOR4_UBYTE; - else if(str.compare(start, comma-start, "COLOR3_FLOAT")) - f=f,COLOR3_FLOAT; - else if(str.compare(start, comma-start, "COLOR4_FLOAT")) - f=f,COLOR4_FLOAT; + unsigned underscore=str.find('_', start); + if(!str.compare(start, underscore-start, "VERTEX2")) + f=(f,VERTEX2); + else if(!str.compare(start, underscore-start, "VERTEX3")) + f=(f,VERTEX3); + else if(!str.compare(start, underscore-start, "VERTEX4")) + f=(f,VERTEX4); + else if(!str.compare(start, underscore-start, "NORMAL3")) + f=(f,NORMAL3); + else if(!str.compare(start, underscore-start, "TEXCOORD1")) + f=(f,TEXCOORD1); + else if(!str.compare(start, underscore-start, "TEXCOORD2")) + f=(f,TEXCOORD2); + else if(!str.compare(start, underscore-start, "TEXCOORD3")) + f=(f,TEXCOORD3); + else if(!str.compare(start, underscore-start, "TEXCOORD4")) + f=(f,TEXCOORD4); + else if(!str.compare(start, underscore-start, "COLOR4UB")) + f=(f,COLOR4_UBYTE); + else if(!str.compare(start, underscore-start, "COLOR3F")) + f=(f,COLOR3_FLOAT); + else if(!str.compare(start, underscore-start, "COLOR4F")) + f=(f,COLOR4_FLOAT); else { in.setstate(std::ios_base::failbit); break; } - start=comma+1; - if(comma==std::string::npos) + + if(underscore==std::string::npos) break; + start=underscore+1; } return in;