pub struct AccelerationStructureBuildInfo<'a> { /* private fields */ }
Expand description
All information required to build an acceleration structure
Implementations§
Source§impl<'a> AccelerationStructureBuildInfo<'a>
impl<'a> AccelerationStructureBuildInfo<'a>
Sourcepub fn new_update() -> Self
pub fn new_update() -> Self
Create a build info struct for AS update operations
Sourcepub fn set_type(self, ty: AccelerationStructureType) -> Self
pub fn set_type(self, ty: AccelerationStructureType) -> Self
Set the acceleration structure type
Sourcepub fn flags(self, flags: BuildAccelerationStructureFlagsKHR) -> Self
pub fn flags(self, flags: BuildAccelerationStructureFlagsKHR) -> Self
Set the acceleration structure build flags
Sourcepub fn mode(self, mode: BuildAccelerationStructureModeKHR) -> Self
pub fn mode(self, mode: BuildAccelerationStructureModeKHR) -> Self
Set the acceleration structure build mode
Sourcepub fn src(self, src: &'a AccelerationStructure) -> Self
pub fn src(self, src: &'a AccelerationStructure) -> Self
Set the source acceleration structure
Sourcepub fn dst(self, dst: &'a AccelerationStructure) -> Self
pub fn dst(self, dst: &'a AccelerationStructure) -> Self
Set the destination acceleration structure
Sourcepub fn push_triangles(
self,
triangles: AccelerationStructureGeometryTrianglesData,
) -> Self
pub fn push_triangles( self, triangles: AccelerationStructureGeometryTrianglesData, ) -> Self
Add a triangle geometry to this acceleration structure
Sourcepub fn push_aabbs(
self,
aabbs: AccelerationStructureGeometryAabbsDataKHR,
flags: GeometryFlagsKHR,
) -> Self
pub fn push_aabbs( self, aabbs: AccelerationStructureGeometryAabbsDataKHR, flags: GeometryFlagsKHR, ) -> Self
Add an AABB geometry to this acceleration structure
Sourcepub fn push_instances(
self,
instances: AccelerationStructureGeometryInstancesData,
) -> Self
pub fn push_instances( self, instances: AccelerationStructureGeometryInstancesData, ) -> Self
Add instance geometry to this acceleration structure
Sourcepub fn push_geometry(self, geometry: AccelerationStructureGeometryKHR) -> Self
pub fn push_geometry(self, geometry: AccelerationStructureGeometryKHR) -> Self
Add any geoemtry to this acceleration structure
Sourcepub fn scratch_data(self, data: impl Into<DeviceOrHostAddress>) -> Self
pub fn scratch_data(self, data: impl Into<DeviceOrHostAddress>) -> Self
Set the scratch buffer device address used for the build operation
Sourcepub fn push_range(
self,
primitive_count: u32,
primitive_offset: u32,
first_vertex: u32,
transform_offset: u32,
) -> Self
pub fn push_range( self, primitive_count: u32, primitive_offset: u32, first_vertex: u32, transform_offset: u32, ) -> Self
Add a primitive range to this acceleration structure
Sourcepub fn ty(&self) -> AccelerationStructureType
pub fn ty(&self) -> AccelerationStructureType
Get the acceleration structure type
Sourcepub fn as_vulkan(
&'a self,
) -> (AccelerationStructureBuildGeometryInfoKHR, &'a [AccelerationStructureBuildRangeInfoKHR])
pub fn as_vulkan( &'a self, ) -> (AccelerationStructureBuildGeometryInfoKHR, &'a [AccelerationStructureBuildRangeInfoKHR])
Get the Vulkan structs describing this build info
Trait Implementations§
Auto Trait Implementations§
impl<'a> Freeze for AccelerationStructureBuildInfo<'a>
impl<'a> RefUnwindSafe for AccelerationStructureBuildInfo<'a>
impl<'a> !Send for AccelerationStructureBuildInfo<'a>
impl<'a> !Sync for AccelerationStructureBuildInfo<'a>
impl<'a> Unpin for AccelerationStructureBuildInfo<'a>
impl<'a> UnwindSafe for AccelerationStructureBuildInfo<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more