X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Ffadeoverlay.cpp;h=ab069c3477e79e69a339ca916cb62749eb94ead2;hb=7857d6ec5961f94bc926b1a969f2c841713f9650;hp=46ebd58fceababa12181f6e5be65e6b005537fef;hpb=35332818fc6bad98fe77831de2c51a11326e31aa;p=libs%2Fdemoscene.git diff --git a/source/fadeoverlay.cpp b/source/fadeoverlay.cpp index 46ebd58..ab069c3 100644 --- a/source/fadeoverlay.cpp +++ b/source/fadeoverlay.cpp @@ -1,9 +1,11 @@ #include #include #include +#include "demo.h" #include "fadeoverlay.h" using namespace Msp; +using namespace std; FadeOverlay::FadeOverlay(DataFile::Collection &resources): mesh(get_fullscreen_quad()), @@ -28,7 +30,36 @@ void FadeOverlay::render(GL::Renderer &renderer, const GL::Texture2D &color_buf, } +FadeOverlay::Fade::Fade(): + ColorFadeAction(GL::Color(0.0f, 0.0f, 0.0f, 0.0f)), + overlay(0) +{ } + FadeOverlay::Fade::Fade(FadeOverlay &o, const GL::Color &c): ColorFadeAction(c), - overlay(o) + overlay(&o) { } + +void FadeOverlay::Fade::validate() const +{ + if(!overlay) + throw logic_error("null overlay"); +} + + +FadeOverlay::Fade::Loader::Loader(Fade &f, Demo &d): + DataFile::DerivedObjectLoader(f, d) +{ + add("overlay", &Loader::overlay); + add("color", &Loader::color); +} + +void FadeOverlay::Fade::Loader::overlay(const string &n) +{ + obj.overlay = &demo.get_thing(n); +} + +void FadeOverlay::Fade::Loader::color(float r, float g, float b, float a) +{ + obj.end_color = GL::Color(r, g, b, a); +}