sampler
This commit is contained in:
parent
4f95f3a928
commit
3a39d8dc96
|
|
@ -4,7 +4,6 @@ use ash::{ext, prelude::*, vk};
|
||||||
use parking_lot::Mutex;
|
use parking_lot::Mutex;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
define_device_owned_handle,
|
|
||||||
device::{
|
device::{
|
||||||
Device, DeviceHandle, DeviceInner, DeviceObject, asdf::traits::ExternallyManagedObject,
|
Device, DeviceHandle, DeviceInner, DeviceObject, asdf::traits::ExternallyManagedObject,
|
||||||
},
|
},
|
||||||
|
|
@ -450,13 +449,22 @@ impl std::hash::Hash for SamplerDesc {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
define_device_owned_handle! {
|
impl<T> ExternallyManagedObject<T> for vk::Sampler
|
||||||
#[derive(Debug)]
|
where
|
||||||
pub Sampler(vk::Sampler) {} => |this| unsafe {
|
T: AsRef<DeviceInner>,
|
||||||
this.device().dev().destroy_sampler(this.handle(), None);
|
{
|
||||||
|
unsafe fn destroy(self, device: &T) {
|
||||||
|
unsafe {
|
||||||
|
device.as_ref().raw.destroy_sampler(self, None);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Debug)]
|
||||||
|
pub struct Sampler {
|
||||||
|
sampler: DeviceObject<vk::Sampler>,
|
||||||
|
}
|
||||||
|
|
||||||
impl Sampler {
|
impl Sampler {
|
||||||
pub fn new(device: Device, desc: &SamplerDesc) -> VkResult<Self> {
|
pub fn new(device: Device, desc: &SamplerDesc) -> VkResult<Self> {
|
||||||
let info = &vk::SamplerCreateInfo::default()
|
let info = &vk::SamplerCreateInfo::default()
|
||||||
|
|
@ -479,7 +487,9 @@ impl Sampler {
|
||||||
|
|
||||||
let handle = unsafe { device.dev().create_sampler(info, None)? };
|
let handle = unsafe { device.dev().create_sampler(info, None)? };
|
||||||
|
|
||||||
Self::construct(device, handle, None)
|
Ok(Self {
|
||||||
|
sampler: DeviceObject::new(device, handle),
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue