49 lines
1.1 KiB
C++
49 lines
1.1 KiB
C++
#ifndef OUR_DICK_RENDER_HPP
|
|
#define OUR_DICK_RENDER_HPP
|
|
|
|
#include <stdint.h>
|
|
#include <GLFW/glfw3.h>
|
|
|
|
#define OPENFL_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
|