Practical Tools for Simple Design
Loading...
Searching...
No Matches
Program.hpp
1#ifndef CORE_PROGRAM_HPP
2#define CORE_PROGRAM_HPP
3
4#include "pch.hpp" // IWYU pragma: export
5
6namespace Core {
13class Program {
14public:
15 Program(const std::string &vertexShaderFilepath,
16 const std::string &fragmentShaderFilepath);
17 Program(const Program &) = delete;
18 Program(Program &&other);
19
20 ~Program();
21
22 Program &operator=(const Program &) = delete;
23 Program &operator=(Program &&other);
24
25 GLuint GetId() const { return m_ProgramId; }
26
27 void Bind() const;
28 void Unbind() const;
29
30 void Validate() const;
31
32private:
33 void CheckStatus() const;
34
35 GLuint m_ProgramId;
36};
37} // namespace Core
38#endif
Definition: Program.hpp:13
Core functionality of the framework
Definition: config.hpp:7