X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fgraphics%2FPlanetSurface.hpp;h=178fcabac98123ad6914a8e01b45e9079f3cac4b;hb=2025d49798b93180237b6ce62d3ff5d6ee8ebc6e;hp=2482703b070b8eff0fe4e07409933b0b852afb92;hpb=0453d6da05d4b29d953f00857d743310d9344ce0;p=blobs.git diff --git a/src/graphics/PlanetSurface.hpp b/src/graphics/PlanetSurface.hpp index 2482703..178fcab 100644 --- a/src/graphics/PlanetSurface.hpp +++ b/src/graphics/PlanetSurface.hpp @@ -13,6 +13,9 @@ class ArrayTexture; class PlanetSurface { +public: + static constexpr int MAX_LIGHTS = 8; + public: PlanetSurface(); ~PlanetSurface(); @@ -26,10 +29,13 @@ public: public: void Activate() noexcept; + void SetM(const glm::mat4 &m) noexcept; + void SetVP(const glm::mat4 &v, const glm::mat4 &p) noexcept; void SetMVP(const glm::mat4 &m, const glm::mat4 &v, const glm::mat4 &p) noexcept; void SetNormal(const glm::vec3 &) noexcept; void SetTexture(ArrayTexture &) noexcept; - void SetLight(const glm::vec3 &pos, const glm::vec3 &color, float strength) noexcept; + void SetLight(int n, const glm::vec3 &pos, const glm::vec3 &color, float strength) noexcept; + void SetNumLights(int n) noexcept; const glm::mat4 &M() const noexcept { return m; } const glm::mat4 &V() const noexcept { return v; } @@ -40,6 +46,8 @@ public: private: Program prog; + int num_lights; + glm::mat4 m; glm::mat4 v; glm::mat4 p; @@ -52,9 +60,8 @@ private: GLuint sampler_handle; GLuint normal_handle; - GLuint light_position_handle; - GLuint light_color_handle; - GLuint light_strength_handle; + GLuint num_lights_handle; + GLuint light_handle[MAX_LIGHTS * 3]; };