use objc2::{Encode, Encoding, RefEncode};
use crate::{MTLAccelerationStructureInstanceOptions, MTLPackedFloat4x3, MTLResourceID};
#[repr(C)]
#[derive(Copy, Clone, Debug, PartialEq)]
pub struct MTLIndirectAccelerationStructureInstanceDescriptor {
pub transformation_matrix: MTLPackedFloat4x3,
pub options: MTLAccelerationStructureInstanceOptions,
pub mask: u32,
pub intersection_function_table_offset: u32,
pub user_id: u32,
pub acceleration_structure_id: MTLResourceID,
}
unsafe impl Encode for MTLIndirectAccelerationStructureInstanceDescriptor {
const ENCODING: Encoding = Encoding::Struct(
"?",
&[
<MTLPackedFloat4x3>::ENCODING,
<MTLAccelerationStructureInstanceOptions>::ENCODING,
<u32>::ENCODING,
<u32>::ENCODING,
<u32>::ENCODING,
<MTLResourceID>::ENCODING,
],
);
}
unsafe impl RefEncode for MTLIndirectAccelerationStructureInstanceDescriptor {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}