1 | #ifndef GL_PROGRAM_HPP_ |
2 | #define GL_PROGRAM_HPP_ |
3 |
|
4 |
|
5 | #include <vector> |
6 | #include <map> |
7 |
|
8 | #include "ZydecoCommon.hpp" |
9 |
|
10 |
|
11 | class GLShader; |
12 |
|
13 |
|
14 | class GLProgram |
15 | { |
16 | public: |
17 | static GLProgram *GetGLProgram(std::string name); |
18 |
|
19 | GLProgram(std::string name); |
20 | ~GLProgram(); |
21 | void Generate(std::vector<GLShader*> shaders); |
22 | uint64_t GetGLProgramID(); |
23 | std::string GetGLProgramName(); |
24 |
|
25 | private: |
26 | static std::map<std::string, GLProgram*> s_glPrograms; |
27 |
|
28 | uint64_t m_glProgramId; |
29 | std::string m_glProgramName; |
30 | }; |
31 |
|
32 |
|
33 | #endif /* GL_PROGRAM_HPP_ */ |
34 |
|