#define MSP_GL_SKY_H_
#include "effect.h"
-#include "framebuffer.h"
#include "programdata.h"
#include "rendertarget.h"
namespace Msp {
namespace GL {
+class DirectionalLight;
class Mesh;
-class Light;
class Program;
/**
static Planet earth();
};
+ 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();
+ };
+
+ DirectionalLight *sun = 0;
+
+ virtual Sky *create(const std::map<std::string, Renderable *> &) const;
+ };
+
private:
Planet planet;
- Light &sun;
+ DirectionalLight &sun;
RenderTarget transmittance_lookup;
const Program &transmittance_shprog;
bool transmittance_lookup_dirty;
bool rendered;
public:
- Sky(Renderable &, Light &);
+ Sky(Renderable &, DirectionalLight &);
void set_planet(const Planet &);
void set_view_height(float);
virtual void setup_frame(Renderer &);
virtual void finish_frame();
virtual void render(Renderer &, Tag = Tag()) const;
+
+ virtual void set_debug_name(const std::string &);
};
} // namespace GL