]> git.tdb.fi Git - libs/gl.git/blobdiff - source/builders/sequencetemplate.cpp
Access builtin resources through a global instance
[libs/gl.git] / source / builders / sequencetemplate.cpp
index 46ffec702c300e5ae5f393abdbdabc8929525c9f..d852643301fa0ecac87fe0114b514bbe4478b45e 100644 (file)
@@ -5,7 +5,9 @@
 #include "bloom.h"
 #include "colorcurve.h"
 #include "lighting.h"
+#include "object.h"
 #include "resources.h"
+#include "scene.h"
 #include "sequencetemplate.h"
 #include "tests.h"
 
@@ -15,7 +17,6 @@ namespace Msp {
 namespace GL {
 
 SequenceTemplate::SequenceTemplate():
-       resources(0),
        hdr(false),
        alpha(false),
        required_multisample(0),
@@ -28,13 +29,6 @@ SequenceTemplate::~SequenceTemplate()
                delete i->postprocessor_template;
 }
 
-Resources &SequenceTemplate::get_resources() const
-{
-       if(!resources)  
-               throw logic_error("no resources");
-       return *resources;
-}
-
 
 SequenceTemplate::PostProcessorRegistry &SequenceTemplate::get_postprocessor_registry()
 {
@@ -75,11 +69,10 @@ SequenceTemplate::Loader::Loader(SequenceTemplate &t, Collection &c):
        add("multisample", &Loader::multisample_range);
        add("postprocessor", &Loader::postprocessor);
        add("step", &Loader::step);
+       add("step", &Loader::step_with_slot);
 
        // Deprecated
-       add("pass", &Loader::step);
-
-       obj.resources = &c;
+       add("pass", &Loader::step_with_slot);
 }
 
 void SequenceTemplate::Loader::postprocessor_loaded()
@@ -109,7 +102,12 @@ void SequenceTemplate::Loader::postprocessor(const string &slot)
        obj.postprocessors.push_back(pp);
 }
 
-void SequenceTemplate::Loader::step(const string &tag, const string &rend)
+void SequenceTemplate::Loader::step(const string &tag)
+{
+       step_with_slot(tag, string());
+}
+
+void SequenceTemplate::Loader::step_with_slot(const string &tag, const string &rend)
 {
        Step stp;
        stp.tag = tag;
@@ -143,6 +141,8 @@ void SequenceTemplate::Step::Loader::init()
        add("depth_test", &Loader::depth_test_predefined);
        add("lighting", &Loader::lighting);
        add("lighting", &Loader::lighting_inline);
+       add("object", &Loader::object);
+       add("scene", &Loader::scene);
 }
 
 void SequenceTemplate::Step::Loader::blend_predefined(const string &name)
@@ -196,10 +196,15 @@ void SequenceTemplate::Step::Loader::lighting(const string &name)
        obj.lighting.keep();
 }
 
-/*void SequenceTemplate::Step::Loader::scene(const string &name)
+void SequenceTemplate::Step::Loader::object(const string &name)
 {
-       obj.default_renderable = get_collection().get<Scene>(name);
-}*/
+       obj.default_renderable = &get_collection().get<GL::Object>(name);
+}
+
+void SequenceTemplate::Step::Loader::scene(const string &name)
+{
+       obj.default_renderable = &get_collection().get<Scene>(name);
+}
 
 } // namespace GL
 } // namespace Msp