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
7namespace Grindstone {
8 namespace GraphicsAPI {
9 class UniformBuffer;
10 class DescriptorSet;
11 class RenderPass;
12 class DepthStencilTarget;
13 class Framebuffer;
14 class DescriptorSetLayout;
15 }
16
19 Math::Matrix4 shadowMatrix;
20 Math::Float3 color;
21 float attenuationRadius;
22 Math::Float3 position;
23 float intensity;
24 Math::Float3 direction;
25 float innerAngle;
26 float outerAngle;
27 float shadowResolution;
28 };
29
30 Math::Matrix4 shadowMatrix;
31 Math::Float3 color;
32 float attenuationRadius;
33 float intensity;
34 float innerAngle;
35 float outerAngle;
36 float shadowResolution;
37
38 GraphicsAPI::RenderPass* renderPass = nullptr;
39 GraphicsAPI::Framebuffer* framebuffer = nullptr;
40 GraphicsAPI::DepthStencilTarget* depthTarget = nullptr;
41
42 GraphicsAPI::UniformBuffer* uniformBufferObject = nullptr;
43 GraphicsAPI::DescriptorSet* descriptorSet = nullptr;
44 GraphicsAPI::DescriptorSetLayout* descriptorSetLayout = nullptr;
45
46 GraphicsAPI::UniformBuffer* shadowMapUniformBufferObject = nullptr;
47 GraphicsAPI::DescriptorSet* shadowMapDescriptorSet = nullptr;
48 GraphicsAPI::DescriptorSetLayout* shadowMapDescriptorSetLayout = nullptr;
49
50 REFLECT("SpotLight")
51 };
52
53 void SetupSpotLightComponent(entt::registry&, entt::entity);
54 void DestroySpotLightComponent(entt::registry&, entt::entity);
55}
Definition DepthStencilTarget.hpp:15
Definition DescriptorSetLayout.hpp:11
Definition DescriptorSet.hpp:11
Definition Framebuffer.hpp:19
Definition RenderPass.hpp:27
Definition UniformBuffer.hpp:10
Definition FloatVectors.cs:108
Definition SpotLightComponent.hpp:18
Definition SpotLightComponent.hpp:17