1
1
mirror of https://github.com/wez/wezterm.git synced 2024-11-28 01:06:37 +03:00
Commit Graph

7384 Commits

Author SHA1 Message Date
Wez Furlong
8d6950f586 Do a better job at rendering double wide glyphs
Color emoji look a bit jagged so we may have a rounding problem
for those.  Will revisit them later.
2018-02-18 14:17:31 -08:00
Wez Furlong
a4c45fa321 use a single big vertex buffer 2018-02-18 11:31:00 -08:00
Wez Furlong
4acfd82e87 Default::default for Vertex & Point 2018-02-17 22:17:17 -08:00
Wez Furlong
6e3eb9747a use texture atlas 2018-02-17 21:34:01 -08:00
Wez Furlong
1607ba4443 Add untested code for managing a texture atlas 2018-02-17 20:37:07 -08:00
Wez Furlong
de700e0207 make it very slightly cheaper to enumerate the screen lines 2018-02-17 15:04:48 -08:00
Wez Furlong
f8b596bd7c remove more now-dead code 2018-02-17 14:02:02 -08:00
Wez Furlong
878bc4e082 update underline/strike rendering to opengl 2018-02-17 13:50:55 -08:00
Wez Furlong
d86f7ff2df remove unused bits 2018-02-17 12:18:29 -08:00
Wez Furlong
2b2e443c7b fix glyph y scale for color emoji 2018-02-17 12:17:36 -08:00
Wez Furlong
98c66b1919 remove unused variables 2018-02-17 12:00:29 -08:00
Wez Furlong
261a6cb6c6 remove some dead xproto code from xgfx 2018-02-17 12:00:13 -08:00
Wez Furlong
220e73e528 clean up more of the rendering
We can now render bg colors, selection, cursor, and the text has
reasonable proportions, and coloring.

bright cyan on blue has some black AA artifacts that I need to
investigate.
2018-02-17 11:53:54 -08:00
Wez Furlong
b8eb6dbedc make color -> uniform conversion more ergonomic 2018-02-17 08:25:59 -08:00
Wez Furlong
6991f5c6e0 fixup rendering of wide and color glyphs 2018-02-17 08:19:01 -08:00
Wez Furlong
cbad708398 the glyphs now have the correct proportions 2018-02-17 07:37:06 -08:00
Wez Furlong
9c4d26827e draw ghostly looking glyphs 2018-02-17 07:23:59 -08:00
Wez Furlong
c8a58cac06 we now render useless blocks in the fg color via gl 2018-02-16 23:28:51 -08:00
Wez Furlong
20965e786f start hacking on OpenGL ES2 rendering 2018-02-16 21:44:56 -08:00
Wez Furlong
20f4b21f13 add some more tests 2018-02-12 08:25:31 -08:00
Wez Furlong
28179ff981 check negative value for ECH, too 2018-02-12 08:15:35 -08:00
Wez Furlong
438822d63b add ECH handling 2018-02-12 07:57:22 -08:00
Wez Furlong
09f481e753 avoid ambiguous true color csi SGR sequence 2018-02-12 07:40:35 -08:00
Wez Furlong
ad3524bfc8 run down an off-by-one in VPA handling
This manifested with vim-inside-tmux losing my top tmux status line.

Add a test!
2018-02-11 23:56:42 -08:00
Wez Furlong
0870e6c7e4 tweak comments and error printing around OSC 2018-02-11 22:29:21 -08:00
Wez Furlong
6fb12c3520 add test for reverse index 2018-02-11 21:58:53 -08:00
Wez Furlong
18990a24b4 Basic tab stops 2018-02-11 21:54:18 -08:00
Wez Furlong
4c087d32c1 add NEL sequence and test 2018-02-11 20:56:05 -08:00
Wez Furlong
e6fdd4140b add more tests 2018-02-11 20:46:59 -08:00
Wez Furlong
236960e1a8 squeeze one extra row in at the bottom of my screen 2018-02-11 18:54:18 -08:00
Wez Furlong
5e49a79705 fix a selection range issue
When dragging a multi-line selection down and to the left, we were
incorrectly setting the computed column range.

Add a test and fix it.
2018-02-11 18:35:58 -08:00
Wez Furlong
2ee0414b66 avoid panic when dragging onto partial rows/columns 2018-02-11 18:09:48 -08:00
Wez Furlong
d0de936f62 add some tests for a double-width selection bug 2018-02-11 17:56:49 -08:00
Wez Furlong
adc11f303a Add some tests for hyperlink parsing and handling 2018-02-11 13:48:51 -08:00
Wez Furlong
ac339f9258 refactor term tests to make it less repeaty 2018-02-11 13:01:36 -08:00
Wez Furlong
0ae6b3e753 use xdg-open to open links on click 2018-02-11 12:41:31 -08:00
Wez Furlong
21f0e3fd98 Recognize clicks on hyperlinks
There's plumbing for handling these events in the TerminalHost
trait, but we don't do anything beyond printing them at the moment.
2018-02-11 12:28:37 -08:00
Wez Furlong
b6aa2cffea make hyperlinks show underlined on hover
Adds some plumbing to track the current mouse position and
extract the hyperlink from the cell that is being hovered over.

We render those cells with underline, possibly in a different color.

We don't yet do anything on click.
2018-02-11 12:11:02 -08:00
Wez Furlong
1546c2ef0b avoid constructing a vec in the common answerback code path 2018-02-11 09:44:04 -08:00
Wez Furlong
7ad2468937 hide AnswerBack from the public interface
This felt a bit repeatey and it pre-dated the TerminalHost trait.
I'd like to remove it completely but there are some frustrating and
fiddly lifetime concerns with mutable TerminalHost reference so I'm
hiding it from the public interface and bridging it the answerback
stream into the host at the bottom of the advance_bytes method for
now.
2018-02-11 09:40:02 -08:00
Wez Furlong
52ba033ea7 Avoid flickery erase in render_line
This also improves perf.  The issue was that the erase of the whole
line of the background may be observed by the X server when SHM is
enabled because we don't wait for the exposure/copy to the window
pixmap before updating the same row fractionally later.

Avoiding the unconditional erase and just painting the full cell
contents over means that there's no opportunity for a visible flash.

In addition, since we render the cells background individually, that
erase was not needed.

This should save us some work and take some load off the cpu.
2018-02-11 08:59:56 -08:00
Wez Furlong
9feb3bd0e7 fixup width for background/underline/strike
This wasn't correctly handling double-width or ligatures.  In addition,
don't respect the x_advance outside of a ligature run, as it can result
in slightly offset columns for example when `ls -l` shows `--` and that
sequence has a slightly less wide ligatured rendition.

```
echo -e '\e[4mu--nder\e[0m  \e[21mdo--uble\e[0m  \e[9mst--rike\e[0m'
```
2018-02-11 08:47:53 -08:00
Wez Furlong
74cd62e743 extract render_glyph_slices 2018-02-11 08:25:22 -08:00
Wez Furlong
ee603e4cc8 clarify comments 2018-02-11 08:10:16 -08:00
Wez Furlong
1ba432378b extract cursor rendering 2018-02-11 08:05:58 -08:00
Wez Furlong
8ecaa7d6ab extract underline and strikethrough methods 2018-02-11 08:01:06 -08:00
Wez Furlong
0208a7837e start breakin up the paint method
This has grown pretty large.  Splitting out the guts means adopting
the use of RefCell to satisfy the borrow checker.
2018-02-11 07:46:40 -08:00
Wez Furlong
31b270910b make cell_height and cell_width integers
I've been meaning to do this for a while
2018-02-11 07:28:36 -08:00
Wez Furlong
4a0648fef5 Add strikethrough rendering 2018-02-10 21:42:55 -08:00
Wez Furlong
5a6ed045ad Render underline and double underline 2018-02-10 21:25:43 -08:00