use crate::BlockHeight;
#[no_mangle]
pub unsafe extern "C" fn swizzle_block_linear(
width: usize,
height: usize,
depth: usize,
source: *const u8,
source_len: usize,
destination: *mut u8,
destination_len: usize,
block_height: usize,
bytes_per_pixel: usize,
) {
let source = std::slice::from_raw_parts(source, source_len);
let destination = std::slice::from_raw_parts_mut(destination, destination_len);
super::swizzle_inner(
width,
height,
depth,
source,
destination,
BlockHeight::new(block_height).unwrap() as usize,
depth,
bytes_per_pixel,
false,
)
}
#[no_mangle]
pub unsafe extern "C" fn deswizzle_block_linear(
width: usize,
height: usize,
depth: usize,
source: *const u8,
source_len: usize,
destination: *mut u8,
destination_len: usize,
block_height: usize,
bytes_per_pixel: usize,
) {
let source = std::slice::from_raw_parts(source, source_len);
let destination = std::slice::from_raw_parts_mut(destination, destination_len);
super::swizzle_inner(
width,
height,
depth,
source,
destination,
BlockHeight::new(block_height).unwrap() as usize,
depth,
bytes_per_pixel,
true,
)
}
#[no_mangle]
pub extern "C" fn swizzled_surface_size(
width: usize,
height: usize,
depth: usize,
block_height: usize,
bytes_per_pixel: usize,
) -> usize {
super::swizzled_surface_size(
width,
height,
depth,
BlockHeight::new(block_height).unwrap(),
bytes_per_pixel,
)
}
#[no_mangle]
pub extern "C" fn deswizzled_surface_size(
width: usize,
height: usize,
depth: usize,
bytes_per_pixel: usize,
) -> usize {
super::deswizzled_surface_size(width, height, depth, bytes_per_pixel)
}
#[no_mangle]
pub extern "C" fn block_height_mip0(height: usize) -> usize {
super::block_height_mip0(height) as usize
}
#[no_mangle]
pub extern "C" fn mip_block_height(mip_height: usize, block_height_mip0: usize) -> usize {
super::mip_block_height(mip_height, BlockHeight::new(block_height_mip0).unwrap()) as usize
}