Grindstone Game Engine v0.2.0
An open source game engine and toolkit.
Loading...
Searching...
No Matches
DirectionalLightComponent.hpp
1#pragma once
2
3#include "EngineCore/Reflection/ComponentReflection.hpp"
4#include "EngineCore/ECS/Entity.hpp"
5#include "Common/Math.hpp"
6
7namespace Grindstone {
8 class WorldContextSet;
9
10 namespace GraphicsAPI {
11 class Buffer;
12 class DescriptorSet;
14 class RenderPass;
15 class Framebuffer;
16 class Image;
17 }
18
21 Math::Matrix4 shadowMatrix;
22 Math::Float3 color;
23 float sourceRadius;
24 Math::Float3 direction;
25 float intensity;
26 Math::Rect2D shadowRenderArea;
27 };
28
29 Math::Matrix4 shadowMatrix;
30 Math::Float3 color;
31 float sourceRadius = 0.0f;
32 float intensity = 0.0f;
33 Math::Rect2D shadowRenderArea;
34
35 GraphicsAPI::Buffer* uniformBufferObject = nullptr;
36 GraphicsAPI::DescriptorSet* descriptorSet = nullptr;
37 GraphicsAPI::DescriptorSetLayout* descriptorSetLayout = nullptr;
38
39 GraphicsAPI::Buffer* shadowMapUniformBufferObject = nullptr;
40 GraphicsAPI::DescriptorSet* shadowMapDescriptorSet = nullptr;
41 GraphicsAPI::DescriptorSetLayout* shadowMapDescriptorSetLayout = nullptr;
42
43 REFLECT("DirectionalLight")
44 };
45
46 void SetupDirectionalLightComponent(Grindstone::WorldContextSet& cxtSet, entt::entity);
47 void DestroyDirectionalLightComponent(Grindstone::WorldContextSet& cxtSet, entt::entity);
48}
Definition Buffer.hpp:49
Definition DescriptorSetLayout.hpp:14
Definition DescriptorSet.hpp:15
Definition Framebuffer.hpp:16
Definition Image.hpp:49
Definition RenderPass.hpp:10
Definition WorldContextSet.hpp:11
Definition DirectionalLightComponent.hpp:20
Definition DirectionalLightComponent.hpp:19
Definition Rect.hpp:11