X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Feffects%2Fsky.cpp;h=ab322f230e34365e6363c3ea9c867b2be251d79c;hp=855509d15a3c1affb3dcc61dd41986f4decd3ae4;hb=083a8227715fa32c841fc2b8126e4ab8d2840ba0;hpb=54fdd850d1e657bc357d859a532497905ded741a;ds=sidebyside diff --git a/source/effects/sky.cpp b/source/effects/sky.cpp index 855509d1..ab322f23 100644 --- a/source/effects/sky.cpp +++ b/source/effects/sky.cpp @@ -1,6 +1,7 @@ #include #include #include "directionallight.h" +#include "error.h" #include "mesh.h" #include "renderer.h" #include "resources.h" @@ -183,5 +184,29 @@ Sky::Planet Sky::Planet::earth() return planet; } + +Sky *Sky::Template::create(const map &renderables) const +{ + Renderable *content = get_item(renderables, content_name); + if(!content || !sun) + throw invalid_operation("Sky::Template::create"); + return new Sky(*content, *sun); +} + + +DataFile::Loader::ActionMap Sky::Template::Loader::shared_actions; + +Sky::Template::Loader::Loader(Template &t, Collection &c): + DerivedObjectLoader(t, c) +{ + set_actions(shared_actions); +} + +void Sky::Template::Loader::init_actions() +{ + Effect::Template::Loader::init_actions(); + add("sun", &Template::sun); +} + } // namespace GL } // namespace Msp