6077 Commits

Author SHA1 Message Date
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