X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=source%2Ftechnique.cpp;fp=source%2Ftechnique.cpp;h=d913f4d1aa490b0264c8f94600c9ed93d571f55d;hb=745b3030d7fa32c1f6be29548f978af640eb4021;hp=78060e01f9b89e80e28f7171fc40cea23188d327;hpb=ceae2a27dfc58310c5bab7e3aa3fedf0fa9a1f49;p=libs%2Fgl.git diff --git a/source/technique.cpp b/source/technique.cpp index 78060e01..d913f4d1 100644 --- a/source/technique.cpp +++ b/source/technique.cpp @@ -34,8 +34,19 @@ const RenderPass &Technique::get_pass(const GL::Tag &tag) const } +Technique::Loader::Loader(Technique &t): + DataFile::CollectionObjectLoader(t, 0) +{ + init(); +} + Technique::Loader::Loader(Technique &t, Collection &c): DataFile::CollectionObjectLoader(t, &c) +{ + init(); +} + +void Technique::Loader::init() { add("inherit", &Loader::inherit); add("pass", &Loader::pass); @@ -55,7 +66,10 @@ void Technique::Loader::pass(const string &n) throw KeyError("Duplicate pass name", n); RenderPass p; - load_sub(p, *coll); + if(coll) + load_sub(p, get_collection()); + else + load_sub(p); obj.passes.insert(PassMap::value_type(tag, p)); }