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
ee85a0bdcd
avoid .bk files when rustfmt'ing
2018-01-27 14:20:15 -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
Wez Furlong
c53ca64c33
kick things off with a readme
2017-12-07 08:20:29 -08:00