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