]> git.tdb.fi Git - libs/gl.git/blobdiff - source/pipelinetemplate.cpp
Some cleanup for View and WindowView
[libs/gl.git] / source / pipelinetemplate.cpp
index 6dbfd0a247721edbb6e4f88521d6bee02a742b45..6fc63227c061c740bcbf4a7257c2c72baff58cd4 100644 (file)
@@ -1,5 +1,6 @@
 #include <msp/core/maputils.h>
 #include <msp/datafile/collection.h>
+#include "ambientocclusion.h"
 #include "blend.h"
 #include "bloom.h"
 #include "colorcurve.h"
@@ -18,6 +19,12 @@ PipelineTemplate::PipelineTemplate():
        max_multisample(0)
 { }
 
+PipelineTemplate::~PipelineTemplate()
+{
+       for(PostProcessorArray::iterator i=postprocessors.begin(); i!=postprocessors.end(); ++i)
+               delete *i;
+}
+
 
 PipelineTemplate::Pass::~Pass()
 { }
@@ -37,6 +44,7 @@ PipelineTemplate::Loader::Loader(PipelineTemplate &t, Collection &c):
 
 void PipelineTemplate::Loader::init()
 {
+       add("ambient_occlusion", &Loader::postprocessor<AmbientOcclusion>);
        add("bloom", &Loader::postprocessor<Bloom>);
        add("colorcurve", &Loader::postprocessor<ColorCurve>);
        add("hdr", &PipelineTemplate::hdr);
@@ -103,17 +111,17 @@ void PipelineTemplate::Pass::Loader::init()
 
 void PipelineTemplate::Pass::Loader::blend_predefined(const string &name)
 {
-       const Blend *blend = 0;
+       const Blend *bln = 0;
        if(name=="alpha")
-               blend = &Blend::alpha();
+               bln = &Blend::alpha();
        else if(name=="additive")
-               blend = &Blend::additive();
+               bln = &Blend::additive();
        else if(name=="additive_alpha")
-               blend = &Blend::additive_alpha();
+               bln = &Blend::additive_alpha();
        else
                throw key_error(name);
 
-       obj.blend = blend;
+       obj.blend = bln;
        obj.blend.keep();
 }