I have only just started looking at Bmax now that its released for PC, and here is my first question:
Framework BRL.BlitzGL
Import BRL.System
Import PUB.OpenGL
Import BRL.linkedlist
Strict
Const SCRX=1024,SCRY=768
Type color
Field r#,g#,b#,a#
End Type
Type vec3
Field x#,y#,z#
End Type
Local ambient:color = New color
ambient.r = 0.2
ambient.g = 0.5
ambient.b = 0.7
Local position:vec3 = New vec3
position.x = 5.0
position.y = 13.0
position.z = 15.0
Type points
Field x#, y#
Field R, G, B
End Type
Global list:TList=CreateList()
Local mo:points = New points
mo.x# = -1
mo.y# = -1
mo.r = 255
mo.g = 0
mo.b = 0
ListAddLast list,mo
mo:points = New points
mo.x# = 1
mo.y# = -1
mo.r = 0
mo.g = 255
mo.b = 0
ListAddLast list,mo
mo:points = New points
mo.x# = 1
mo.y# = 1
mo.r = 0
mo.g = 0
mo.b = 255
ListAddLast list,mo
mo:points = New points
mo.x# = -1
mo.y# = 1
mo.r = 255
mo.g = 255
mo.b = 255
ListAddLast list,mo
Global angle:Float = 0.5
' init OGL
bglCreateContext(SCRX, SCRY, 32, 0,BGL_BACKBUFFER|BGL_DEPTHBUFFER)
glViewport(0,0,SCRX,SCRY)
glMatrixMode(GL_PROJECTION)
glLoadIdentity()
gluPerspective(45.0,Float(SCRX)/Float(SCRY),1.0,100.0)
' create light and position it
glLightfv GL_LIGHT0, GL_AMBIENT, Varptr(ambient.r)
glLightfv GL_LIGHT0, GL_POSITION, Varptr(position.x)
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
' set render options
glShadeModel(GL_SMOOTH)
glEnable(GL_DEPTH_TEST)
glEnable(GL_CULL_FACE)
glMatrixMode(GL_MODELVIEW)
' move camera
glTranslatef(0.0,0.0,-20.0)
bglSetSwapInterval( 60 )
While Not KeyHit(KEY_ESCAPE)
glRotatef(angle,0,0,1)
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
glBegin(GL_QUADS)
For mo:points = EachIn list
glColor3i( mo.r, mo.g, mo.b )
glVertex3f( mo.x#, mo.y#, 0 )
Next
glEnd()
bglSwapBuffers()
Wend
End
In the above code, why doesn't the quad have the colors that I set?
|