1 #include <msp/datafile/collection.h>
2 #include <msp/gl/renderer.h>
3 #include <msp/gl/texture2d.h>
5 #include "fadeoverlay.h"
12 FadeOverlay::FadeOverlay(DataFile::Collection &resources):
13 mesh(get_fullscreen_quad()),
14 shprog(resources.get<GL::Program>("fade.glsl")),
15 color(0.0f, 0.0f, 0.0f, 0.0f)
17 shdata.uniform("color", color);
20 void FadeOverlay::set_color(const GL::Color &c)
23 shdata.uniform("color", color);
26 void FadeOverlay::render(GL::Renderer &renderer, const GL::Texture2D &color_buf, const GL::Texture2D &)
28 GL::Renderer::Push push(renderer);
29 renderer.set_shader_program(&shprog, &shdata);
30 renderer.set_texture(&color_buf);
35 FadeOverlay::Fade::Fade():
36 ColorFadeAction(GL::Color(0.0f, 0.0f, 0.0f, 0.0f)),
40 FadeOverlay::Fade::Fade(FadeOverlay &o, const GL::Color &c):
45 void FadeOverlay::Fade::validate() const
48 throw logic_error("null overlay");
52 FadeOverlay::Fade::Loader::Loader(Fade &f, Demo &d):
53 DataFile::DerivedObjectLoader<Fade, Action::Loader>(f, d)
55 add("overlay", &Loader::overlay);
56 add("color", &Loader::color);
59 void FadeOverlay::Fade::Loader::overlay(const string &n)
61 obj.overlay = &demo.get_thing<FadeOverlay>(n);
64 void FadeOverlay::Fade::Loader::color(float r, float g, float b, float a)
66 obj.end_color = GL::Color(r, g, b, a);
69 } // namespace DemoScene