Vb.net & opengl(sdl.net)

Folgender Beispielcode bietet eine mit der frei rotier-/bewegbare Ansicht mit einem Dreieck, auf dem man steht (es befindet sich senkrecht unter der Kamerastartposition, die Bewegungsfunktionen für die Kamera sind nicht beim Code dabei weil ja nicht relevant). Dieses sollte texturiert sein - ist es aber nicht.
Ich habe versucht, den Code eines OpenGL-Tutorials nach VB 2005 umzusetzen, der das Textureladen demonstrierte, das ging aber offensichtlich schief.

Sieht jemand den Fehler? Tipps wären sehr nett, weil ich bin OpenGL-Anfänger und mit meinem Latein am Ende! Wenn ich nur ein texturiertes Dreieck hinkriegen würde, hätte ich alles, was ich für simple Anzeigen und Level bräuchte.

 Public textures(1) As UInt32
 Public Sub LoadTex()
 Dim bla As Bitmap = frm.tex\_gras.Image
 bla.RotateFlip(RotateFlipType.RotateNoneFlipY)
 'MsgBox(System.Drawing.Bitmap.GetPixelFormatSize(bla.PixelFormat))
 Dim bitmapdata As System.Drawing.Imaging.BitmapData
 Dim rect As Rectangle = New Rectangle(0, 0, bla.Width, bla.Height)
 bitmapdata = bla.LockBits(rect, System.Drawing.Imaging.ImageLockMode.ReadOnly, Drawing.Imaging.PixelFormat.Format24bppRgb)
 Gl.glEnable(Convert.ToUInt32(Gl.GL\_TEXTURE\_2D))
 Gl.glGenTextures(1, ConvertToIntArray(textures))
 Gl.glBindTexture(Convert.ToUInt32(Gl.GL\_TEXTURE\_2D), textures(0))
 Gl.glTexImage2D(Gl.GL\_TEXTURE\_2D, 0, Convert.ToInt32(Gl.GL\_RGB8), \_
 bla.Width, bla.Height, 0, 32992, \_
 Gl.GL\_UNSIGNED\_BYTE, bitmapdata.Scan0)
 'Gl.glTexParameteri(Gl.GL\_TEXTURE\_2D, Gl.GL\_TEXTURE\_MIN\_FILTER, 9729)
 'Gl.glTexParameteri(Gl.GL\_TEXTURE\_2D, Gl.GL\_TEXTURE\_MAG\_FILTER, 9729)
 bla.UnlockBits(bitmapdata)
 bla.Dispose()
 End Sub
 Public Function DrawGLScene() As Boolean
 Dim r As Integer
 Dim k As Integer
 Dim trianglesize As Integer = 16
 Gl.glClear(Gl.GL\_COLOR\_BUFFER\_BIT Or Gl.GL\_DEPTH\_BUFFER\_BIT)
 Gl.glMatrixMode(Convert.ToUInt32(Gl.GL\_MODELVIEW))
 Gl.glLoadIdentity()
 Dim xtrans As Double = -XPos
 Dim ytrans As Double = -YPos
 Dim ztrans As Double = -ZPos
 Dim scenerotatepan As Double = 360.0F - PanRot
 Gl.glRotatef(LookUpDown, 1.0F, 0, 0)
 Gl.glRotatef(scenerotatepan, 0, 1.0F, 0)
 Gl.glTranslatef(xtrans, ytrans, ztrans)
 Gl.glBindTexture(Gl.GL\_TEXTURE\_2D, textures(0))
 Gl.glBegin(Gl.GL\_TRIANGLES)
 Gl.glTexCoord2f(0.0F, 1.0F)
 Gl.glVertex3f(-1.0F, 1.0F, 1.0F) 'links unten
 Gl.glTexCoord2f(1.0F, 1.0F)
 Gl.glVertex3f(1.0F, 1.0F, 1.0F) 'rechts unten
 Gl.glTexCoord2f(1.0F, 0.0F)
 Gl.glVertex3f(1.0F, 1.0F, -1.0F) 'rechts oben
 '1:rechts-links (größer rechts),2:hoch-runter (größer hoch),3:hinzumbild-wegvombild (größer hin)
 Gl.glEnd()
 Video.GLSwapBuffers()
 Return True
 End Function