Cocoa 如何判断捕获的窗口是否在视网膜显示器中显示为视网膜?

Cocoa 如何判断捕获的窗口是否在视网膜显示器中显示为视网膜?,cocoa,retina-display,Cocoa,Retina Display,如果我用类似于 CGImageRef imageRef = CGWindowListCreateImage(CGRectNull, kCGWindowListOptionIncludingWindow, windowID, kCGWindowImageBoundsIgnoreFraming); kCGWindowBounds = { Height = 150; Width = 490; X = 395; Y = 174; }; 说窗户的边界有点像 CGImag

如果我用类似于

CGImageRef imageRef = CGWindowListCreateImage(CGRectNull, kCGWindowListOptionIncludingWindow, windowID, kCGWindowImageBoundsIgnoreFraming);
kCGWindowBounds = {
    Height = 150;
    Width = 490;
    X = 395;
    Y = 174;
};
说窗户的边界有点像

CGImageRef imageRef = CGWindowListCreateImage(CGRectNull, kCGWindowListOptionIncludingWindow, windowID, kCGWindowImageBoundsIgnoreFraming);
kCGWindowBounds = {
    Height = 150;
    Width = 490;
    X = 395;
    Y = 174;
};
如果窗口位于视网膜显示器上,kCGWindowBounds高度是否报告为300或150,但最终捕获的图像是否为300


提前感谢,其中一个没有at-retina display的东西我不确定,我认为对过度开发人员也会有帮助…

好的,通过使用Quartz Debug启用hidp模式找到答案,并将一个窗口拖到启用hidp的屏幕上

答案是,无论视网膜与否,窗口边界的高度/宽度都是相同的。但是,如果在视网膜屏幕上显示,拍摄的图像将大2倍


我希望是这样,但不想做任何假设。

边界的单位是点,而不是像素,因此在非视网膜和视网膜上是相同的。但磁盘上的图像大小始终以像素为单位显示