[PATCH] winemac: Fix failure to render OpenGL on macOS 10.14 (Mojave).

Ken Thomases ken at codeweavers.com
Thu Feb 7 13:57:22 CST 2019


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 at 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 ----------
      */
-- 
2.10.2




More information about the wine-devel mailing list