OpenGL Pyglet“错误:全局名称'纹理'未定义”

时间:2013-10-14 11:35:13

标签: opengl textures pyglet

错误在第5行:glBindTexture(texture.target,texture.id)

1. import pyglet
2. from pyglet.gl import *
3. class CustomGroup(pyglet.graphics.Group):
4.    def set_state(self):
5.        glEnable(texture.target)
6.        glBindTexture(texture.target, texture.id)
7.    def unset_state(self):
8.        glDisable(texture.target)

NameError:未定义全局名称'texture' 但是我在第2行输入了它。 完整代码为here

有任何帮助吗? 我使用python 2.7.3与pyglet和ubuntu 12.04

1 个答案:

答案 0 :(得分:0)

pyglet.gl模块未定义任何变量texture,因此第2行中的import语句不提供类似的内容。你甚至期望它包含什么?您需要自己创建Texture对象。

为此,您可以使用方法pyglet.resource.imagepyglet.resource.texture,也可以通过调用pyglet.image.load加载AbstractImage并检索相应的Texture对象访问图片的texture成员,或者将其添加到TextureAtlas

为什么不添加代码:

img = pyglet.image.load('imagefile.png')
texture = img.texture

并且不要忘记更改vertex_list accordingly以使用纹理。