Mitchell Hashimoto
1cc5a69c43
Revert "renderer/metal: can access grid metrics directly on font grid"
...
This reverts commit 172179bbff7d3f0df73ba1c29c6906b69ead2619.
2024-08-03 18:37:42 -07:00
Mitchell Hashimoto
172179bbff
renderer/metal: can access grid metrics directly on font grid
...
Its never recalculated so we don't need a lock.
2024-08-03 18:37:15 -07:00
Mitchell Hashimoto
56b3aa0b5e
renderer/metal: font grid change should run all screen size logic
2024-08-03 18:33:53 -07:00
Mitchell Hashimoto
ed1c163c7b
renderer/opengl: support window-padding-color=extend
2024-08-03 16:29:17 -07:00
Mitchell Hashimoto
55e8c421b5
config: add window-padding-color
2024-08-03 16:14:14 -07:00
Mitchell Hashimoto
9214db3c5f
renderer/metal: handle top/left
2024-08-03 16:03:42 -07:00
Mitchell Hashimoto
5309f4d080
renderer/metal: extend background color of grid border into padding
2024-08-03 15:39:02 -07:00
Mitchell Hashimoto
62cc279fc0
Merge pull request #1989 from gpanders/cursor-invert-fg-bg
...
config: add cursor-invert-fg-bg option
2024-07-31 19:39:27 -07:00
Mitchell Hashimoto
09e367fe09
Merge pull request #2015 from ghostty-org/kitty-unicode
...
Kitty Graphics Unicode Placeholders
2024-07-31 09:56:12 -07:00
Mitchell Hashimoto
765254e784
renderer/opengl: unicode placeholder support
2024-07-29 19:15:42 -07:00
Mitchell Hashimoto
0c81ca44b8
terminal/kitty: do not render blank virtual placement cells
2024-07-29 14:52:09 -07:00
Mitchell Hashimoto
079420730a
renderer/metal: address some todos
2024-07-29 10:55:50 -07:00
Mitchell Hashimoto
359458b96a
terminal/kitty: switch to new placement math
2024-07-29 10:52:10 -07:00
Mitchell Hashimoto
0ebf14fd44
terminal/kitty: working on moving placement math here for testing
2024-07-29 10:39:18 -07:00
Mitchell Hashimoto
4bf8d30b44
renderer/metal: rewrite kitty placeholder handling
2024-07-29 09:35:51 -07:00
Mitchell Hashimoto
6668930b96
terminal: appendGrapheme should text for codepoint, not text
2024-07-26 12:24:35 -07:00
Mitchell Hashimoto
a5d39103c9
renderer/metal: calculate proper grid offsets for image
2024-07-26 12:21:37 -07:00
Mitchell Hashimoto
3d4dd5277e
renderer/metal: virtual placements are kind of rendering
2024-07-25 22:08:02 -07:00
Mitchell Hashimoto
d6d95209c6
renderer/metal: extract out some image placement logic
2024-07-25 21:35:38 -07:00
Mitchell Hashimoto
763e7fab8a
renderer: skip virtual placements
2024-07-25 21:32:44 -07:00
Qwerasd
f17c072637
renderer/metal: use swap chain for custom shader passes
2024-07-25 21:16:35 -04:00
Mitchell Hashimoto
910ef97080
renderer/metal: zig fmt
2024-07-23 10:02:02 -07:00
Mitchell Hashimoto
12f0108673
renderer/metal: fix custom shader animations with display link
2024-07-22 15:32:58 -07:00
Gregory Anders
3e4a8644b5
renderer/opengl: implement cursor-invert-fg-bg
2024-07-22 16:23:06 -05:00
Gregory Anders
b09e4e5d63
config: add cursor-invert-fg-bg option
...
When set, the cursor-invert-fg-bg option uses the inverted foreground
and background colors of the cursor's current cell to color the cursor,
rather than using a fixed color. This option has higher precedence than
the cursor-color and cursor-text options, but has lower precedence than
an OSC 12 command to change the cursor color.
2024-07-22 08:42:30 -05:00
Mitchell Hashimoto
c51682a5c2
renderer: match no-ID OSC8 in contiguous chunks
2024-07-05 21:40:39 -07:00
Mitchell Hashimoto
925ad5b45c
renderer: match multiple lines for osc8
2024-07-05 21:40:39 -07:00
Mitchell Hashimoto
041c779512
renderer: matchSet matches OSC8
2024-07-05 21:40:39 -07:00
Mitchell Hashimoto
af132a3838
Merge pull request #1872 from qwerasd205/various-performance
...
Various Performance Changes
2024-06-23 09:51:21 -07:00
Mitchell Hashimoto
71353d016e
coretext shaper owns CFReleaseThread, works on both Metal and OpenGL now
2024-06-22 20:42:59 -07:00
Mitchell Hashimoto
4325dc51bc
font: coretext shaper owns the cf release pool
2024-06-22 20:32:24 -07:00
Mitchell Hashimoto
3038cb4979
Move CFReleaseThread to os package
2024-06-22 20:15:59 -07:00
Mitchell Hashimoto
6f43c01b76
renderer/opengl: invert cursor cell text when glyph is constrained
...
Fixes #1867
2024-06-18 14:59:49 -07:00
Qwerasd
3f3db4896b
add CFReleasePool handling to OpenGL renderer
2024-06-14 02:07:17 -04:00
Qwerasd
626ec2b5ac
perf: introduce CFReleaseThread for running CoreFoundation releases
...
Some CoreFoundation objects, such as those produced by CoreText, have
expensive callbacks that run when they are released. By offloading the
CFRelease calls to another thread, we can avoid important threads being
blocked by unexpectedly expensive callbacks.
This commit also changes the way that the coretext shaper's run iterator
builds its string. Rather than using a CFMutableString, an ArrayList of
unichars is built which is passed to CFStringCreateWithCharactersNoCopy,
which is a lot more efficient since it avoids all the CoreFoundation
overhead.
2024-06-14 01:43:02 -04:00
Qwerasd
db2cefb668
misc: improve rebuildCells time logging
2024-06-10 12:20:49 -04:00
Mitchell Hashimoto
a502089582
renderer/opengl: don't append assume capacity
...
Fixes #1815
2024-06-03 20:55:11 -07:00
Jan200101
94a7166028
terminal: support using the bright palette for bold text
2024-05-25 16:58:19 +02:00
Mitchell Hashimoto
06bcbe868f
renderer: kitty image with y offset should stretch image
...
Fixes #1784
This was just a misunderstanding of the "spec." When both a y offset
into the image is specified and a height, the image should be stretched.
I mistakingly thought that the image should be offset (even with this
misunderstanding there was a data corruption bug).
This resolves the issue and output matches Kitty.
2024-05-22 15:40:31 -04:00
Qwerasd
ac5725d582
fix(renderer): rebuild font grid and reset shaper cache on hot reload
...
When hot reloading config with a new font, shaper cache data needs to be
invalidated and the font grid needs to be rebuilt. This change just
makes that happen on all config reloads since it's a rare action so it's
not a performance concern.
2024-05-10 09:39:07 -07:00
Mitchell Hashimoto
61fd7f7fbf
renderer/metal: reset cells when font size changes to avoid blank
...
Fixes #1743
2024-05-09 09:48:08 -07:00
Qwerasd
7e9bdb84a8
renderer/Metal: cell Contents asserts
2024-05-07 21:19:22 -04:00
Qwerasd
c801e28c39
renderer/Metal: cell Contents tests
2024-05-07 21:13:50 -04:00
Qwerasd
4f26eb203b
renderer/Metal: cell Contents cleanup
...
Cleaned up naming, some logic changes, added comments.
2024-05-07 20:46:20 -04:00
Qwerasd
adf211f5d5
renderer/Metal: ArrayList cell Contents rows
...
This will allow for unlimited glyphs per row, eliminating the issue run in to with multi-substitution glyphs and combining characters which can result in more glyphs in a row than there are columns.
2024-05-07 19:19:06 -04:00
Qwerasd
dafabe3296
renderer/Metal: improve cell contents tracking
...
Previous version prevented multiple glyphs from belonging to the same coordinate, which broke quite a few things. This implementation fixes that (and may be more efficient too). Needs clean-up.
2024-05-07 19:19:06 -04:00
Mitchell Hashimoto
165c2d9056
renderer/metal: rebuild full screen when viewport changes
2024-05-07 10:22:12 -07:00
Mitchell Hashimoto
a84314befe
renderer/metal: disable bandaid
2024-05-07 09:51:45 -07:00
Mitchell Hashimoto
c2c8660c62
renderer/metal: disable dirty tracking temporarily
...
While #1731 is not fixed.
2024-05-07 07:26:59 -07:00
Mitchell Hashimoto
4c39739a26
renderer/metal: rebuild all cells on resize
2024-05-06 20:51:55 -07:00