use crate::{driver::CuDevicePtr, memory::CudaDeviceBuffer};
#[repr(C)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
#[doc(hidden)]
pub struct CudaJ2kRect {
pub x0: u32,
pub y0: u32,
pub x1: u32,
pub y1: u32,
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
#[doc(hidden)]
pub struct CudaJ2kIdwtJob {
pub rect: CudaJ2kRect,
pub ll_rect: CudaJ2kRect,
pub hl_rect: CudaJ2kRect,
pub lh_rect: CudaJ2kRect,
pub hh_rect: CudaJ2kRect,
pub irreversible97: u32,
}
#[derive(Clone, Copy, Debug)]
#[doc(hidden)]
pub struct CudaJ2kIdwtTarget<'a> {
pub ll: &'a CudaDeviceBuffer,
pub hl: &'a CudaDeviceBuffer,
pub lh: &'a CudaDeviceBuffer,
pub hh: &'a CudaDeviceBuffer,
pub output: &'a CudaDeviceBuffer,
pub job: CudaJ2kIdwtJob,
}
#[repr(C)]
#[derive(Clone, Copy, Debug)]
pub(crate) struct CudaJ2kIdwtMultiKernelJob {
pub(crate) ll_ptr: u64,
pub(crate) hl_ptr: u64,
pub(crate) lh_ptr: u64,
pub(crate) hh_ptr: u64,
pub(crate) output_ptr: u64,
pub(crate) job: CudaJ2kIdwtJob,
pub(crate) reserved_tail: u32,
}
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq)]
#[doc(hidden)]
pub struct CudaJ2kStoreGray8Job {
pub input_width: u32,
pub source_x: u32,
pub source_y: u32,
pub copy_width: u32,
pub copy_height: u32,
pub output_width: u32,
pub output_height: u32,
pub output_x: u32,
pub output_y: u32,
pub addend: f32,
pub bit_depth: u32,
}
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq)]
#[doc(hidden)]
pub struct CudaJ2kStoreGray16Job {
pub input_width: u32,
pub source_x: u32,
pub source_y: u32,
pub copy_width: u32,
pub copy_height: u32,
pub output_width: u32,
pub output_height: u32,
pub output_x: u32,
pub output_y: u32,
pub addend: f32,
pub bit_depth: u32,
}
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq)]
#[doc(hidden)]
pub struct CudaJ2kInverseMctJob {
pub len: u32,
pub irreversible97: u32,
pub addend0: f32,
pub addend1: f32,
pub addend2: f32,
}
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq)]
#[doc(hidden)]
pub struct CudaJ2kStoreRgb8Job {
pub input_width0: u32,
pub input_width1: u32,
pub input_width2: u32,
pub source_x0: u32,
pub source_y0: u32,
pub source_x1: u32,
pub source_y1: u32,
pub source_x2: u32,
pub source_y2: u32,
pub copy_width: u32,
pub copy_height: u32,
pub output_width: u32,
pub output_height: u32,
pub output_x: u32,
pub output_y: u32,
pub addend0: f32,
pub addend1: f32,
pub addend2: f32,
pub bit_depth0: u32,
pub bit_depth1: u32,
pub bit_depth2: u32,
pub rgba: u32,
}
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq)]
#[doc(hidden)]
pub struct CudaJ2kStoreRgb16Job {
pub input_width0: u32,
pub input_width1: u32,
pub input_width2: u32,
pub source_x0: u32,
pub source_y0: u32,
pub source_x1: u32,
pub source_y1: u32,
pub source_x2: u32,
pub source_y2: u32,
pub copy_width: u32,
pub copy_height: u32,
pub output_width: u32,
pub output_height: u32,
pub output_x: u32,
pub output_y: u32,
pub addend0: f32,
pub addend1: f32,
pub addend2: f32,
pub bit_depth0: u32,
pub bit_depth1: u32,
pub bit_depth2: u32,
pub rgba: u32,
}
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq)]
#[doc(hidden)]
pub struct CudaJ2kStoreRgb8MctJob {
pub store: CudaJ2kStoreRgb8Job,
pub irreversible97: u32,
}
#[derive(Clone, Copy, Debug)]
#[doc(hidden)]
pub struct CudaJ2kStoreRgb8MctTarget<'a> {
pub plane0: &'a CudaDeviceBuffer,
pub plane1: &'a CudaDeviceBuffer,
pub plane2: &'a CudaDeviceBuffer,
pub job: CudaJ2kStoreRgb8MctJob,
}
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub(crate) struct CudaJ2kStoreRgb8MctBatchJob {
pub(crate) plane0_ptr: CuDevicePtr,
pub(crate) plane1_ptr: CuDevicePtr,
pub(crate) plane2_ptr: CuDevicePtr,
pub(crate) output_ptr: CuDevicePtr,
pub(crate) job: CudaJ2kStoreRgb8MctJob,
pub(crate) reserved_tail: u32,
}
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq)]
#[doc(hidden)]
pub struct CudaJ2kStoreRgb16MctJob {
pub store: CudaJ2kStoreRgb16Job,
pub irreversible97: u32,
}
#[derive(Clone, Copy, Debug)]
#[doc(hidden)]
pub struct CudaJ2kStridedInterleavedPixels<'a> {
pub buffer: &'a CudaDeviceBuffer,
pub byte_offset: usize,
pub width: u32,
pub height: u32,
pub pitch_bytes: usize,
pub num_components: u8,
pub bit_depth: u8,
pub signed: bool,
}