Просмотр исходного кода

renderer_vulkan/wrapper: Add device memory handle

ReinUsesLisp 6 лет назад
Родитель
Сommit
3a63ae0658
1 измененных файлов с 15 добавлено и 0 удалено
  1. 15 0
      src/video_core/renderer_vulkan/wrapper.h

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

@@ -600,6 +600,21 @@ public:
     void BindMemory(VkDeviceMemory memory, VkDeviceSize offset) const;
 };
 
+class DeviceMemory : public Handle<VkDeviceMemory, VkDevice, DeviceDispatch> {
+    using Handle<VkDeviceMemory, VkDevice, DeviceDispatch>::Handle;
+
+public:
+    u8* Map(VkDeviceSize offset, VkDeviceSize size) const {
+        void* data;
+        Check(dld->vkMapMemory(owner, handle, offset, size, 0, &data));
+        return static_cast<u8*>(data);
+    }
+
+    void Unmap() const noexcept {
+        dld->vkUnmapMemory(owner, handle);
+    }
+};
+
 class DescriptorPool : public Handle<VkDescriptorPool, VkDevice, DeviceDispatch> {
     using Handle<VkDescriptorPool, VkDevice, DeviceDispatch>::Handle;