add modal text draw object to imperative shell, for drawing text like file browser

This commit is contained in:
2024-09-27 09:08:19 +01:00
parent e3ff121a35
commit 6fa88769aa
4 changed files with 26 additions and 1 deletions

BIN
dotscape

Binary file not shown.

View File

@@ -107,6 +107,10 @@ struct
else else
() ()
val initModalText = initDot
val uploadModalText = uploadDotVector
val drawModalText = drawDot
fun initTriangles () = fun initTriangles () =
let let
val triangleDrawObject = initDrawObject val triangleDrawObject = initDrawObject

View File

@@ -12,6 +12,8 @@ struct
, dotDrawLength , dotDrawLength
, triangleDrawObject , triangleDrawObject
, triangleDrawLength , triangleDrawLength
, modalTextDrawObject
, modalTextDrawLength
) = ) =
if not (Glfw.windowShouldClose window) then if not (Glfw.windowShouldClose window) then
case Mailbox.recvPoll drawMailbox of case Mailbox.recvPoll drawMailbox of
@@ -24,6 +26,7 @@ struct
val _ = val _ =
AppDraw.drawTriangles (triangleDrawObject, triangleDrawLength) AppDraw.drawTriangles (triangleDrawObject, triangleDrawLength)
val _ = AppDraw.drawDot (dotDrawObject, dotDrawLength) val _ = AppDraw.drawDot (dotDrawObject, dotDrawLength)
val _ = AppDraw.drawModalText (modalTextDrawObject, modalTextDrawLength)
val _ = Glfw.swapBuffers window val _ = Glfw.swapBuffers window
val _ = Glfw.pollEvents () val _ = Glfw.pollEvents ()
@@ -37,6 +40,8 @@ struct
, dotDrawLength , dotDrawLength
, triangleDrawObject , triangleDrawObject
, triangleDrawLength , triangleDrawLength
, modalTextDrawObject
, modalTextDrawLength
) )
end end
| SOME drawMsg => | SOME drawMsg =>
@@ -55,6 +60,8 @@ struct
, dotDrawLength , dotDrawLength
, triangleDrawObject , triangleDrawObject
, triangleDrawLength , triangleDrawLength
, modalTextDrawObject
, modalTextDrawLength
) )
end end
| DRAW_TRIANGLES_AND_RESET_DOTS triangleVec => | DRAW_TRIANGLES_AND_RESET_DOTS triangleVec =>
@@ -74,6 +81,8 @@ struct
, 0 , 0
, triangleDrawObject , triangleDrawObject
, triangleDrawLength , triangleDrawLength
, modalTextDrawObject
, modalTextDrawLength
) )
end end
| DRAW_TRIANGLES_AND_DOTS {triangles = triangleVec, dots = dotsVec} => | DRAW_TRIANGLES_AND_DOTS {triangles = triangleVec, dots = dotsVec} =>
@@ -95,6 +104,8 @@ struct
, dotDrawLength , dotDrawLength
, triangleDrawObject , triangleDrawObject
, triangleDrawLength , triangleDrawLength
, modalTextDrawObject
, modalTextDrawLength
) )
end end
| CLEAR_DOTS => | CLEAR_DOTS =>
@@ -110,6 +121,8 @@ struct
, dotDrawLength , dotDrawLength
, triangleDrawObject , triangleDrawObject
, triangleDrawLength , triangleDrawLength
, modalTextDrawObject
, modalTextDrawLength
) )
end end
| RESIZE_TRIANGLES_DOTS_AND_GRAPH {triangles, graphLines, dots} => | RESIZE_TRIANGLES_DOTS_AND_GRAPH {triangles, graphLines, dots} =>
@@ -133,6 +146,8 @@ struct
, dotDrawLength , dotDrawLength
, triangleDrawObject , triangleDrawObject
, triangleDrawLength , triangleDrawLength
, modalTextDrawObject
, modalTextDrawLength
) )
end end
| DRAW_GRAPH graphLines => | DRAW_GRAPH graphLines =>
@@ -149,6 +164,8 @@ struct
, dotDrawLength , dotDrawLength
, triangleDrawObject , triangleDrawObject
, triangleDrawLength , triangleDrawLength
, modalTextDrawObject
, modalTextDrawLength
) )
end) end)
else else

View File

@@ -28,6 +28,8 @@ struct
val dotDrawObject = AppDraw.initDot () val dotDrawObject = AppDraw.initDot ()
val triangleDrawObject = AppDraw.initTriangles () val triangleDrawObject = AppDraw.initTriangles ()
val modalTextDrawObject = AppDraw.initModalText ()
val inputMailbox = Mailbox.mailbox () val inputMailbox = Mailbox.mailbox ()
val drawMailbox = Mailbox.mailbox () val drawMailbox = Mailbox.mailbox ()
val fileMailbox = Mailbox.mailbox () val fileMailbox = Mailbox.mailbox ()
@@ -47,6 +49,8 @@ struct
, 0 , 0
, triangleDrawObject , triangleDrawObject
, 0 , 0
, modalTextDrawObject
, 0
)) ))
val _ = CML.spawn (fn () => FileThread.run (fileMailbox, inputMailbox)) val _ = CML.spawn (fn () => FileThread.run (fileMailbox, inputMailbox))