Возвращаемое значение glSelectBuffer в opengl - PullRequest
0 голосов
/ 18 апреля 2011
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].

Полный код (это программа рисования) см. Здесь .

1 Ответ

1 голос
/ 18 апреля 2011

С http://www.opengl.org/sdk/docs/man/xhtml/glSelectBuffer.xml

"Запись попадания состоит из количества имен в стеке имен на момент события, за которым следуют минимальные и максимальные значения глубины всех вершин, которые ударилиначиная с предыдущего события, за которым следует содержимое стека имен, сначала имя снизу. "

Следовательно, это должно быть содержимое стека имен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...