]> git.tdb.fi Git - libs/gl.git/blobdiff - source/render/sequence.cpp
Rework multisample resolve to use resolve attachments
[libs/gl.git] / source / render / sequence.cpp
index e2986a249904a8c1fae136c6ef90e21a6d5c26bb..4f10026ad497386b39ebb3a89fbd43e5e974518d 100644 (file)
@@ -143,8 +143,12 @@ void Sequence::render(Renderer &renderer, Tag tag) const
 
        if(target[0])
        {
+               RenderTarget *source = target[0];
                if(target_ms)
-                       renderer.resolve_multisample(target[0]->get_framebuffer());
+               {
+                       renderer.resolve_multisample();
+                       source = target_ms;
+               }
 
                renderer.set_depth_test(0);
                renderer.set_stencil_test(0);
@@ -152,11 +156,12 @@ void Sequence::render(Renderer &renderer, Tag tag) const
 
                for(unsigned i=0; i<postproc.size(); ++i)
                {
-                       unsigned j = i%2;
-                       renderer.set_framebuffer(i+1<postproc.size() ? &target[1-j]->get_framebuffer() : out_fbo);
-                       const Texture2D &color = target[j]->get_target_texture(COLOR_ATTACHMENT);
-                       const Texture2D &depth = target[j]->get_target_texture(DEPTH_ATTACHMENT);
+                       unsigned j = 1-i%2;
+                       renderer.set_framebuffer(i+1<postproc.size() ? &target[j]->get_framebuffer() : out_fbo);
+                       const Texture2D &color = source->get_target_texture(COLOR_ATTACHMENT);
+                       const Texture2D &depth = source->get_target_texture(DEPTH_ATTACHMENT);
                        postproc[i]->render(renderer, color, depth);
+                       source = target[j];
                }
        }
 }