summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefano Pigozzi <stefano.pigozzi@gmail.com>2016-06-11 11:51:30 +0200
committerStefano Pigozzi <stefano.pigozzi@gmail.com>2016-06-11 11:58:07 +0200
commitde4c74e5a4a996e8ff431c8f33a32c4b580be203 (patch)
tree1397d8d0e54e7543a933b5ccc2d6b27910a5461e
parent9cc55070791506113126eb303e4647348813b119 (diff)
downloadmpv-de4c74e5a4a996e8ff431c8f33a32c4b580be203.tar.bz2
mpv-de4c74e5a4a996e8ff431c8f33a32c4b580be203.tar.xz
cocoa: use displaylink without manually tracking the display id
Maybe it partially helps with #2392 (on dual display setups). Either way, it makes the code simpler.
-rw-r--r--video/out/cocoa_common.m11
1 files changed, 6 insertions, 5 deletions
diff --git a/video/out/cocoa_common.m b/video/out/cocoa_common.m
index 30b832da75..e1d1e18d57 100644
--- a/video/out/cocoa_common.m
+++ b/video/out/cocoa_common.m
@@ -370,13 +370,14 @@ static void vo_cocoa_update_screens_pointers(struct vo *vo)
static void vo_cocoa_update_screen_fps(struct vo *vo)
{
struct vo_cocoa_state *s = vo->cocoa;
- NSScreen *screen = vo->opts->fullscreen ? s->fs_screen : s->current_screen;
- NSDictionary* sinfo = [screen deviceDescription];
- NSNumber* sid = [sinfo objectForKey:@"NSScreenNumber"];
- CGDirectDisplayID did = [sid longValue];
CVDisplayLinkRef link;
- CVDisplayLinkCreateWithCGDisplay(did, &link);
+ CVDisplayLinkCreateWithActiveCGDisplays(&link);
+ CVDisplayLinkStart(link);
+
+ CVDisplayLinkSetCurrentCGDisplayFromOpenGLContext(
+ link, s->cgl_ctx, CGLGetPixelFormat(s->cgl_ctx));
+
s->screen_fps = CVDisplayLinkGetActualOutputVideoRefreshPeriod(link);
if (s->screen_fps == 0) {