我有一个简单的测试 Cocoa 应用程序,在 OS X 10.7.5 上的 XCode 4.5 下运行。该应用程序包含一个 NSWindow。窗口的内容视图是一个自定义视图,它的drawRect方法生成一个图像(非常快)并使用CGContextDrawImage在视图中绘制它。没有缩放或任何其他操作。
我一直在使用 UpTime() 调用来计时。绘图操作最初相当快,大约 5 毫秒。但是,在实时调整大小期间,CGContextDrawImage 在返回之前大约需要一秒钟(大约 1020 毫秒)。我在一台运行 10.7.5 的慢速计算机上尝试过,一台运行 10.6.8 的快速计算机,有大小窗口,有或没有显示光标;总是相同的结果。绘图期间的实际 CPU 使用率非常低。感觉好像系统在实时调整大小期间会限制重绘,而不是其他时间。
如果我只是用纯色填充矩形,我不会得到这种效果。
知道发生了什么吗?