diff --git a/src/video/cocoa/cocoa_v.mm b/src/video/cocoa/cocoa_v.mm index c84fd1a98e..b174a3e8c8 100644 --- a/src/video/cocoa/cocoa_v.mm +++ b/src/video/cocoa/cocoa_v.mm @@ -21,6 +21,7 @@ #define Rect OTTDRect #define Point OTTDPoint #import +#import #undef Rect #undef Point @@ -486,10 +487,12 @@ void VideoDriver_Cocoa::Paint() dirtyrect.size.width = this->dirty_rect.right - this->dirty_rect.left; dirtyrect.size.height = this->dirty_rect.bottom - this->dirty_rect.top; - /* Normally drawRect will be automatically called by Mac OS X during next update cycle, - * and then blitting will occur. */ + /* Notify OS X that we have new content to show. */ [ this->cocoaview setNeedsDisplayInRect:[ this->cocoaview getVirtualRect:dirtyrect ] ]; + /* Tell the OS to get our contents to screen as soon as possible. */ + [ CATransaction flush ]; + this->dirty_rect = {}; } @@ -674,6 +677,7 @@ void VideoDriver_Cocoa::GameLoop() self.wantsLayer = YES; self.layer.magnificationFilter = kCAFilterNearest; + self.layer.opaque = YES; } return self; }