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
91bcc3de39
font/coretext: choose proper original font for CJK search
2024-05-07 15:39:17 -07:00
Mitchell Hashimoto
b7b76e352c
Merge pull request #1734 from mitchellh/ct-fallback
...
coretext: let macOS choose the font for CJK Unified Ideographs
2024-05-07 15:21:38 -07:00
Mitchell Hashimoto
84095025d5
font: fontconfig has proper function
2024-05-07 15:10:53 -07:00
Mitchell Hashimoto
7c5d829274
font: use CoreText API for CJK unified ideographs
2024-05-07 15:05:34 -07:00
Mitchell Hashimoto
4dd3b107c6
Merge pull request #1733 from mitchellh/dirty-fixes
...
Track dirty bits in more places
2024-05-07 10:47:17 -07:00
Mitchell Hashimoto
cd42888182
terminal: eraseRows sets dirty bits
2024-05-07 10:38:27 -07:00
Mitchell Hashimoto
f975861891
terminal: maintain dirty bits when rotating rows on clone
2024-05-07 10:36:54 -07:00
Mitchell Hashimoto
165c2d9056
renderer/metal: rebuild full screen when viewport changes
2024-05-07 10:22:12 -07:00
Mitchell Hashimoto
a1372a0efd
terminal: more dirty tracking
2024-05-07 09:55:32 -07:00
Mitchell Hashimoto
3cfce658c3
terminal: dirty tracking in more places, tests coverage
2024-05-07 09:52:03 -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
Mitchell Hashimoto
db1fccf28c
Merge pull request #1730 from mitchellh/dirty
...
renderer/metal: reset screen dirty flag properly, be more careful setting selection dirty flag
2024-05-06 18:38:05 -07:00
Mitchell Hashimoto
d3abe65ad6
terminal: only set selection dirty to true on clear if previously set
2024-05-06 18:35:51 -07:00
Mitchell Hashimoto
26300447e4
renderer/metal: reset screen dirty flags
...
I introduced screen dirty flags fairly late, and never reset them. As a
result, dirty tracking basically gets disabled as soon as selection
changes in any form. This happens frequently because _unsetting_
selection also resets selection which happens for various events.
2024-05-06 18:31:26 -07:00
Mitchell Hashimoto
1189817dd8
pkg/macos: CTFontCreateForString
2024-05-05 21:38:19 -07:00
Mitchell Hashimoto
a29a0a1e5c
pkg/macos: add more CoreText APIs
2024-05-05 21:01:44 -07:00
Mitchell Hashimoto
2e2d924353
Merge pull request #1728 from mitchellh/vsync
...
macOS: add window-vsync option for vsync
2024-05-05 10:24:03 -07:00
Mitchell Hashimoto
8fdf6b4b64
renderer: add window-vsync option (defaults to false)
2024-05-05 10:18:15 -07:00
Mitchell Hashimoto
fe070f10cd
Merge pull request #1727 from mitchellh/metal-link2
...
macOS: Unleash the Framerate
2024-05-04 20:20:11 -07:00
Mitchell Hashimoto
ca9689be46
renderer/metal: API to handle macOS display ID changing
2024-05-04 19:40:58 -07:00
Mitchell Hashimoto
6b3cb69101
renderer/metal: clean up some unnecessary state around rebuilds
2024-05-04 19:06:43 -07:00
Mitchell Hashimoto
0836aa7318
renderer: add comment why we have dead code
2024-05-04 14:50:15 -07:00
Mitchell Hashimoto
c56e016ab3
renderer: remove 10ms delay on repaint
2024-05-04 14:50:15 -07:00
Mitchell Hashimoto
b00e7009d7
renderer/metal: do not update frames if cells don't change
2024-05-04 14:50:13 -07:00
Mitchell Hashimoto
92caea6948
renderer/metal: remove unnecessary logs
2024-05-04 14:49:50 -07:00
Mitchell Hashimoto
ac813c9244
renderer/metal: stop/start display link on occlusion
2024-05-04 14:49:50 -07:00
Mitchell Hashimoto
6ae1784f4b
renderer/metal: stop display link when we lose focus
2024-05-04 14:49:49 -07:00
Mitchell Hashimoto
a40ffad218
renderer/metal: setup display link
2024-05-04 14:49:49 -07:00
Mitchell Hashimoto
cc72e6de23
pkg/macos: display link callback slightly more typesafe
2024-05-04 14:49:49 -07:00
Mitchell Hashimoto
f76af48613
pkg/macos: add CVDisplayLinkSetCurrentCGDisplay
2024-05-04 14:49:49 -07:00
Mitchell Hashimoto
e31e25f54d
apprt/embedded: add draw now API
2024-05-04 14:49:49 -07:00
Mitchell Hashimoto
fe7ff998c9
renderer: move our constant draw timer up to 120fps
...
Our renderers can now handle it
2024-05-04 14:49:49 -07:00
Mitchell Hashimoto
caaf6a496f
renderer: add draw now async wakeup
2024-05-04 14:49:48 -07:00
Mitchell Hashimoto
1b0e4da423
Merge pull request #1726 from mitchellh/renderer-dirty
...
Dirty Tracking
2024-05-04 14:49:35 -07:00
Mitchell Hashimoto
7c9ce0af73
terminal: Screen selection marks dirty
2024-05-01 20:41:53 -07:00
Mitchell Hashimoto
851b1fe2ac
font: noop shaper
2024-05-01 20:31:50 -07:00
Mitchell Hashimoto
22702b6941
renderer/metal: re-enable triple buffer
2024-05-01 20:31:49 -07:00
Mitchell Hashimoto
bb138becc5
terminal: resize causes full screen redraw
2024-05-01 20:31:49 -07:00
Mitchell Hashimoto
037f8d3a5e
terminal: set dirty bit for screen swap
2024-05-01 20:31:49 -07:00
Mitchell Hashimoto
b166ca7e30
renderer/Metal: only rebuild rows that are dirty
2024-05-01 20:31:49 -07:00
Mitchell Hashimoto
7e52f94278
terminal: on clone, only mark rows dirty that were previously dirty
2024-05-01 20:31:49 -07:00
Mitchell Hashimoto
d47f14f86a
terminal: dirty tracking on screen clone
2024-05-01 20:31:49 -07:00
Mitchell Hashimoto
3f9e3c39a4
terminal: track dirty state of palette and reverse colors
2024-05-01 20:31:49 -07:00
Mitchell Hashimoto
f867fabf8e
terminal: new coordinate type
2024-05-01 20:31:49 -07:00
Mitchell Hashimoto
4f2ee95ecd
renderer/metal: docs
2024-05-01 20:31:49 -07:00
Mitchell Hashimoto
fb25f5cea1
terminal: more dirty tests
2024-05-01 20:31:49 -07:00