24 #include <flw/flf/management/base/TCacheVector.h> 25 #include <flw/flf/space/LightDirectional.h> 26 #include <flw/flf/space/LightPoint.h> 27 #include <flw/flf/space/LightSpot.h> 33 using CacheSpotLights = TManager<LightSpot, MAX_LIGHTS, flc::Texture2DRenderable*, glm::vec3, glm::quat, glm::vec4, Moveable*>;
34 using CacheDirectionalLights = TManager<LightDirectional, MAX_LIGHTS, flc::Texture2DRenderable*, glm::vec3, glm::quat, glm::vec4, Moveable*>;
35 using CachePointLights = TManager<LightPoint, MAX_LIGHTS, flc::Texture3DRenderable*, glm::vec3, glm::vec4, Moveable*>;
48 bool isLightsRefresh()
const;
50 void resetLightsRefresh();
54 void updateLightEntities();
56 void pushLightUniformsDR();
64 void bindShadowmaps();
67 void updateDeferredBufferSpot(GLuint lightID,
flc::Program *program, GLint currentShadowUnit);
69 void updateDeferredBufferDirectional(GLuint lightID,
flc::Program *program, GLint currentShadowUnit);
71 void updateDeferredBufferPoint(GLuint lightID,
flc::Program *program, GLint currentShadowUnit);
74 std::array<LighUniformData, MAX_LIGHTS> mLightBufferData;
76 bool isRefreshLightSpot()
const;
78 bool isRefreshLightDirectional()
const;
80 bool isRefreshLightPoint()
const;
82 GLfloat computePointLightBoundingSphere(
LightPoint *light);
Light system knows about all light related stuff.
Definition: LightSystem.h:40
Single GLSL program object.
Definition: Program.h:37
Not used.
Definition: LightPoint.h:37