Code: Select all
Procedure LoadTexture_(Filename.s, TexFilter.l) ; Returns the texture for an OpenGL application
img = LoadImage(#PB_Any, Filename.s)
Width.l=ImageWidth()
Height.l=ImageHeight()
Size.l=Width * Height
Dim ImageData.b(Size*3)
StartDrawing(ImageOutput())
For Y=Height-1 To 0 Step -1
For X=0 To Width-1
Color = Point(X,Y)
ImageData(i)=Red(Color)
i+1
ImageData(i)=Green(Color)
i+1
ImageData(i)=Blue(Color)
i+1
Next
Next
StopDrawing()
glGenTextures_(1, @Tex) ;Textur speichern
If TexFilter = 0 ;versch. Textur-Filter
glBindTexture_($0DE1, Tex)
glTexParameteri_($0DE1, $2800, $2600)
glTexParameteri_($0DE1, $2801, $2600)
glTexImage2D_($0DE1, 0, 6407, Width, Height, 0, 6407, $1401, @ImageData())
ElseIf TexFilter = 1
glBindTexture_($0DE1, Tex)
glTexParameteri_($0DE1, $2800, $2601)
glTexParameteri_($0DE1, $2801, $2601)
glTexImage2D_($0DE1, 0, 6407, Width, Height, 0, 6407, $1401, @ImageData())
ElseIf TexFilter = 2
glBindTexture_($0DE1, Tex)
glTexParameteri_($0DE1, $2800, $2601)
glTexParameteri_($0DE1, $2801, $2701)
gluBuild2DMipmaps_($0DE1, 3, Width, Height, 6407, $1401, @ImageData())
EndIf
FreeImage(img)
ProcedureReturn Tex
EndProcedure
Then it should be right.
[EDIT] Sorry posted the old code.
@Dreglor:
I have no idea, why it doesn't work well at your computer.