#[repr(C)]
#[derive(Copy, Clone, Debug, Default)]
pub struct DrawIndirect {
pub vertex_count: u32,
pub instance_count: u32,
pub base_vertex: u32,
pub base_instance: u32,
}
impl DrawIndirect {
pub fn as_bytes(&self) -> &[u8] {
unsafe {
std::mem::transmute(std::slice::from_raw_parts(
self as *const _ as *const u8,
std::mem::size_of::<Self>(),
))
}
}
}
#[repr(C)]
#[derive(Copy, Clone, Debug, Default)]
pub struct DrawIndexedIndirect {
pub vertex_count: u32,
pub instance_count: u32,
pub base_index: u32,
pub vertex_offset: i32,
pub base_instance: u32,
}
impl DrawIndexedIndirect {
pub fn as_bytes(&self) -> &[u8] {
unsafe {
std::mem::transmute(std::slice::from_raw_parts(
self as *const _ as *const u8,
std::mem::size_of::<Self>(),
))
}
}
}
#[repr(C)]
#[derive(Copy, Clone, Debug, Default)]
pub struct DispatchIndirect {
pub x: u32,
pub y: u32,
pub z: u32,
}
impl DispatchIndirect {
pub fn as_bytes(&self) -> &[u8] {
unsafe {
std::mem::transmute(std::slice::from_raw_parts(
self as *const _ as *const u8,
std::mem::size_of::<Self>(),
))
}
}
}