X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fvertexformat.cpp;h=ed2b04b8dbd0784c2bf6bc67c7a10698000a8464;hb=ab83db6f1e31d44ced585119a57fd10896e469cb;hp=16cf28c7c468483bf319705b4ea8d0e30d02e9cf;hpb=483a5855f408e98c348ee17719dc4ca1179ec630;p=libs%2Fgl.git diff --git a/source/vertexformat.cpp b/source/vertexformat.cpp index 16cf28c7..ed2b04b8 100644 --- a/source/vertexformat.cpp +++ b/source/vertexformat.cpp @@ -1,14 +1,8 @@ -/* $Id$ - -This file is part of libmspgl -Copyright © 2007-2010 Mikko Rasa, Mikkosoft Productions -Distributed under the LGPL -*/ - #include +#include #include #include -#include "except.h" +#include "error.h" #include "vertexformat.h" using namespace std; @@ -67,7 +61,7 @@ unsigned VertexFormat::stride() const int VertexFormat::offset(VertexComponent comp, unsigned index) const { if((comp0) || (comp=8) || index>=53) - throw InvalidParameterValue("Vertex component index out of range"); + throw out_of_range("VertexFormat::offset"); unsigned type = (comp>>2)+index; unsigned size = comp&3; @@ -116,11 +110,11 @@ VertexFormat operator,(const VertexFormat &f, VertexComponent c) VertexFormat operator,(const VertexFormat &f, unsigned i) { if(!f.data) - throw InvalidState("VertexFormat has no components"); + throw invalid_operation("VertexFormat::operator,"); VertexFormat r = f; unsigned char *c = r.data+r.data[0]; if((*c0) || (*c=8) || i>=53) - throw InvalidParameterValue("Vertex component index out of range"); + throw out_of_range("VertexFormat::operator,"); *c += i*4; return r; @@ -144,7 +138,7 @@ void operator>>(const LexicalConverter &conv, VertexComponent &c) else if(str.size()==11 && str[9]=='_' && str[10]>='0' && str[10]<='7') c = static_cast(TEXCOORD1+(str[8]-'1')+(str[10]-'0')*4); else - throw LexicalError("Invalid texture unit in VertexComponent conversion"); + throw lexical_error(format("conversion of '%s' to VertexComponent", str)); } else if(str.size()>=9 && !str.compare(0, 6, "ATTRIB") && str[6]>='1' && str[6]<='4' && str[7]=='_') { @@ -153,14 +147,14 @@ void operator>>(const LexicalConverter &conv, VertexComponent &c) { n = lexical_cast(str.substr(8)); } - catch(const LexicalError &) + catch(const lexical_error &) { - throw LexicalError("Invalid attribute in VertexComponent conversion"); + throw lexical_error(format("conversion of '%s' to VertexComponent", str)); } c = static_cast(ATTRIB1+(str[6]-'1')+n*4); } else - throw LexicalError("Invalid input in VertexComponent conversion"); + throw lexical_error(format("conversion of '%s' to VertexComponent", str)); } // XXX This will go away eventually