Kovid Goyal
5adc81e146
Skip colrv1 rendering on macOS
2025-02-03 11:06:41 +05:30
Kovid Goyal
d068a0a6de
Add basic colrv1 rendering test
2025-02-03 11:06:41 +05:30
Kovid Goyal
8bf8f5dc46
Finish up testing for multicell URL detection
2025-02-03 10:56:50 +05:30
Kovid Goyal
64e3b641ce
Get basic multicell URL detection working
2025-02-03 10:56:50 +05:30
Kovid Goyal
6a19918687
More work on multicell URL detection
2025-02-03 10:56:50 +05:30
Kovid Goyal
f599144913
Fix multicell marking of hyperlinks
2025-02-03 10:56:50 +05:30
Kovid Goyal
2423c2166e
More tests for multicell selections
2025-02-03 10:56:50 +05:30
Kovid Goyal
da1626090a
Update codebase to Python 3.10 using pyupgrade
2025-02-03 10:56:50 +05:30
Kovid Goyal
922d08516b
...
2025-02-03 10:56:50 +05:30
Kovid Goyal
ac1aaab077
More work of selections as text
2025-02-03 10:56:50 +05:30
Kovid Goyal
ac32f91a2e
Implement rendering of selections that intersect multicell cells
2025-02-03 10:56:49 +05:30
Kovid Goyal
dc5037ff37
Add tests for multicell char split between history and line buffers
2025-02-03 10:56:49 +05:30
Kovid Goyal
561686c9d4
Refactor rewrap code, again
...
Now we do the rewrap of history and line buffers together. This is
faster and deals with multiline chars split between the two buffers
correctly. Also, considerably simpler code.
2025-02-03 10:56:49 +05:30
Kovid Goyal
97449dfddb
Cursor tracking tests
...
Also fix extra x movement for tracked cursors
2025-02-03 10:56:49 +05:30
Kovid Goyal
c4a32862d1
Implement restitch during rewrap
...
Faster, less code and gets us multicell handling during restitching for
free.
2025-02-03 10:56:49 +05:30
Kovid Goyal
b3c39f4921
Finish up the redraw multicell tests
2025-02-03 10:56:49 +05:30
Kovid Goyal
001cc8009e
More multicell rewrap tests
2025-02-03 10:56:49 +05:30
Kovid Goyal
decafb0d3f
More multicell wrap tests
2025-02-03 10:56:49 +05:30
Kovid Goyal
cf5f6e97e8
Add some basic tests for multicell rewrap
2025-02-03 10:56:49 +05:30
Kovid Goyal
cf2fffaf95
Fix continuation char marking when rewrapping historybuf
2025-02-03 10:56:49 +05:30
Kovid Goyal
5b0e1b5b5c
Fix wrap marker when continuing to a new line with a multicell command
2025-02-03 10:56:48 +05:30
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