5 from OpenGL.GL import *
10 def __init__(self, path):
14 def onInitialize(self):
19 if self.createTexture():
23 self.image=Image.open(self.path)
25 print("load image:", self.path)
28 print("failt to load image:", self.path)
31 def createTexture(self):
32 self.texture=glGenTextures(1)
34 print("fail to glGenTextures")
37 channels=len(self.image.getbands())
39 glBindTexture(GL_TEXTURE_2D, self.texture)
40 glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP)
41 glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP)
42 glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR)
43 glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR)
46 glPixelStorei(GL_UNPACK_ALIGNMENT, 4)
47 glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, w, h,
48 0, GL_RGBA, GL_UNSIGNED_BYTE, self.image.tostring())
51 glPixelStorei(GL_UNPACK_ALIGNMENT, 1)
52 glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, w, h,
53 0, GL_RGB, GL_UNSIGNED_BYTE, self.image.tostring())
56 glEnable(GL_TEXTURE_2D)
57 glBindTexture(GL_TEXTURE_2D, self.texture)
60 glDisable(GL_TEXTURE_2D)