Reputation: 4159
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) handleTap:(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]);'
Upvotes: 0
Views: 941
Reputation: 100662
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;
Upvotes: 1