在iPhone应用程序中,直接在屏幕上绘制单个像素的最快方法是什么?

在iPhone应用程序中,直接在屏幕上绘制单个像素的最快方法是什么?,iphone,cocoa-touch,opengl-es,Iphone,Cocoa Touch,Opengl Es,我正在寻找一种最快的方法,在一个性能非常好的iPhone应用程序中直接将数千个单独计算的像素绘制到屏幕上。为什么不使用OpenGL视图?我将创建一个视图大小的BMP,将其添加到视图中并绘制到BMP中。Cocoa除了使用一条长度为1像素的线来伪造一个视图外,没有任何方法可以将单个像素绘制到视图中。最可能使用的是OpenGL,例如: glBegin(GL_POINTS); glColor3f(...); glVertex3f(...); ... glEnd(); 更快的方法可能是使用指定点。在我使

我正在寻找一种最快的方法,在一个性能非常好的iPhone应用程序中直接将数千个单独计算的像素绘制到屏幕上。

为什么不使用OpenGL视图?

我将创建一个视图大小的BMP,将其添加到视图中并绘制到BMP中。Cocoa除了使用一条长度为1像素的线来伪造一个视图外,没有任何方法可以将单个像素绘制到视图中。

最可能使用的是OpenGL,例如:

glBegin(GL_POINTS);
glColor3f(...);
glVertex3f(...);
...
glEnd();

更快的方法可能是使用指定点。

在我使用过的所有图形框架中,这样做的方式是将像素写入内存块(例如,以ARGB或RGBA格式),然后将整个内存块推送到图形子系统。没有“绘制一个点”API可能是快速的,如果你想快速绘制数千像素,你需要推送图像/纹理/位图/你想调用的任何东西,而不是一次推送一个点。

iPhone的OpenGL ES中没有实现立即模式(glBegin/glEnd),但是顶点数组是。