36 lines
1001 B
Standard ML
36 lines
1001 B
Standard ML
|
|
structure EventLoop =
|
||
|
|
struct
|
||
|
|
open CML
|
||
|
|
open InputMessage
|
||
|
|
|
||
|
|
fun update inputMailbox =
|
||
|
|
let
|
||
|
|
val _ =
|
||
|
|
case Mailbox.recv inputMailbox of
|
||
|
|
MOUSE_MOVE {x, y} =>
|
||
|
|
print (String.concat
|
||
|
|
["x pos: ", Int.toString x, ", y pos: ", Int.toString y, "\n"])
|
||
|
|
| MOUSE_LEFT_CLICK => print "clicked mouse\n"
|
||
|
|
| MOUSE_LEFT_RELEASE => print "released mouse\n"
|
||
|
|
in
|
||
|
|
update inputMailbox
|
||
|
|
end
|
||
|
|
|
||
|
|
fun draw (window, graphDrawObject, buttonDrawObject, buttonDrawLength) =
|
||
|
|
if not (Glfw.windowShouldClose window) then
|
||
|
|
let
|
||
|
|
val _ = Gles3.clearColor (1.0, 1.0, 1.0, 1.0)
|
||
|
|
val _ = Gles3.clear ()
|
||
|
|
|
||
|
|
val _ = AppDraw.drawGraphLines graphDrawObject
|
||
|
|
val _ = AppDraw.drawButton (buttonDrawObject, buttonDrawLength)
|
||
|
|
|
||
|
|
val _ = Glfw.pollEvents ()
|
||
|
|
val _ = Glfw.swapBuffers window
|
||
|
|
in
|
||
|
|
draw (window, graphDrawObject, buttonDrawObject, buttonDrawLength)
|
||
|
|
end
|
||
|
|
else
|
||
|
|
Glfw.terminate ()
|
||
|
|
end
|