]> git.tdb.fi Git - libs/gl.git/blobdiff - source/effects/environmentmap.h
Add an option to use a fixed position in EnvironmentMap
[libs/gl.git] / source / effects / environmentmap.h
index e02687b71184c37b3b11c0a30c8f1b75862e3774..2d27ee7d86cfd53e82af53589ecfb8f420d01a59 100644 (file)
@@ -1,19 +1,19 @@
 #ifndef MSP_GL_ENVIRONMENTMAP_H_
 #define MSP_GL_ENVIRONMENTMAP_H_
 
+#include <vector>
 #include "camera.h"
 #include "effect.h"
 #include "framebuffer.h"
-#include "matrix.h"
 #include "programdata.h"
 #include "texture2d.h"
 #include "texturecube.h"
-#include "vector.h"
 
 namespace Msp {
 namespace GL {
 
 class Mesh;
+class Sampler;
 
 /**
 Creates a cube map texture of the surroundings of the renderable.  This texture
@@ -38,6 +38,8 @@ private:
        TextureCube env_tex;
        Texture2D depth_buf;
        Face faces[6];
+       Vector3 fixed_position;
+       bool use_fixed_pos = false;
 
        TextureCube irradiance;
        const Program &irradiance_shprog;
@@ -55,13 +57,11 @@ private:
        unsigned update_delay;
 
 public:
-       EnvironmentMap(unsigned size, Renderable &rend, Renderable &env);
        EnvironmentMap(unsigned size, PixelFormat, Renderable &rend, Renderable &env);
        EnvironmentMap(unsigned size, PixelFormat, unsigned, Renderable &rend, Renderable &env);
-private:
-       void init(unsigned, PixelFormat, unsigned);
 
-public:
+       void set_fixed_position(const Vector3 &);
+
        void set_depth_clip(float, float);
 
        /** Sets the interval in frames between environment map updates.  A value of