summaryrefslogtreecommitdiffstats
path: root/video/out/cocoa
diff options
context:
space:
mode:
authorStefano Pigozzi <stefano.pigozzi@gmail.com>2014-10-18 18:30:22 +0200
committerStefano Pigozzi <stefano.pigozzi@gmail.com>2014-10-18 18:30:22 +0200
commitfa904150bfb7467b66e7fc0a7c709e61cb3dd9fc (patch)
tree4178261c60fb754197df47264784305f422136cc /video/out/cocoa
parent421bce00776f00cc0185ef65b82a6a4c8bcfd366 (diff)
downloadmpv-fa904150bfb7467b66e7fc0a7c709e61cb3dd9fc.tar.bz2
mpv-fa904150bfb7467b66e7fc0a7c709e61cb3dd9fc.tar.xz
cocoa: reintroduce async resize
After removing synchronous libdispatch calls, this looks like it doesn't deadlock anymore. I also experimented with pthread_mutex_trylock liek wm4 suggested, but it leads to some annoying black flickering. I will fallback to that only if some new deadlocks are discovered.
Diffstat (limited to 'video/out/cocoa')
-rw-r--r--video/out/cocoa/mpvadapter.h3
-rw-r--r--video/out/cocoa/video_view.m6
2 files changed, 7 insertions, 2 deletions
diff --git a/video/out/cocoa/mpvadapter.h b/video/out/cocoa/mpvadapter.h
index 30e2d572d8..8829abd096 100644
--- a/video/out/cocoa/mpvadapter.h
+++ b/video/out/cocoa/mpvadapter.h
@@ -19,8 +19,6 @@
#include "video/out/vo.h"
@interface MpvCocoaAdapter : NSObject
-- (void)lock;
-- (void)unlock;
- (void)setNeedsResize;
- (void)signalMouseMovement:(NSPoint)point;
- (void)putKeyEvent:(NSEvent*)event;
@@ -29,6 +27,7 @@
- (void)putCommand:(char*)cmd;
- (void)handleFilesArray:(NSArray *)files;
- (void)didChangeWindowedScreenProfile:(NSScreen *)screen;
+- (void)performAsyncResize:(NSSize)size;
- (BOOL)isInFullScreenMode;
- (BOOL)keyboardEnabled;
diff --git a/video/out/cocoa/video_view.m b/video/out/cocoa/video_view.m
index 07db876534..786c6ef4da 100644
--- a/video/out/cocoa/video_view.m
+++ b/video/out/cocoa/video_view.m
@@ -40,4 +40,10 @@
{
return [self convertRectToBacking:[self frame]];
}
+
+
+- (void)drawRect:(NSRect)rect
+{
+ [self.adapter performAsyncResize:[self frameInPixels].size];
+}
@end