Grindstone Game Engine
v0.2.0
An open source game engine and toolkit.
Toggle main menu visibility
Loading...
Searching...
No Matches
SpotLightComponent.hpp
1
#pragma once
2
3
#include "EngineCore/Reflection/ComponentReflection.hpp"
4
#include "EngineCore/ECS/Entity.hpp"
5
#include "Common/Math.hpp"
6
#include "Common/Rect.hpp"
7
8
namespace
Grindstone {
9
class
WorldContextSet
;
10
11
namespace
GraphicsAPI {
12
class
DescriptorSet
;
13
class
RenderPass
;
14
class
Image
;
15
class
Framebuffer
;
16
class
Buffer
;
17
class
DescriptorSetLayout
;
18
}
19
20
struct
SpotLightComponent
{
21
struct
UniformStruct
{
22
Math::Matrix4 shadowMatrix;
23
Math::Float3 color;
24
float
attenuationRadius;
25
Math::Float3 position;
26
float
intensity;
27
Math::Float3 direction;
28
float
innerAngle;
29
float
outerAngle;
30
Math::Rect2D
shadowRenderArea;
31
};
32
33
Math::Matrix4 shadowMatrix;
34
Math::Float3 color;
35
float
attenuationRadius = 0.0f;
36
float
intensity = 0.0f;
37
float
innerAngle = 0.0f;
38
float
outerAngle = 0.0f;
39
Math::Rect2D
shadowRenderArea;
40
41
GraphicsAPI::Buffer
* uniformBufferObject =
nullptr
;
42
GraphicsAPI::DescriptorSet
* descriptorSet =
nullptr
;
43
GraphicsAPI::DescriptorSetLayout
* descriptorSetLayout =
nullptr
;
44
45
GraphicsAPI::Buffer
* shadowMapUniformBufferObject =
nullptr
;
46
GraphicsAPI::DescriptorSet
* shadowMapDescriptorSet =
nullptr
;
47
GraphicsAPI::DescriptorSetLayout
* shadowMapDescriptorSetLayout =
nullptr
;
48
49
REFLECT(
"SpotLight"
)
50
};
51
52
void
SetupSpotLightComponent(
Grindstone::WorldContextSet
& cxtSet, entt::entity);
53
void
DestroySpotLightComponent(
Grindstone::WorldContextSet
& cxtSet, entt::entity);
54
}
Grindstone::GraphicsAPI::Buffer
Definition
Buffer.hpp:49
Grindstone::GraphicsAPI::DescriptorSetLayout
Definition
DescriptorSetLayout.hpp:14
Grindstone::GraphicsAPI::DescriptorSet
Definition
DescriptorSet.hpp:15
Grindstone::GraphicsAPI::Framebuffer
Definition
Framebuffer.hpp:16
Grindstone::GraphicsAPI::Image
Definition
Image.hpp:49
Grindstone::GraphicsAPI::RenderPass
Definition
RenderPass.hpp:10
Grindstone::WorldContextSet
Definition
WorldContextSet.hpp:11
Grindstone::Math::Rect2D
Definition
Rect.hpp:11
Grindstone::SpotLightComponent::UniformStruct
Definition
SpotLightComponent.hpp:21
Grindstone::SpotLightComponent
Definition
SpotLightComponent.hpp:20
sources
code
EngineCore
CoreComponents
Lights
SpotLightComponent.hpp
Generated by
1.17.0