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 position;
24
float
attenuationRadius;
25
Math::Float3 direction;
26
float
innerAngle;
27
Math::Float3 color;
28
float
outerAngle;
29
Math::Rect2D
shadowRenderArea;
30
};
31
32
static
void
Construct(
Grindstone::WorldContextSet
& cxtSet, entt::entity);
33
static
void
Destroy(
Grindstone::WorldContextSet
& cxtSet, entt::entity);
34
35
Math::Matrix4 shadowMatrix;
36
Math::Float3 color = Math::Float3(1.0f, 0.8f, 0.6f);
37
float
attenuationRadius = 16.0f;
38
float
intensity = 16.0f;
39
float
innerAngle = 45.0f;
40
float
outerAngle = 90.0f;
41
Math::Rect2D
shadowRenderArea;
42
43
GraphicsAPI::Buffer
* uniformBufferObject =
nullptr
;
44
GraphicsAPI::DescriptorSet
* descriptorSet =
nullptr
;
45
GraphicsAPI::DescriptorSetLayout
* descriptorSetLayout =
nullptr
;
46
47
GraphicsAPI::Buffer
* shadowMapUniformBufferObject =
nullptr
;
48
GraphicsAPI::DescriptorSet
* shadowMapDescriptorSet =
nullptr
;
49
GraphicsAPI::DescriptorSetLayout
* shadowMapDescriptorSetLayout =
nullptr
;
50
51
REFLECT(
"SpotLight"
)
52
};
53
}
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