]> git.tdb.fi Git - libs/gl.git/blobdiff - source/builders/pipelinetemplate.h
Migrate from LoadableTypeRegistry to TypeRegistry
[libs/gl.git] / source / builders / pipelinetemplate.h
index fb24ea29df547f468ff05ba142631c7bd215107d..515ebfaf4cc7fff9a44609c21fa2df106c4cd4bc 100644 (file)
@@ -3,7 +3,7 @@
 
 #include <string>
 #include <vector>
-#include <msp/datafile/loadabletyperegistry.h>
+#include <msp/core/typeregistry.h>
 #include <msp/datafile/objectloader.h>
 #include "blend.h"
 #include "postprocessor.h"
@@ -24,7 +24,7 @@ private:
                template<typename T>
                struct AddPostProc
                {
-                       static void add(PostProcLoader &ldr, const std::string &kw) { ldr.add(kw, &PostProcLoader::postprocessor<T>); }
+                       void operator()(const std::string &kw, PostProcLoader &ldr) const { ldr.add(kw, &PostProcLoader::postprocessor<T>); }
                };
 
        protected:
@@ -46,13 +46,10 @@ private:
        };
 
 public:
-       class Loader: public DataFile::CollectionObjectLoader<PipelineTemplate>, public PostProcLoader
+       class Loader: public DataFile::CollectionObjectLoader<PipelineTemplate, Resources>, public PostProcLoader
        {
        public:
-               Loader(PipelineTemplate &);
                Loader(PipelineTemplate &, Collection &);
-       private:
-               void init();
 
                virtual void postprocessor_loaded();
                void multisample(unsigned);
@@ -103,8 +100,9 @@ public:
        typedef std::vector<PostProcessor> PostProcessorArray;
 
 private:
-       typedef DataFile::LoadableTypeRegistry<PostProcLoader, PostProcLoader::AddPostProc> PostProcessorRegistry;
+       typedef TypeRegistry<PostProcLoader::AddPostProc, PostProcLoader &> PostProcessorRegistry;
 
+       Resources *resources;
        bool hdr;
        bool alpha;
        unsigned required_multisample;
@@ -116,6 +114,7 @@ public:
        PipelineTemplate();
        ~PipelineTemplate();
 
+       Resources &get_resources() const;
        bool get_hdr() const { return hdr; }
        bool get_alpha() const { return alpha; }
        unsigned get_required_multisample() const { return required_multisample; }