2#include <unordered_map> 
   24  kVertexLightProjection,
 
   37static constexpr std::string_view  kULightColor = 
"u_light.light_color";
 
   38static constexpr std::string_view  kULightPosition = 
"u_light.light_position";
 
   39static constexpr std::string_view  kULightConstant = 
"u_light.constant_falloff";
 
   40static constexpr std::string_view  kULightLinear = 
"u_light.linear_falloff";
 
   41static constexpr std::string_view  kULightQuadratic = 
"u_light.quadratic_falloff";
 
   42static constexpr std::string_view  kULightDirection = 
"u_light.light_direction";
 
   43static constexpr std::string_view  kULightCutoff = 
"u_light.cut_off";
 
   44static constexpr std::string_view  kULightOuterCutoff = 
"u_light.outer_cut_off";
 
   45static constexpr std::string_view  kULightIntensity = 
"u_light.intensity";
 
   47static constexpr std::string_view  kUObjectColor = 
"u_color";
 
   48static constexpr std::string_view  kUObjectTransform = 
"u_m_matrix";
 
   49static constexpr std::string_view  kUObjectRoughness = 
"u_roughness";
 
   50static constexpr std::string_view kUObjectShininess = 
"u_shininess";
 
   52static constexpr std::string_view  u_view_matrix = 
"u_view_matrix";
 
   53static constexpr std::string_view  u_projection_matrix = 
"u_projection_matrix";
 
   54static constexpr std::string_view  u_light_space_matrix = 
"u_light_space_matrix";
 
   56static constexpr std::string_view  u_ambient_strength = 
"u_ambient_strength";
 
   57static constexpr std::string_view  u_camera_position = 
"u_camera_position";
 
   67  ShaderManager(
const ShaderManager& other) = 
delete;
 
   68  ShaderManager(
const ShaderManager&& other) = 
delete;
 
   69  ShaderManager& operator=(
const ShaderManager& other) = 
delete;
 
   70  ShaderManager& operator=(
const ShaderManager&& other) = 
delete;
 
   72  bool CreateDefaultShaders();
 
   74  bool CreateShader(
unsigned int shader, ShaderType type,
 
   75                    const std::string& source);
 
   78  void attachShaders(
unsigned int program, 
unsigned int fragment,
 
   79                     unsigned int vertex, 
unsigned int geometry = -1) 
const;
 
   82  void useProgram(
unsigned int program) 
const;
 
   84  void setAllUniform(DataType dt, 
const float* number,
 
   85                     const std::string_view& uniform_name) 
const;
 
   87  void uploadLightData(
const LightData& data,
 
   88                           unsigned int program) 
const;
 
   89  void uploadObjectData(
const ObjectData& data,
 
   90                         unsigned int program) 
const;
 
   92  void setUniformValue(DataType dt, 
const float* number, 
unsigned int program,
 
   93                       const std::string_view& uniform_name, 
int quantity = 1) 
const;
 
   96  std::array<unsigned int, 10> fragments_;
 
   97  std::array<unsigned int, 10> vertex_;
 
   98  std::array<unsigned int, 5> geometry_;
 
   99  std::array<unsigned int, 12> programs_;
 
contains globally accessible enums
Component used to simulate different types of lights.
Definition: default_components.hpp:69