diff --git a/dotscape b/dotscape new file mode 100755 index 0000000..f2be6a8 Binary files /dev/null and b/dotscape differ diff --git a/ffi/export.h b/ffi/export.h index c1080ad..5864c66 100644 --- a/ffi/export.h +++ b/ffi/export.h @@ -157,6 +157,10 @@ typedef Pointer Objptr; extern "C" { #endif +MLLIB_PUBLIC(void mltonMouseMoveCallback (Real32 x0, Real32 x1);) +MLLIB_PUBLIC(void mltonMouseClickCallback (Int32 x0, Int32 x1);) +MLLIB_PUBLIC(void mltonFramebufferSizeCallback (Int32 x0, Int32 x1);) +MLLIB_PUBLIC(void mltonKeyCallback (Int32 x0, Int32 x1, Int32 x2, Int32 x3);) #undef MLLIB_PRIVATE #undef MLLIB_PUBLIC diff --git a/imperative-shell/app-draw.sml b/imperative-shell/app-draw.sml index 888cbb1..7919d7f 100644 --- a/imperative-shell/app-draw.sml +++ b/imperative-shell/app-draw.sml @@ -111,7 +111,7 @@ struct val uploadModalText = uploadDotVector val drawModalText = drawDot - val initTriangles = initDot - val uploadTrianglesVector = uploadDotVector - val drawTriangles = drawDot + val initSquares = initDot + val uploadSquaresVector = uploadDotVector + val drawSquares = drawDot end diff --git a/imperative-shell/draw-thread.sml b/imperative-shell/draw-thread.sml index abb6c8c..7a1416a 100644 --- a/imperative-shell/draw-thread.sml +++ b/imperative-shell/draw-thread.sml @@ -10,8 +10,8 @@ struct , drawGraphLength , dotDrawObject , dotDrawLength - , triangleDrawObject - , triangleDrawLength + , squareDrawObject + , squareDrawLength , modalTextDrawObject , modalTextDrawLength ) = @@ -23,8 +23,7 @@ struct val _ = Gles3.clear () val _ = AppDraw.drawGraphLines (graphDrawObject, drawGraphLength) - val _ = - AppDraw.drawTriangles (triangleDrawObject, triangleDrawLength) + val _ = AppDraw.drawSquares (squareDrawObject, squareDrawLength) val _ = AppDraw.drawDot (dotDrawObject, dotDrawLength) val _ = AppDraw.drawModalText (modalTextDrawObject, modalTextDrawLength) @@ -39,8 +38,8 @@ struct , drawGraphLength , dotDrawObject , dotDrawLength - , triangleDrawObject - , triangleDrawLength + , squareDrawObject + , squareDrawLength , modalTextDrawObject , modalTextDrawLength ) @@ -59,18 +58,17 @@ struct , drawGraphLength , dotDrawObject , dotDrawLength - , triangleDrawObject - , triangleDrawLength + , squareDrawObject + , squareDrawLength , modalTextDrawObject , modalTextDrawLength ) end - | DRAW_TRIANGLES_AND_RESET_DOTS triangleVec => + | DRAW_SQUARES_AND_RESET_DOTS squareVec => let val _ = - AppDraw.uploadTrianglesVector - (triangleDrawObject, triangleVec) - val triangleDrawLength = Vector.length triangleVec div 5 + AppDraw.uploadSquaresVector (squareDrawObject, squareVec) + val squareDrawLength = Vector.length squareVec div 5 (* dots are reset by setting dotDrawLength to 0 *) in run @@ -80,18 +78,17 @@ struct , drawGraphLength , dotDrawObject , 0 - , triangleDrawObject - , triangleDrawLength + , squareDrawObject + , squareDrawLength , modalTextDrawObject , modalTextDrawLength ) end - | DRAW_TRIANGLES_AND_DOTS {triangles = triangleVec, dots = dotsVec} => + | DRAW_SQUARES_AND_DOTS {squares = squareVec, dots = dotsVec} => let val _ = - AppDraw.uploadTrianglesVector - (triangleDrawObject, triangleVec) - val triangleDrawLength = Vector.length triangleVec div 5 + AppDraw.uploadSquaresVector (squareDrawObject, squareVec) + val squareDrawLength = Vector.length squareVec div 5 val _ = AppDraw.uploadDotVector (dotDrawObject, dotsVec) val dotDrawLength = Vector.length dotsVec div 5 @@ -103,8 +100,8 @@ struct , drawGraphLength , dotDrawObject , dotDrawLength - , triangleDrawObject - , triangleDrawLength + , squareDrawObject + , squareDrawLength , modalTextDrawObject , modalTextDrawLength ) @@ -120,17 +117,16 @@ struct , drawGraphLength , dotDrawObject , dotDrawLength - , triangleDrawObject - , triangleDrawLength + , squareDrawObject + , squareDrawLength , modalTextDrawObject , modalTextDrawLength ) end - | RESIZE_TRIANGLES_DOTS_AND_GRAPH {triangles, graphLines, dots} => + | RESIZE_SQUARES_DOTS_AND_GRAPH {squares, graphLines, dots} => let - val _ = - AppDraw.uploadTrianglesVector (triangleDrawObject, triangles) - val triangleDrawLength = Vector.length triangles div 5 + val _ = AppDraw.uploadSquaresVector (squareDrawObject, squares) + val squareDrawLength = Vector.length squares div 5 val _ = AppDraw.uploadGraphLines (graphDrawObject, graphLines) val drawGraphLength = Vector.length graphLines div 2 @@ -145,8 +141,8 @@ struct , drawGraphLength , dotDrawObject , dotDrawLength - , triangleDrawObject - , triangleDrawLength + , squareDrawObject + , squareDrawLength , modalTextDrawObject , modalTextDrawLength ) @@ -163,8 +159,8 @@ struct , drawGraphLength , dotDrawObject , dotDrawLength - , triangleDrawObject - , triangleDrawLength + , squareDrawObject + , squareDrawLength , modalTextDrawObject , modalTextDrawLength ) @@ -181,8 +177,8 @@ struct , drawGraphLength , dotDrawObject , dotDrawLength - , triangleDrawObject - , triangleDrawLength + , squareDrawObject + , squareDrawLength , modalTextDrawObject , modalTextDrawLength ) diff --git a/imperative-shell/shell.sml b/imperative-shell/shell.sml index a896614..eafa393 100644 --- a/imperative-shell/shell.sml +++ b/imperative-shell/shell.sml @@ -27,7 +27,7 @@ struct val _ = AppDraw.uploadGraphLines (graphDrawObject, graphLines) val dotDrawObject = AppDraw.initDot () - val triangleDrawObject = AppDraw.initTriangles () + val squareDrawObject = AppDraw.initSquares () val modalTextDrawObject = AppDraw.initModalText () @@ -48,7 +48,7 @@ struct , Vector.length graphLines div 2 , dotDrawObject , 0 - , triangleDrawObject + , squareDrawObject , 0 , modalTextDrawObject , 0