From: Tim Clem tclem@codeweavers.com
Doing so results in a Metal assertion on newer OSes. --- dlls/winemac.drv/cocoa_opengl.m | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/dlls/winemac.drv/cocoa_opengl.m b/dlls/winemac.drv/cocoa_opengl.m index ea00f95ff68..8be73b18afb 100644 --- a/dlls/winemac.drv/cocoa_opengl.m +++ b/dlls/winemac.drv/cocoa_opengl.m @@ -94,6 +94,7 @@ - (void) resetSurfaceIfBackingSizeChanged } }
+ /* The size must not have a zero dimension. */ - (void) wine_updateBackingSize:(const CGSize*)size { GLint enabled; @@ -234,7 +235,8 @@ void macdrv_make_context_current(macdrv_opengl_context c, macdrv_view v, CGRect { if (view == [context view] || view == [context latentView]) { - [context wine_updateBackingSize:&r.size]; + if (!CGRectIsEmpty(r)) + [context wine_updateBackingSize:&r.size]; macdrv_update_opengl_context(c); } else @@ -248,7 +250,8 @@ void macdrv_make_context_current(macdrv_opengl_context c, macdrv_view v, CGRect context.needsReattach = FALSE; if (context.view) [context setView:[[context class] dummyView]]; - [context wine_updateBackingSize:&r.size]; + if (!CGRectIsEmpty(r)) + [context wine_updateBackingSize:&r.size]; [context setView:view]; [context setLatentView:nil]; [context resetSurfaceIfBackingSizeChanged]; @@ -257,7 +260,8 @@ void macdrv_make_context_current(macdrv_opengl_context c, macdrv_view v, CGRect { if ([context view]) [context clearDrawableLeavingSurfaceOnScreen]; - [context wine_updateBackingSize:&r.size]; + if (!CGRectIsEmpty(r)) + [context wine_updateBackingSize:&r.size]; [context setLatentView:view]; } }