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
| FIRST {x1, y1} =>
let
val drawVec =
TriangleStage.firstToVector (x1, y1, dotVec, model)
val drawVec = TriangleStage.firstToVector (x1, y1, dotVec, model)
val drawMsg = DRAW_DOT drawVec
val newTriangleStage = SECOND
@@ -74,9 +73,11 @@ struct
if #showGraph model then GraphLines.generate model
else Vector.fromList []
val dots = TriangleStage.toVector (model, Vector.fromList [])
val drawMsg =
RESIZE_TRIANGLES_DOTS_AND_GRAPH
{triangles = triangles, graphLines = graphLines}
{triangles = triangles, graphLines = graphLines, dots = dots}
in
(model, drawMsg)
end

View File

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

View File

@@ -7,7 +7,10 @@ sig
| DRAW_TRIANGLES_AND_RESET_DOTS of Real32.real vector
| DRAW_GRAPH of Real32.real vector
| 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
| NO_DRAW
end
@@ -21,7 +24,10 @@ struct
| DRAW_TRIANGLES_AND_RESET_DOTS of Real32.real vector
| DRAW_GRAPH of Real32.real vector
| 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
| NO_DRAW
end