For programs linked against the macOS 10.14 SDK, Mojave makes all view hierarchies layer-backed. For views to which OpenGL contexts have been attached this caused a regression where they sometimes failed to render and just remain black. Updating the OpenGL context after the framework has assigned a layer to our view works around the problem. Thanks to Elviss Strazdins on Stack Overflow for the solution https://stackoverflow.com/a/52938517/1312143.
Signed-off-by: Ken Thomases ken@codeweavers.com --- dlls/winemac.drv/cocoa_window.m | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/dlls/winemac.drv/cocoa_window.m b/dlls/winemac.drv/cocoa_window.m index e405cda..f43b26b 100644 --- a/dlls/winemac.drv/cocoa_window.m +++ b/dlls/winemac.drv/cocoa_window.m @@ -747,6 +747,12 @@ - (void) willRemoveSubview:(NSView*)subview [super willRemoveSubview:subview]; }
+ - (void) setLayer:(CALayer*)newLayer + { + [super setLayer:newLayer]; + [self updateGLContexts]; + } + /* * ---------- NSTextInputClient methods ---------- */