pyopengl 在 glGenTextures 中出错

1 投票
2 回答
661 浏览
提问于 2025-04-16 14:29

我遇到了这个问题:

Python 2.6.5 (r265:79063, Apr 16 2010, 13:09:56) 
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from OpenGL.GL import *
>>> glGenTextures
<OpenGL.lazywrapper.glGenTextures object at 0x9d3b18c>
>>> glGenTextures(1)
Segmentation fault

我在使用Ubuntu 10.04 LTS系统。

这可能是什么问题呢?我可以在哪里找到更多信息?

2 个回答

0

在调用 gl.glGenTextures 之前,需要先创建一个 OpenGL 上下文。

示例代码:

import OpenGL.GLUT as glut
import OpenGL.GL as gl

# Init glut
glut.glutInit(())
glut.glutInitDisplayMode(
    glut.GLUT_RGBA | glut.GLUT_DOUBLE | glut.GLUT_ALPHA | glut.GLUT_DEPTH | glut.GLUT_MULTISAMPLE
)
glut.glutInitWindowSize(40, 40)
glut.glutInitWindowPosition(0, 0)
window = glut.glutCreateWindow("title_of_the_window")

# Generate Texture Names
gl.glGenTextures(1)
3

在调用任何OpenGL函数之前,你需要先激活一个上下文。此外,glGenTextures这个函数需要两个参数,所以pyopengl并不是直接调用它。你需要查看pyopengl的源代码,才能准确了解哪里出问题了,但首先创建一个上下文肯定是解决问题的一部分。

撰写回答