在我的 iPad 应用程序中,我渲染到离屏位图,然后将位图绘制到屏幕上。(这是因为我想重用现有的位图渲染代码。)在 iPad 2 上,这很有魅力,但在配备 Retina 显示屏的新 iPad 上,绘制位图真的很慢,尽管它的分辨率仍然是相同的。
为了绘制位图,我们使用常规的 Quartz 2D 函数:使用由32 位 RGBA 格式CGImageCreate
创建的数据提供程序,使用. 在显示位图的 中,我们使用将其绘制到由返回的上下文中。CGDataProviderCreateWithData
kCGImageAlphaNoneSkipLast
UIView
drawRect:
CGContextDrawImage
UIGraphicsGetCurrentContext
请注意,我什至没有尝试以双倍分辨率绘制:现在我可以使用与 iPad 2 上相同的分辨率。看起来 CoreGraphics 在内部将像素加倍,然后将其发送到 GPU ,即使CGImage
我正在制作的应该可以直接传递给 GPU。有任何想法吗?