perspective pb

BlitzMax Forums/BlitzMax OpenGL Programming/perspective pb

i translate from a c program this one, pb is about the quad, how to make it look like a real quad

Framework BRL.BlitzGL

Import BRL.System

Global Width:Int=800
Global Height:Int=600
Global Depth:Int=32
Global id_cube:Int=0
Global angle:Int=0

bglCreateContext(Width,Height,Depth,0,BGL_BACKBUFFER | BGL_DEPTHBUFFER) ' | BGL_FULLSCREEN)

While Not KeyHit( KEY_ESCAPE )
	Init()
	Display()
	Reshape(Width,Height)
	Idle()
	bglSwapBuffers
wend

Function Reshape(w:Int, h:Int) 
	glViewport(0,0,w,h)
	glMatrixMode(GL_PROJECTION) ' Choisit la matrice de projection
	glLoadIdentity()
	gluPerspective(45.0,Float(w/h),1.0,100.0)

	glMatrixMode(GL_MODELVIEW) ' on revient sur la matrice MODELVIEW
	glLoadIdentity()
End function

Function Init()
	glEnable(GL_DEPTH_TEST)
	Creer_Cube()
End function

function Idle()
	angle:+1
	If (angle>360) angle=0
End function

Function Display()
	glClearColor(0,0,0,0) ' selectionne la couleur noire (qui est celle par défaut)
	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
	glLoadIdentity()
	gluLookAt(10,15,15,0,0,0,0,1,0)
		
	glCallList(id_cube)

	glPushMatrix()
	glRotated(angle,0,1,0)
	glTranslatef(0,0,-5)
	glScaled(0.5,0.5,0.5)
	glCallList(id_cube)
	glPopMatrix()

	glPushMatrix()
	glRotated(angle,0,1,0)
	glTranslatef(0,0,5)
	glRotated(angle,0,1,0)
	glScaled(0.5,0.5,0.5)
	glCallList(id_cube)
	glPopMatrix()

	glFlush()
End function

Function Creer_Cube()
	id_cube=glGenLists(1)
	glNewList (id_cube,GL_COMPILE)

	glBegin(GL_QUADS)
	glColor3d(1,0,0)
	glVertex3i(1,1,1)
	glVertex3i(1,-1,1)
	glVertex3i(-1,-1,1)
	glVertex3i(-1,1,1)
 
	glColor3d(0,1,0)
	glVertex3i(1,1,-1)
	glVertex3i(1,-1,-1)
	glVertex3i(-1,-1,-1)
	glVertex3i(-1,1,-1)
 
	glColor3d(0,0,1)
	glVertex3i(1,1,1)
	glVertex3i(1,-1,1)
	glVertex3i(1,-1,-1)
	glVertex3i(1,1,-1)
 
	glColor3d(0,1,1)
	glVertex3i(-1,1,1)
	glVertex3i(-1,-1,1)
	glVertex3i(-1,-1,-1)
	glVertex3i(-1,1,-1)

	glColor3d(1,1,0)
	glVertex3i(-1,1,-1)
	glVertex3i(-1,1,1)
	glVertex3i(1,1,1)
	glVertex3i(1,1,-1)
 
	glColor3d(1,0,1)
	glVertex3i(-1,-1,-1)
	glVertex3i(-1,-1,1)
	glVertex3i(1,-1,1)
	glVertex3i(1,-1,-1)
 
	glEnd()
	
	glEndList()
End Function


Ok i've got it, in the line :
gluPerspective(45.0,Float(w/h),1.0,100.0)
change float(w/h) to 800.0/600.0 => much better
or with :
global WH,HF:Float
WH=width
HF=height
gluPerspective(45.0,WH/HF,1.0,100.0)