-
Notifications
You must be signed in to change notification settings - Fork 41
The OpenGL Module
trishume edited this page Feb 1, 2012
·
3 revisions
The OpenGL module allows you to render things in 3D, really fast. Currently it only supports very basic operations (no textures.) Also, There is currently no way to get mouse/keyboard input from the OpenGL window. You have to use a small control window.
See https://github.com/Open-Turing-Project/OpenTuring/tree/master/turing/package/Examples/Open%20Turing for examples on how this can be used.
module pervasive GL
export all
fcn NewWin (width, height : int) : boolean
proc CloseWin ()
proc Cls ()
proc Update ()
% 1 is enabled 0 is disabled. Disabled by default
proc SetLight (enabled : int)
% pushmatrix and popmatrix manipulate the matrix stack (you don't need to know how to use this.)
% clearmatrix resets all transforms
proc PushMatrix ()
proc PopMatrix ()
proc ClearMatrix ()
% transforms. These apply to anything drawn after they are called. These can be changed with the matrix functions.
proc Scale (x, y, z : real)
proc Translate (x, y, z : real)
proc Rotate (angle, x, y, z : real)
% coordinates go from -1 to 1 on both axes for the default viewport.
% this means square windows will have distorted coordinates.
% you can fix this with a scale transform.
proc DrawLine (x1, y1, z1, x2, y2, z2 : real, r, g, b : int)
proc DrawFillTriangle (x1, y1, z1, x2, y2, z2, x3, y3, z3 : real, r, g, b : int)
proc DrawTriangle (x1, y1, z1, x2, y2, z2, x3, y3, z3 : real, r, g, b : int)
end GL