我正在为跨平台程序编写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