upload new dots to GPU when there is a window resize too

This commit is contained in:
2024-08-14 21:35:01 +01:00
parent 30dd9de17a
commit 3f4c52e0d8
4 changed files with 19 additions and 9 deletions

BIN
dotscape

Binary file not shown.

View File

@@ -40,8 +40,7 @@ struct
end end
| FIRST {x1, y1} => | FIRST {x1, y1} =>
let let
val drawVec = val drawVec = TriangleStage.firstToVector (x1, y1, dotVec, model)
TriangleStage.firstToVector (x1, y1, dotVec, model)
val drawMsg = DRAW_DOT drawVec val drawMsg = DRAW_DOT drawVec
val newTriangleStage = SECOND val newTriangleStage = SECOND
@@ -74,9 +73,11 @@ struct
if #showGraph model then GraphLines.generate model if #showGraph model then GraphLines.generate model
else Vector.fromList [] else Vector.fromList []
val dots = TriangleStage.toVector (model, Vector.fromList [])
val drawMsg = val drawMsg =
RESIZE_TRIANGLES_DOTS_AND_GRAPH RESIZE_TRIANGLES_DOTS_AND_GRAPH
{triangles = triangles, graphLines = graphLines} {triangles = triangles, graphLines = graphLines, dots = dots}
in in
(model, drawMsg) (model, drawMsg)
end end
@@ -179,7 +180,7 @@ struct
(model, drawMsg) (model, drawMsg)
end) end)
| [] => | [] =>
(* Nothing to redo. *) (* Nothing to redo. *)
(model, NO_DRAW) (model, NO_DRAW)
fun toggleGraph (model: app_type) = fun toggleGraph (model: app_type) =

View File

@@ -126,14 +126,17 @@ struct
, triangleDrawLength , triangleDrawLength
) )
end end
| RESIZE_TRIANGLES_DOTS_AND_GRAPH {triangles, graphLines} => | RESIZE_TRIANGLES_DOTS_AND_GRAPH {triangles, graphLines, dots} =>
let let
val _ = val _ =
AppDraw.uploadTrianglesVector (triangleDrawObject, triangles) AppDraw.uploadTrianglesVector (triangleDrawObject, triangles)
val triangleDrawLength = Vector.length triangles div 2 val triangleDrawLength = Vector.length triangles div 2
val _ = AppDraw.uploadGraphLines (graphDrawObject, graphLines) val _ = AppDraw.uploadGraphLines (graphDrawObject, graphLines)
val drawGraphLength = Vector.length graphLines div 2 val drawGraphLength = Vector.length graphLines div 2
(* to do: upload dots *)
val _ = AppDraw.uploadDotVector (dotDrawObject, dots)
val dotDrawLength = Vector.length dots div 5
in in
draw draw
( drawMailbox ( drawMailbox
@@ -141,7 +144,7 @@ struct
, graphDrawObject , graphDrawObject
, drawGraphLength , drawGraphLength
, dotDrawObject , dotDrawObject
, 0 , dotDrawLength
, triangleDrawObject , triangleDrawObject
, triangleDrawLength , triangleDrawLength
) )

View File

@@ -7,7 +7,10 @@ sig
| DRAW_TRIANGLES_AND_RESET_DOTS of Real32.real vector | DRAW_TRIANGLES_AND_RESET_DOTS of Real32.real vector
| DRAW_GRAPH of Real32.real vector | DRAW_GRAPH of Real32.real vector
| RESIZE_TRIANGLES_DOTS_AND_GRAPH of | RESIZE_TRIANGLES_DOTS_AND_GRAPH of
{triangles: Real32.real vector, graphLines: Real32.real vector} { triangles: Real32.real vector
, graphLines: Real32.real vector
, dots: Real32.real vector
}
| CLEAR_DOTS | CLEAR_DOTS
| NO_DRAW | NO_DRAW
end end
@@ -21,7 +24,10 @@ struct
| DRAW_TRIANGLES_AND_RESET_DOTS of Real32.real vector | DRAW_TRIANGLES_AND_RESET_DOTS of Real32.real vector
| DRAW_GRAPH of Real32.real vector | DRAW_GRAPH of Real32.real vector
| RESIZE_TRIANGLES_DOTS_AND_GRAPH of | RESIZE_TRIANGLES_DOTS_AND_GRAPH of
{triangles: Real32.real vector, graphLines: Real32.real vector} { triangles: Real32.real vector
, graphLines: Real32.real vector
, dots: Real32.real vector
}
| CLEAR_DOTS | CLEAR_DOTS
| NO_DRAW | NO_DRAW
end end