Grindstone Game Engine v0.2.0
An open source game engine and toolkit.
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
7namespace Grindstone {
8 class WorldContextSet;
9
10 namespace GraphicsAPI {
11 class Buffer;
12 class RenderPass;
13 class Framebuffer;
14 class DepthStencilTarget;
15 class DescriptorSet;
17 }
18
19 struct PointLightComponent {
21 glm::vec3 lightColor = glm::vec3(3, 0.8, 0.4);
22 float lightAttenuationRadius = 40.0f;
23 glm::vec3 lightPosition = glm::vec3(1, 2, 1);
24 float lightIntensity = 40.0f;
25 // float shadowResolution;
26 };
27
28 Math::Float3 color;
29 float attenuationRadius;
30 float intensity;
31
32 GraphicsAPI::Buffer* uniformBufferObject = nullptr;
33 GraphicsAPI::DescriptorSet* descriptorSet = nullptr;
34 GraphicsAPI::DescriptorSetLayout* descriptorSetLayout = nullptr;
35
36 /* TODO: Re-add this when you come back to point light shadows
37 float shadowResolution;
38 GraphicsAPI::RenderPass* renderPass = nullptr;
39 GraphicsAPI::Framebuffer* framebuffer = nullptr;
40 GraphicsAPI::DepthStencilTarget* depthTarget = nullptr;
41
42 GraphicsAPI::UniformBuffer* shadowMapUniformBufferObject = nullptr;
43 GraphicsAPI::DescriptorSet* shadowMapDescriptorSet = nullptr;
44 GraphicsAPI::DescriptorSetLayout* shadowMapDescriptorSetLayout = nullptr;
45 */
46
47 REFLECT("PointLight")
48 };
49
50 void SetupPointLightComponent(Grindstone::WorldContextSet& cxtSet, entt::entity);
51 void DestroyPointLightComponent(Grindstone::WorldContextSet& cxtSet, entt::entity);
52}
Definition Buffer.hpp:56
Definition DescriptorSetLayout.hpp:13
Definition DescriptorSet.hpp:15
Definition Framebuffer.hpp:16
Definition RenderPass.hpp:27
Definition PointLightComponent.cs:2
Definition WorldContextSet.hpp:11
Definition FloatVectors.cs:108
Definition PointLightComponent.hpp:20