Newer
Older
ForwardPlusRenderer / include / Light.h
#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