+#include "error.h"
#include "primitivebuilder.h"
+using namespace std;
+
namespace Msp {
namespace GL {
void PrimitiveBuilder::begin(PrimitiveType t)
{
if(in_batch)
- throw InvalidState("begin() already called");
+ throw invalid_operation("PrimitiveBuilder::begin");
type = t;
in_batch = true;
void PrimitiveBuilder::end()
{
if(!in_batch)
- throw InvalidState("end() called without begin()");
+ throw invalid_operation("PrimitiveBuilder::end");
in_batch = false;
void PrimitiveBuilder::offset(unsigned o)
{
if(o>array.size())
- throw InvalidParameterValue("Element offset out of range");
+ throw out_of_range("PrimitiveBuilder::offset");
offs = o;
}
void PrimitiveBuilder::element(unsigned i)
{
if(!in_batch)
- throw InvalidState("Element specification not between begin() and end()");
+ throw invalid_operation("PrimitiveBuilder::element");
if(offs+i>=array.size())
- throw InvalidParameterValue("Element index out of range");
+ throw out_of_range("PrimitiveBuilder::element");
element_(offs+i);
}
PrimitiveType PrimitiveBuilder::get_type() const
{
if(!in_batch)
- throw InvalidState("Not between begin() and end()");
+ throw invalid_operation("PrimitiveBuilder::get_type");
return type;
}