#ifndef BLANK_GRAPHICS_DIRECTIONALLIGHTING_HPP_
#define BLANK_GRAPHICS_DIRECTIONALLIGHTING_HPP_
+#include "glm.hpp"
#include "Program.hpp"
#include <GL/glew.h>
-#include <glm/glm.hpp>
namespace blank {
+class ArrayTexture;
+
class DirectionalLighting {
public:
void Activate() noexcept;
void SetLightDirection(const glm::vec3 &) noexcept;
+ void SetLightColor(const glm::vec3 &) noexcept;
+ void SetAmbientColor(const glm::vec3 &) noexcept;
+ void SetTexture(ArrayTexture &) noexcept;
void SetFogDensity(float) noexcept;
void SetM(const glm::mat4 &m) noexcept;
private:
Program program;
- glm::vec3 light_direction;
- glm::vec3 light_color;
-
- float fog_density;
-
glm::mat4 projection;
glm::mat4 view;
glm::mat4 vp;
GLuint m_handle;
GLuint mv_handle;
GLuint mvp_handle;
+ GLuint sampler_handle;
GLuint light_direction_handle;
GLuint light_color_handle;
+ GLuint ambient_color_handle;
GLuint fog_density_handle;
};