]> git.tdb.fi Git - libs/demoscene.git/blobdiff - source/fadeoverlay.h
Load FadeOverlay's shader from builtin resources
[libs/demoscene.git] / source / fadeoverlay.h
index 988a0e12ab46f3e4ae9acdf0fd0ca33dcdbae669..29897165427efc276bb1987cc38c6a014c9be634 100644 (file)
@@ -9,21 +9,36 @@
 #include "colorfade.h"
 #include "sequencer.h"
 
+namespace Msp {
+namespace DemoScene {
+
 class FadeOverlay: public Msp::GL::PostProcessor
 {
 public:
        class Fade: public ColorFadeAction
        {
+       public:
+               class Loader: public Msp::DataFile::DerivedObjectLoader<Fade, Action::Loader>
+               {
+               public:
+                       Loader(Fade &, Demo &);
+
+               private:
+                       void overlay(const std::string &);
+                       void color(float, float, float, float);
+               };
+
        private:
-               FadeOverlay &overlay;
+               FadeOverlay *overlay;
 
        public:
+               Fade();
                Fade(FadeOverlay &, const Msp::GL::Color &);
 
-               virtual void validate() const { }
+               virtual void validate() const;
 
-               virtual const Msp::GL::Color &get_color() const { return overlay.color; }
-               virtual void set_color(const Msp::GL::Color &c) { overlay.set_color(c); }
+               virtual const Msp::GL::Color &get_color() const { return overlay->color; }
+               virtual void set_color(const Msp::GL::Color &c) { overlay->set_color(c); }
        };
 
 private:
@@ -33,12 +48,14 @@ private:
        Msp::GL::Color color;
 
 public:
-       FadeOverlay(Msp::DataFile::Collection &);
+       FadeOverlay();
 
-       void set_content(Msp::GL::Renderable *);
        void set_color(const Msp::GL::Color &);
 
        virtual void render(Msp::GL::Renderer &, const Msp::GL::Texture2D &, const Msp::GL::Texture2D &);
 };
 
+} // namespace DemoScene
+} // namespace Msp
+
 #endif