X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Frenderer.h;h=1f4624ce889476370c25fef2e0077db723c8ded1;hp=157282a5398f6a18a23f0f80684a9765a16e7a3e;hb=bfc7f104c642590fd85577a6545c6bc6259ccaa4;hpb=7503b8514cfcc9861c74cfebb0c60db3f72fa29b diff --git a/source/renderer.h b/source/renderer.h index 157282a5..1f4624ce 100644 --- a/source/renderer.h +++ b/source/renderer.h @@ -64,6 +64,7 @@ public: private: struct State { + const Camera *camera; Matrix modelview_matrix; const Texture *texture; const Texturing *texturing; @@ -91,13 +92,13 @@ private: 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_stack; State *state; ProgramData standard_shdata; @@ -113,6 +114,12 @@ public: 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 &); @@ -122,8 +129,6 @@ public: /** 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();