4361 Commits

Author SHA1 Message Date
Mitchell Hashimoto
ab305add6c any event mouse tracking 2022-08-26 14:26:42 -07:00
Mitchell Hashimoto
bd5dd69538 normal event (motion) mouse tracking 2022-08-26 14:17:42 -07:00
Mitchell Hashimoto
9aa5378ffa Track/cache button state and mods state 2022-08-26 13:55:24 -07:00
Mitchell Hashimoto
a4bab6592d normal events can now track scroll 2022-08-26 12:25:33 -07:00
Mitchell Hashimoto
3096b32f13 mouse normal events in x10 format 2022-08-26 12:17:58 -07:00
Mitchell Hashimoto
93f45af41b X10 click-only mouse reporting 2022-08-26 12:04:54 -07:00
Mitchell Hashimoto
43b7727cf8 change u1 in mode to bool 2022-08-26 11:27:44 -07:00
Mitchell Hashimoto
f9274bdafc define mouse events, all TODO 2022-08-26 11:14:34 -07:00
Mitchell Hashimoto
dc6fc5c1c3 implement faint colors (SGR 2) 2022-08-26 11:13:34 -07:00
Mitchell Hashimoto
65df657b4e make cell attrs bools instead of u1s 2022-08-26 11:09:48 -07:00
Mitchell Hashimoto
469515c02b bind function keys (F1 to F12) 2022-08-26 10:27:41 -07:00
Mitchell Hashimoto
4ffd5cd994 SGR 39/49 (reset fg/bg, respectively) 2022-08-26 09:56:17 -07:00
Mitchell Hashimoto
a1130095f8 note charsets are TODO 2022-08-26 09:27:51 -07:00
Mitchell Hashimoto
c7a5045bd4 missed comment 2022-08-25 16:24:20 -07:00
Mitchell Hashimoto
84b75967a2 scale the cursor position from screen coords to pixels 2022-08-25 16:09:54 -07:00
Mitchell Hashimoto
a9b34b43c5 code for getting physical DPI
we don't need it but I want to put it in Git history
2022-08-25 15:53:29 -07:00
Mitchell Hashimoto
9601920b4d font size is now in font points, determine size based on window DPI 2022-08-25 12:29:28 -07:00
Mitchell Hashimoto
46bbab5d10 ignore zero-width characters for now 2022-08-24 13:48:22 -07:00
Mitchell Hashimoto
f4b1783c1f atlas tracks modified/resize state, reallocate on GPU if resized 2022-08-24 12:41:31 -07:00
Mitchell Hashimoto
d8248ef0ae fix data corruption on growing the Atlas 2022-08-24 12:14:02 -07:00
Mitchell Hashimoto
5713c2f468 move input test to qualified 2022-08-24 11:17:28 -07:00
Mitchell Hashimoto
3b5a9caff5 hook up more control keys: home, end, page up, page down 2022-08-24 11:16:36 -07:00
Mitchell Hashimoto
80376ce6da hook up keybindings for copy/paste and arrow keys 2022-08-24 11:08:39 -07:00
Mitchell Hashimoto
e6f09093dd unify non-printables up by bindings 2022-08-24 10:21:27 -07:00
Mitchell Hashimoto
b33268cee3 only handle non-printables on press/release, and BS is 0x7F 2022-08-24 10:18:05 -07:00
Mitchell Hashimoto
622537d665 look up keybindings on keypress, clean up how non-printables are handled 2022-08-24 10:02:13 -07:00
Mitchell Hashimoto
2800a46854 keybind parsing in CLI args 2022-08-24 09:31:14 -07:00
Mitchell Hashimoto
222f70857a move input stuff to src/input 2022-08-23 19:52:14 -07:00
Mitchell Hashimoto
bc9f81e8d2 binding parse action with parameter 2022-08-23 17:48:52 -07:00
Mitchell Hashimoto
7303909d01 key.Binding and basic parsing 2022-08-23 17:40:36 -07:00
Mitchell Hashimoto
5d8915cc9a remove unused zig file 2022-08-23 15:30:13 -07:00
Mitchell Hashimoto
5c61bfbe8f fix stage2 compiler error 2022-08-21 21:38:24 -07:00
Mitchell Hashimoto
ec288d9111 get rid of assertions because its possible they're false 2022-08-20 17:21:14 -07:00
Mitchell Hashimoto
561bbca053 don't render wide char trailers 2022-08-20 17:17:13 -07:00
Mitchell Hashimoto
28072157d5 selection of wide chars and copy/paste works 2022-08-20 17:10:10 -07:00
Mitchell Hashimoto
8a1d7070b3 render wide chars 2022-08-20 16:49:55 -07:00
Mitchell Hashimoto
da79aae0ab terminal: print wide characters 2022-08-20 16:11:48 -07:00
Mitchell Hashimoto
f93e9eedb3 font: move codepoint into a public API 2022-08-20 10:50:37 -07:00
Mitchell Hashimoto
813f11a5eb fix crash that could happen looking up fallback 2022-08-20 10:37:12 -07:00
Mitchell Hashimoto
c29f4cace6 remove the font style fallback for the fallback set 2022-08-20 10:37:12 -07:00
Mitchell Hashimoto
43c61f57ef font FallbackSet for looking up in fallback TTFs (emoji) 2022-08-20 10:37:12 -07:00
Mitchell Hashimoto
22ed65a818 really hacked in emoji support, time to clean it up 2022-08-20 10:37:11 -07:00
Mitchell Hashimoto
3d6ca0e423 font face supports loading color fonts (emoji!) 2022-08-20 10:37:11 -07:00
Mitchell Hashimoto
f9313801f1 avoid an alloc and buffer copy in the common case on font loading 2022-08-19 15:12:57 -07:00
Mitchell Hashimoto
742dd010eb Texture atlas supports variable color depth, not just greyscale 2022-08-19 14:37:22 -07:00
Mitchell Hashimoto
eeaad799e5 get rid of Z buffer stuff
This optimization will take more work, and we already got a lot of the
way there by optimizing how we send data down to the GPU.
2022-08-19 13:48:34 -07:00
Mitchell Hashimoto
2351f88631 updateCell sets the proper Z value and bumps it 2022-08-19 13:34:07 -07:00
Mitchell Hashimoto
73e43b6e64 Grid supports sending partial cell updates to GPU 2022-08-19 12:54:07 -07:00
Mitchell Hashimoto
4ca45936f7 Only reallocate the GPU buffer if our CPU capacity changes
Previously, every single render was re-allocating a fairly large (~1MB)
buffer on the GPU. The recommended best practice is to allocate once and
then use `glBufferSubData` to update the memory in-place on the GPU.

We now track the last size we sent to the GPU, compare it to our copy on
the CPU, and if it _grows_ then we reallocate the GPU buffer. If it
shrinks we leave the GPU as-is for now. After this, we use the sub-data
routines to update the data in place.
2022-08-19 10:26:23 -07:00
Mitchell Hashimoto
390d95a5af Enable depth buffer, add depth to shader 2022-08-19 10:07:30 -07:00