44 lines
1.0 KiB
C++
44 lines
1.0 KiB
C++
#include "Gedeng/RenderBackend.h"
|
|
|
|
namespace Gedeng {
|
|
|
|
void RenderBackend::initialize_window(unsigned int width, unsigned int height, String title) {
|
|
glfwInit();
|
|
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
|
|
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
|
|
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
|
|
|
|
#ifdef __APPLE__
|
|
glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
|
|
#endif
|
|
|
|
window = glfwCreateWindow(width, height, title, NULL, NULL);
|
|
glfwMakeContextCurrent(window);
|
|
gladLoadGLLoader((GLADloadproc)glfwGetProcAddress);
|
|
}
|
|
|
|
bool RenderBackend::is_window_created() {
|
|
return window != nullptr;
|
|
}
|
|
|
|
void RenderBackend::set_depth_test_enabled(bool enabled) {
|
|
if (enabled) {
|
|
glEnable(GL_DEPTH_TEST);
|
|
} else {
|
|
glDisable(GL_DEPTH_TEST);
|
|
}
|
|
}
|
|
|
|
bool RenderBackend::does_window_want_to_close() {
|
|
return glfwWindowShouldClose(window);
|
|
}
|
|
|
|
GLFWwindow *RenderBackend::get_window() {
|
|
return window;
|
|
}
|
|
|
|
void RenderBackend::render() {
|
|
glfwSwapBuffers(window);
|
|
}
|
|
|
|
} // namespace Gedeng
|