From c9fdcfe008352f0e77ba97f3bd54a443b3aaa77c Mon Sep 17 00:00:00 2001 From: Avery Date: Thu, 17 Apr 2025 15:13:58 +0200 Subject: [PATCH] Deduplicate setup_dest_layout The vube and skybox need the layout of their desc_set twice, once for creating their pipeline, once for creating their desc set, two different functions were used for that (one of which belonging to the `WorldComponent` trait), now since they can't be fully merged, one just calls the other. --- src/render/cube.rs | 20 +------------------- src/render/skybox.rs | 15 +-------------- 2 files changed, 2 insertions(+), 33 deletions(-) diff --git a/src/render/cube.rs b/src/render/cube.rs index 7aab60b..adc79be 100644 --- a/src/render/cube.rs +++ b/src/render/cube.rs @@ -140,25 +140,7 @@ impl WorldComponent for Cube { } fn desc_layout(&self, ctx: &RenderCtx) -> vk::DescriptorSetLayout { - let storage_binding = vk::DescriptorSetLayoutBinding::default() - .binding(0) - .descriptor_type(vk::DescriptorType::STORAGE_BUFFER) - .descriptor_count(1) - .stage_flags(vk::ShaderStageFlags::VERTEX); - let image_binding = vk::DescriptorSetLayoutBinding::default() - .binding(1) - .descriptor_type(vk::DescriptorType::COMBINED_IMAGE_SAMPLER) - .descriptor_count(1) - .stage_flags(vk::ShaderStageFlags::FRAGMENT); - let layouts = [storage_binding, image_binding]; - - let layout_info = vk::DescriptorSetLayoutCreateInfo::default().bindings(&layouts); - let layout = unsafe { - ctx.dev - .create_descriptor_set_layout(&layout_info, None) - .expect("Failed to create descriptor set layout") - }; - layout + setup_desc_layout(ctx) } fn write_desc_set( diff --git a/src/render/skybox.rs b/src/render/skybox.rs index 4bfa721..4be5777 100644 --- a/src/render/skybox.rs +++ b/src/render/skybox.rs @@ -23,20 +23,7 @@ impl WorldComponent for Skybox { } fn desc_layout(&self, ctx: &RenderCtx) -> vk::DescriptorSetLayout { - let image_binding = vk::DescriptorSetLayoutBinding::default() - .binding(0) - .descriptor_type(vk::DescriptorType::COMBINED_IMAGE_SAMPLER) - .descriptor_count(1) - .stage_flags(vk::ShaderStageFlags::FRAGMENT); - let layouts = [image_binding]; - - let layout_info = vk::DescriptorSetLayoutCreateInfo::default().bindings(&layouts); - let layout = unsafe { - ctx.dev - .create_descriptor_set_layout(&layout_info, None) - .expect("Failed to create descriptor set layout") - }; - layout + setup_desc_layout(ctx) } fn write_desc_set(