Commit Graph

54 Commits

Author SHA1 Message Date
42c4b92105 address edge case where Real32.toString 1.0 seems to give the string '1' instead of '1.0', and improve the drawing for upper case A 2024-08-30 11:13:08 +01:00
c16fa58bf6 fix bug caused by the calculation change in the previous commit 2024-08-30 09:15:33 +01:00
acd68a055d code shortcut to trigger export (with <Ctrl-E>); it outputs syntatically valid .sml, but I am not sure if the output is correct as intended so it needs testing 2024-08-30 02:34:24 +01:00
7ab7b8931d code function to export triangle to .sml file (linear interpolation only; untested and also not currently executable by shortcut 2024-08-30 02:22:02 +01:00
da2a652506 improve parsing code slightly, with successful parsing when saved .dsc file has inconsistent spacing 2024-08-29 11:18:17 +01:00
24bc45142d slight refactoring (move pure parsing functions to functional core in a separate file) 2024-08-29 09:55:08 +01:00
e69c6b42ef done with loading file into app (loaded triangles are visible, etc.) 2024-08-29 05:38:58 +01:00
2549703dc7 verify that parsing saved file is successful 2024-08-29 05:21:04 +01:00
f0958686b7 implement parser for loading (but this parser is untested) 2024-08-29 04:39:23 +01:00
1fdd4f33ec remember to close file descriptor in file thread 2024-08-29 00:43:51 +01:00
eb13636993 very basic saving (hardcoded file name, which is fine fow now) 2024-08-29 00:05:30 +01:00
c40e8b98e0 slight renaming of constructors in FileMessage.t datatype, to provide more clarity (SAVE_TRIANGLES is for saving to a custom format, LOAD_TRIANGLES is for loading from a file in that custom format, and export is for generating code from custom format) 2024-08-28 20:47:40 +01:00
48c721e29b done with scaffolding for file mailbox; next, send message to file mailbox to export and import, and handle these messages properly from the file mailbox 2024-08-28 20:42:52 +01:00
e587c6cf73 preparation for adding new additional threads/mailboxes (namely, the file mailbox) 2024-08-28 20:11:00 +01:00
fb9202248c a little refactoring (different CML loops have their own files now) 2024-08-28 19:34:47 +01:00
0a4de92862 in C files where GLFW is included, #define GLFW_INCLUDE_NONE before GLFW is included in that file, because GLFW tries looking for <GL/gl.h> header otherwise, which is not on my system 2024-08-28 00:58:12 +01:00
1049f2b561 scaffolding in preparation for adding simple load/export/save functionality 2024-08-17 09:46:53 +01:00
3f4c52e0d8 upload new dots to GPU when there is a window resize too 2024-08-14 21:35:01 +01:00
abddddbc9e fix minor bug when resizing (resizing caused graph to be drawn and resized, even when graph was toggled off) 2024-08-14 03:54:52 +01:00
a3290337a0 done adding ability to toggle graph by pressing 'g' 2024-08-14 02:35:44 +01:00
9b639c9c53 progress towards toggling graph 2024-08-14 02:31:28 +01:00
575b8d009e amend order of Glfw.swapBuffers and Glfw.pollEvents in imperative shell (previous order polled events before swapping buffers which is not the intended order) 2024-08-14 02:00:07 +01:00
c740e5d751 delete shaders after linking them in program, which reduces memory by like 0.1 MB (very minor) 2024-08-14 01:43:53 +01:00
0c76edfde2 remove graph lines vector from app type, so the vector can be garbage collected (it is not really needed) 2024-08-13 23:49:34 +01:00
6878f7fa58 a little clean up (make the ClickPoints.getClickPosition easier for callers to use, because fewer arguments need to be passed) 2024-08-13 23:38:04 +01:00
1dccd14cfa rearrange dotscape.mlb a little 2024-08-13 23:28:21 +01:00
c475a06341 fix minor bug with undo (was meant to call TriangleStage.secondToVector with an initial empty vector in one case, for drawing, but mistakenly used a non-empty vector as initial) 2024-08-11 15:02:04 +01:00
d9c7b753f8 100/home/humza/Downloads/sml/dotscape/README.md done with undo/redo functionality (tested and both of them work as expected) 2024-08-08 23:52:49 +01:00
541fdd877f fix minor compiler errors 2024-08-08 23:45:24 +01:00
4d0d8ef0a1 done with functional-core logic for redo (now just need to send REDO_ACTION on key callback when shortcut is pressed) 2024-08-08 23:43:38 +01:00
10b3617689 add redo stack, and adjust functions to clear it when new triangle or triangle_stage is added; when an undo function is called, the undoHd becomes the redoHd, and undo becomes undoTl, which is expected behaviour. Still need to implement REDO_ACTION though. 2024-08-08 23:10:38 +01:00
4243e4c679 refactor a little bit, making signature of app-update.sml simpler to use by storing mouseX and mouseY inside the app_type 2024-08-08 21:58:50 +01:00
89f4ae3b13 undo implemented and working fine 2024-08-08 21:35:48 +01:00
5c7c61586a scaffolding in preparation for implementing undo 2024-08-08 06:34:40 +01:00
a53c5e1ce3 restore imperative shell 2024-08-08 05:56:20 +01:00
894dca2017 begin refactoring 2024-08-08 00:18:03 +01:00
ea5bbe2075 change clickable range 2024-08-06 07:38:46 +01:00
ef8852350c remove print statement which is now unnecessary 2024-08-03 12:07:24 +01:00
7a6722cf60 done with resize functionality 2024-08-03 07:10:38 +01:00
82db7521b4 amend clickPoints when windowHeight > windowWidth 2024-08-03 06:42:46 +01:00
0d1ea9444b refactor to allow graph lines to be shown at start up 2024-08-03 06:05:26 +01:00
ee2274ffbc improve generated graph lines, so it aligns perfectly with clickPoints (but there are two 'todo' notes: one when the height is greather than the width, and also the constant vector when the program starts is an empty vector) 2024-08-03 04:40:53 +01:00
5a14f5300b done with code to generate graph lines (but I still need to send new graph lines vector as a DrawMsg) 2024-08-03 02:56:45 +01:00
d946addb81 fix bug in wrong parameter sent to 'genClickPoints' function (code was previously sending 0, when it was meant to be passing the 'wStart' variable) 2024-08-03 02:48:00 +01:00
57c21448e7 add and improve code to generate graphLines dynamically 2024-08-03 02:31:35 +01:00
6c444696d4 progress with resizing (triangle and button are always horizontally centred if windowWidth is greater than windowHeight, or windowHeight is greather than windowWidth) 2024-08-02 13:35:48 +01:00
7a584fea3c progress towards resizing 2024-08-02 12:46:00 +01:00
cff2b4f8df progress towards resizing 2024-08-02 05:58:22 +01:00
98f6c63b05 correctly generate click points dynamically, even when window resolution is not a square 2024-08-02 03:09:59 +01:00
b01637ba3b a little refactoring 2024-08-02 00:05:24 +01:00