]> git.tdb.fi Git - libs/demoscene.git/blobdiff - source/stage.h
Create Stage pipeline when added to a view
[libs/demoscene.git] / source / stage.h
index daf4f4b982c72ab52fa07008c79a10d2d2b1ba69..7d4664fb2b4a2a70122abb04a5ba5e4092378c42 100644 (file)
@@ -4,9 +4,11 @@
 #include <msp/gl/camera.h>
 #include <msp/gl/pipeline.h>
 #include "action.h"
+#include "demo.h"
 
-struct Stage
+class Stage
 {
+public:
        class UseInView: public Action
        {
        public:
@@ -59,13 +61,22 @@ struct Stage
                virtual void start(float, float);
        };
 
+protected:
        Msp::GL::Pipeline *pipeline;
        Msp::GL::Camera camera;
+       Msp::GL::View *last_view;
 
+public:
        Stage();
        ~Stage();
 
+       virtual void add_things(Demo::ThingMap &, const std::string &);
+
        void set_camera(const Msp::GL::Camera &);
+       Msp::GL::Camera &get_camera() { return camera; }
+
+protected:
+       virtual void create_pipeline(Msp::GL::View &) = 0;
 };
 
 #endif