在我的iPad應用程序中,我渲染到離屏位圖,然後將位圖繪製到屏幕上。 (這是因爲我想重新使用現有的位圖渲染代碼。)在iPad 2上,這很像一個魅力,但在帶有Retina顯示屏的新iPad上,繪製位圖非常慢,即使其分辨率仍然是相同。要繪製位圖,我們使用常規的Quartz 2D函數:CGImageCreate
與由CGDataProviderCreateWithData
創建的數據提供程序,32位RGBA格式和kCGImageAlphaNoneSkipLast
。在顯示位圖的UIView
中,在drawRect:
中,我們使用CGContextDrawImage
將其繪製到由UIGraphicsGetCurrentContext
返回的上下文中。在Retina iPad上使用CoreGraphics繪製圖像很慢
請注意,我甚至沒有試圖以雙倍分辨率繪製:現在我很好,與我在iPad 2上使用相同的分辨率。它看起來像CoreGraphics內部加倍像素,然後發送即使我製作的CGImage
應該可以直接傳遞給GPU。有任何想法嗎?
感謝您的信息,這可能將有很大的幫助。該視圖是動畫的,因此經常重繪。我認爲這是使用view.layer。內容可能比將新圖像分配給UIImageView更有效,對吧? –
試過了,view.layer.contents方法出色,再次感謝! –
AFAIK這兩種方法在性能上幾乎相同,但一如既往:如果重要,試試看看。 –