pub use crate::{c_api, error, NcBlitter, NcResult, NcVisualOptions};
use core::ffi::c_void;
impl NcBlitter {
pub fn blit_rgba(data: &[u8], line_size: usize, vopts: &NcVisualOptions) -> NcResult<usize> {
let data_ptr: *const c_void = data as *const _ as *const c_void;
let res = unsafe { c_api::ncblit_rgba(data_ptr, line_size as i32, vopts) };
error![
res,
&format!["NcBlitter::blit_rgba(data, {}, {:?})", line_size, vopts],
res as usize
];
}
pub fn blit_bgrx(data: &[u8], line_size: usize, vopts: &NcVisualOptions) -> NcResult<usize> {
let data_ptr: *const c_void = data as *const _ as *const c_void;
let res = unsafe { c_api::ncblit_bgrx(data_ptr, line_size as i32, vopts) };
error![
res,
&format!["NcBlitter::blit_bgrx(data, {}, {:?})", line_size, vopts],
res as usize
];
}
pub fn blit_rgb_packed(
data: &[u8],
line_size: usize,
vopts: &NcVisualOptions,
alpha: u8,
) -> NcResult<usize> {
let data_ptr: *const c_void = data as *const _ as *const c_void;
let res =
unsafe { c_api::ncblit_rgb_packed(data_ptr, line_size as i32, vopts, alpha as i32) };
error![
res,
&format![
"NcBlitter::blit_rgb_packed(data, {}, {:?}, {})",
line_size, vopts, alpha
],
res as usize
];
}
pub fn blit_rgb_loose(
data: &[u8],
line_size: usize,
vopts: &NcVisualOptions,
alpha: u8,
) -> NcResult<usize> {
let data_ptr: *const c_void = data as *const _ as *const c_void;
let res =
unsafe { c_api::ncblit_rgb_loose(data_ptr, line_size as i32, vopts, alpha as i32) };
error![
res,
&format![
"NcBlitter::blit_rgb_loose(data, {}, {:?}, {})",
line_size, vopts, alpha
],
res as usize
];
}
}