pub enum AccelerationStructureGeometryData {
AABBs {
stride: DeviceSize,
},
Instances {
array_of_pointers: bool,
data: DeviceOrHostAddress,
},
Triangles {
index_data: DeviceOrHostAddress,
index_type: IndexType,
max_vertex: u32,
transform_data: Option<DeviceOrHostAddress>,
vertex_data: DeviceOrHostAddress,
vertex_format: Format,
vertex_stride: DeviceSize,
},
}
Expand description
Specifies acceleration structure geometry data.
See VkAccelerationStructureGeometryDataKHR for more information.
Variants§
AABBs
Fields
stride: DeviceSize
Stride in bytes between each entry in data.
The stride must be a multiple of 8.
Axis-aligned bounding box geometry in a bottom-level acceleration structure.
See VkAccelerationStructureGeometryAabbsDataKHR for more information.
Instances
Fields
data: DeviceOrHostAddress
Either the address of an array of device referencing individual
VkAccelerationStructureInstanceKHR structures or packed motion instance information as
described in
motion instances
if array_of_pointers
is true
, or the address of an array of
VkAccelerationStructureInstanceKHR structures.
Addresses and VkAccelerationStructureInstanceKHR structures are tightly packed.
Geometry consisting of instances of other acceleration structures.
See VkAccelerationStructureGeometryInstancesDataKHR for more information.
Triangles
Fields
index_data: DeviceOrHostAddress
A device or host address to memory containing index data for this geometry.
index_type: IndexType
The VkIndexType of each index element.
max_vertex: u32
The highest index of a vertex that will be addressed by a build command using this structure.
transform_data: Option<DeviceOrHostAddress>
A device or host address to memory containing an optional reference to a VkTransformMatrixKHR structure describing a transformation from the space in which the vertices in this geometry are described to the space in which the acceleration structure is defined.
vertex_data: DeviceOrHostAddress
A device or host address to memory containing vertex data for this geometry.
vertex_stride: DeviceSize
The stride in bytes between each vertex.
A triangle geometry in a bottom-level acceleration structure.
See VkAccelerationStructureGeometryTrianglesDataKHR for more information.
Trait Implementations§
source§impl Clone for AccelerationStructureGeometryData
impl Clone for AccelerationStructureGeometryData
source§fn clone(&self) -> AccelerationStructureGeometryData
fn clone(&self) -> AccelerationStructureGeometryData
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl PartialEq for AccelerationStructureGeometryData
impl PartialEq for AccelerationStructureGeometryData
source§fn eq(&self, other: &AccelerationStructureGeometryData) -> bool
fn eq(&self, other: &AccelerationStructureGeometryData) -> bool
self
and other
values to be equal, and is used
by ==
.impl Copy for AccelerationStructureGeometryData
impl Eq for AccelerationStructureGeometryData
impl StructuralPartialEq for AccelerationStructureGeometryData
Auto Trait Implementations§
impl RefUnwindSafe for AccelerationStructureGeometryData
impl Send for AccelerationStructureGeometryData
impl Sync for AccelerationStructureGeometryData
impl Unpin for AccelerationStructureGeometryData
impl UnwindSafe for AccelerationStructureGeometryData
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
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.