CG_Labs  2020.0
opengl.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include <glad/glad.h>
4 #include <GLFW/glfw3.h>
5 
6 #include <string>
7 #include <vector>
8 
9 
10 namespace utils
11 {
12 
13 namespace opengl
14 {
15 
16 namespace debug
17 {
18 
19 bool isSupported();
20 std::string getStringForType(GLenum type);
21 std::string getStringForSource(GLenum source);
22 std::string getStringForSeverity(GLenum severity);
23 void
24 #ifdef _WIN32
25 APIENTRY
26 #endif
27 opengl_error_callback( GLenum source, GLenum type, GLuint id
28  , GLenum severity, GLsizei /*length*/
29  , GLchar const* msg, void const* /*data*/
30  );
31 
32 } // end of namespace debug
33 
34 namespace shader
35 {
36 
37 bool source_and_build_shader(GLuint id, std::string const& source);
38 GLuint generate_shader(GLenum type, std::string const& source);
39 bool link_program(GLuint id);
40 void reload_program(GLuint id, std::vector<GLuint> const& ids, std::vector<std::string> const& sources);
41 GLuint generate_program(std::vector<GLuint> const& shaders_id);
42 
43 } // end of namespace shader
44 
45 namespace fullscreen
46 {
47 
48 void init(std::string const& vs_path, std::string const& fs_path, size_t width, size_t height);
49 void deinit();
50 void draw();
51 GLuint get_texture_id();
52 
53 } // end of namespace fullscreen
54 
55 } // end of namespace opengl
56 
57 } // end of namespace utils
utils::opengl::debug::opengl_error_callback
void opengl_error_callback(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei, GLchar const *msg, void const *)
Definition: opengl.cpp:100
utils::opengl::fullscreen::get_texture_id
GLuint get_texture_id()
Definition: opengl.cpp:333
utils::opengl::fullscreen::init
void init(std::string const &vs_path, std::string const &fs_path, size_t width, size_t height)
Definition: opengl.cpp:254
utils::opengl::fullscreen::deinit
void deinit()
Definition: opengl.cpp:298
utils::opengl::fullscreen::draw
void draw()
Definition: opengl.cpp:339
utils::opengl::shader::generate_program
GLuint generate_program(std::vector< GLuint > const &shaders_id)
Definition: opengl.cpp:227
utils::opengl::shader::source_and_build_shader
bool source_and_build_shader(GLuint id, std::string const &source)
Definition: opengl.cpp:144
utils::opengl::shader::reload_program
void reload_program(GLuint id, std::vector< GLuint > const &ids, std::vector< std::string > const &sources)
Definition: opengl.cpp:218
utils::opengl::shader::generate_shader
GLuint generate_shader(GLenum type, std::string const &source)
Definition: opengl.cpp:179
utils::opengl::debug::getStringForType
std::string getStringForType(GLenum type)
Definition: opengl.cpp:26
utils::opengl::debug::getStringForSource
std::string getStringForSource(GLenum source)
Definition: opengl.cpp:55
utils
Definition: opengl.cpp:12
utils::opengl::shader::link_program
bool link_program(GLuint id)
Definition: opengl.cpp:193
utils::opengl::debug::getStringForSeverity
std::string getStringForSeverity(GLenum severity)
Definition: opengl.cpp:78
utils::opengl::debug::isSupported
bool isSupported()
Definition: opengl.cpp:20