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#include "Common/Rect.hpp"
7
8namespace Grindstone {
9 class WorldContextSet;
10
11 namespace GraphicsAPI {
12 class DescriptorSet;
13 class RenderPass;
14 class Image;
15 class Framebuffer;
16 class Buffer;
18 }
19
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}
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 Rect.hpp:11
Definition SpotLightComponent.hpp:21
Definition SpotLightComponent.hpp:20