Grindstone Game Engine
v0.2.0
An open source game engine and toolkit.
Toggle main menu visibility
Loading...
Searching...
No Matches
PointLightComponent.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
Buffer
;
13
class
RenderPass
;
14
class
Framebuffer
;
15
class
DepthStencilTarget;
16
class
DescriptorSet
;
17
class
DescriptorSetLayout
;
18
}
19
20
struct
PointLightComponent
{
21
struct
ShadowData
{
22
Grindstone::Math::Matrix4 shadowMatrix;
23
Grindstone::Math::Rect2D
shadowRenderArea;
24
};
25
26
struct
UniformStruct
{
27
ShadowData
shadowData[6];
28
glm::vec3 lightPosition = glm::vec3(1, 2, 1);
29
float
lightAttenuationRadius = 40.0f;
30
glm::vec3 lightColor = glm::vec3(3, 0.8, 0.4);
31
float
dummy;
32
};
33
34
static
void
Construct(
Grindstone::WorldContextSet
& cxtSet, entt::entity);
35
static
void
Destroy(
Grindstone::WorldContextSet
& cxtSet, entt::entity);
36
37
ShadowData
shadowData[6];
38
Math::Float3 color = Math::Float3(1.0f, 0.8f, 0.6f);
39
float
attenuationRadius = 16.0f;
40
float
intensity = 16.0f;
41
42
GraphicsAPI::Buffer
* uniformBufferObject =
nullptr
;
43
GraphicsAPI::DescriptorSet
* descriptorSet =
nullptr
;
44
GraphicsAPI::DescriptorSetLayout
* descriptorSetLayout =
nullptr
;
45
46
GraphicsAPI::Buffer
* shadowMapUniformBufferObjects[6];
47
GraphicsAPI::DescriptorSet
* shadowMapDescriptorSets[6];
48
GraphicsAPI::DescriptorSetLayout
* shadowMapDescriptorSetLayout =
nullptr
;
49
50
REFLECT(
"PointLight"
)
51
};
52
}
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::RenderPass
Definition
RenderPass.hpp:10
Grindstone::WorldContextSet
Definition
WorldContextSet.hpp:11
Grindstone::Math::Rect2D
Definition
Rect.hpp:11
Grindstone::PointLightComponent::ShadowData
Definition
PointLightComponent.hpp:21
Grindstone::PointLightComponent::UniformStruct
Definition
PointLightComponent.hpp:26
Grindstone::PointLightComponent
Definition
PointLightComponent.hpp:20
sources
code
EngineCore
CoreComponents
Lights
PointLightComponent.hpp
Generated by
1.17.0