]> git.tdb.fi Git - libs/demoscene.git/blob - source/fadeoverlay.h
Framework for loading sequences from files
[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 void validate() const { }
24
25                 virtual const Msp::GL::Color &get_color() const { return overlay.color; }
26                 virtual void set_color(const Msp::GL::Color &c) { overlay.set_color(c); }
27         };
28
29 private:
30         const Msp::GL::Mesh &mesh;
31         const Msp::GL::Program &shprog;
32         Msp::GL::ProgramData shdata;
33         Msp::GL::Color color;
34
35 public:
36         FadeOverlay(Msp::DataFile::Collection &);
37
38         void set_content(Msp::GL::Renderable *);
39         void set_color(const Msp::GL::Color &);
40
41         virtual void render(Msp::GL::Renderer &, const Msp::GL::Texture2D &, const Msp::GL::Texture2D &);
42 };
43
44 #endif