【问题标题】:OpenGL on Mac OSX Mojave 10.14Mac OSX Mojave 10.14 上的 OpenGL
【发布时间】:2019-04-21 06:19:05
【问题描述】:

在我最新的 MacOS Mojave (10.14) 笔记本电脑上,使用 Python3.6 我正在尝试使用 OpenGL(使用 pyOpenGL),但在尝试使用某些功能时出现错误。例如

from OpenGL.GL import *
from OpenGL.GLU import *
from OpenGL.GLUT import *

glGenVertexArrays(1)

glGenVertexArrays 抛出以下异常:

OpenGL.error.NullFunctionError: Attempt to call an undefined function glGenVertexArrays, check for bool(glGenVertexArrays) before calling

在底层,在该函数内部,有一个名为“baseplatform.py:checkExtension()”的函数接收“false”以尝试检查 OpenGL 扩展:'GL_ARB_vertex_array_object'

此代码在 Windows 机器上完美运行。

存在一些 OpenGL 功能(之前调用了一些 OpenGL 函数并且不会引发错误)。 有人知道解决方法吗?也许要安装\升级\降级?

我知道 Apple 宣布他们将在未来放弃对 OpenGL 的支持,但据我所知,它应该不会影响 10.14。

【问题讨论】:

  • 您是否尝试过其他版本不同的 macOS 机器?您确定 Apple 的 OpenGL 实现支持该功能吗?

标签: python macos opengl pyopengl macos-mojave


【解决方案1】:

您正在使用的功能在 macOS 10.14 上可用。 macOS 支持最高 4.1 版的 OpenGL。对我来说,您好像忘记在使用 OpenGL 函数之前初始化 OpenGL 上下文。

【讨论】:

  • 如何将扩展添加到上下文中?这就是我今天要做的:glfw.window_hint(glfw.VISIBLE, False) window = glfw.create_window(self.cube_width, self.cube_width, "hidden window", None, None) assert window glfw.make_context_current(window)
  • 这个函数不应该是扩展的一部分。创建上下文后,您应该可以立即使用它。如果您无法做到这一点,则意味着问题是由其他原因引起的。
猜你喜欢
  • 1970-01-01
  • 2019-03-10
  • 1970-01-01
  • 2019-03-15
  • 2019-03-02
  • 2020-05-24
  • 1970-01-01
  • 1970-01-01
  • 2021-04-22
相关资源
最近更新 更多