OpenGL选择缓冲区-使用指向对象的指针而不是Unsigned Int
OpenGL Selection Buffer - Use A Pointer to the Object Instead of an Unsigned Int?
我试图使用glSelectBuffer(GLsizei大小,GLuint * buffer)方法以稍微不同的方式选择对象,然后我相信在c++中支持OpenGL 3.1。
我想在选择缓冲区中存储指向图形对象本身的指针,而不是GLuint*。这将允许我轻松地发出基于选择的信号,其中包含指向该对象的指针。当GLuint的大小和指向我的对象(x86)的指针的大小对齐时,它似乎会正常工作,但当它们不对齐时,它似乎会中断(x64.)我可以用另一个步骤完成这一点,但如果OpenGL将支持这种与其他数据类型的选择机制,我宁愿不必对齐选择ID ->对象指针。
是什么我试图做可能使用OpenGL的选择机制?(最好在OpenGL 3.1中,但未来的版本也适用。)
我的问题有意义吗?我的解释遗漏了什么吗?到目前为止,我已经尝试让选择缓冲区接受长整数而不是整型,并且我收到了一个类型检查错误(正如预期的那样)。此外,我没有看到glSelectBuffer()的任何重载方法,这使我认为这种方法是不可能的。我查看了gl.h以查看类型并更多地了解OpenGL的类型。我也看了类似的问题Stack Overflow -我很抱歉,如果同样的问题已经问了,我错过了它。
最好在OpenGL 3.1中,但未来的版本也适用
选择模式已从OpenGL-3核心和更高版本中删除。OpenGL是用来绘图的,选择模式总是会退回到软件模式,也就是说,它不是HW加速的。
我的建议是:不要用它
相关文章:
- int数据类型的指针指向的是什么,如果是一个类的私有数据成员,我们创建了该类的两个对象?
- 指针问题:从不兼容的类型"int"分配给"int *"
- 运行时错误:引用绑定到类型为"int"的空指针
- C++:将值 int(例如:0x00AAFAD8)转换为指针(指针本身也是 0x00AAFAD8 值)
- 如何将 int 指针转换为浮点指针
- 使用 int 指针的浮点数的位表示形式
- C++:使用没有位移位的指针将无符号字符转换为无符号 int
- 从类指针到 int 的转换无效
- f 是指向函数的指针,该函数采用 int,并返回指向不带任何内容并返回双精度的函数的指针
- 如何使用静态多态性在 int 和指针类型之间进行转换?
- 为什么当我尝试将char输入到int时,文件指针会卡住
- 类型别名允许分配任意指针,尽管 int* 是必需的
- 为什么 fdump-class-hierarchy 为虚函数提供了两个指针 int vtable
- 双指针 (int**) 和双括号,用于从 2D 数组中获取值
- (C++)通过指针递增,或者:为什么这不起作用?指针->int = 指针->int+1;
- (c++)将int转换为char指针(int是int形式的字符)
- 如何使用指针到指针 (int **) 分配一维数组
- 删除地图中的指针<int,A*>
- 如何将字符串内存地址(如 "7fefe05a8")存储在 C++ 中的指针/int 变量中,以便我可以对其进行位屏蔽?
- 指向包含向量问题的实例类的指针<int>