From 3a39d8dc968fa36bfd973fe2523540e960f79ca4 Mon Sep 17 00:00:00 2001 From: janis Date: Sat, 11 Apr 2026 00:48:04 +0200 Subject: [PATCH] sampler --- crates/renderer/src/pipeline.rs | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/crates/renderer/src/pipeline.rs b/crates/renderer/src/pipeline.rs index c960c90..479ee46 100644 --- a/crates/renderer/src/pipeline.rs +++ b/crates/renderer/src/pipeline.rs @@ -4,7 +4,6 @@ use ash::{ext, prelude::*, vk}; use parking_lot::Mutex; use crate::{ - define_device_owned_handle, device::{ Device, DeviceHandle, DeviceInner, DeviceObject, asdf::traits::ExternallyManagedObject, }, @@ -450,13 +449,22 @@ impl std::hash::Hash for SamplerDesc { } } -define_device_owned_handle! { - #[derive(Debug)] - pub Sampler(vk::Sampler) {} => |this| unsafe { - this.device().dev().destroy_sampler(this.handle(), None); +impl ExternallyManagedObject for vk::Sampler +where + T: AsRef, +{ + unsafe fn destroy(self, device: &T) { + unsafe { + device.as_ref().raw.destroy_sampler(self, None); + } } } +#[derive(Debug)] +pub struct Sampler { + sampler: DeviceObject, +} + impl Sampler { pub fn new(device: Device, desc: &SamplerDesc) -> VkResult { let info = &vk::SamplerCreateInfo::default() @@ -479,7 +487,9 @@ impl Sampler { let handle = unsafe { device.dev().create_sampler(info, None)? }; - Self::construct(device, handle, None) + Ok(Self { + sampler: DeviceObject::new(device, handle), + }) } }