返回opengl中glSelectBuffer的值

Return value of glSelectBuffer in opengl

本文关键字:的值 glSelectBuffer opengl 返回      更新时间:2023-10-16
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]是什么意思。

完整的代码(这是一个绘图程序)见这里

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

" hit record由数字组成的名称堆栈中的名称事件的最小值和最大深度值从上一个点开始命中的顶点事件,后跟名称堆栈内容,最下面的名称。"

因此,它应该是名称栈的内容