5888 Commits

Author SHA1 Message Date
Mitchell Hashimoto
019f1e34bb metal: copy screen data (see opengl commit for why) 2022-11-13 17:29:23 -08:00
Mitchell Hashimoto
3fcdd9a196 fix outdated test 2022-11-13 16:25:50 -08:00
Mitchell Hashimoto
333ff1e634 opengl: handle screen resize outside of critical area 2022-11-13 16:19:38 -08:00
Mitchell Hashimoto
f1c69343d3 opengl: copy screen data instead of sharing state
Through benchmarking I've determined this lowers lock contention by
about 50% on the critical data.
2022-11-13 16:16:08 -08:00
Mitchell Hashimoto
81fbc94b3c Add a benchmark exe for testing parser throughput 2022-11-13 11:29:05 -08:00
Mitchell Hashimoto
445ca8998f cli args without arena 2022-11-13 11:21:12 -08:00
Mitchell Hashimoto
ce85d9a2cd add more tracing, unroll a loop 2022-11-08 19:15:14 -08:00
Mitchell Hashimoto
d1718e6cbf use libc memcpy/memmove instead of std.mem if available 2022-11-08 19:01:45 -08:00
Mitchell Hashimoto
a471eaf980 drop a couple function calls and optimize scrolling a bit 2022-11-08 18:35:19 -08:00
Mitchell Hashimoto
306ab947e7 implement region scrolling directly in screen to use memcpy
This doubles scroll region scrolling speed.
2022-11-08 17:35:15 -08:00
Mitchell Hashimoto
8a871e1294 missing trace 2022-11-08 13:57:12 -08:00
Mitchell Hashimoto
c1a9184ebd sgr: parse italic (render not implemented) 2022-11-07 14:04:40 -08:00
Mitchell Hashimoto
73c4395fc2 add more traces 2022-11-07 07:59:47 -08:00
Mitchell Hashimoto
5b52333e51 name threads and add more tracing 2022-11-07 07:45:46 -08:00
Mitchell Hashimoto
9ee5a5c715 implement ESC c -- full reset 2022-11-06 18:59:17 -08:00
Mitchell Hashimoto
e7c5cbf758 throttle cursor reset, under heavy IO this would slow things down 2022-11-06 18:44:35 -08:00
Mitchell Hashimoto
c602820dc9 Set proper keybinds 2022-11-06 17:27:17 -08:00
Mitchell Hashimoto
fd304c9338 Deinit devmode more cleanly 2022-11-06 17:26:01 -08:00
Mitchell Hashimoto
135b859b8f raise max file descriptors on launch 2022-11-06 16:38:33 -08:00
Mitchell Hashimoto
e0db46ac97 clean up some resources better on error 2022-11-06 16:23:36 -08:00
Mitchell Hashimoto
05cd77e7cf DevMode only renders on first window 2022-11-06 16:06:34 -08:00
Mitchell Hashimoto
705772ed28 termio: clean up error handling for kill 2022-11-06 15:26:18 -08:00
Mitchell Hashimoto
c9b01fdc6c support app quitting to close all windows 2022-11-06 14:10:28 -08:00
Mitchell Hashimoto
ac6f960b92 termio: on deinit, send SIGHUP to child process to exit it 2022-11-06 14:08:42 -08:00
Mitchell Hashimoto
be76bc6c1a close window action 2022-11-06 10:44:23 -08:00
Mitchell Hashimoto
410b2b4486 Do not block on app mailbox 2022-11-06 10:41:57 -08:00
Mitchell Hashimoto
ecbd119654 Hook up new window, modify renderers 2022-11-06 10:34:43 -08:00
Mitchell Hashimoto
a2edbb4698 App prepare for multi-window 2022-11-06 10:05:08 -08:00
Mitchell Hashimoto
91d165f4f9 delete unused comment 2022-11-06 09:41:59 -08:00
Mitchell Hashimoto
8f1fcc64e8 rename termio thread message struct 2022-11-05 19:34:41 -07:00
Mitchell Hashimoto
cd705359e8 Window thread is now single event loop! 2022-11-05 19:31:28 -07:00
Mitchell Hashimoto
746858cea6 implement cursor reset when data comes in pty 2022-11-05 19:31:28 -07:00
Mitchell Hashimoto
aa98e3ca3a Move cursor timer to renderer 2022-11-05 19:31:28 -07:00
Mitchell Hashimoto
e2d8ffc3c1 renderer mailbox, focus message 2022-11-05 19:31:28 -07:00
Mitchell Hashimoto
9a44e45785 bug: assume focused on launch 2022-11-05 19:31:28 -07:00
Mitchell Hashimoto
95d054b185 allocate data for paste data if its too large 2022-11-05 19:31:28 -07:00
Mitchell Hashimoto
8652b2170e fix deadlock with mouse reports 2022-11-05 19:31:28 -07:00
Mitchell Hashimoto
90061016df field rename 2022-11-05 19:31:28 -07:00
Mitchell Hashimoto
a05b08fdc7 move bracketed paste to terminal state 2022-11-05 19:31:28 -07:00
Mitchell Hashimoto
57b4c73bb2 remove unused fields on Window 2022-11-05 19:31:28 -07:00
Mitchell Hashimoto
f2d9475d5d Switch over to the IO thread. A messy commit! 2022-11-05 19:31:26 -07:00
Mitchell Hashimoto
5cb6ebe34d Actually, we'll manage selection and viewports on the windowing thread 2022-11-05 19:31:02 -07:00
Mitchell Hashimoto
989046a06c More IO events 2022-11-05 19:31:02 -07:00
Mitchell Hashimoto
1a7b9f7465 termio: clear selection 2022-11-05 19:31:02 -07:00
Mitchell Hashimoto
f1d2df1a54 fully hook up resize 2022-11-05 19:31:02 -07:00
Mitchell Hashimoto
b100406a6e termio: start the thread mailbox, hook up resize 2022-11-05 19:31:02 -07:00
Mitchell Hashimoto
a8e7c52041 IO thread can trigger render and write data 2022-11-05 19:31:02 -07:00
Mitchell Hashimoto
d916d56bff IO thread stream handler is in, lots of commented TODOs 2022-11-05 19:31:02 -07:00
Mitchell Hashimoto
9b3d22e55e IO thread has more state setup 2022-11-05 19:31:02 -07:00
Mitchell Hashimoto
35c1decd58 Start pulling out IO thread and IO implementation 2022-11-05 19:31:02 -07:00