54 lines
1.5 KiB
C++
54 lines
1.5 KiB
C++
/* -----------------------------------------------------------------------------
|
|
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 <Core::Light *> &/*list*/, uint /*limit*/ = 0) const;
|
|
virtual void GetClosestLights(const Vector4 &/*world_pos*/, List <Core::Light *> &/*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__
|