ash/extensions/khr/
ray_tracing_maintenance1.rs1use crate::vk;
2use crate::{Device, Instance};
3use std::ffi::CStr;
4use std::mem;
5
6#[derive(Clone)]
8pub struct RayTracingMaintenance1 {
9 fp: vk::KhrRayTracingMaintenance1Fn,
10}
11
12impl RayTracingMaintenance1 {
13 pub fn new(instance: &Instance, device: &Device) -> Self {
14 let handle = device.handle();
15 let fp = vk::KhrRayTracingMaintenance1Fn::load(|name| unsafe {
16 mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
17 });
18 Self { fp }
19 }
20
21 #[inline]
25 pub unsafe fn cmd_trace_rays_indirect2(
26 &self,
27 command_buffer: vk::CommandBuffer,
28 indirect_device_address: vk::DeviceAddress,
29 ) {
30 (self.fp.cmd_trace_rays_indirect2_khr)(command_buffer, indirect_device_address);
31 }
32
33 #[inline]
34 pub const fn name() -> &'static CStr {
35 vk::KhrRayTracingMaintenance1Fn::name()
36 }
37
38 #[inline]
39 pub fn fp(&self) -> &vk::KhrRayTracingMaintenance1Fn {
40 &self.fp
41 }
42}