Mitchell Hashimoto
6f62944b9c
renderer: message uses new size struct
2024-11-14 13:34:36 -08:00
Mitchell Hashimoto
a436bd0af6
move datastructures to dedicated "datastruct" package
2024-11-07 14:39:10 -08:00
Mitchell Hashimoto
89fadfc202
renderer: fg/bg/cursor change must mark the screen as dirty
...
Fixes #2372
2024-10-04 06:58:50 -10:00
Mitchell Hashimoto
bae12993b3
crash: tag the thread type
2024-09-02 10:02:14 -07:00
Mitchell Hashimoto
d499f7795b
input: crash binding can configure which thread to crash
2024-09-02 09:44:35 -07:00
Mitchell Hashimoto
8f477b00da
renderer/termio attach thread local state for crash capture
2024-09-01 14:15:12 -07:00
Qwerasd
900aab10f2
renderer: don't update frame if renderer grid size != terminal size
2024-08-14 22:43:58 -04:00
Qwerasd
7929e0bc09
fix: prevent flicker while shrinking screen by eliminating thread race
...
Before this fix, if vsync was on the GPU cells buffer could be cleared
for a frame while resizing the terminal down. This was due to the fact
that the surface sent messages for the resize to both the renderer and
the IO thread. If the renderer thread was processed first then the GPU
cells buffer(s) would be cleared and not rebuilt, because the terminal
state would be larger than the GPU cell buffers causing updateFrame to
bail out early, leaving empty cell buffers.
This fixes the problem by changing the origin of the renderer's resize
message to be the IO thread, only after properly updating the terminal
state, to avoid clearing the GPU cells buffers at a time they can't be
successfully rebuilt.
2024-08-14 19:46:24 -04:00
Łukasz Niemier
f9be02a20f
chore: clean up typos
2024-08-05 13:56:57 +02:00
Mitchell Hashimoto
8fdf6b4b64
renderer: add window-vsync option (defaults to false)
2024-05-05 10:18:15 -07:00
Mitchell Hashimoto
ca9689be46
renderer/metal: API to handle macOS display ID changing
2024-05-04 19:40:58 -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
ac813c9244
renderer/metal: stop/start display link on occlusion
2024-05-04 14:49:50 -07:00
Mitchell Hashimoto
a40ffad218
renderer/metal: setup display link
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
506ba854fa
core: font size changes work
2024-04-06 19:33:49 -07:00
Mitchell Hashimoto
b8d11e57c9
renderer/Metal: change font size works again
2024-04-06 10:55:58 -07:00
Mitchell Hashimoto
e10e45a935
Revert "renderer/metal: free resources when occluded"
...
This reverts commit b5d543705de4ea42407db9e2d49ae03f3ae5cf14.
2024-02-13 21:57:46 -08:00
Mitchell Hashimoto
b5d543705d
renderer/metal: free resources when occluded
2024-02-13 20:07:41 -08:00
Mitchell Hashimoto
e1908f7cc7
renderer: handle renderer pause/redraw on occlusion
2024-02-13 09:21:04 -08:00
Mitchell Hashimoto
adb7958f61
remove tracy usage from all files
2024-01-13 15:06:08 -08:00
Mitchell Hashimoto
fc30fdfb2b
renderer: do not free new configuration on change
...
Fixes #1271
2024-01-09 21:05:27 -08:00
Mitchell Hashimoto
96d33fef20
custom shader animation can be set to "always" to always remain active
...
Fixes #1225
The `custom-shader-animation` configuration can now be set to "always"
which keeps animation active even if the terminal is unfocused.
2024-01-09 09:21:15 -08:00
Mitchell Hashimoto
a64d12d3cb
renderer: animations should stop if config changes them
2023-11-17 21:51:07 -08:00
Mitchell Hashimoto
4742cd308d
renderer: animation timer if we have custom shaders
2023-11-17 21:50:53 -08:00
Mitchell Hashimoto
389712a698
renderer/opengl: switch to new update vs draw
2023-11-17 21:50:34 -08:00
Mitchell Hashimoto
0e92f68228
renderer: separate update frame data from draw
2023-11-17 21:50:34 -08:00
Gregory Anders
171292a063
core: implement OSC 12 and OSC 112 to query/set/reset cursor color
2023-11-09 16:21:07 -06:00
Gregory Anders
1c0b79c40f
core: separate default colors from modifiable colors
...
Default colors are those set by the user in the config file, or an
actual default value if unset. The actual colors are modifiable and can
be changed using the OSC 4, 10, and 11 sequences.
2023-11-09 14:08:14 -06:00
Gregory Anders
006e93bd08
core: implement setting colors with OSC 4, 10, and 11
2023-11-09 11:59:20 -06:00
Mitchell Hashimoto
5a299e14e4
all threads are notified of inspector state, trigger render
2023-10-24 15:27:15 -07:00
Mitchell Hashimoto
78b5c1db77
renderer: handle error.NotFound for timer cancellation
...
Fixes #685
This is expected in very rare scenarios where under heavy load, a timer
could complete before a cancellation request is processed, resulting in
a "not found".
2023-10-15 21:35:13 -07:00
Mitchell Hashimoto
2b28106837
update zig
2023-10-02 08:18:35 -07:00
Mitchell Hashimoto
d9cfd00e9f
Big Cursor State Refactor
...
This makes a few major changes:
- cursor style on terminal is single source of stylistic truth
- cursor style is split between style and style request
- cursor blinking is handled by the renderer thread
- cursor style/visibility is no longer stored as persistent state on
renderers
- cursor style computation is extracted to be shared by all renderers
- mode 12 "cursor_blinking" is now source of truth on whether blinking
is enabled or not
- CSI q and mode 12 are synced like xterm
2023-09-09 20:19:37 -07:00
Mitchell Hashimoto
22eb533473
content scale change events should also impact viewport padding
...
This calculates the new padding pixel values and propogates those
changes to the renderer.
2023-09-02 11:00:51 -07:00
Mitchell Hashimoto
e15b5ab42c
fix error set for libxev cross-platform
2023-08-09 10:05:48 -07:00
Mitchell Hashimoto
e33f6c71de
update libxev to fix split writes on large writes (i.e. big paste)
...
Fixes #258
This was an upstream bug in libxev where partial the queueWrite
mechanism would not correctly handle partial write results:
https://github.com/mitchellh/libxev/pull/60
2023-08-09 08:18:43 -07:00
Mitchell Hashimoto
b0b3b0af2d
update config messages use pointers now to make messages small again
2023-03-19 10:48:42 -07:00
Mitchell Hashimoto
7eda21d544
surface propagates new config to renderer
2023-03-19 09:50:55 -07:00
Mitchell Hashimoto
fc3802e632
termio: use host-spawn for pty
2023-02-25 22:36:20 -08:00
Mitchell Hashimoto
6acf67ec66
gtk: render!
2023-02-24 07:58:30 -08:00
Mitchell Hashimoto
fbe35c226b
Integrating new surface
2023-02-24 07:58:29 -08:00
Mitchell Hashimoto
1273527048
renderer uses libxev
...
Still some bugs and TODOs, but it is workable.
2023-02-01 15:52:22 -08:00
Mitchell Hashimoto
11a3577ef1
rename window package to apprt
2022-12-29 15:11:03 -08:00
Mitchell Hashimoto
e1cd650245
window: abstract more, it starts
2022-12-29 14:51:56 -08:00
Mitchell Hashimoto
a15afa8211
do not block channel send while draining channel
2022-11-20 20:16:40 -08:00
Mitchell Hashimoto
4521efb83d
move screen resize to a renderer mailbox message
2022-11-17 13:55:04 -08:00
Mitchell Hashimoto
657c8540c8
renderer: font size changed event, OpenGL impl
2022-11-15 19:48:32 -08:00