+ void set_lighting(const Lighting *);
+ void set_clipping(const Clipping *);
+
+ /** 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);
+
+ /** Adds another set of data to be use with shader programs. The data is
+ independent of any shader program changes and remains in effect until the
+ Renderer state is popped. */
+ void add_shader_data(const ProgramData &data);
+
+ void flush_shader_data();
+
+ void set_vertex_setup(const VertexSetup *);
+ void set_winding_test(const WindingTest *);
+ void set_reverse_winding(bool);
+
+ void set_object_lod_bias(unsigned);
+ unsigned get_object_lod_bias() const { return state->object_lod_bias; }
+
+ /** Saves the current state so it can be restored later. */