Original Post
I''ve got a problem with the openGl picking.
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 ?!
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