开发者

Iphone glReadPixels problem

I am drawing a PIE char in Iphone, with OPENGL ES. Now I need to check the color of the pie where user clicked. When I click any pie, it sometimes returns correct values, and sometimes not correct, and sometimes just returning 0,0,0.

'(void) ha开发者_运维问答ndleTap:(UITapGestureRecognizer *) recognizer{

CGPoint lPoint = [recognizer locationOfTouch:0 inView:mGLView];

Byte aPixel[4]; glPixelStorei(GL_PACK_ALIGNMENT, 1); glReadPixels( lPoint.x, lPoint.y, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, &aPixel[0] );

NSLog(@"%i",glGetError()); NSLog(@"POINT X = %f Y = %f %d %d %d",lPoint.x, lPoint.y, aPixel[0],aPixel[1],aPixel[2]);'


In OpenGL, (0, 0) is the bottom left pixel. In iOS it's the top left pixel. So you're reading from the wrong location. I'd imagine you want to add, after the call to locationOfTouch:inView:

lPoint.y = mGLView.bounds.height - lPoint.y;
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜