/* ----------------------------------------------------------------------------- GSFramework Copyright 2001-2013 Emmanuel Julien. All Rights Reserved. ----------------------------------------------------------------------------- */ #ifndef __NSCENERENDERERENVINTERFACE__ #define __NSCENERENDERERENVINTERFACE__ #include "core/renderer_environment_interface.h" namespace GS { namespace S3D { class Scene; /* @short Scene renderer environment. Used to query environment informations. */ struct IEnvironment : public Render::IEnvironment { Scene *scene; virtual float GetClock() const; virtual float GetTimeOfDay() const; virtual Render::Shader *GetSkyboxShader() const; virtual bool GetSkyboxLayers(Render::sTexture [2]) const; virtual Color GetClearColor() const; virtual Color GetAmbientColor() const; virtual void GetEnvironmentProbe(Render::sTexture &/*radiance*/, Render::sTexture &/*irradiance*/) const; virtual Core::Camera *GetCurrentCamera() const; virtual void GetLightsInFrustum(const Vector4 &/*world_pos*/, const Frustum &/*frustum*/, List &/*list*/, uint /*limit*/ = 0) const; virtual void GetClosestLights(const Vector4 &/*world_pos*/, List &/*list*/, uint /*limit*/ = 0) const; virtual bool IsFogEnabled() const; virtual bool GetFogConfiguration(Color &color, float &fog_near, float &fog_far) const; virtual void OnRenderUser(Render::Renderer *) const; IEnvironment(Scene *s) : scene(s) {} }; } // S3D } // GS #endif // __NSCENERENDERERENVINTERFACE__