Commit Graph

15554 Commits

Author SHA1 Message Date
Kovid Goyal
39dc31e021 Render the octant characters using box drawing 2025-02-03 10:56:48 +05:30
Kovid Goyal
4a845f840d Scale multicell box char line thickness 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
6a18db45f0 Finish porting of box drawing chars to C 2025-02-03 10:56:48 +05:30
Kovid Goyal
95e64a023f More box chars 2025-02-03 10:56:48 +05:30
Kovid Goyal
9426ed0140 More box chars 2025-02-03 10:56:48 +05:30
Kovid Goyal
a726e4af90 More box chars 2025-02-03 10:56:48 +05:30
Kovid Goyal
7bd0b46a71 More box chars 2025-02-03 10:56:48 +05:30
Kovid Goyal
68167b9ddb More box chars 2025-02-03 10:56:48 +05:30
Kovid Goyal
0bd5ba50b6 More box chars 2025-02-03 10:56:47 +05:30
Kovid Goyal
0d80d24c58 ... 2025-02-03 10:56:47 +05:30
Kovid Goyal
b409205dd8 More box chars 2025-02-03 10:56:47 +05:30
Kovid Goyal
947e934761 More box chars 2025-02-03 10:56:47 +05:30
Kovid Goyal
a1ce619b92 More work on box drawing 2025-02-03 10:56:47 +05:30
Kovid Goyal
596cbf0cef ... 2025-02-03 10:56:47 +05:30
Kovid Goyal
32fbe89709 More work on box drawing porting 2025-02-03 10:56:47 +05:30
Kovid Goyal
e047a9c66d More work on box char porting 2025-02-03 10:56:47 +05:30
Kovid Goyal
46eefef54b ... 2025-02-03 10:56:47 +05:30
Kovid Goyal
9f0a3611cb Log an error for unknown box drawing chars 2025-02-03 10:56:47 +05:30
Kovid Goyal
fdb9b17943 start work on porting box drawing to C 2025-02-03 10:56:47 +05:30
Kovid Goyal
ec3a6cc26e Fix disabling of ligatures under cursor in multicell 2025-02-03 10:56:47 +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
72d88e75aa Always zero memory from arena 2025-02-03 10:56:47 +05:30
Kovid Goyal
dc1bed1bd1 Use XXHash for hash table hashing of arbitrary sized keys
Much faster than FNV
2025-02-03 10:56:46 +05:30
Kovid Goyal
b602915d5b ... 2025-02-03 10:56:46 +05:30
Kovid Goyal
b7e8d6d103 Use an arena for TextCache as well 2025-02-03 10:56:46 +05:30
Kovid Goyal
1047142ee0 ... 2025-02-03 10:56:46 +05:30
Kovid Goyal
0902f6aee0 Use an arena allocator for the sprite position map 2025-02-03 10:56:46 +05:30
Kovid Goyal
d781c671a1 Fix rendering of scaled url exclusions 2025-02-03 10:56:46 +05:30
Kovid Goyal
08d03a3e3a ... 2025-02-03 10:56:46 +05:30
Kovid Goyal
81a5f29979 Option to control underline exclusion 2025-02-03 10:56:46 +05:30
Kovid Goyal
1707e603f3 Implement underline exclusion 2025-02-03 10:56:46 +05:30
Kovid Goyal
eb322913c3 Remove a switch in the cell vertex shader 2025-02-03 10:56:46 +05:30
Kovid Goyal
e8fa5a3717 ... 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
70b0aecf32 Track the underline region for every decoration group 2025-02-03 10:56:46 +05:30
Kovid Goyal
b249fba93d misc fixes for decoration rendering 2025-02-03 10:56:46 +05:30
Kovid Goyal
c3361cd26b ... 2025-02-03 10:56:46 +05:30
Kovid Goyal
3f04b31725 Fix build on older compiler 2025-02-03 10:56:46 +05:30
Kovid Goyal
88f796a94c Read decorations indices from a separate texture 2025-02-03 10:56:45 +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
6a169eedd5 Move decorations drawing code to C form Python
Makes it faster and easier to call from C
2025-02-03 10:56:45 +05:30
Kovid Goyal
9f84c32808 Make undercurl_style available to C code 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
203a5f4e00 ... 2025-02-03 10:56:45 +05:30
Kovid Goyal
06f2e64cff Remove duplicated data 2025-02-03 10:56:45 +05:30
Kovid Goyal
87dea95a0e Fix rendering of scaled emoji 2025-02-03 10:56:45 +05:30