]> git.tdb.fi Git - libs/demoscene.git/blob - source/fadeoverlay.h
Initial files lifted from the Skrolliparty 2 demo
[libs/demoscene.git] / source / fadeoverlay.h
1 #ifndef MSP_DEMOSCENE_FADEOVERLAY_H_
2 #define MSP_DEMOSCENE_FADEOVERLAY_H_
3
4 #include <msp/gl/color.h>
5 #include <msp/gl/mesh.h>
6 #include <msp/gl/postprocessor.h>
7 #include <msp/gl/program.h>
8 #include <msp/gl/programdata.h>
9 #include "colorfade.h"
10 #include "sequencer.h"
11
12 class FadeOverlay: public Msp::GL::PostProcessor
13 {
14 public:
15         class Fade: public ColorFadeAction
16         {
17         private:
18                 FadeOverlay &overlay;
19
20         public:
21                 Fade(FadeOverlay &, const Msp::GL::Color &);
22
23                 virtual const Msp::GL::Color &get_color() const { return overlay.color; }
24                 virtual void set_color(const Msp::GL::Color &c) { overlay.set_color(c); }
25         };
26
27 private:
28         const Msp::GL::Mesh &mesh;
29         const Msp::GL::Program &shprog;
30         Msp::GL::ProgramData shdata;
31         Msp::GL::Color color;
32
33 public:
34         FadeOverlay(Msp::DataFile::Collection &);
35
36         void set_content(Msp::GL::Renderable *);
37         void set_color(const Msp::GL::Color &);
38
39         virtual void render(Msp::GL::Renderer &, const Msp::GL::Texture2D &, const Msp::GL::Texture2D &);
40 };
41
42 #endif