Commit Graph

1110 Commits

Author SHA1 Message Date
00df20042a update gitignore to ignore shf-glfw and shf-rgfw test files 2026-01-23 21:10:01 +00:00
faa15866f8 seems like 'NormalYankDelete' functions need to yank one character more than the deletion range, so implement that, and make note to add tests for that module 2026-01-23 21:08:12 +00:00
8b46f1edfc make sure that characters sent from RGFW to mlton char callback are shifted if shift is held 2026-01-23 21:05:12 +00:00
238e6f8907 mostly done implementing callbacks for rgfw 2026-01-23 20:53:37 +00:00
2b383ce756 change if statement in keyCallback (on C side) to a switch statement, so adding more cases becomes easier 2026-01-23 15:09:43 +00:00
0b91362fd1 fix compile error for rgfw shell. The compile error was on the C side, and was caused by a dependency (<GL/glx.h>) having the typedef 'Bool', and the mlton-generated export headers also having a typedef 'Bool' with the same name. The solution for this project is just to delete the typedef from the mlton-generated headers. 2026-01-23 14:56:55 +00:00
8d68bcbd13 remove duplicate '<stdboo.h>' include in ffi/glfw-export.c, and disambiguate mlton-generated export file for GLFW shell further (by prepending 'mlton-' to the file) 2026-01-23 13:37:13 +00:00
a8f69bec06 disambiguate exports (rename 'export.h' to 'glfw-export.h' because now we are beginning to add RGFW as a back-end with its own separate exports) 2026-01-23 13:10:34 +00:00
e18032dcc8 checkpoint (seem to have encountered an FFI bug?) 2026-01-23 12:52:47 +00:00
609c30bef5 mark 'Rgfw.swapBuffers' as reentrant, because calling this function will likely trigger the registered key callbacks 2026-01-23 11:16:14 +00:00
a89bb8fa5f consume events in RGFW loop. (Next: react to input events.) 2026-01-23 11:13:33 +00:00
b4573441fb progrfess scaffolding rgfw (next: consume events and add callbacks for events) 2026-01-23 10:55:43 +00:00
df20641af1 refactor functional core into its own .mlb file that can be shared across different shells 2026-01-23 10:08:57 +00:00
13d4989792 additional scaffolding for making RGFW main loop 2026-01-23 10:04:44 +00:00
e7ab53310e ffi progress 2026-01-23 09:47:27 +00:00
dee5e72f39 add rule to Makefile to run RGFW build more quickly 2026-01-22 21:38:15 +00:00
d0f9220cfe progress binding RGFW and making RGFW shell 2026-01-22 21:02:22 +00:00
e0c09c5480 begin adding bindings to rgfw window library 2026-01-22 02:00:57 +00:00
5eb94f5ccb remove shell/shell.sml and merge its contents into shell/glfw-loop.sml, because shell.sml used to set up and initialise GLFW before calling the main loop. We may want to add additional back-ends later instead, so it's better to keep names specific to the windowing library or platform. 2026-01-22 00:57:21 +00:00
9ef8231b8b separate OpenGL drawing from GLFW loop in imperative shell, so that other windowing libraries can call the same OpenGL functions. 2026-01-22 00:04:22 +00:00
a8104131ca add bindings for d-pad directions 2026-01-21 22:45:19 +00:00
2d1bcf28f7 progress reimplementing gamepad support 2026-01-21 21:03:20 +00:00
50868b830b implement actions for TRIANGLE mode in glfw-gamepad.sml 2026-01-21 20:50:04 +00:00
0679f4154e begin refactoring shell/glfw-gamepad.sml. (Most functions inside that file are pure now, and I think a 'modal' approach to the face buttons would be better/more ergonomic.) 2026-01-21 20:38:13 +00:00
96fe9cea0d update todo.md notes with next steps to focus on 2026-01-20 09:13:03 +00:00
214ea67b76 add gamepad-bindings for escape key 2026-01-20 09:08:11 +00:00
e2454b1093 handle l2 and r2 2026-01-20 09:01:41 +00:00
9962232f83 implemented l2 and r2 mostly (except for some to-do items mentioned in comments) 2026-01-20 08:32:29 +00:00
38e31b2097 amend l1 (previous commit only amended r1) 2026-01-20 08:02:58 +00:00
755d69675f fix how l1 and r1 buttons should be handled (previously, we weren't saving the relevant state to true when they were pressed, but now we are) 2026-01-20 08:02:14 +00:00
ff33812b27 done with handling for gamepad's face buttons; next, handle r2 and l2 buttons 2026-01-20 07:56:04 +00:00
73d30bfb1f progress implementing SML-side handling of controller 2026-01-20 07:10:15 +00:00
f2bffc4b6b add bindings to query gamepad's face buttons 2026-01-20 04:19:26 +00:00
6f89fbc89c begin binding gamepad functions from GLFW to SML 2026-01-19 13:23:47 +00:00
c6dee6e9f9 implement function that deletes from both LineGap.t and SearchList, maintaining an exact match between both 2026-01-18 09:59:00 +00:00
5e3e8b39b1 add function in PersistentVector to insert a match while keeping same absolute indices (to be used when a new match appears after a deletion) 2026-01-18 08:52:38 +00:00
29d84a9f9f done adding tests for 'PersistentVector.delete' function 2026-01-18 08:08:45 +00:00
185ef3fc12 done implementing 'PersistentVector.merge', which means that 'PersistentVector.delete' is now complete. (Todo: test 'PersistentVector.delete'.) 2026-01-18 06:58:41 +00:00
79a0c95a58 implement another case for 'PersistentVector.merge': merge when right depth is greater than left depth 2026-01-18 06:52:49 +00:00
7b05490812 progress implementing 'PersistentVector.merge' for case where left subtree and right subtree have same depth 2026-01-18 06:40:22 +00:00
66d672505a fix calculation of number to decrement by in 'PersistentVector.delete', after additional test showed that calculation resulted in incorrect metadata. (Todo: just implement function to merge left and right subtrees.) 2026-01-18 00:27:03 +00:00
83bb852ae2 add another test for 'PersistentVector.delete 2026-01-17 23:45:20 +00:00
1c947eab7d add a test for 'PersistentVector.delete' (even though the 'PersistentVector.merge' helper function is unimplemented) 2026-01-17 23:27:36 +00:00
ee58556bde progress implementing 'PersistentVector.delete'. (Todo: implement function to merge left and right vectors.) 2026-01-17 23:14:05 +00:00
b84713a98e add 'PersistentVector.countDepth' function, which is meant to count the depth, and is to be used for deletion 2026-01-17 22:51:06 +00:00
4280f580a2 add function to decrement persistent-vector.sml. (The plan is to split the left and right, and then decrement the right metadata so that the absolute indices match.) 2026-01-17 22:46:08 +00:00
98ec1fbee6 fix another size-recalculation mistake in 'PersistentVector.splitRight' function. (When we are splitting in the middle of a BRANCH, we want to subtract the old child size from the remainder, and then add the new child size to the remainder, because this calculation will account for the splitting of preceding elements.) 2026-01-16 22:40:38 +00:00
e52d4856ee amend recalculation of size metadata in 'PersistentVector.splitRIght: we always want to decrement by prevSize in this function. (We will have another function call to decrement so that left split and right split represent the same absolute indices when they are joined, before they are split.) 2026-01-16 22:31:43 +00:00
ddcb0ea56d finish initial implementation for 'PersistentVector.splitRight' 2026-01-16 22:16:44 +00:00
eb316d7be2 begin implementation of PersistentVector.splitRight function 2026-01-16 21:58:59 +00:00