OpenGL - Terrain Problem or Perspective code wrong

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

This is the code I ended up with after making the modifications I mentioned above:

main.bmx
Strict

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,SWidth,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.bmx
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)
			glTranslatef(Terrain.X-TERRAIN_SIZE/2.0,-60.0,Terrain.Z-TERRAIN_SIZE/2.0)
		
			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+TERRAIN_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(50)
			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
Hope that helps,
Chris