-
Notifications
You must be signed in to change notification settings - Fork 2
/
Shader.h
54 lines (41 loc) · 1.37 KB
/
Shader.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
/*
* File: Shader.h
* Author: dude719
*
* Created on April 19, 2015, 6:44 AM
*/
#ifndef SHADER_H
#define SHADER_H
class Shader
{
public: // Methods
Shader();
~Shader();
// Getter/setters shader properties
unsigned int GetVert() { return m_VertexShader; }
unsigned int GetGeom() { return m_GeometricShader; }
unsigned int GetFrag() { return m_FragmentShader; }
unsigned int GetProgram() { return m_Program; }
void SetVertShader(unsigned int inValue) { m_VertexShader = inValue; }
void SetGeomShader(unsigned int inValue) { m_GeometricShader = inValue; }
void SetFragShader(unsigned int inValue) { m_FragmentShader = inValue; }
void SetProgram(unsigned int inValue) { m_Program = inValue; }
// Get index of an attribute variable of this shader
int GetAttribLocation(const char* inVarName);
// Get index of an uniform variable of this shader
int GetUniformLocation(const char* inVarName);
void Use();
private:
/**
* Get index of an variable of the shader
* @param inVarName the variable name
* @param inIsUniform whether the variable is an uniform
*/
int GetVariableLocation(const char* inVarName, bool inIsUniform);
private: // Fields
unsigned int m_VertexShader;
unsigned int m_GeometricShader;
unsigned int m_FragmentShader;
unsigned int m_Program;
};
#endif /* SHADER_H */