Files
Webcam/include/engine/scene3d/scene_renderer_environment_interface.h
2026-06-22 11:49:35 +02:00

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__