-/* $Id$
-
-This file is part of libmspgl
-Copyright © 2011 Mikko Rasa, Mikkosoft Productions
-Distributed under the LGPL
-*/
-
#ifndef MSP_GL_RENDERER_H_
#define MSP_GL_RENDERER_H_
class Texture;
class Texturing;
class VertexArray;
+class WindingTest;
/**
A class for supervising the rendering process. While many Renderables (in
const Material *material;
const Program *shprog;
std::vector<const ProgramData *> shdata;
+ const WindingTest *winding_test;
State();
};
- MatrixStack mtx_stack;
+ class MtxStack: public MatrixStack
+ {
+ private:
+ Renderer &renderer;
+
+ public:
+ MtxStack(Renderer &);
+ private:
+ virtual void update();
+ };
+
+ MtxStack mtx_stack;
bool mtx_changed;
const Camera *camera;
std::list<State> state_stack;
Renderer(const Camera *);
~Renderer();
- MatrixStack &matrix_stack();
+ MatrixStack &matrix_stack() { return mtx_stack; }
const Camera *get_camera() const { return camera; }
void add_shader_data(const ProgramData *);
void set_vertex_array(const VertexArray *);
void set_element_buffer(const Buffer *);
+ void set_winding_test(const WindingTest *);
void push_state();
void pop_state();