我正在开发一个用户可以在屏幕上绘图的应用程序。我从Apple提供的GLPaint开始。
我想检测用户是否为屏幕的特定区域着色,并且我想每1/15 秒检测一次(或类似的东西,非常快)。
我想创建一个位图图形上下文并将其传递给CGBitmapContextCreate
然后将我的视图绘制到该上下文中并循环遍历所有像素。
我正在寻找更有效的东西......有什么帮助吗?
更新
我尝试使用 glReadPixels() 但它非常慢......也许我错过了一些东西......我试图读取一个 100x100 的区域,但这个方法需要大约 1 秒才能完成。这是我的代码
- (void)isGameFinished
{
float x = 0;
float y = 0;
float w = 100;
float h = 100;
GLubyte* pixelColors = malloc(w * h * sizeof(GLubyte) * 3);
glReadPixels(x,y, w, h, GL_RGB, GL_UNSIGNED_BYTE, &pixelColors[0]);
for(int i=0;i<w*h;i+=3)
{
ccColor3B color=ccc3(pixelColors[i],pixelColors[i+1],pixelColors[i+2]);
NSLog(@"index: %d r:%c g:%c b:%c",i,color.r,color.g,color.b);
}
free(pixelColors);
}