ubuntu - 是否仍然可以访问已弃用/删除的 OpenGL 函数?

标签 ubuntu opengl ubuntu-14.04 glu

我运行 Ubuntu 14.04,当我要求我的系统运行 OpenGL 时,我得到了这个:

:~$ glxinfo | grep "version"
server glx version string: 1.4
client glx version string: 1.4
GLX version: 1.4
OpenGL core profile version string: 3.3 (Core Profile) Mesa 11.2.0
OpenGL core profile shading language version string: 3.30
OpenGL version string: 3.0 Mesa 11.2.0
OpenGL shading language version string: 1.30

所以OpenGL核心配置文件版本是3.3,OpenGL版本是3.0?!?这是否意味着我正在运行 OpenGL 3.3 或 3.0?

我是当前使用 GLU 这已被长期弃用(编译和运行良好)。使用上面检查的 OpenGL 版本,这是正常的,我使用 GLU 没有明显问题 ?

最佳答案

这个Wiki OpenGL Context为您提供有关上下文类型的信息。
您会看到有些功能“已弃用”(即不推荐,但可用)和“已删除”(即不可用)。
简而言之:有三种类型的上下文:

  • 旧的、固定的管道。版本 <= 2.1
  • 核。版本 >= 3.2,带有 VAO、VBO 和着色器。所有旧功能都被删除。
  • 带有“兼容性”标志的核心。您拥有所有其他两种类型。

  • 还有第四种类型:“前向兼容性”。这意味着无论您选择什么版本,所有已弃用和删除的功能都不可用。

    当您请求旧上下文时,API 实现可以免费为您提供任何可用版本。你可能会得到 4.5。但它会有兼容性标志,所以你会得到你要求的旧上下文。或者可能会得到 2.1、3.0 或...

    您可以使用 GLX 向 Linux 询问您喜欢的上下文类型。 .但是如果你使用 Window toolkit 会容易很多。

    Mesa将尝试使用其自己的 DRI 驱动程序(Gallium、RadeonFeature 等)或专有软件为您提供硬件加速。如果需要,可以强制使用软件渲染而不是硬件加速渲染。

    关于ubuntu - 是否仍然可以访问已弃用/删除的 OpenGL 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46647361/

    相关文章:

    mysql - 尝试在 Ubuntu Server Apache 上下载主题时,某些虚拟主机上的 WordPress 'could not create directory' 问题

    python - 在 Ubuntu 18 中安装 Auto Sklearn

    linux - 如何查看linux系统是否使用了较大的磁盘空间?

    ubuntu - 在 Ubuntu 14.04 上安装 Memcached::libmemcached 时出错

    ldap - ldapsearch使用用户名和密码

    MongoDB 未授权 : replSetGetConfig

    ubuntu - 无法在 Ubuntu 12.04 的 USB 串行端口上设置波特率

    c++ - 使用 GLM 正确旋转 Open GL 相机

    c++ - ZZ坐标不匹配

    C++、过剩、OpenGL "resize window"事件?