#pragma once #include <stdafx.h> #include "Buffer/Buffer.h" namespace fpr { struct PointLightUBO { alignas(16) glm::vec3 color; alignas(4) float luminance; alignas(16) glm::vec3 position; }; class PointLight { static size_t light_count; glm::vec3 m_position; glm::vec3 m_color; float m_luminance; PointLightUBO m_ubo; public: size_t light_index; static constexpr uint32_t MAX_LIGHTS = 1024; static PointLightUBO s_point_light_data[MAX_LIGHTS]; PointLight(glm::vec3 m_position, glm::vec3 color = { 1.0f, 1.0f, 1.0f }, float radius = 50.0f); PointLight() = default; static void Update(); static void CreateDescriptorSet(); }; } // namespace fpr