static GLuint selectBuff[BUFFER_LENGTH];
glSelectBuffer(BUFFER_LENGTH, selectBuff);
..
//Draw something..
..
// Collect the hits
hits = glRenderMode(GL_RENDER);
..
..
if(hits > 0){ //something's been selected
fprintf(stderr,"something has been selected");
unsigned int choiche;
// fi there's more than one figure (or control point) selected, take the top one
if (hits > 1)
choiche = selectBuff[(hits*4)-1];
else
choiche = selectBuff[3];
cpsel = false;
Я в основном хочу знать структуру selectBuff.Что автор имеет в виду, кодируя selectBuff[3]
и selectBuff[(hits*4)-1]
?
Официальный документ говорит, что буфер возвращает значения из стека имен.Но это на самом деле не говорит мне, что автор имел в виду, делая selectBuff[3]
.
Полный код (это программа рисования) см. Здесь .