21#ifndef GF_LIGHT_SYSTEM_H
22#define GF_LIGHT_SYSTEM_H
28#include "GraphicsApi.h"
29#include "LightPointEmission.h"
30#include "LightShape.h"
33#include "RenderTexture.h"
41#ifndef DOXYGEN_SHOULD_SKIP_THIS
79 m_ambientColor = color;
95 struct LightDirection {
108 std::vector<Ref<LightShape>> m_shapes;
109 std::vector<Ref<LightPointEmission>> m_points;
110 std::vector<Ref<LightDirection>> m_directions;
116 Shader m_lightOverShapeShader;
128#ifndef DOXYGEN_SHOULD_SKIP_THIS
Abstract base class for objects that can be drawn to a render window.
Definition: Drawable.h:57
Light point emission.
Definition: LightPointEmission.h:39
Light shape.
Definition: LightShape.h:54
A light system.
Definition: LightSystem.h:74
LightId addLightShape(LightShape &shape)
LightSystem(Vector2i size)
void removeLight(LightId id)
void setAmbientColor(const Color4f &color)
Definition: LightSystem.h:78
LightId addLightPoint(LightPointEmission &light)
void draw(RenderTarget &target, const RenderStates &states) override
Draw the object to a render target.
Base class for all render targets (window, texture, ...)
Definition: RenderTarget.h:102
Target for off-screen 2D rendering into a texture.
Definition: RenderTexture.h:98
An OpenGL vertex and/or fragment shader.
Definition: Shader.h:119
Base class for textured shapes with outline.
Definition: Shape.h:73
A texture for colored images.
Definition: Texture.h:313
2D camera that defines what region is shown on framebuffer
Definition: View.h:94
Direction
Main four directions.
Definition: Direction.h:43
LightType
The type of light.
Definition: LightSystem.h:53
The namespace for gf classes.
The id of a light.
Definition: LightSystem.h:65
uint32_t index
Definition: LightSystem.h:67
LightType type
Definition: LightSystem.h:66
Define the states used for drawing to a RenderTarget.
Definition: RenderStates.h:82
A 4D vector.
Definition: Vector.h:852