- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在为 Linux 手动创建 OpenGL 4.2 上下文。
我创建了一个上下文属性数组,如下所示:
int context_attribs[] = {
GLX_CONTEXT_MAJOR_VERSION_ARB, 4,
GLX_CONTEXT_MINOR_VERSION_ARB, 2,
GLX_CONTEXT_FLAGS_ARB, GLX_CONTEXT_DEBUG_BIT_ARB,
GLX_CONTEXT_PROFILE_MASK_ARB, GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB,
None
};
然后我将它传递给 glXCreateContextAttribsARB () 。上下文已创建好,但我有几个关于属性标志的问题。例如,对于基于文档的 GLX_CONTEXT_FLAGS_ARB,我有 2 个选项:
GLX_CONTEXT_DEBUG_BIT_ARB 0x0001
GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x0002
如果我选择第一个,是否意味着 OpenGL 在 Debug模式下运行?如果是,那么如果我将此标志设置为第二个选项,是否意味着我将无法使用固定功能?如果是,那么如何在兼容性配置文件模式下设置“非调试”上下文?
最佳答案
所有标志都是正交的。它们是位标志;您可以单独设置它们,也可以根本不设置。
GLX_CONTEXT_FLAGS_ARB, GLX_CONTEXT_DEBUG_BIT_ARB,
这意味着创建调试上下文。
GLX_CONTEXT_FLAGS_ARB, GLX_CONTEXT_DEBUG_BIT_ARB | GLX_CONTEXT_ROBUST_ACCESS_BIT_ARB,
这意味着创建一个也使用 robust access 的调试上下文(我使用这个例子而不是你的前向兼容性例子,因为你不应该永远使用前向兼容性)。它们是位标志;你按位或他们在一起。
GLX_CONTEXT_FLAGS_ARB, 0,
这意味着没有标志。所以它不会是调试上下文,它不会使用稳健的访问等。这可能就是您正在寻找的。
此外,您还可以选择完全不传递标志。
关于c++ - 了解 glXCreateContextAttribsARB 属性设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15806213/
我正在浏览 Learning Modern 3D Graphics Programming ,我正在尝试运行“你好,世界!”三角计划。但是,我收到此错误: jason@ubuntu:~/Desktop
我正在为 Linux 手动创建 OpenGL 4.2 上下文。 我创建了一个上下文属性数组,如下所示: int context_attribs[] = { GLX_CONTEX
我需要在linux系统上动态加载openGL函数。问题是,当我这样做时,glXCreateContextAttribsARB 在尝试创建 gl 上下文时失败,并且程序回退到使用 OGL 1.4。它应该
奇怪的是,尽管我有 GLX 1.4,但我的存储库中似乎没有 glXCreateContextAttribsARB。 请问有什么合理的解释吗?这不可能是一个普遍的问题。 glxinfo name of
我是一名优秀的程序员,十分优秀!