From 46ab7c6c8af19dcf537cab25aa468f4afc403940 Mon Sep 17 00:00:00 2001 From: Mel Date: Sun, 2 Oct 2022 00:02:16 +0200 Subject: Fix for macOS --- src/Window.cpp | 1 + src/main.cpp | 27 ++++++++++++++++++++++++--- 2 files changed, 25 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/Window.cpp b/src/Window.cpp index 8bb8580..54d70f9 100644 --- a/src/Window.cpp +++ b/src/Window.cpp @@ -8,6 +8,7 @@ Window::Window(const char *title, uint32_t width, uint32_t height) { glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); + glfwWindowHint(GLFW_DOUBLEBUFFER, GL_TRUE); m_window = glfwCreateWindow(width, height, title, nullptr, nullptr); if (m_window == nullptr) { diff --git a/src/main.cpp b/src/main.cpp index d025c91..ad6148e 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -15,6 +15,7 @@ void run(); void render(MC::BindableMesh&); void setup_gl(); +void fix_macos_render(MC::Window&); int main() { glfwInit(); @@ -37,13 +38,17 @@ void run() { glViewport(0, 0, WINDOW_WIDTH, WINDOW_HEIGHT); - MC::Mesh triangle({ + MC::Mesh quad({ {-0.5, -0.5, 0.0}, {0.5, -0.5, 0.0}, - {0.0, 0.5, 0.0}, + {-0.5, 0.5, 0.0}, + + {0.5, 0.5, 0.0}, + {-0.5, 0.5, 0.0}, + {0.5, -0.5, 0.0}, }); - auto mesh = MC::Binder::load(triangle); + auto mesh = MC::Binder::load(quad); MC::ShaderProgram program(MC::Shader::create_fragment(), MC::Shader::create_vertex()); program.bind(); @@ -51,6 +56,10 @@ void run() { while (!window.should_close()) { window.start_frame(); +#ifdef __APPLE__ + fix_macos_render(window); +#endif + if (window.key(GLFW_KEY_ESCAPE, GLFW_PRESS)) { window.close(); } @@ -75,3 +84,15 @@ void setup_gl() { throw std::runtime_error("Failed to load GL functions: " + error_string); } } + +void fix_macos_render(MC::Window& window) { + static bool moved = false; + + if(!moved) { + int x, y; + glfwGetWindowPos(window.get(), &x, &y); + glfwSetWindowPos(window.get(), ++x, y); + + moved = true; + } +} \ No newline at end of file -- cgit 1.4.1