]> git.tdb.fi Git - libs/demoscene.git/blob - source/fadeoverlay.cpp
Initial files lifted from the Skrolliparty 2 demo
[libs/demoscene.git] / source / fadeoverlay.cpp
1 #include <msp/datafile/collection.h>
2 #include <msp/gl/renderer.h>
3 #include <msp/gl/texture2d.h>
4 #include "fadeoverlay.h"
5
6 using namespace Msp;
7
8 FadeOverlay::FadeOverlay(DataFile::Collection &resources):
9         mesh(get_fullscreen_quad()),
10         shprog(resources.get<GL::Program>("fade.glsl")),
11         color(0.0f, 0.0f, 0.0f, 0.0f)
12 {
13         shdata.uniform("color", color);
14 }
15
16 void FadeOverlay::set_color(const GL::Color &c)
17 {
18         color = c;
19         shdata.uniform("color", color);
20 }
21
22 void FadeOverlay::render(GL::Renderer &renderer, const GL::Texture2D &color_buf, const GL::Texture2D &)
23 {
24         GL::Renderer::Push push(renderer);
25         renderer.set_shader_program(&shprog, &shdata);
26         renderer.set_texture(&color_buf);
27         mesh.draw(renderer);
28 }
29
30
31 FadeOverlay::Fade::Fade(FadeOverlay &o, const GL::Color &c):
32         ColorFadeAction(c),
33         overlay(o)
34 { }