#include "Gedeng/RenderBackend.h" namespace Gedeng { void RenderBackend::initialize_window(unsigned int width, unsigned int height, String title) { glfwInit(); glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4); glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 4); 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); glEnable(GL_DEPTH_TEST); // glEnable(GL_CULL_FACE); // glEnable(GL_BLEND); // glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); } 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