class Renderable;
class Texture;
class Texturing;
+class VertexSetup;
class WindingTest;
/**
const Program *shprog;
unsigned shdata_count;
const Mesh *mesh;
+ const VertexSetup *vertex_setup;
const WindingTest *winding_test;
bool reverse_winding;
+ unsigned object_lod_bias;
State();
};
Renderer state is popped. */
void add_shader_data(const ProgramData &data);
+ void flush_shader_data();
+
void set_mesh(const Mesh *);
+ 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. */
void push_state();
void render(const Renderable &, const Tag & = Tag());
void draw(const Batch &);
+ void draw_instanced(const Batch &, unsigned);
private:
void apply_state();