Grindstone Game Engine
v0.2.0
An open source game engine and toolkit.
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
7
namespace
Grindstone {
8
class
WorldContextSet
;
9
10
namespace
GraphicsAPI {
11
class
DescriptorSet
;
12
class
RenderPass
;
13
class
Image
;
14
class
Framebuffer
;
15
class
Buffer
;
16
class
DescriptorSetLayout
;
17
}
18
19
struct
SpotLightComponent
{
20
struct
UniformStruct
{
21
Math::Matrix4 shadowMatrix;
22
Math::Float3
color;
23
float
attenuationRadius;
24
Math::Float3
position;
25
float
intensity;
26
Math::Float3
direction;
27
float
innerAngle;
28
float
outerAngle;
29
float
shadowResolution;
30
};
31
32
Math::Matrix4 shadowMatrix;
33
Math::Float3
color;
34
float
attenuationRadius = 0.0f;
35
float
intensity = 0.0f;
36
float
innerAngle = 0.0f;
37
float
outerAngle = 0.0f;
38
uint32_t shadowResolution = 0u;
39
uint32_t cachedShadowResolution = 0u;
40
41
GraphicsAPI::RenderPass
* renderPass =
nullptr
;
42
GraphicsAPI::Framebuffer
* framebuffer =
nullptr
;
43
GraphicsAPI::Image
* depthTarget =
nullptr
;
44
45
GraphicsAPI::Buffer
* uniformBufferObject =
nullptr
;
46
GraphicsAPI::DescriptorSet
* descriptorSet =
nullptr
;
47
GraphicsAPI::DescriptorSetLayout
* descriptorSetLayout =
nullptr
;
48
49
GraphicsAPI::Buffer
* shadowMapUniformBufferObject =
nullptr
;
50
GraphicsAPI::DescriptorSet
* shadowMapDescriptorSet =
nullptr
;
51
GraphicsAPI::DescriptorSetLayout
* shadowMapDescriptorSetLayout =
nullptr
;
52
53
REFLECT(
"SpotLight"
)
54
};
55
56
void
SetupSpotLightComponent(
Grindstone::WorldContextSet
& cxtSet, entt::entity);
57
void
DestroySpotLightComponent(
Grindstone::WorldContextSet
& cxtSet, entt::entity);
58
}
Grindstone::GraphicsAPI::Buffer
Definition
Buffer.hpp:56
Grindstone::GraphicsAPI::DescriptorSetLayout
Definition
DescriptorSetLayout.hpp:13
Grindstone::GraphicsAPI::DescriptorSet
Definition
DescriptorSet.hpp:15
Grindstone::GraphicsAPI::Framebuffer
Definition
Framebuffer.hpp:16
Grindstone::GraphicsAPI::Image
Definition
Image.hpp:48
Grindstone::GraphicsAPI::RenderPass
Definition
RenderPass.hpp:27
Grindstone::WorldContextSet
Definition
WorldContextSet.hpp:11
Grindstone::Math.Float3
Definition
FloatVectors.cs:108
Grindstone::SpotLightComponent::UniformStruct
Definition
SpotLightComponent.hpp:20
Grindstone::SpotLightComponent
Definition
SpotLightComponent.hpp:19
sources
code
EngineCore
CoreComponents
Lights
SpotLightComponent.hpp
Generated by
1.13.2