summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Window.cpp1
-rw-r--r--src/main.cpp27
2 files changed, 25 insertions, 3 deletions
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