diff --git a/crates/renderer/src/buffers.rs b/crates/renderer/src/buffers.rs index 2d5cb50..0aef8e2 100644 --- a/crates/renderer/src/buffers.rs +++ b/crates/renderer/src/buffers.rs @@ -74,7 +74,7 @@ define_device_owned_handle! { } impl Buffer { - pub fn new(device: Device, desc: BufferDesc) -> VkResult> { + pub fn new(device: Device, desc: BufferDesc) -> VkResult { let queue_families = device.queue_families().family_indices(desc.queue_families); let sharing_mode = if queue_families.len() > 1 { @@ -98,11 +98,12 @@ impl Buffer { )? }; - Ok(Arc::new(Self::construct( + Ok(Self::construct( device, buffer, desc.name, allocation, desc.size, - )?)) + )?) } + #[allow(dead_code)] pub fn map_arc(self: &mut Arc) -> VkResult> { Arc::get_mut(self).map(Self::map).unwrap() } diff --git a/crates/renderer/src/lib.rs b/crates/renderer/src/lib.rs index 42884a5..05d682b 100644 --- a/crates/renderer/src/lib.rs +++ b/crates/renderer/src/lib.rs @@ -1778,10 +1778,10 @@ pub struct EguiState { #[derive(Debug)] struct EguiRenderState { - vertices: Arc, - indices: Arc, - draw_calls: Arc, - texture_ids: Arc, + vertices: buffers::Buffer, + indices: buffers::Buffer, + draw_calls: buffers::Buffer, + texture_ids: buffers::Buffer, textures_to_free: Vec, num_draw_calls: usize, } @@ -2067,10 +2067,7 @@ impl Renderer { ) .expect("staging buffer"); { - let mut mem = Arc::get_mut(&mut staging) - .unwrap() - .map() - .expect("mapping staging buffer"); + let mut mem = staging.map().expect("mapping staging buffer"); match &delta.image { egui::ImageData::Color(arc) => { let slice = unsafe { @@ -2164,13 +2161,7 @@ impl Renderer { if let Some(pos) = delta.pos { // SAFETY: must exist because image is not whole. - let existing_texture = self - .texture_handler - .textures - .get(&id) - .cloned() - .unwrap() - .image(); + let existing_texture = self.texture_handler.textures.get(&id).cloned().unwrap(); cmd.image_barrier( texture.image(), @@ -2184,7 +2175,7 @@ impl Renderer { None, ); cmd.image_barrier( - existing_texture.image(), + existing_texture.handle(), vk::ImageAspectFlags::COLOR, vk::PipelineStageFlags2::empty(), vk::AccessFlags2::empty(), @@ -2204,7 +2195,7 @@ impl Renderer { ), ); cmd.image_barrier( - existing_texture.image(), + existing_texture.handle(), vk::ImageAspectFlags::COLOR, vk::PipelineStageFlags2::TRANSFER, vk::AccessFlags2::TRANSFER_WRITE, @@ -2216,7 +2207,7 @@ impl Renderer { ); } else { cmd.image_barrier( - texture.image(), + texture.handle(), vk::ImageAspectFlags::COLOR, vk::PipelineStageFlags2::TRANSFER, vk::AccessFlags2::TRANSFER_WRITE, @@ -2313,7 +2304,7 @@ impl Renderer { )?; { - let mut map = staging.map_arc()?; + let mut map = staging.map()?; let (st_vertices, rest) = map.split_at_mut(vertices_size); let (st_indices, st_drawcalls) = rest.split_at_mut(indices_size); @@ -2394,7 +2385,7 @@ impl Renderer { }, )?; { - let mut map = texture_ids.map_arc()?; + let mut map = texture_ids.map()?; map.copy_from_slice(bytemuck::cast_slice(&textures_indices)); } @@ -2412,16 +2403,15 @@ impl Renderer { .get_sampler(entry.into_sampler_desc()) .unwrap(), image_view: texture - .view(images::ImageViewDesc { + .get_view(images::ImageViewDesc { kind: vk::ImageViewType::TYPE_2D, - format: texture.image().format(), + format: texture.format(), aspect: vk::ImageAspectFlags::COLOR, mip_range: (0..1).into(), layer_range: (0..1).into(), ..Default::default() }) - .unwrap() - .handle(), + .unwrap(), image_layout: vk::ImageLayout::SHADER_READ_ONLY_OPTIMAL, };