#include <msp/datafile/collection.h>
#include <msp/gl/renderer.h>
#include <msp/gl/texture2d.h>
+#include "demo.h"
#include "fadeoverlay.h"
using namespace Msp;
+using namespace std;
FadeOverlay::FadeOverlay(DataFile::Collection &resources):
mesh(get_fullscreen_quad()),
}
+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<Fade, Action::Loader>(f, d)
+{
+ add("overlay", &Loader::overlay);
+ add("color", &Loader::color);
+}
+
+void FadeOverlay::Fade::Loader::overlay(const string &n)
+{
+ obj.overlay = &demo.get_thing<FadeOverlay>(n);
+}
+
+void FadeOverlay::Fade::Loader::color(float r, float g, float b, float a)
+{
+ obj.end_color = GL::Color(r, g, b, a);
+}