Преглед изворни кода

Backends: Vulkan: rewrite pColorAttachmentFormats deep-copy to avoid issues when calling multiple times. (#8282, #8110)

ocornut пре 6 дана
родитељ
комит
02af06ea5f
1 измењених фајлова са 4 додато и 2 уклоњено
  1. 4 2
      backends/imgui_impl_vulkan.cpp

+ 4 - 2
backends/imgui_impl_vulkan.cpp

@@ -1164,8 +1164,10 @@ void ImGui_ImplVulkan_CreateMainPipeline(const ImGui_ImplVulkan_MainPipelineCrea
         if (v->PipelineRenderingCreateInfo.pColorAttachmentFormats != NULL)
         {
             // Deep copy buffer to reduce error-rate for end user (#8282)
-            bd->PipelineRenderingCreateInfoColorAttachmentFormats.resize((int)v->PipelineRenderingCreateInfo.colorAttachmentCount);
-            memcpy(bd->PipelineRenderingCreateInfoColorAttachmentFormats.Data, v->PipelineRenderingCreateInfo.pColorAttachmentFormats, (size_t)bd->PipelineRenderingCreateInfoColorAttachmentFormats.size_in_bytes());
+            ImVector<VkFormat> formats;
+            formats.resize((int)v->PipelineRenderingCreateInfo.colorAttachmentCount);
+            memcpy(formats.Data, v->PipelineRenderingCreateInfo.pColorAttachmentFormats, (size_t)formats.size_in_bytes());
+            formats.swap(bd->PipelineRenderingCreateInfoColorAttachmentFormats);
             v->PipelineRenderingCreateInfo.pColorAttachmentFormats = bd->PipelineRenderingCreateInfoColorAttachmentFormats.Data;
         }
     }