]> git.tdb.fi Git - libs/gl.git/blobdiff - source/effects/environmentmap.h
Support effects and subordinate sequences inside sequence templates
[libs/gl.git] / source / effects / environmentmap.h
index 2d27ee7d86cfd53e82af53589ecfb8f420d01a59..0c80012501baab724ae5845aab1b786363c32996 100644 (file)
@@ -26,7 +26,35 @@ environment.
 */
 class EnvironmentMap: public Effect
 {
-private:
+public:
+       struct Template: Effect::Template
+       {
+               class Loader: public DataFile::DerivedObjectLoader<Template, Effect::Template::Loader>
+               {
+               private:
+                       static ActionMap shared_actions;
+
+               public:
+                       Loader(Template &, Collection &);
+               private:
+                       virtual void init_actions();
+
+                       void fixed_position(float, float, float);
+               };
+
+               unsigned size = 512;
+               PixelFormat format = RGB16F;
+               std::string environment_name;
+               unsigned roughness_levels = 5;
+               Vector3 fixed_position;
+               bool use_fixed_position = false;
+               float near_clip = 0.1f;
+               float far_clip = 100.0f;
+
+               virtual EnvironmentMap *create(const std::map<std::string, Renderable *> &) const;
+       };
+
+protected:
        struct Face
        {
                Framebuffer fbo;
@@ -52,9 +80,9 @@ private:
        const Sampler &sampler;
        const Sampler &mip_sampler;
        ProgramData shdata;
-       bool rendered;
-       unsigned update_interval;
-       unsigned update_delay;
+       bool rendered = false;
+       unsigned update_interval = 1;
+       unsigned update_delay = 0;
 
 public:
        EnvironmentMap(unsigned size, PixelFormat, Renderable &rend, Renderable &env);