OpenGL - Terrain Problem or Perspective code wrong

BlitzMax Forums/BlitzMax Programming/OpenGL - Terrain Problem or Perspective code wrong

Im trying to figure out why there isn't any terrain showing in this code its really give me problem :( I can see anything Im asumming that its building the terrain because I have read thru 3 terrain tutorials and they all point out to do this same thing... look at my terrain system first and if you see thats wrong let me know, and if Im setting up the modes wrong i would like to know..

Main.bb

Framework brl.blitzgl
Import brl.pngloader
Import brl.system
Import brl.linkedlist
Import brl.random

Include "terrain.bmx"

Global TWidth:Int
Global THeight:Int

Global SWidth:Int = 800
Global SHeight:Int = 600
Global SDepth:Int = 32


glSetup()

Global Test = TTerrain.Create(0,0)

Function glSetup()
	
	bglCreateContext( SWidth, SHeight, SDepth, 0, BGL_BACKBUFFER | BGL_DEPTHBUFFER )


	glViewport(0,0,Width,SHeight)
	glMatrixMode(GL_PROJECTION)
	glLoadIdentity()

	gluPerspective(45.0,Float(SWidth)/Float(SHeight),0.1,100.0)

	glMatrixMode(GL_MODELVIEW)
	glLoadIdentity()
	
	glShadeModel(GL_NICEST)
	glClearColor(0.0,0.0,0.0,0.0)
	glClearDepth(1.0)
	glEnable(GL_DEPTH_TEST)
	glDepthFunc(GL_LEQUAL)
	glHint(GL_PERSPECTIVE_CORRECTION_HINT,GL_NICEST)	
	
	glPolygonMode(GL_FRONT_AND_BACK, GL_LINE)	
	
	Return True
	
End Function

Function glRender()

	Repeat

		glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
		glLoadIdentity()
		
			For Terrain:TTerrain = EachIn TerrainList
				Terrain.Render()
			Next

		FlushMem
		bglSwapBuffers

	Until KeyHit(KEY_ESCAPE)
	End

End Function

glRender()



terrain.bb

Global Terrain:TTerrain
Global TerrainList:TList = CreateList()
Const TERRAIN_STEP = 16
Const TERRAIN_SIZE = 255
Const TERRAIN_SCALE = 16

Type TTerrain

	Field X:Float, Z:Float
	Field Height:Float[255,255]
	Field ID:Int
	Field HeightMap:TPixmap

	Method Render()
	
			glTranslatef(Terrain.X, 1.0, Terrain.Z)
		
			For Local xx = 0 To (TERRAIN_SIZE-TERRAIN_SCALE)-1 Step TERRAIN_STEP
			glBegin(GL_TRIANGLE_STRIP)
				For Local zz = 0 To (TERRAIN_SIZE-TERRAIN_SCALE)-1 Step TERRAIN_STEP
					glVertex3f(xx+TTERRAIN_SCALE,Terrain.Height[xx+TERRAIN_SCALE,zz],zz)
					glVertex3f(xx,Terrain.Height[xx,zz],zz)
				Next
			glEnd()
			Next
	
	End Method
	
	Function Create:Int(xx:Int, zz:Int)
	
		Terrain:TTerrain = New TTerrain
		Terrain.X = xx
		Terrain.Z = zz
		Terrain.ID = Terrain.ID + 1
		
		For Local xxx = 0 To TERRAIN_SIZE-1
			For Local zzz = 0 To TERRAIN_SIZE-1	
				Terrain.Height[xxx,zzz] = Rnd(255)
			Next
		Next
		
		ListAddLast(TerrainList,Terrain)
		
		Return Terrain.ID
	
	End Function
	
	Function Load:Int(file:String, xx:Int, zz:Int)
	
		Terrain:TTerrain = New TTerrain
		Terrain.X = xx
		Terrain.Z = zz
		Terrain.ID = Terrain.ID + 1
		
		Terrain.HeightMap = LoadPixmap(file)
		
		For Local xxx = 0 To TERRAIN_SIZE-1
			For Local zzz = 0 To TERRAIN_SIZE-1
				Terrain.Height[xxx,zzz] = ReadPixel(Terrain.HeightMap,xxx,zzz)
			Next
		Next
		
		ListAddLast(TerrainList,Terrain)
		
		Return Terrain.ID
	
	End Function

End Type