INNER CODE UNIT · Rust
dst
FooIbar/EhViewer · app/src/main/rust/src/ffi/android.rs:49
let dst = handle.lock_pixels()? as *mut u8;
let size = info.canvas_width * info.canvas_height * 4;
unsafe { copy_nonoverlapping(buf, dst, size as usize) };
handle.unlock_pixels()?;
}
Ok(timestamp)
})
}
fn ptr_as_image<'local, P: CustomPixel>(
ptr: *const !,
w: u32,
h: u32,
) -> ImageBuffer<P, &'local [P::Subpixel]> {
let size = (w * h * P::CHANNEL_COUNT as u32) as usize;
let buffer = unsafe { &*slice_from_raw_parts(ptr as *const P::Subpixel, size) };
ImageBuffer::from_raw(w, h, buffer).unwrap()
}