-#include <msp/core/except.h>
#include "batch.h"
#include "buffer.h"
#include "camera.h"
+#include "error.h"
#include "material.h"
#include "program.h"
#include "programdata.h"
void Renderer::add_shader_data(const ProgramData *d)
{
if(!state->shprog)
- throw InvalidState("No shader program");
+ throw invalid_operation("Renderer::add_shader_data");
state->shdata.push_back(d);
}
void Renderer::pop_state()
{
if(state_stack.size()==1)
- throw InvalidState("Can't pop the last state");
+ throw stack_underflow("Renderer::pop_state");
state_stack.pop_back();
state = &state_stack.back();
void Renderer::draw(const Batch &batch)
{
if(!vertex_array)
- throw InvalidState("Can't draw without a vertex array");
+ throw invalid_operation("Renderer::draw");
apply_state();