GLint selBufferSize = 512;
GLuint selBuffer[512];
glSelectBuffer(selBufferSize,selBuffer);
glPushAttrib(GL_VIEWPORT_BIT);
glPushMatrix();
glViewport(x-2,y-2,4,4);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(x-2,x+2,y-2,y+2,0.0f,1.0f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glRenderMode(GL_SELECT);
glInitNames();
glPushName(0);
map<int,SelLine>::iterator line_iterator;
line_iterator = lines.begin();
for (;line_iterator != lines.end();line_iterator++)
{
(*line_iterator).second.Name();
}
glFlush();
GLint hit = glRenderMode(GL_RENDER);
printf("hit=%d/n",hit);
GLuint names,*ptr;
ptr = (GLuint*)selBuffer;
for (int i = 0 ; i < hit;i++)
{
names = *ptr;
printf(" number of names for hit = %d/n",names);ptr++;
printf(" z1 is %g;",(float)*ptr/0x7fffffff);ptr++;
printf(" z2 is%g/n",(float)*ptr/0x7fffffff);ptr++;
printf(" the name is ");
for(int j = 0;j < names;j++)
{
id = *ptr;
printf(" %d ",*ptr);ptr++;
}
printf("/n");
}
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
printf("glWindowWidth=%d glWindowHeight=%d magnification=%f",glWindowWidth,glWindowHeight,magnification);
glOrtho(0,glWindowWidth/magnification,0,glWindowHeight/magnification,0.0f,1.0f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glPopMatrix();
//glViewport(0,glWindowWidth,0,glWindowHeight);
glPopAttrib();
return hit>0;
return true;