RosettaCodeData/Task/OpenGL/Tcl/opengl.tcl

31 lines
784 B
Tcl

package require Tk
package require tcl3d
proc resizedWin {win w h} {
glViewport 0 0 $w $h
glMatrixMode GL_PROJECTION
glLoadIdentity
glOrtho -30.0 30.0 -30.0 30.0 -30.0 30.0
glMatrixMode GL_MODELVIEW
}
proc paintShape {win} {
glClearColor 0.0 0.0 0.0 0.5
glClear [expr {$::GL_COLOR_BUFFER_BIT+$::GL_DEPTH_BUFFER_BIT}]
glShadeModel GL_SMOOTH
glLoadIdentity
glTranslatef -15.0 -15.0 0.0
glBegin GL_TRIANGLES
glColor3f 1.0 0.0 0.0
glVertex2f 5.0 5.0
glColor3f 0.0 1.0 0.0
glVertex2f 25.0 5.0
glColor3f 0.0 0.0 1.0
glVertex2f 5.0 25.0
glEnd
$win swapbuffers
}
togl .surface -width 640 -height 480 -double true -depth true \
-displayproc paintShape -reshapeproc resizedWin
pack .surface -fill both -expand 1