[rust] fix pixel-cell example

- fix column and row order in visual resize methods
pull/1764/head
joseLuís 3 years ago
parent 4fb67d6a91
commit 2c8a364f3a

@ -24,8 +24,8 @@ fn main() -> NcResult<()> {
// print visual delimiters around our pixelized cell // print visual delimiters around our pixelized cell
println!("0▗│▖\n│─ ─\n2▝│▘"); println!("0▗│▖\n│─ ─\n2▝│▘");
println!("a cell is {}x{} pixels", pg.cell_y, pg.cell_x); println!("a cell is {}x{} pixels", pg.cell_y, pg.cell_x);
println!("\ninterpolated not-interpolated"); println!("\ninterpolated not-interpolated interpolated not-interpolated");
println!(" SCALE SCALE INFLATE RESIZE"); println!(" SCALE SCALE RESIZE RESIZE");
// fill the buffer with random color pixels // fill the buffer with random color pixels
let mut rng = rand::thread_rng(); let mut rng = rand::thread_rng();
@ -82,9 +82,9 @@ fn main() -> NcResult<()> {
v1.render(&mut nc, &voptions3)?; v1.render(&mut nc, &voptions3)?;
rsleep![&mut nc, 1]; rsleep![&mut nc, 1];
// inflate the ncvisual (doesn't use interpolation) // resize the ncvisual (doesn't use interpolation)
let voptions4 = let voptions4 =
NcVisualOptions::without_plane(7, 33, 0, 0, pg.cell_y, pg.cell_x, NCBLIT_PIXEL, 0, 0); NcVisualOptions::without_plane(7, 37, 0, 0, pg.cell_y, pg.cell_x, NCBLIT_PIXEL, 0, 0);
v1.resize_noninterpolative(pg.cell_y * 4, pg.cell_x * 4)?; v1.resize_noninterpolative(pg.cell_y * 4, pg.cell_x * 4)?;
v1.render(&mut nc, &voptions4)?; v1.render(&mut nc, &voptions4)?;
rsleep![&mut nc, 1]; rsleep![&mut nc, 1];
@ -92,34 +92,15 @@ fn main() -> NcResult<()> {
// resize the ncvisual (uses interpolation) // resize the ncvisual (uses interpolation)
let v5 = NcVisual::from_rgba(buffer.as_slice(), pg.cell_y, pg.cell_x * 4, pg.cell_x)?; let v5 = NcVisual::from_rgba(buffer.as_slice(), pg.cell_y, pg.cell_x * 4, pg.cell_x)?;
let voptions5 = let voptions5 =
NcVisualOptions::without_plane(7, 45, 0, 0, pg.cell_y, pg.cell_x, NCBLIT_PIXEL, 0, 0); NcVisualOptions::without_plane(7, 51, 0, 0, pg.cell_y, pg.cell_x, NCBLIT_PIXEL, 0, 0);
v5.resize(18 * 4, 9 * 4)?; // FIXME: render function fails when downsizing (y<18 | x<9) v5.resize(18 * 4, 9 * 4)?; // FIXME: render function fails when downsizing (y<18 | x<9)
v5.render(&mut nc, &voptions5)?; v5.render(&mut nc, &voptions5)?;
rsleep![&mut nc, 1]; rsleep![&mut nc, 1];
// resize without interpolation sleep![2];
// WIP: should this substitute the inflate method?
// let v6 = NcVisual::from_rgba(buffer.as_slice(), pg.cell_y, pg.cell_x * 4, pg.cell_x)?;
// let voptions6 = NcVisualOptions::without_plane(
// 7,
// 54,
// 0,
// 0,
// pg.cell_y,
// pg.cell_x,
// NCBLIT_PIXEL,
// NCVISUAL_OPTION_NOINTERPOLATE,
// 0,
// );
// v6.resize(18 * 4, 9 * 4)?;
// v6.render(&mut nc, &voptions6)?;
// rsleep![&mut nc, 1];
sleep![3];
v1.destroy(); v1.destroy();
v5.destroy(); v5.destroy();
// v6.destroy();
nc.stop()?; nc.stop()?;
Ok(()) Ok(())
} }

@ -328,7 +328,7 @@ impl NcVisual {
] ]
} }
/// Renders the decoded frame to the specified [NcPlane]. /// Renders the decoded frame to the specified [`NcPlane`].
/// ///
/// See [`NcVisualOptions`]. /// See [`NcVisualOptions`].
/// ///
@ -349,7 +349,7 @@ impl NcVisual {
/// This is a lossy transformation, unless the size is unchanged. /// This is a lossy transformation, unless the size is unchanged.
/// ///
/// *C style function: [ncvisual_resize()][crate::ncvisual_resize].* /// *C style function: [ncvisual_resize()][crate::ncvisual_resize].*
pub fn resize(&mut self, cols: NcDim, rows: NcDim) -> NcResult<()> { pub fn resize(&mut self, rows: NcDim, cols: NcDim) -> NcResult<()> {
error![ error![
unsafe { crate::ncvisual_resize(self, rows as i32, cols as i32) }, unsafe { crate::ncvisual_resize(self, rows as i32, cols as i32) },
&format!["NcVisual.resize({}, {})", rows, cols] &format!["NcVisual.resize({}, {})", rows, cols]
@ -363,7 +363,7 @@ impl NcVisual {
/// ///
/// *C style function: /// *C style function:
/// [ncvisual_resize_noninterpolative()][crate::ncvisual_resize_noninterpolative].* /// [ncvisual_resize_noninterpolative()][crate::ncvisual_resize_noninterpolative].*
pub fn resize_noninterpolative(&mut self, cols: NcDim, rows: NcDim) -> NcResult<NcIntResult> { pub fn resize_noninterpolative(&mut self, rows: NcDim, cols: NcDim) -> NcResult<NcIntResult> {
let res = let res =
unsafe { crate::ncvisual_resize_noninterpolative(self, rows as i32, cols as i32) }; unsafe { crate::ncvisual_resize_noninterpolative(self, rows as i32, cols as i32) };
error![ error![

Loading…
Cancel
Save