From 1c6a50e047a93da76609383dec40e7337bd5adc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?joseLu=C3=ADs?= Date: Thu, 3 Jun 2021 14:25:20 +0200 Subject: [PATCH] [rust] add example for issue #1716 --- rust/examples/issue-1716.rs | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 rust/examples/issue-1716.rs diff --git a/rust/examples/issue-1716.rs b/rust/examples/issue-1716.rs new file mode 100644 index 000000000..075936a43 --- /dev/null +++ b/rust/examples/issue-1716.rs @@ -0,0 +1,33 @@ +use libnotcurses_sys::*; + +const W: u32 = 32; +const H: u32 = 32; + +fn main() { + let mut nc = NcDirect::new().expect("couldn’t create ncdirect"); + nc.check_pixel_support() + .expect("failed to check for sixel support"); + + // create a purple rectangle + let mut buffer = Vec::::with_capacity(H as usize * W as usize * 4); + #[allow(unused_parens)] + for _byte in (0..={ H * W }) { + buffer.push(190); + buffer.push(20); + buffer.push(80); + buffer.push(255); + } + + let vframe1 = NcVisual::from_bgra(&buffer, H, W * 4, W).expect("couldn’t create visual"); + let voptions = NcVisualOptions::fullsize_pixel_without_plane(0, 0, H, W); + + unsafe { + let v = ffi::ncdirectf_render(nc, vframe1, NCBLIT_PIXEL, NCSCALE_NONE, 0, 0); + if !v.is_null() { + ncdirect_raster_frame(nc, v, NCALIGN_LEFT); + } + } + + vframe1.destroy(); + nc.stop().expect("failed to destroy ncdirect context"); +}