Archived

This topic is now archived and is closed to further replies.

beebop

Picking

Recommended Posts

I''ve got a problem with the openGl picking. Here my code called after a mouse event: // void myView:icking(int mouseX, int mouseY) { GLint viewport[4] ; GLuint selectBuf[32] ; GLint hits ; glGetIntegerv (GL_VIEWPORT, viewport); glSelectBuffer (512, selectBuf); (void) glRenderMode (GL_SELECT); glInitNames(); glPushName(0) ; glMatrixMode(GL_PROJECTION) ; glPushMatrix() ; glLoadIdentity() ; gluPickMatrix(mouseX, viewport[3] - mouseY, 5, 5, viewport); gluPerspective( 45.0, (GLfloat)_viewW/(GLfloat)_viewH, _camera.getDistance()*0.1f, _camera.getDistance()*20.0f ); glMatrixMode(GL_MODELVIEW); glF1CRDraw(GL_SELECT); hits = glRenderMode(GL_RENDER); processHits(hits, selectBuf); glMatrixMode(GL_PROJECTION) ; glPopMatrix(); glMatrixMode(GL_MODELVIEW); } // In the drawing function, I put my glPushName or glLoadName (not between glBegin or glEnd). When I treat number of hits, I always obtain 0 !! What could be the problem ?? Camera ? .... Thanks a lot

Share this post


Link to post
Share on other sites
When I do a glGetError(); after glLoadName or
glPushName, I''ve got:
GL_INVALID_OPERATION is generated if glLoadName
is called between a call to glBegin and the corresponding call to glEnd.
I don''t understand ?!

Share this post


Link to post
Share on other sites