我正在爲跨平臺程序編寫iOS後端,該程序的平臺無關引擎按照RGBA順序將其所有圖形寫入32位像素緩衝區。不使用字節字節。圖形總是不透明的,所以我不需要阿爾法混合。在沒有OpenGL的情況下在iOS上進行硬件加速縮放
在我的drawRect
方法中,將這些像素緩衝區繪製到我的CGContextRef
的最高效選項是什麼?像素緩衝區通常只有320x240像素,需要縮放以完全填充我的視圖的尺寸,例如非Retina iPad上的1024x768和Retina iPad上的2048x1536。這是一大堆工作,所以最好使用GPU來完成。但是,如何強制iOS使用GPU繪製和縮放而不使用OpenGL?
我試過使用CGContextDrawImage()
,但這確實很慢,可能是因爲一切都是使用CPU完成的。
我也有看看CIImage
的API,因爲這些顯然GPU優化,但問題是,CIImage
對象是不可改變的,所以我不得不爲每一幀我需要提請不斷創造新的CIImage
目的將可能會導致性能下降。
我當然可以使用OpenGL,但我想獲得一些關於是否有更簡單的解決方案來獲得我想要的東西的反饋。
感謝您的任何想法!
我覺得下面的鏈接會告訴你一些提示。 http://stackoverflow.com/questions/6520320/images-vs-core-graphics和https://robots.thoughtbot.com/designing-for-ios-graphics-performance和https://lobste.rs/s/ ckm4uw/a_performance-minded_take_on_ios_design /評論/ itdkfh。 – beshio