X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=inline;f=source%2Frender%2Fsequence.cpp;h=b11d4b1c9f037aafbfe49eaebe2d76c1920d5511;hb=0bcebf9930e4baada774a16c0e7637a22a410bb4;hp=5d003753bc2738d89fc49d5e34d26956b466ca78;hpb=0bd265b929f0b2a9289dd72262968ad8e7bc1a0d;p=libs%2Fgl.git diff --git a/source/render/sequence.cpp b/source/render/sequence.cpp index 5d003753..b11d4b1c 100644 --- a/source/render/sequence.cpp +++ b/source/render/sequence.cpp @@ -65,7 +65,7 @@ void Sequence::set_clear_stencil(int s) Sequence::Step &Sequence::add_step(Tag tag, Renderable &r) { - steps.push_back(Step(tag, &r)); + steps.emplace_back(tag, &r); return steps.back(); } @@ -109,7 +109,7 @@ void Sequence::render(Renderer &renderer, Tag tag) const throw invalid_operation("Sequence::render"); const FrameFormat &format = target_fbo->get_format(); - ClearValue clear_values[7]; + ClearValue clear_values[FrameFormat::MAX_ATTACHMENTS]; unsigned i = 0; Color default_color = (clear_colors.empty() ? Color(0.0f, 0.0f, 0.0f, 0.0f) : clear_colors.front()); ClearValue *cv = clear_values; @@ -138,7 +138,7 @@ void Sequence::render(Renderer &renderer, Tag tag) const renderer.add_shader_data(lighting->get_shader_data()); if(const Renderable *renderable = s.get_renderable()) - renderer.render(*renderable, s.get_tag()); + renderable->render(renderer, s.get_tag()); } if(target[0]) @@ -154,6 +154,7 @@ void Sequence::render(Renderer &renderer, Tag tag) const { unsigned j = i%2; renderer.set_framebuffer(i+1get_framebuffer() : out_fbo); + renderer.clear(0); const Texture2D &color = target[j]->get_target_texture(COLOR_ATTACHMENT); const Texture2D &depth = target[j]->get_target_texture(DEPTH_ATTACHMENT); postproc[i]->render(renderer, color, depth);