void Renderer::draw(const Batch &batch)
{
apply_state();
- batch.refresh();
+ batch.refresh(frame_index);
pipeline_state.set_primitive_type(batch.get_type());
commands.use_pipeline(&pipeline_state);
commands.draw(batch);
void Renderer::draw_instanced(const Batch &batch, unsigned count)
{
apply_state();
- batch.refresh();
+ batch.refresh(frame_index);
pipeline_state.set_primitive_type(batch.get_type());
commands.use_pipeline(&pipeline_state);
commands.draw_instanced(batch, count);
shdata_stack.erase(shdata_stack.begin()+state.shdata_count, shdata_stack.end());
for(const BoundProgramData &d: shdata_stack)
{
- d.shdata->apply(*state.shprog, pipeline_state);
+ d.shdata->apply(*state.shprog, pipeline_state, frame_index);
d.generation = d.shdata->get_generation();
}
changed &= ~SHADER_DATA;
if(state.vertex_setup)
{
if(const VertexArray *array = state.vertex_setup->get_vertex_array())
- array->refresh();
+ array->refresh(frame_index);
if(const VertexArray *array = state.vertex_setup->get_instance_array())
- array->refresh();
+ array->refresh(frame_index);
}
pipeline_state.set_vertex_setup(state.vertex_setup);