TerraForge3D  2.3.1
3D Terrain And Landscape Generator
Shader.h
1#pragma once
2
3#include <glm/glm.hpp>
4#include <unordered_map>
5
6class Shader
7{
8public:
9 Shader(std::string vertexStc, std::string fragmentSrc, std::string geometrySource);
10 Shader(std::string vertexStc, std::string fragmentSrc);
11
12 ~Shader();
13
14 void Bind();
15
16 void SetLightPos(glm::vec3 &);
17 void SetLightCol(float *);
18 void SetTime(float *);
19 void SetMPV(glm::mat4 &);
20
21 void SetUniformf(std::string name, float value);
22 void SetUniform3f(std::string name, float *value);
23 void SetUniformi(std::string name, int value);
24 void SetUniformMat4(std::string name, glm::mat4 value);
25
26 void Unbind();
27
28 inline int GetNativeShader()
29 {
30 return m_Shader;
31 }
32
33 int m_Shader=0, m_UniformId=0, m_LightPosUniformID=0, m_LightColUniformID=0, m_TimeUniformID=0;
34 std::unordered_map<std::string, uint32_t> uniformLocations;
35
36};
Definition: Shader.h:7