1
1
mirror of https://github.com/wez/wezterm.git synced 2024-12-23 21:32:13 +03:00

use vte with larger OSC buffer support

I wanted to see how much work remains to enable iterm2 image
display; one of the blockers was a limit in the size of the
buffer in the vte crate, which has been removed in my fork
of vte.

As part of testing our ability to absorb that data, I found
a couple of issues with applying the image cells to the display,
so this commit also takes care of that.

We still don't have code to connect the cell image data to the
opengl render layer.
This commit is contained in:
Wez Furlong 2019-03-17 08:24:23 -07:00
parent a4a078cf98
commit 1a883a40e9
2 changed files with 16 additions and 5 deletions

View File

@ -1233,19 +1233,25 @@ impl TerminalState {
let mut ypos = NotNaN::new(0.0).unwrap(); let mut ypos = NotNaN::new(0.0).unwrap();
let cursor_x = self.cursor.x; let cursor_x = self.cursor.x;
let cursor_y = self.cursor.y;
let x_delta = 1.0 / available_pixel_width as f32; let x_delta = 1.0 / available_pixel_width as f32;
let y_delta = 1.0 / available_pixel_height as f32; let y_delta = 1.0 / available_pixel_height as f32;
eprintln!( eprintln!(
"image is {}x{} cells, {}x{} pixels", "image is {}x{} cells, {}x{} pixels",
width_in_cells, height_in_cells, width, height width_in_cells, height_in_cells, width, height
); );
for y in 0..height_in_cells { for _ in 0..height_in_cells {
let mut xpos = NotNaN::new(0.0).unwrap(); let mut xpos = NotNaN::new(0.0).unwrap();
let cursor_y = self.cursor.y;
eprintln!(
"setting cells for y={} x=[{}..{}]",
cursor_y,
cursor_x,
cursor_x + width_in_cells
);
for x in 0..width_in_cells { for x in 0..width_in_cells {
self.screen_mut().set_cell( self.screen_mut().set_cell(
cursor_x + x, cursor_x + x,
cursor_y + y as VisibleRowIndex, cursor_y, // + y as VisibleRowIndex,
&Cell::new( &Cell::new(
' ', ' ',
CellAttributes::default() CellAttributes::default()
@ -1263,13 +1269,16 @@ impl TerminalState {
xpos += x_delta; xpos += x_delta;
} }
ypos += y_delta; ypos += y_delta;
self.new_line(false);
} }
// FIXME: check cursor positioning in iterm // FIXME: check cursor positioning in iterm
/*
self.set_cursor_pos( self.set_cursor_pos(
&Position::Relative(width_in_cells as i64), &Position::Relative(width_in_cells as i64),
&Position::Relative(0), &Position::Relative(-(height_in_cells as i64)),
); );
*/
} }
fn perform_device(&mut self, dev: Device, host: &mut TerminalHost) { fn perform_device(&mut self, dev: Device, host: &mut TerminalHost) {

View File

@ -26,7 +26,9 @@ smallvec = "~0.6"
terminfo = "~0.6" terminfo = "~0.6"
unicode-segmentation = "~1.2" unicode-segmentation = "~1.2"
unicode-width = "~0.1" unicode-width = "~0.1"
vte = "~0.3"
# https://github.com/jwilm/vte/pull/20
vte = { git = "https://github.com/wez/vte", branch="oscbigbuf" }
[dev-dependencies] [dev-dependencies]
bincode = "1.1" bincode = "1.1"