Skip to content
Permalink
Browse files
Merge pull request #8544 from gtalusan/master
MacOS: Dispatch GL calls to main thread to prevent crashes on Catalina
  • Loading branch information
stenzek committed Jan 2, 2020
2 parents 7a6a451 + b1a6cbc commit a04d498
Showing 1 changed file with 10 additions and 5 deletions.
@@ -36,10 +36,12 @@ static bool AttachContextToView(NSOpenGLContext* context, NSView* view, u32* wid

(void)UpdateCachedDimensions(view, width, height);

[window makeFirstResponder:view];
[context setView:view];
[window makeKeyAndOrderFront:nil];

// the following calls can crash if not called from the main thread on macOS 10.15
dispatch_sync(dispatch_get_main_queue(), ^{
[window makeFirstResponder:view];
[context setView:view];
[window makeKeyAndOrderFront:nil];
});
return true;
}

@@ -140,7 +142,10 @@ static bool AttachContextToView(NSOpenGLContext* context, NSView* view, u32* wid
return;

if (UpdateCachedDimensions(m_view, &m_backbuffer_width, &m_backbuffer_height))
[m_context update];
// the following calls can crash if not called from the main thread on macOS 10.15
dispatch_sync(dispatch_get_main_queue(), ^{
[m_context update];
});
}

void GLContextAGL::SwapInterval(int interval)

0 comments on commit a04d498

Please sign in to comment.