const VertexSetup *vertex_setup;
const WindingTest *winding_test;
bool reverse_winding;
+ unsigned object_lod_bias;
State();
};
enum ChangeMask
{
- LEGACY_MATRIX = 1,
- MODERN_MATRIX = 2,
- MATRIX = LEGACY_MATRIX|MODERN_MATRIX,
- LEGACY_LIGHTING = 4,
- LEGACY_CLIPPING = 8,
+ MATRIX = 2,
SHADER_DATA = 16,
MATERIAL_SHDATA = 32,
- STANDARD_SHDATA = 64,
- LEGACY_PROJECTION = 128
+ STANDARD_SHDATA = 64
};
const Camera *default_camera;
unsigned char changed;
- bool matrices_loaded;
std::vector<State> state_stack;
State *state;
ProgramData standard_shdata;
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();