use j2k_core::accelerator::GpuAbi;
use std::mem::{offset_of, size_of};
use crate::j2k_decode::{
CudaJ2kStoreRgbNativeBatchJob, CudaJ2kStoreRgbNativeJob, CudaJ2kStoreRgbaNativeBatchJob,
CudaJ2kStoreRgbaNativeJob,
};
impl_cuda_gpu_abi! {
CudaJ2kStoreRgbNativeJob {
input_width0: u32,
input_width1: u32,
input_width2: u32,
source_x0: u32,
source_y0: u32,
source_x1: u32,
source_y1: u32,
source_x2: u32,
source_y2: u32,
copy_width: u32,
copy_height: u32,
output_width: u32,
output_height: u32,
output_x: u32,
output_y: u32,
addend0: f32,
addend1: f32,
addend2: f32,
bit_depth0: u32,
bit_depth1: u32,
bit_depth2: u32,
layout: u32,
transform: u32,
reserved: u32,
},
CudaJ2kStoreRgbNativeBatchJob {
plane0_ptr: u64,
plane1_ptr: u64,
plane2_ptr: u64,
output_ptr: u64,
job: CudaJ2kStoreRgbNativeJob,
},
CudaJ2kStoreRgbaNativeJob {
input_width0: u32,
input_width1: u32,
input_width2: u32,
input_width3: u32,
source_x0: u32,
source_y0: u32,
source_x1: u32,
source_y1: u32,
source_x2: u32,
source_y2: u32,
source_x3: u32,
source_y3: u32,
copy_width: u32,
copy_height: u32,
output_width: u32,
output_height: u32,
output_x: u32,
output_y: u32,
addend0: f32,
addend1: f32,
addend2: f32,
addend3: f32,
bit_depth0: u32,
bit_depth1: u32,
bit_depth2: u32,
bit_depth3: u32,
layout: u32,
transform: u32,
reserved: u32,
},
CudaJ2kStoreRgbaNativeBatchJob {
plane0_ptr: u64,
plane1_ptr: u64,
plane2_ptr: u64,
plane3_ptr: u64,
output_ptr: u64,
job: CudaJ2kStoreRgbaNativeJob,
reserved_tail: u32,
},
}