返回opengl中glSelectBuffer的值
Return value of glSelectBuffer in opengl
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由数字组成的名称堆栈中的名称事件的最小值和最大深度值从上一个点开始命中的顶点事件,后跟名称堆栈内容,最下面的名称。"
因此,它应该是名称栈的内容
相关文章:
- 数组索引的值没有增加
- 'short int'持有的值溢出,但"自动"不会溢出?
- 是默认情况下分配给char数组常量的值
- 这个指针和内存代码打印是什么?我不知道是打印垃圾还是如何打印我需要的值
- 为什么我无法更改"set<set>"循环中的值<int>
- 有效地使用std::unordered_map来插入或增加键的值
- <streamsize>C++ 中 numeric_limits::max() 的值
- 为什么不能修改对象中的值?另外,我如何改进此链表?
- 无法获取webot::PositionSensor对象中位置传感器的值
- 正在将无序映射设置为无序映射的值
- 着色器纹理值与创建纹理时写入的值不同
- 无法按cpp中的值返回矢量
- 指针没有更新它在void函数内部指向的值
- 不能将 "void *" 类型的值分配给类型 "TCHAR" 的实体
- 获取从C++中同一类中的构造函数调用的方法返回的值
- 为什么在我的函数类型后使用引用运算符 (&) 允许我修改它返回的值?
- 如何在c++中获取要更新的值
- C++RapidXml-使用first_node()遍历以修改XML文件中节点的值
- ";结果类型必须是可从输入范围的值类型""构造的;创建std::vector时
- <Windows>为什么 std::thread::native_handle 返回类型为"long long unsigned int"的值,而不是 void*(又名 HANDLE)?