1
1
mirror of https://github.com/wez/wezterm.git synced 2024-11-23 15:04:36 +03:00
Commit Graph

843 Commits

Author SHA1 Message Date
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
91424e427f factor out BitmapImage from Image 2018-01-27 22:58:40 -08:00
Wez Furlong
bf854d0eb0 remove some unused code 2018-01-27 22:24:44 -08:00
Wez Furlong
0ab8cf1eec Render the cursor position, fixup colors
I thought it would be nice to use the default xterm palette, but
I really hate the contrast of its default blue on black, so switch
to the palette from my xterm config.
2018-01-27 22:17:31 -08:00
Wez Furlong
1d4fc17187 apply Deref to simplify Terminal/TerminalState 2018-01-27 21:56:29 -08:00
Wez Furlong
1ae85b2349 send keyboard input to the pty 2018-01-27 21:54:57 -08:00
Wez Furlong
f879447d59 add xgfx::Connection, store atoms inside it 2018-01-27 14:49:15 -08:00
Wez Furlong
ec3c8f04ba move TerminalWindow into its own file 2018-01-27 14:29:07 -08:00
Wez Furlong
5d6d9747c7 expand columns as needed for set_cell 2018-01-27 13:56:35 -08:00
Wez Furlong
2d739eb667 Ensure that the pty is the controlling terminal for the child 2018-01-27 13:51:10 -08:00
Wez Furlong
8080718c71 Listen for sigchld 2018-01-27 13:41:45 -08:00
Wez Furlong
a11a34b031 We're now able to run and render top 2018-01-27 13:38:26 -08:00
Wez Furlong
e63f003ad0 move the pty into the TerminalWindow 2018-01-27 08:43:08 -08:00
Wez Furlong
eef4487d27 plumb XCB events into the mio loop 2018-01-27 08:18:55 -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
3484b94435 Allow setting full RGB foreground/background color 2018-01-25 21:37:16 -08:00
Wez Furlong
b56209a181 tighten up SGR parsing
Track all the rendition bits described in the SGR section here:
https://invisible-island.net/xterm/ctlseqs/ctlseqs.html

Still need to hook up color matching against the color palette
as described for the 256 color mode flavor.
2018-01-25 10:05:57 -08:00
Wez Furlong
3ec0b3f795 connect model to display, hook up print + some basic SGR 2018-01-24 22:28:03 -08:00
Wez Furlong
342efa810b cell attributes to bitfield, add screen container 2018-01-24 09:13:03 -08:00
Wez Furlong
7e41bb27d4 Add basic attribute setting and rendering 2018-01-23 23:12:30 -08:00
Wez Furlong
641e85650d add terminal cell and colors 2018-01-23 08:57:59 -08:00
Wez Furlong
36a884b872 Add compositing to colorize text
Defines a couple of compositing operators so that we can support having
both colored background and colored text.
2018-01-22 22:32:48 -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
3ea7bbc501 compute descender, render cell box, fixup GRAY handling 2018-01-22 08:13:00 -08:00
Wez Furlong
31f35554a4 Add text color, improve resize render performance 2018-01-21 17:14:56 -08:00
Wez Furlong
306414baa9 Add double buffering to eliminate flicker
Actually, the flicker was caused by the back pixel setting on the
window; I spent a long time running this down and finally got the
clue from this crusade against flicker:
http://www.ruska.it/michal/flicker.html
2018-01-21 10:25:40 -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
efb566e4bf move this pixelformat thing to be a constant 2018-01-18 07:31:24 -08:00
Wez Furlong
144d8cc3eb start pulling in cairo 2018-01-18 07:20:29 -08:00
Wez Furlong
df64bce18a add some docs, make slightly more efficient when computing cluster size vec 2018-01-17 00:17:22 -08:00
Wez Furlong
93c10590ca println -> debug build only logging 2018-01-17 00:07:31 -08:00
Wez Furlong
06b47bfc58 move FontHolder -> Font
Also change the constructor to pass in a fontconfig pattern
2018-01-17 00:01:34 -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
739d25c21b cargo fmt with larger column allowance 2018-01-16 23:03:16 -08:00
Wez Furlong
471f3d0800 populate GlyphInfo.text only in debug builds 2018-01-16 23:01:55 -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
a5535d4c5b scale emoji bitmaps to match size of preferred font 2018-01-16 00:24:49 -08:00
Wez Furlong
2d5c54a642 implement fallback and rendering for color emoji 2018-01-15 22:45:25 -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