from OpenGL.GL import * class EmptyTexture2D: def __init__(self, wrap=GL_REPEAT, minFilter=GL_LINEAR, magFilter=GL_LINEAR): self.wrapS = wrap self.wrapT = wrap self.minFilter = minFilter self.magFilter = magFilter self.defined = False self.id = 0 def define(self): self.id = glGenTextures(1) glBindTexture(GL_TEXTURE_2D, self.id) glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, self.wrapS) glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, self.wrapT) glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, self.minFilter) glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, self.magFilter) glBindTexture(GL_TEXTURE_2D, 0) self.defined = True def apply(self): if not self.defined: self.define() glBindTexture(GL_TEXTURE_2D, self.id) if self.id != 0: glEnable(GL_TEXTURE_2D) else: glDisable(GL_TEXTURE_2D) def disable(self): glBindTexture(GL_TEXTURE_2D, 0) glDisable(GL_TEXTURE_2D)