Commit Graph

1337 Commits

Author SHA1 Message Date
Kovid Goyal
95fbc6e9ba Forgot a couple of octants 2025-02-03 10:56:48 +05:30
Kovid Goyal
39dc31e021 Render the octant characters using box drawing 2025-02-03 10:56:48 +05:30
Kovid Goyal
c67475271f Remove box drawing python code 2025-02-03 10:56:48 +05:30
Kovid Goyal
bbcb7dc24c Fix cursor rendering when on first cell of multicell 2025-02-03 10:56:47 +05:30
Kovid Goyal
f67c58034c Add tests for ch_and_idx 2025-02-03 10:56:47 +05:30
Kovid Goyal
1707e603f3 Implement underline exclusion 2025-02-03 10:56:46 +05:30
Kovid Goyal
27c862970b Simplify sprite management code
Now if decorations are needed they are created *before* the index for
the sprite is assigned.
2025-02-03 10:56:46 +05:30
Kovid Goyal
b2a4db2028 Revert metadata row for sprites
Store in a separate VAO instead more performant as it uses less VRAM and
allows shader lookup co-ords to be passed to fragment shaders without
calculation in the fragment shader.
2025-02-03 10:56:45 +05:30
Kovid Goyal
9e9ab3e6f9 pass decorations location as sprite metadata 2025-02-03 10:56:45 +05:30
Kovid Goyal
5d195bf50b Give sprites a metadata row accessible in the shaders
Will allow sprites to point to where their decorations should be read
from, for instance. Needed for scaled text and also if we want to
implement decoration avoidance.
2025-02-03 10:56:45 +05:30
Kovid Goyal
0fb49f4139 Switch to using an index for sprite tracking
Frees up two bytes in GPUCell. Doesn't require a minimum texture row
size. Makes a bunch of code faster. Index uses 31 bits which gives us
2,147,483,647 aka ~ 2 billion sprites.
2025-02-03 10:56:45 +05:30
Kovid Goyal
87dea95a0e Fix rendering of scaled emoji 2025-02-03 10:56:45 +05:30
Kovid Goyal
27bcd96071 Tests for combining char on multicell 2025-02-03 10:56:45 +05:30
Kovid Goyal
06c428ba7b Fix drawing multiple chars where the second or later char is on a multicell 2025-02-03 10:56:45 +05:30
Kovid Goyal
4a0086b241 Fix vertical_align serialization 2025-02-03 10:56:45 +05:30
Kovid Goyal
5c2c88858b Implement reporting of multicell commands 2025-02-03 10:56:45 +05:30
Kovid Goyal
1aec299ad8 ... 2025-02-03 10:56:45 +05:30
Kovid Goyal
42e93d8caa More work on scaled font rendering 2025-02-03 10:56:44 +05:30
Kovid Goyal
3dca2687d8 Make font rendering tests use a text font rather than system font 2025-02-03 10:56:44 +05:30
Kovid Goyal
850dcec4d7 Allow multiple box rendering chars per cell 2025-02-03 10:56:44 +05:30
Kovid Goyal
073d5c7340 Add test for quarter blocks 2025-02-03 10:56:44 +05:30
Kovid Goyal
8030cbd361 Allow more subscales 2025-02-03 10:56:44 +05:30
Kovid Goyal
b1c80d212f Allow non-width multicell code to fill multiple cells using native width algo 2025-02-03 10:56:44 +05:30
Kovid Goyal
844d538e40 When drawing text, skip past multiline chars 2025-02-03 10:56:44 +05:30
Kovid Goyal
79a062466c Fix render_box_cell test with odd block height 2025-02-03 10:56:44 +05:30
Kovid Goyal
35946f9386 Improve performance of processing wide chars
Store multi cell data in the CPUCell rather than in TextCache.
This sends the CPUCell size back to 12 but in benchmarks ASCII
performance is untouched and Unicode performace goes back to what it was
before multicell
2025-02-03 10:56:44 +05:30
Kovid Goyal
383e1f8f57 Work on scaled rendering for box drawing chars 2025-02-03 10:56:43 +05:30
Kovid Goyal
394404a1ab Add multicell tests for various edit operations 2025-02-03 10:56:43 +05:30
Kovid Goyal
e10df382f8 Tests for erasing characters 2025-02-03 10:56:43 +05:30
Kovid Goyal
8f0d291500 Delete chars with multicell tests 2025-02-03 10:56:43 +05:30
Kovid Goyal
23bb053fb4 Insert chars with multicell tests 2025-02-03 10:56:43 +05:30
Kovid Goyal
1ed4a349be Clearance of multicell tests 2025-02-03 10:56:43 +05:30
Kovid Goyal
5e861ea5ac Start work on testing multicell commands 2025-02-03 10:56:43 +05:30
Kovid Goyal
b5dff921c4 Start work on multicell support 2025-02-03 10:56:43 +05:30
Kovid Goyal
4f0f9b9aff Fix #8262 2025-01-27 21:13:45 +05:30
Kovid Goyal
d7ce3eb66e Keyboard events: Fix turning on only the "Report all keys as escape codes" enhancement not reporting modifier+enter/tab/backspace using escape codes 2025-01-12 19:11:19 +05:30
Kovid Goyal
1eeea70c7a Allow dynamically generating configuration by running an arbitrary program using the new geninclude directive 2025-01-06 19:00:01 +05:30
Kovid Goyal
334adf9c1a Ensure temp files and other resources are cleaned up even if kitty crashes or is SIGKILLed 2025-01-05 12:51:59 +05:30
Kovid Goyal
25cb73511f Implement atexit.rmtree 2025-01-05 11:04:23 +05:30
Kovid Goyal
0d5bcff353 Tool to implement robust cleanups even on process crash 2025-01-05 10:50:50 +05:30
Kovid Goyal
dd249df5eb Dont encode enter, tab and backspace when lock mods are set
Otherwise user cant type reset when num lock is set.
2025-01-01 06:10:47 +05:30
Kovid Goyal
909bccb807 When mapping a custom kitten allow using shell escaping for the kitten path
Fixes #8178
2024-12-31 12:13:17 +05:30
Kovid Goyal
24a195c7c7 Graphics: Fix deletion of images by id not working for images with no placements 2024-12-24 09:39:01 +05:30
Kovid Goyal
8facaf4fa0 Graphics: Fix deleted but not freed images without any references being incorrectly freed on a subsequent delete command 2024-12-18 09:25:06 +05:30
Kovid Goyal
33207a57ba Add tests for consecutive conflicting variation selectors 2024-12-05 19:21:00 +05:30
Kovid Goyal
a4d2d933c9 Fix #8103 2024-12-05 19:19:15 +05:30
Kovid Goyal
8e388acab7 Add some cursor tracking tests 2024-11-27 20:33:56 +05:30
Kovid Goyal
778344a439 Fix enlarging window when a long line is wrapped between the first line of the scrollback buffer and the screen inserting a spurious newline
Fixes #7033
2024-11-27 20:08:27 +05:30
Kovid Goyal
cb2e1fcd04 Graphics protocol: Fix delete by number not deleting newest image with the specified number
Fixes #8071
2024-11-24 10:11:34 +05:30
Kovid Goyal
0eaf44d33d Add tests for strip_csi with multibyte 2024-11-24 09:28:21 +05:30