]> git.tdb.fi Git - libs/gl.git/blobdiff - demos/desertpillars/source/desertpillars.h
Add a moving point light to the night phase of desertpillars
[libs/gl.git] / demos / desertpillars / source / desertpillars.h
index 417073816b0fd50fe433de311fb571817e4de295..18522a57ca324f0449d52d50d7b7cf892d3c3365 100644 (file)
@@ -54,6 +54,17 @@ private:
                virtual void setup_render(Msp::GL::Renderer &, Msp::GL::Tag) const;
        };
 
+       class LightFlare: public Msp::GL::ObjectInstance
+       {
+       private:
+               Msp::GL::ProgramData shdata;
+
+       public:
+               LightFlare(const Msp::GL::Object &, unsigned);
+
+               virtual void setup_render(Msp::GL::Renderer &, Msp::GL::Tag) const;
+       };
+
        Msp::Graphics::Display display;
        Options opts;
        Msp::Graphics::Window window;
@@ -64,9 +75,11 @@ private:
        Msp::GL::WindowView view;
        std::unique_ptr<Msp::GL::Sequence> sequence;
        Msp::GL::Camera camera;
+       const Msp::GL::Lighting &lighting;
 
        std::unique_ptr<Msp::GL::Sky> sky;
        std::unique_ptr<Msp::GL::Sequence> shadow_seq;
+       std::unique_ptr<Msp::GL::Sequence> shadow_seq_thsm;
        std::unique_ptr<Msp::GL::ShadowMap> shadow_map;
        std::unique_ptr<Msp::GL::Sequence> env_seq;
        std::unique_ptr<Msp::GL::EnvironmentMap> env_map;
@@ -83,6 +96,11 @@ private:
        Msp::GL::Vector3 sun_axis;
        Msp::Geometry::Angle<float> sun_angle;
 
+       Msp::GL::PointLight &wisp;
+       Msp::GL::Color wisp_base_color;
+       Msp::Geometry::Angle<float> wisp_angle;
+       LightFlare flare;
+
        float camera_distance;
        Msp::Geometry::Angle<float> camera_base_height;
        Msp::Geometry::Angle<float> camera_angle;