X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Frender%2Frenderer.cpp;h=352cf4201f17a372e044532f395069483eb14975;hb=9eb9f592d37e9a1e05c2ff70887a1c5f26b98864;hp=50d3887369a30cbcdf6b8b1f99e83ea33ca08a94;hpb=94cadd1618f93239b1cb0acbd4f958257c035c98;p=libs%2Fgl.git diff --git a/source/render/renderer.cpp b/source/render/renderer.cpp index 50d38873..352cf420 100644 --- a/source/render/renderer.cpp +++ b/source/render/renderer.cpp @@ -279,21 +279,25 @@ void Renderer::clear(const ClearValue *values) void Renderer::draw(const Batch &batch) { apply_state(); - batch.refresh(frame_index); - PipelineState &ps = get_pipeline_state(); - ps.set_primitive_type(batch.get_type()); - commands.use_pipeline(&ps); + apply_batch(batch); commands.draw(batch); } void Renderer::draw_instanced(const Batch &batch, unsigned count) { apply_state(); + apply_batch(batch); + commands.draw_instanced(batch, count); +} + +void Renderer::apply_batch(const Batch &batch) +{ batch.refresh(frame_index); PipelineState &ps = get_pipeline_state(); ps.set_primitive_type(batch.get_type()); + if(batch.get_type()==PATCHES) + ps.set_patch_size(batch.get_patch_size()); commands.use_pipeline(&ps); - commands.draw_instanced(batch, count); } void Renderer::dispatch(unsigned count_x, unsigned count_y, unsigned count_z)