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
Jon Parise
861edc722f
shell-integration: revise ShellIntegration.command comment
2024-05-05 14:03:31 -07:00
Jon Parise
73b3560e62
shell-integration: automatic bash integration
...
This change adds automatic bash shell detection and integration.
Unlike our other shell integrations, bash doesn't provide a built-in
mechanism for injecting our ghostty.bash script into the new shell
environment.
Instead, we start bash in POSIX mode and use the ENV environment
variable to load our integration script, and the rest of the bash
startup sequence becomes the responsibility of our script to emulate
(along with disabling POSIX mode).
2024-05-05 13:59:52 -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
Mitchell Hashimoto
cfcd16354a
terminal: many more dirty checks
2024-05-01 20:31:49 -07:00
Mitchell Hashimoto
1c05939f17
terminal: deleteChars dirty
2024-05-01 20:31:49 -07:00
Mitchell Hashimoto
a53dbaaa31
terminal: more dirty tests
2024-05-01 20:31:48 -07:00
Mitchell Hashimoto
19ddbbc7d6
terminal: eraseRowBounded dirty tracking
2024-05-01 20:31:48 -07:00
Mitchell Hashimoto
0749b67832
terminal: index dirty tests one todo
2024-05-01 20:31:48 -07:00
Mitchell Hashimoto
b46e028069
terminal: scrollDown dirty tests
2024-05-01 20:31:48 -07:00
Mitchell Hashimoto
bd1a7d3db1
terminal: scrollDown dirty tests
2024-05-01 20:31:48 -07:00
Mitchell Hashimoto
58aa4cc10b
terminal: dirty tests for insertLines
2024-05-01 20:31:48 -07:00
Mitchell Hashimoto
f7a57bd2c8
terminal: dirty tests on t/b/l/r margins
2024-05-01 20:31:48 -07:00