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

renderer_vulkan/wrapper: Add swapchain handle

ReinUsesLisp пре 6 година
родитељ
комит
11774308d3
2 измењених фајлова са 15 додато и 0 уклоњено
  1. 8 0
      src/video_core/renderer_vulkan/wrapper.cpp
  2. 7 0
      src/video_core/renderer_vulkan/wrapper.h

+ 8 - 0
src/video_core/renderer_vulkan/wrapper.cpp

@@ -460,4 +460,12 @@ CommandBuffers CommandPool::Allocate(std::size_t num_buffers, VkCommandBufferLev
     }
 }
 
+std::vector<VkImage> SwapchainKHR::GetImages() const {
+    u32 num;
+    Check(dld->vkGetSwapchainImagesKHR(owner, handle, &num, nullptr));
+    std::vector<VkImage> images(num);
+    Check(dld->vkGetSwapchainImagesKHR(owner, handle, &num, images.data()));
+    return images;
+}
+
 } // namespace Vulkan::vk

+ 7 - 0
src/video_core/renderer_vulkan/wrapper.h

@@ -647,4 +647,11 @@ public:
                             VkCommandBufferLevel level = VK_COMMAND_BUFFER_LEVEL_PRIMARY) const;
 };
 
+class SwapchainKHR : public Handle<VkSwapchainKHR, VkDevice, DeviceDispatch> {
+    using Handle<VkSwapchainKHR, VkDevice, DeviceDispatch>::Handle;
+
+public:
+    std::vector<VkImage> GetImages() const;
+};
+
 } // namespace Vulkan::vk