是什么导致CGDisplayCreateImageForRect捕获或忽略游标?

时间:2012-09-03 17:15:48

标签: objective-c cocoa screenshot nscursor

我正在使用

捕获osx上的屏幕
capturedImage = CGDisplayCreateImageForRect(displayID, CGRectMake(point.x - 4, point.y - 4, 8, 8));

返回光标下屏幕的部分。稍后我将设置一个自定义图像光标:

[[[NSCursor alloc] initWithImage:img hotSpot:NSMakePoint(4, 4)] set];

设置光标并尝试再次捕获屏幕后,会出现问题。光标包含在帧缓冲区中。这使得捕获的图像与我作为光标放置的图像相同。我试图隐藏光标,然后捕捉屏幕,然后显示回来,但它不起作用,它也使光标闪烁。

甚至更奇怪的是,在特定的笔记本电脑上没有捕获光标图像,而是在运行相同操作系统(Mountain Lion,Snow Leopard)的其他笔记本电脑上捕获光标图像。

什么可以导致光标包含在帧缓冲区中?有没有办法保证没有自定义光标的屏幕截图?

由于

1 个答案:

答案 0 :(得分:0)

它取决于谁渲染光标以及它是纯硬件加速还是软件渲染。这不同于硬件和硬件之间以及os之间...做markk建议:将其设置为默认值