Wez Furlong
e7d99024bb
build our own harfbuzz for broader compat
2018-02-20 12:33:30 -08:00
Wez Furlong
7c0536f9a3
avoid panic if an app sets an invalid scroll region
2018-02-20 08:42:08 -08:00
Wez Furlong
9a5e7999da
TODONE
2018-02-20 08:13:36 -08:00
Wez Furlong
9da069e1e9
clean up atlas api
...
We now bubble up an error if we ran out of texture space.
Previously we'd allocate a new texture but that wouldn't help anyone.
I've bumped up the texture size by default, too.
Longer term we should catch this, blow the font cache, cancel the
pending render and re-render.
2018-02-20 08:09:12 -08:00
Wez Furlong
e6f42987ca
remove another unused crate
2018-02-20 07:41:19 -08:00
Wez Furlong
3a66f29775
remove some unused feature flags
2018-02-20 07:39:15 -08:00
Wez Furlong
1f76edaaef
readme update
2018-02-19 22:15:11 -08:00
Wez Furlong
1ffacec318
add screenshot
2018-02-19 22:10:59 -08:00
Wez Furlong
5ff473872d
Eliminate the third draw call
...
We can consolidate the underline/strike glyph rendering with
the background layer pass.
2018-02-19 22:02:27 -08:00
Wez Furlong
279b2018fd
Render cursor and selection for resized lines
...
If the user enlarges the terminal we can have regions of the vertex
buffer that have colors that default to alpha channel 0. This is
normally fine but breaks rendering of the cursor and the selection;
those attributes are out of band from the normal cell attributes,
especially for whitespace cells, so we need to handle those in
the degenerate case at the end of a line render.
Refactor the code that computes the cursor and selection colors
so that we can call it and use it in both places.
2018-02-19 21:29:27 -08:00
Wez Furlong
d55d5855a5
set CLIPBOARD as well as PRIMARY selection when selecting
2018-02-19 20:53:12 -08:00
Wez Furlong
25e2dc2a96
fix an issue with the selection when in scrollback
2018-02-19 16:26:10 -08:00
Wez Furlong
dd238d5b50
add DCH
2018-02-19 15:33:13 -08:00
Wez Furlong
d041b7be0d
fix an issue with scrolling within a region
2018-02-19 14:39:07 -08:00
Wez Furlong
37e5d8571a
add HVP sequence. Just like CUP.
2018-02-19 14:02:54 -08:00
Wez Furlong
c9eba103d1
Use vecdeque for screen lines
...
This brings us back in the right perf ballpark
2018-02-19 13:08:47 -08:00
Wez Furlong
58f423eebe
fix bounds for scrolling
...
unfortunately this is super expensive and halves the cat test perf.
2018-02-19 11:26:19 -08:00
Wez Furlong
b0fa3c329f
bold me
2018-02-19 11:00:49 -08:00
Wez Furlong
1e64344092
forgot to include the cat
portion of the bench in the readme
2018-02-19 10:59:09 -08:00
Wez Furlong
02846f4c82
use Cell::reset to clear portions of a line
2018-02-19 10:51:34 -08:00
Wez Furlong
a0b4630998
micro opt cursor moving during print
2018-02-19 10:47:49 -08:00
Wez Furlong
6e5986e868
tweak table formatting
2018-02-19 10:34:05 -08:00
Wez Furlong
aa95eaefd9
micro-opt scroll_up some more
2018-02-19 10:27:28 -08:00
Wez Furlong
48997f02d1
micro optimize cell creation
2018-02-19 09:08:17 -08:00
Wez Furlong
55175f70b6
Add a little note about performance
2018-02-19 08:41:54 -08:00
Wez Furlong
1b989b011d
improve scroll_up perf
...
We were marking the entire scrollback history as dirty on each line
scroll. This was from the early days and isn't needed any more.
This brings the runtime of:
```
$ find /usr > /tmp/usr-files.txt
$ time cat /tmp/usr-files.txt
```
down from ~2.5s to ~1.2s.
Also avoid a redundant line_mut() call in set_cell().
2018-02-19 08:14:03 -08:00
Wez Furlong
966eb2ce4c
Don't loop to read from pty
...
We don't need to be greedy in handling this read. It is important
not to for example when a lot of data is being written to the pty
we don't want that to starve the gui event handler and block sending
an interrupt signal.
2018-02-19 07:56:33 -08:00
Wez Furlong
563408df6f
micro optimization for scroll_up
2018-02-19 07:55:49 -08:00
Wez Furlong
a0faebad8b
Clear some rendering artifacts from the rhs of the screen
...
These would get left behind after making the window wider
and then switching between alt screen and the main screen.
2018-02-19 00:15:11 -08:00
Wez Furlong
52f6e3c0bd
tweak the underline position
2018-02-18 23:53:54 -08:00
Wez Furlong
bc2c77aa1c
fixup alpha for tinted colors
...
Needed to de-pre-multiply(!) the color channels by the alpha to avoid
them getting too dark.
2018-02-18 23:48:21 -08:00
Wez Furlong
9bc0eee1e2
Re-enable underlining of whitespace
...
This was a hangover from an earlier iteration and isn't needed any more.
2018-02-18 23:08:49 -08:00
Wez Furlong
450ed0e82c
don't explode when scrolling back
2018-02-18 23:04:11 -08:00
Wez Furlong
e87f129ded
We now do a better job at rendering dejavusansmono
...
The descender in that font seems bad, so guestimate something that works
better for us.
2018-02-18 21:59:28 -08:00
Wez Furlong
8afbcc8ee0
clear adjust for whitespace glyphs
2018-02-18 20:37:13 -08:00
Wez Furlong
4818cdb838
improve font rendering by reducing hinting level
...
and using a more robust color multiplication function.
2018-02-18 20:30:53 -08:00
Wez Furlong
69278e8fde
whoops, fixup width calc for single width glyphs
2018-02-18 17:53:39 -08:00
Wez Furlong
fb83410520
Add brief note about the OpenGL ES 2 requirement
2018-02-18 17:23:05 -08:00
Wez Furlong
fa0549b76e
add some more comments
...
and back out the get_all flag that was added as a temp workaround
in the earlier stages of adding opengl support.
2018-02-18 17:21:02 -08:00
Wez Furlong
3ccb0c24ef
Add third pass draw for underline/strikethrough rendering
2018-02-18 17:12:53 -08:00
Wez Furlong
f51b99cb73
remove some more dead bits and plumb underline/strike into shader
2018-02-18 14:52:10 -08:00
Wez Furlong
a1e5a17e94
remove some dead code
2018-02-18 14:48:24 -08:00
Wez Furlong
6f6622c659
pass has_color flag through to fragment shader
2018-02-18 14:22:43 -08:00
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