]> git.tdb.fi Git - libs/gl.git/blobdiff - source/builders/pipelinetemplate.cpp
Migrate from LoadableTypeRegistry to TypeRegistry
[libs/gl.git] / source / builders / pipelinetemplate.cpp
index b78b4c40a2fca807017fbbbc29b182408e8f0533..de91450e755931ca0e641065db78ee76d0e3dd31 100644 (file)
@@ -6,6 +6,7 @@
 #include "colorcurve.h"
 #include "lighting.h"
 #include "pipelinetemplate.h"
+#include "resources.h"
 #include "tests.h"
 
 using namespace std;
@@ -14,6 +15,7 @@ namespace Msp {
 namespace GL {
 
 PipelineTemplate::PipelineTemplate():
+       resources(0),
        hdr(false),
        alpha(false),
        required_multisample(0),
@@ -26,6 +28,13 @@ PipelineTemplate::~PipelineTemplate()
                delete i->postprocessor_template;
 }
 
+Resources &PipelineTemplate::get_resources() const
+{
+       if(!resources)  
+               throw logic_error("no resources");
+       return *resources;
+}
+
 
 PipelineTemplate::PostProcessorRegistry &PipelineTemplate::get_postprocessor_registry()
 {
@@ -53,23 +62,12 @@ PipelineTemplate::PostProcessor::PostProcessor(GL::PostProcessor::Template *ppt)
 
 PipelineTemplate::PostProcLoader::PostProcLoader()
 {
-       get_postprocessor_registry().add_all(*this);
+       get_postprocessor_registry().invoke_all(*this);
 }
 
 
-PipelineTemplate::Loader::Loader(PipelineTemplate &t):
-       DataFile::CollectionObjectLoader<PipelineTemplate>(t, 0)
-{
-       init();
-}
-
 PipelineTemplate::Loader::Loader(PipelineTemplate &t, Collection &c):
-       DataFile::CollectionObjectLoader<PipelineTemplate>(t, &c)
-{
-       init();
-}
-
-void PipelineTemplate::Loader::init()
+       DataFile::CollectionObjectLoader<PipelineTemplate, Resources>(t, &c)
 {
        add("hdr", &PipelineTemplate::hdr);
        add("alpha", &PipelineTemplate::alpha);
@@ -77,6 +75,8 @@ void PipelineTemplate::Loader::init()
        add("multisample", &Loader::multisample_range);
        add("pass", &Loader::pass);
        add("postprocessor", &Loader::postprocessor);
+
+       obj.resources = &c;
 }
 
 void PipelineTemplate::Loader::postprocessor_loaded()
@@ -109,7 +109,7 @@ void PipelineTemplate::Loader::pass(const string &tag, const string &rend)
        obj.passes.push_back(pss);
 }
 
-void PipelineTemplate::Loader::postprocessor(const std::string &slot)
+void PipelineTemplate::Loader::postprocessor(const string &slot)
 {
        PostProcLoader ldr;
        load_sub_with(ldr);