X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Frenderer.h;h=1254b7adf3951ffc6b2dfd1d1890e9ceb8598290;hb=78328c5f6e4dcbe883a3f5e4fe0974ab490be3f7;hp=088b5710ad6a31b6b79b1e1941ff10ef88e810c9;hpb=d108cd5fc13aca16e38b54c1946c65797a869073;p=libs%2Fgl.git diff --git a/source/renderer.h b/source/renderer.h index 088b5710..1254b7ad 100644 --- a/source/renderer.h +++ b/source/renderer.h @@ -13,6 +13,7 @@ class Batch; class Buffer; class Camera; class Material; +class Lighting; class Program; class ProgramData; class Renderable; @@ -65,9 +66,12 @@ private: const Texture *texture; const Texturing *texturing; const Material *material; + const Lighting *lighting; + Matrix lighting_matrix; const Program *shprog; unsigned shdata_count; const WindingTest *winding_test; + bool reverse_winding; State(); }; @@ -88,6 +92,7 @@ private: const Camera *camera; std::vector state_stack; State *state; + bool lighting_changed; std::vector shdata_stack; bool shdata_changed; const VertexArray *vertex_array; @@ -106,6 +111,8 @@ public: void set_texturing(const Texturing *); void set_material(const Material *); + void set_lighting(const Lighting *); + /** Sets the shader program to use. An initial set of data can be set as well, with the same semantics as add_shader_data. */ void set_shader_program(const Program *prog, const ProgramData *data = 0); @@ -118,6 +125,7 @@ public: void set_vertex_array(const VertexArray *); void set_element_buffer(const Buffer *); void set_winding_test(const WindingTest *); + void set_reverse_winding(bool); /** Saves the current state so it can be restored later. */ void push_state();