-#ifndef MSP_GL_ENVIRONMENTMAP_H_
-#define MSP_GL_ENVIRONMENTMAP_H_
-
-#include "camera.h"
-#include "effect.h"
-#include "framebuffer.h"
-#include "matrix.h"
-#include "programdata.h"
-#include "renderbuffer.h"
-#include "texturecube.h"
-#include "vector.h"
-
-namespace Msp {
-namespace GL {
-
-class Renderable;
-
-/**
-Creates a cube map texture of the surroundings of the renderable. This texture
-can then be used to implement effects such as reflections or refractions.
-
-If the EnvironmentMap is used in a Pipeline, it's worth noting that the cube
-map will be prepared outside of any rendering pass. It's recommended to use
-another Pipeline to define which passes should be used to render the
-environment.
-*/
-class EnvironmentMap: public Effect
-{
-private:
- unsigned size;
- Renderable &environment;
- TextureCube env_tex;
- Renderbuffer depth_buf;
- Framebuffer fbo[6];
- RefPtr<Sampler> sampler;
- Camera camera;
- mutable ProgramData shdata;
- bool rendered;
- unsigned update_interval;
- unsigned update_delay;
-
-public:
- EnvironmentMap(unsigned size, Renderable &rend, Renderable &env);
-
- void set_depth_clip(float, float);
- void set_update_interval(unsigned);
- void queue_update();
-
- virtual void setup_frame(Renderer &);
- virtual void finish_frame();
-
- virtual void render(Renderer &, const Tag & = Tag()) const;
-};
-
-} // namespace GL
-} // namespace Msp
-
-#endif