our_dick/include/render.hpp
2020-08-17 09:58:18 -07:00

49 lines
1.1 KiB
C++

#ifndef OUR_DICK_RENDER_HPP
#define OUR_DICK_RENDER_HPP
#include <cstdint>
#include <GLFW/glfw3.h>
#define OPENGL_VERSION 400
#define GLSL_VERSION 400
class GLFWwindow;
class render_manager
{
private:
using close_callback = void(*)(void);
using input_callback = void(*)(GLFWwindow*, int, int, int, int);
close_callback m_window_close_callback;
input_callback m_input_handler;
GLFWwindow* m_main_window;
public:
enum renderer_error{
RENDERER_OK,
RENDERER_CONTEXT_ERROR,
RENDERER_WINDOW_ERROR,
RENDERER_INIT_ERROR,
};
render_manager(const render_manager&) = delete;
render_manager(render_manager&&) = delete;
render_manager();
renderer_error init(int width, int height, const char* title); // Sets up the OpenGL environment
void update(); // Update the GL context and draw new frame
void request_exit();
void handle_window_close_event(close_callback handle){
m_window_close_callback = handle;
}
void handle_keypress_event(input_callback handle){
m_input_handler = handle;
glfwSetKeyCallback(m_main_window, m_input_handler);
}
};
#endif