Commit Graph

95 Commits

Author SHA1 Message Date
900343203a enable vsync in rgfw shell, to majorly decrease cpu usage 2026-01-23 23:20:40 +00:00
238e6f8907 mostly done implementing callbacks for rgfw 2026-01-23 20:53:37 +00:00
e18032dcc8 checkpoint (seem to have encountered an FFI bug?) 2026-01-23 12:52:47 +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
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
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
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
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
6f89fbc89c begin binding gamepad functions from GLFW to SML 2026-01-19 13:23:47 +00:00
05961a460c adjust colours to be same as 'morning' theme in neovim 2025-10-17 23:37:09 +01:00
111e0cf66d remove usage of concurrent ml, deciding that we prefer to run everything in the main thread instead 2025-10-17 23:08:16 +01:00
7676556513 fix failing test for 'd$' motion, which means completing tests for 'd$' motion too 2025-10-16 12:07:27 +01:00
f804a2a9fc add tests for 'd$' motion, including one failing test whose implementation needs to be fixed 2025-10-16 12:02:20 +01:00
108e021fdb log an exception if search-thread encounters a failure 2025-10-08 06:51:52 +01:00
4d1b2073dc reimplement functionality to run whole text search using DFA 2025-10-08 06:40:20 +01:00
5c8e74ac11 change type of SEARCH message to take a DFA, instead of a searchString 2025-10-08 05:54:19 +01:00
2c388899ca use different colours for program 2025-09-27 08:00:21 +01:00
169f96f459 fix exception when the buffer is empty 2025-09-16 04:35:49 +01:00
53a4265b07 add back a way to trigger exceptions manually to cause a logging error 2025-09-13 01:47:57 +01:00
77a64ae794 previously forgot to draw char in text builder, but we do that now 2025-09-12 14:02:38 +01:00
2e0f749229 adjust imperative shell to use xyz coordinates for position, instead of simply xy; need to ensure the functional core code outputs a vector in this format too 2025-09-11 01:43:23 +01:00
781691060c begin refactoring code to use a single vertex buffer for all shapes 2025-09-11 01:31:19 +01:00
fee8ba5207 set preemptive scheduling time to change threads every 555 microseconds, instead of every 20 milliseoncds (which was the default) 2025-09-10 01:58:35 +01:00
95a07bcd92 rename 'UpdateThread' structure to 'Updater', because it is no longer a separate thread 2025-09-10 01:44:25 +01:00
6961a76471 done merging draw thread with update thread 2025-09-10 01:41:59 +01:00
dc3009bf54 create separate mailbox structures for draw and input messages, because our plan is to: 'handle input + drawing on a single thread' 2025-09-10 01:04:56 +01:00
299735f500 only update search list if timestamp for search message is greater than the buffer's modified time 2025-09-07 13:37:14 +01:00
f3c1905c0c when constructing SEARCH message, include time in the message as well. This will enable us to ignore any messages when we have a 'later' state available. 2025-09-07 13:24:41 +01:00
ea38e95e6b add a few additional motions to be parsed by yank 2025-09-02 03:07:50 +01:00
72e3b59bb7 because GLFW at this time has clipboard bugs on Wayland (setting clipboard string), we print out whenever the shell receives a 'yank' message indicating for GLFW to copy. This will let us test that the correct string is yanked. 2025-09-02 02:18:14 +01:00
a10e56935e scaffolding for arrow-movement functionality 2025-09-01 11:23:45 +01:00
f4a4dd9161 scaffolding for backspace functionality 2025-09-01 02:52:05 +01:00
a86befdea8 a bit of refactoring 2025-08-31 06:28:05 +01:00
542da2229c a little additional scaffolding for normal mode 2025-08-31 02:41:37 +01:00
a9fda7d88b change text building function in text-builder.sml to use the 'startX' and 'startY' fields added to the environment type 2025-08-31 01:38:42 +01:00
83e062eb60 fix visual bug resulting from 'TextBuilder.buildTextStringSearch' function. When we have a search string 'abc' and a file 'abcabc', there are two matches and it should also look like there are two matches, but it did not look like there were two matches prior to this commit. This commit fixes that by advancing the search position before adding to the text accumulator. 2025-08-31 00:05:48 +01:00
2b3f0405c6 reimplement search-range functionality to scan range from the string from left to right 2025-08-30 23:31:55 +01:00