1
1
mirror of https://github.com/wez/wezterm.git synced 2024-12-27 15:37:29 +03:00
Commit Graph

224 Commits

Author SHA1 Message Date
Wez Furlong
fe1ae0b7eb Be more particular about platform deps 2018-02-20 14:17:28 -08:00
Wez Furlong
e7d99024bb build our own harfbuzz for broader compat 2018-02-20 12:33:30 -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
20965e786f start hacking on OpenGL ES2 rendering 2018-02-16 21:44:56 -08:00
Wez Furlong
4ce67c7f9a Use the palette crate for blending
I wasn't pleased with how text was rendering on a colored background,
and after some research I discovered that I was neglecting to convert
from sRGB to a linear RGB colorspace, and that this was causing the
blending to have inaccurate results.

This diff pulls in the palette crate to handle the heavy lifting.
It doesn't appear to have any especially fast optimizations for this
though, which is a shame because the blending code I was using
previously was largely integer math with few branches.  The colorspace
conversion has several floating point operations and branches that
are unavoidable :-/

We run a bit hotter on the CPU but the results are much more pleasing
to the eye.
2018-02-09 23:32:35 -08:00
Wez Furlong
7ade4434fe Add basic config file parsing
So that we no longer assume Operator Mono SSm.
We now default to `monospace`.  I just tried this and the font metrics
appear to be wonky, so there's some tweaking to do.
2018-02-07 07:51:04 -08:00
Wez Furlong
a49e4b653b fix an issue with CR processing
This eliminates the zsh reversed % artifact issue.

Added a feature flag to turn on diagnostics even in release mode;

`cargo run --release --features debug-escape-sequences`
2018-01-31 19:00:15 -08:00
Wez Furlong
11e6d538fc move term to its own crate
This makes it harder to accidentally violate separation of concerns.
2018-01-31 10:50:21 -08:00
Wez Furlong
be30b1cb54 there's already a wterm, rename to wezterm 2018-01-28 23:52:21 -08:00
Wez Furlong
dbeda14566 Add ShmImage, a shared memory Pixmap
Using the SHM extension of the X server saves us from sending ~1MB of
bitmap data to the server on many screen update operations for a
modestly sized terminal window.

SHM may not be available in some situations so we need to keep a
fallback that basically works.  This is done via a helper enum
in xwin.rs.

I've removed the unused Pixmap class; the pixmap concept makes the
most sense for us only when SHM is available.
2018-01-28 09:43:36 -08:00
Wez Furlong
1ae85b2349 send keyboard input to the pty 2018-01-27 21:54:57 -08:00
Wez Furlong
ab74b4c731 proof of concept with having mio drive the pty reads 2018-01-26 09:00:40 -08:00
Wez Furlong
0ecda48f01 Add some code for working with ptys 2018-01-26 08:23:32 -08:00
Wez Furlong
641e85650d add terminal cell and colors 2018-01-23 08:57:59 -08:00
Wez Furlong
fb53f2c16b remove cairo dependency
It's a PITA to make it work with pixels without scaling and blurring
2018-01-22 18:54:18 -08:00
Wez Furlong
aef4e340e8 add xcb_util, set window name 2018-01-22 09:02:28 -08:00
Wez Furlong
aa18b273f9 remove sdl. use cairo + xcb
The spacing between glyphs seems too wide.  Need to figure this out.
A bunch of the integer vs float changes in this diff were a result
of trying to run this down, but success has been limited, and in fact
the spacing has increased as a result of making this more correct(!)
2018-01-21 01:32:59 -08:00
Wez Furlong
67c04e7a2a start playing around with xcb+cairo 2018-01-20 14:54:11 -08:00
Wez Furlong
144d8cc3eb start pulling in cairo 2018-01-18 07:20:29 -08:00
Wez Furlong
79bf022f68 move font code into main source
Initially I wanted to make the font code separate from
the main wterm executable in the hope that it would be
reusable.  However, we do need to be able to reach in
to both the font implementation and the SDL texture
implementation in order to capture the glyph data
into textures, so let's just embrace it all being
in the same crate.
2018-01-16 23:32:23 -08:00
Wez Furlong
611e4b3505 fixup bearing_x handling and unicode width
Trigger x-scaling based on the x_advance rather than the bitmap width.
Also account for the unicode width of the fragment when scaling.

The use of bearing_x was incorrect; we were subtracting it rather
than adding it and making the glyphs look terrible at smaller sizes.
2018-01-16 22:50:47 -08:00
Wez Furlong
02bab4fcc7 Add fontconfig support to locate fonts
Also restructure things a little bit to facilitate more robust
fallback implementation.
2018-01-15 17:32:31 -08:00
Wez Furlong
d82860ef5a Render text on sdl using harfbuzz and freetype 2018-01-14 23:34:59 -08:00