Question

The error is on line 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: global name 'texture' not defined but i imported it on line 2. the full code is here

Any help? I am using python 2.7.3 with pyglet and ubuntu 12.04

Was it helpful?

Solution

The pyglet.gl module does not define any variable texture, so your import statement in line 2 does not provide anything like that. And what do you even expect it to contain? You'll need to create your Texture object yourself.

To do so, you could use the methods pyglet.resource.image or pyglet.resource.texture or you could load an AbstractImage by calling pyglet.image.load and retrieve a corresponding Texture object by accessing the image's texture member or, say, adding it to a TextureAtlas.

Why don't you add to your code:

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

and don't forget to alter your vertex_list accordingly to make use of the texture.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top