diff --git a/video/out/cocoa-cb/window.swift b/video/out/cocoa-cb/window.swift index 90438591ab..55c0fa1688 100644 --- a/video/out/cocoa-cb/window.swift +++ b/video/out/cocoa-cb/window.swift @@ -474,6 +474,7 @@ class Window: NSWindow, NSWindowDelegate { func windowDidChangeBackingProperties(_ notification: Notification) { cocoaCB.layer?.contentsScale = backingScaleFactor + cocoaCB.flagEvents(VO_EVENT_WIN_STATE) } func windowWillStartLiveResize(_ notification: Notification) { diff --git a/video/out/cocoa_cb_common.swift b/video/out/cocoa_cb_common.swift index 6e016812ab..b677fd6740 100644 --- a/video/out/cocoa_cb_common.swift +++ b/video/out/cocoa_cb_common.swift @@ -485,6 +485,12 @@ class CocoaCB: NSObject { return VO_TRUE } return VO_FALSE + case VOCTRL_GET_HIDPI_SCALE: + if let scaleFactor = data?.assumingMemoryBound(to: CDouble.self) { + scaleFactor.pointee = Double(ccb.window?.backingScaleFactor ?? 1.0) + return VO_TRUE; + } + return VO_FALSE case VOCTRL_RESTORE_SCREENSAVER: ccb.enableDisplaySleep() return VO_TRUE