SleakEngine
1.0.0
C++23 multi-backend game engine
Loading...
Searching...
No Matches
DirectionalLight.cpp
Go to the documentation of this file.
1
#include <
Lighting/DirectionalLight.hpp
>
2
#include <
Graphics/Common/ConstantBuffer.hpp
>
3
4
namespace
Sleak
{
5
6
DirectionalLight::DirectionalLight
(
const
std::string& name)
7
:
Light
(name) {}
8
9
RenderEngine::LightGPUEntry
DirectionalLight::BuildGPUData
()
const
{
10
RenderEngine::LightGPUEntry
entry{};
11
12
// Directional lights have no position
13
entry.
PositionX
= 0.0f;
14
entry.
PositionY
= 0.0f;
15
entry.
PositionZ
= 0.0f;
16
entry.
Type
= 0;
// Directional
17
18
entry.
DirectionX
= m_direction.GetX();
19
entry.
DirectionY
= m_direction.GetY();
20
entry.
DirectionZ
= m_direction.GetZ();
21
entry.
Intensity
=
m_intensity
;
22
23
entry.
ColorR
=
m_color
.GetX();
24
entry.
ColorG
=
m_color
.GetY();
25
entry.
ColorB
=
m_color
.GetZ();
26
entry.
Range
= 0.0f;
// Not used for directional
27
28
entry.
SpotInnerCos
= 0.0f;
29
entry.
SpotOuterCos
= 0.0f;
30
entry.
AreaWidth
= 0.0f;
31
entry.
AreaHeight
= 0.0f;
32
33
return
entry;
34
}
35
36
}
// namespace Sleak
ConstantBuffer.hpp
DirectionalLight.hpp
Sleak::DirectionalLight::BuildGPUData
RenderEngine::LightGPUEntry BuildGPUData() const override
Packs this light's parameters into the GPU-side entry used by the lighting constant buffer.
Definition
DirectionalLight.cpp:9
Sleak::DirectionalLight::DirectionalLight
DirectionalLight(const std::string &name="DirectionalLight")
Definition
DirectionalLight.cpp:6
Sleak::Light::m_color
Math::Vector3D m_color
Definition
Light.hpp:57
Sleak::Light::Light
Light(const std::string &name="Light")
Definition
Light.cpp:5
Sleak::Light::m_intensity
float m_intensity
Definition
Light.hpp:58
Sleak
Root namespace for everything the engine exposes.
Definition
Camera.hpp:10
Sleak::RenderEngine::LightGPUEntry
One light's packed GPU representation, laid out for std140/cbuffer alignment.
Definition
ConstantBuffer.hpp:20
Sleak::RenderEngine::LightGPUEntry::SpotInnerCos
float SpotInnerCos
Definition
ConstantBuffer.hpp:34
Sleak::RenderEngine::LightGPUEntry::Range
float Range
Definition
ConstantBuffer.hpp:31
Sleak::RenderEngine::LightGPUEntry::AreaHeight
float AreaHeight
Definition
ConstantBuffer.hpp:37
Sleak::RenderEngine::LightGPUEntry::AreaWidth
float AreaWidth
Definition
ConstantBuffer.hpp:36
Sleak::RenderEngine::LightGPUEntry::Type
uint32_t Type
Definition
ConstantBuffer.hpp:23
Sleak::RenderEngine::LightGPUEntry::DirectionY
float DirectionY
Definition
ConstantBuffer.hpp:26
Sleak::RenderEngine::LightGPUEntry::PositionY
float PositionY
Definition
ConstantBuffer.hpp:22
Sleak::RenderEngine::LightGPUEntry::Intensity
float Intensity
Definition
ConstantBuffer.hpp:27
Sleak::RenderEngine::LightGPUEntry::PositionX
float PositionX
Definition
ConstantBuffer.hpp:22
Sleak::RenderEngine::LightGPUEntry::ColorB
float ColorB
Definition
ConstantBuffer.hpp:30
Sleak::RenderEngine::LightGPUEntry::DirectionX
float DirectionX
Definition
ConstantBuffer.hpp:26
Sleak::RenderEngine::LightGPUEntry::DirectionZ
float DirectionZ
Definition
ConstantBuffer.hpp:26
Sleak::RenderEngine::LightGPUEntry::ColorG
float ColorG
Definition
ConstantBuffer.hpp:30
Sleak::RenderEngine::LightGPUEntry::SpotOuterCos
float SpotOuterCos
Definition
ConstantBuffer.hpp:35
Sleak::RenderEngine::LightGPUEntry::ColorR
float ColorR
Definition
ConstantBuffer.hpp:30
Sleak::RenderEngine::LightGPUEntry::PositionZ
float PositionZ
Definition
ConstantBuffer.hpp:22
src
Lighting
DirectionalLight.cpp
Generated on
for SleakEngine by
1.16.1