private:
struct State
{
+ const Camera *camera;
Matrix modelview_matrix;
const Texture *texture;
const Texturing *texturing;
LEGACY_CLIPPING = 8,
SHADER_DATA = 16,
MATERIAL_SHDATA = 32,
- STANDARD_SHDATA = 64
+ STANDARD_SHDATA = 64,
+ LEGACY_PROJECTION = 128
};
unsigned char changed;
bool matrices_loaded;
unsigned shdata_applied;
- const Camera *camera;
std::vector<State> state_stack;
State *state;
ProgramData standard_shdata;
times without an intervening end(). */
void begin(const Camera *);
+ /** Sets the camera to render from. The modelview matrix is reset to the
+ camera's view matrix. */
+ void set_camera(const Camera &);
+
+ const Camera *get_camera() const { return state->camera; }
+
/** Replaces the Renderer's modelview matrix. */
void set_matrix(const Matrix &);
/** Returns the current modelview matrix. */
const Matrix &get_matrix() const { return state->modelview_matrix; }
- const Camera *get_camera() const { return camera; }
-
void set_texture(const Texture *);
void set_texturing(const Texturing *);
unsigned allocate_effect_texunit();