@@ -64,17 +64,29 @@ def _build(self, width, height, depth, target=GL.GL_TEXTURE_2D, lod=0,
6464 GL .glTexParameteri (self .target , GL .GL_TEXTURE_MAG_FILTER , GL .GL_LINEAR )
6565 GL .glTexParameteri (self .target , GL .GL_TEXTURE_WRAP_S , GL .GL_REPEAT )
6666 GL .glTexParameteri (self .target , GL .GL_TEXTURE_WRAP_T , GL .GL_REPEAT )
67- GL .glTexImage2D (self .target , self .lod , self .internal_format ,
68- self .width , self .height , 0 ,
69- self .format , self .type , data )
70- # GL.glBindTexture(GL.GL_TEXTURE_2D, 0)
67+
68+ if self .target == GL .GL_TEXTURE_2D :
69+ GL .glTexImage2D (self .target , self .lod , self .internal_format ,
70+ self .width , self .height , 0 ,
71+ self .format , self .type , data )
72+ elif self .target == GL .GL_TEXTURE_1D :
73+ if self .width > self .height :
74+ GL .glTexImage1D (self .target , self .lod , self .internal_format ,
75+ self .width , 0 , self .format , self .type , data )
76+ else :
77+ GL .glTexImage1D (self .target , self .lod , self .internal_format ,
78+ self .height , 0 , self .format , self .type , data )
7179
7280 def set_image (self , image ):
7381 """Set image data using a PIL/Pillow image"""
7482 image_flipped = image .transpose (Image .FLIP_TOP_BOTTOM )
7583 data = image_flipped .convert ("RGBA" ).tobytes ()
7684 self .width , self .height = image .size
77- self ._build (self .width , self .height , 0 , data = data )
85+ if self .width == 1 or self .height == 1 :
86+ self .target = GL .GL_TEXTURE_1D
87+ else :
88+ self .target = GL .GL_TEXTURE_2D
89+ self ._build (self .width , self .height , 0 , data = data , target = self .target )
7890
7991 def set_texture_repeat (self , mode ):
8092 self .bind ()
0 commit comments