gpt4 book ai didi

macos - 更改默认 OpenGL 上下文配置文件版本

转载 作者:行者123 更新时间:2023-12-03 17:11:01 25 4
gpt4 key购买 nike

要使用配置文件版本 3.2 创建 OpenGL 上下文,我需要在创建上下文时将属性添加到像素格式:

...,
NSOpenGLPFAOpenGLProfile, (NSOpenGLPixelFormatAttribute) NSOpenGLProfileVersion3_2Core,
...,

有没有办法(环境变量、全局变量、创建 NSOpenGLPixelFormat 之前调用的函数,...)来更改默认的 OpenGL 配置文件版本(当未指定此类属性时) 。 OS X 10.10 上默认为旧版本。我正在尝试将依赖较新 OpenGL 功能的代码与框架 (ROOT) 集成,该框架设置 OpenGL 上下文并且无法更改参数。

有没有办法在设置 OpenGL 上下文后更改其像素格式属性?

最佳答案

与 OpenGL 上下文关联的像素格式(此处正确的术语是“默认帧缓冲区”)始终是不可变的。 OpenGL 本身并不控制或规定这一点,实际上是窗口系统 API(例如 WGL、GLX、EGL、NSOpenGL)施加了此限制。

我认为解决这个特定问题的唯一方法是,如果您创建自己的屏幕外(核心 3.2)上下文,该上下文与 ROOT 创建的旧(2.1)上下文共享资源。如果 OS X 实际上允许您执行此上下文共享(这是不确定的,因为这两个上下文可能算作不同的渲染器),您可以在核心上下文中绘制渲染缓冲区对象,然后使用 glBlitFramebuffer (...) 将该渲染缓冲区传输到旧上下文中。

请注意,帧缓冲区对象不是上下文可共享资源。在此示例中,您最终共享的是实际的图像附件(渲染缓冲区或纹理),这意味着您必须在两个上下文中维护具有相同附件的单独 FBO。

关于macos - 更改默认 OpenGL 上下文配置文件版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28582759/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com