Commit graph

4092 commits

Author SHA1 Message Date
Kovid Goyal
085bc09dfb
Micro-optimization 2021-02-15 16:24:04 +05:30
Kovid Goyal
886309850f
Dont add alpha when rendering alpha mask on canvas
Instead use the larger of the two alphas. This gives better results
for overlapping text, such as the infinite length ligature glyphs used
by FiraCode. I dont think adding ever gave better results anyway.
2021-02-15 16:08:06 +05:30
Kovid Goyal
ba005e991a
Improve handling of infinite length ligatures in newer versions of FiraCode and CascadiaCode.
Now such ligatures are detected based on glyph naming convention.
This removes the gap in the ligatures at cell boundaries. However, at
least in Fira Code the infinite length ligature glyphs define a negative
left side bearing. This means they overlap when drawn consecutively,
leading to unsightly bumps at the joins.

Fixes #2695
2021-02-15 15:49:09 +05:30
Kovid Goyal
912c46fc57
Fix rendering of ligatures in the latest release of Cascadia code
For some reason it puts empty glyphs after the ligature glyph rather than before it.
There is a possibility this fix might break something else, we will see.
Fixes #3313
2021-02-15 11:57:57 +05:30
Kovid Goyal
5675944c0c
Recognize remaining ASCII keys for legacy mode as well 2021-02-15 05:33:57 +05:30
Kovid Goyal
19b882a0bd
Also handle : as a legacy ASCII key
Fixes #3315
2021-02-15 05:24:21 +05:30
Kovid Goyal
323d5dba7e
SingleKey parsing requires ASCII lowercase 2021-02-15 04:55:51 +05:30
Kovid Goyal
fbcdf352ac
Allow resizing of OS Window framebuffers to a single cell
This is much smaller than before and essentially works around the issue
of the text being scaled when the window is resized to small sizes. Also
has the nice side effect of making the code simpler for the panel
kitten. Fixes #3307
2021-02-14 22:17:41 +05:30
Kovid Goyal
015fe9054e
Fix shifted keys not matching shortcuts in kittens
Broke after keyboard refactoring for new keyboard protocol. Now a key
event will match a shortcut specification if either the mods and key
match or mods without shift and shifted key match. Fixes #3314
2021-02-14 07:52:08 +05:30
Kovid Goyal
de0f225c45
Fix #3299 2021-02-09 22:10:40 +05:30
Kovid Goyal
4541cf8807
Another CodeQL warning 2021-02-05 10:41:35 +05:30
Kovid Goyal
fe07306ff1
Use a nicer decorator for functions that only need to be run once 2021-02-05 10:40:52 +05:30
Kovid Goyal
726d736aac
Type check return value of cache_dir 2021-02-05 10:34:17 +05:30
Kovid Goyal
db0360dc81
Fix a bunch of CodeQL warnings 2021-02-05 10:05:54 +05:30
Kovid Goyal
0e483f81ac
Compat for python < 3.8 2021-02-05 09:23:54 +05:30
Kovid Goyal
e969dea3b7
Remove unused function 2021-02-05 09:20:58 +05:30
Kovid Goyal
95dc87cf04
Prevent stack overflows when recursing to coalesce frames 2021-02-05 09:12:08 +05:30
Kovid Goyal
7a1785e1e8
Get chunked loading working with frames 2021-02-04 21:04:44 +05:30
Kovid Goyal
5d2baaac38
... 2021-02-04 17:52:18 +05:30
Kovid Goyal
b479510f6c
Allow controlling the number of loops in icat 2021-02-04 17:47:53 +05:30
Kovid Goyal
83b8c8ea12
Reduce frequency of key frames slightly 2021-02-04 17:08:06 +05:30
Kovid Goyal
a447ba7d76
Fix typo in coalesce function causing incorrect coalesce for more than one level of recursion 2021-02-04 16:50:13 +05:30
Kovid Goyal
450e1c2f95
Use key frames for performance 2021-02-04 16:20:30 +05:30
Kovid Goyal
cf3a01f502
Handle images whose first frame is smaller than the canvas 2021-02-04 15:57:49 +05:30
Kovid Goyal
2650c7dd9e
Avoid calculation when over px is transparent 2021-02-04 14:26:10 +05:30
Kovid Goyal
f18a56682f
Fix animations not resuming when OS window is hidden and then shown 2021-02-04 13:34:27 +05:30
Kovid Goyal
af94e07618
Cache exe lookups 2021-02-04 11:36:59 +05:30
Kovid Goyal
b72dbc973d
Allow controlling how many times an animation will loop 2021-02-03 20:54:43 +05:30
Kovid Goyal
2dad179285
... 2021-02-03 16:00:31 +05:30
Kovid Goyal
19f0e2303d
Refactor to store frame deltas instead of fully coalesced frames
Trades CPU usage for cache/memory space
2021-02-03 15:49:33 +05:30
Kovid Goyal
c152624634
Rename state variable to be closer to its actual purpose 2021-02-02 09:00:28 +05:30
Kovid Goyal
212906cf7d
gap should be gap to next frame not gap from previous frame
Matches usage in the GIF format and makes the concept of gapless
clearer.
2021-02-01 17:08:59 +05:30
Kovid Goyal
bb5c5a8e4f
Allow gapless frames 2021-02-01 16:22:36 +05:30
Kovid Goyal
9cf5348c36
Modify ImageMagick wrapper to handle animated images 2021-02-01 14:12:26 +05:30
Kovid Goyal
8fa737f01c
Rescan for animated images on various events 2021-01-31 20:58:43 +05:30
Kovid Goyal
f16e22fbec
Forgot to convert gaps to monotonic_t 2021-01-31 20:58:43 +05:30
Kovid Goyal
19e0406459
Wire up animation state tracking 2021-01-31 20:58:43 +05:30
Kovid Goyal
354d7c2740
... 2021-01-31 20:58:42 +05:30
Kovid Goyal
00edb6058e
Start work on implementing frame transitions
Also ensure that the correct OS Window is current when uploading images
to GPU.
2021-01-31 20:58:42 +05:30
Kovid Goyal
597267d1d0
root frame gap should be set to the gap of the first received frame 2021-01-31 20:58:42 +05:30
Kovid Goyal
ad4665e638
Add support for newer keys to GraphicsCommand serializer 2021-01-31 20:58:42 +05:30
Kovid Goyal
b21850dd15
Implement updating of current frame on GPU 2021-01-31 20:58:42 +05:30
Kovid Goyal
5eba754c60
Implement animation control escape codes 2021-01-31 20:58:42 +05:30
Kovid Goyal
b35084062d
Remove old data from cache when re-using image objects 2021-01-31 20:58:42 +05:30
Kovid Goyal
1d20472759
Avoid a cache move when deleting frames 2021-01-31 20:58:42 +05:30
Kovid Goyal
c0e336a971
DRYer 2021-01-31 20:58:42 +05:30
Kovid Goyal
d76e757d53
Implement delete for frames 2021-01-31 20:58:42 +05:30
Kovid Goyal
43ea58ef48
Start work on delete for frames 2021-01-31 20:58:42 +05:30
Kovid Goyal
17f485d614
Basic frame loading works 2021-01-31 20:58:41 +05:30
Kovid Goyal
35f3312a1e
Use shorter cache keys 2021-01-31 20:58:41 +05:30