【发布时间】:2012-05-02 08:22:14
【问题描述】:
在我的 iPad 应用程序中,我渲染到屏幕外位图,然后将位图绘制到屏幕上。 (这是因为我想重用现有的位图渲染代码。)在 iPad 2 上,这很有魅力,但在配备 Retina 显示屏的新 iPad 上,绘制位图真的很慢,尽管它的分辨率仍然是一样。
为了绘制位图,我们使用常规 Quartz 2D 函数:CGImageCreate 和由 CGDataProviderCreateWithData 创建的数据提供程序,32 位 RGBA 格式和 kCGImageAlphaNoneSkipLast。在显示位图的UIView 中,在drawRect: 中,我们使用CGContextDrawImage 将其绘制到UIGraphicsGetCurrentContext 返回的上下文中。
请注意,我什至没有尝试以双倍分辨率绘图:现在我可以使用与 iPad 2 上相同的分辨率。看起来 CoreGraphics 在内部将像素加倍,然后发送到GPU,即使我正在制作的CGImage 应该可以直接传递给GPU。有什么想法吗?
【问题讨论】:
标签: performance ipad core-graphics retina-display