declarations.h 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. // Copyright 2019 yuzu Emulator Project
  2. // Licensed under GPLv2 or any later version
  3. // Refer to the license.txt file included.
  4. #pragma once
  5. #include <vulkan/vulkan.hpp>
  6. namespace Vulkan {
  7. // vulkan.hpp unique handlers use DispatchLoaderStatic
  8. template <typename T>
  9. using UniqueHandle = vk::UniqueHandle<T, vk::DispatchLoaderDynamic>;
  10. using UniqueAccelerationStructureNV = UniqueHandle<vk::AccelerationStructureNV>;
  11. using UniqueBuffer = UniqueHandle<vk::Buffer>;
  12. using UniqueBufferView = UniqueHandle<vk::BufferView>;
  13. using UniqueCommandBuffer = UniqueHandle<vk::CommandBuffer>;
  14. using UniqueCommandPool = UniqueHandle<vk::CommandPool>;
  15. using UniqueDescriptorPool = UniqueHandle<vk::DescriptorPool>;
  16. using UniqueDescriptorSet = UniqueHandle<vk::DescriptorSet>;
  17. using UniqueDescriptorSetLayout = UniqueHandle<vk::DescriptorSetLayout>;
  18. using UniqueDescriptorUpdateTemplate = UniqueHandle<vk::DescriptorUpdateTemplate>;
  19. using UniqueDevice = UniqueHandle<vk::Device>;
  20. using UniqueDeviceMemory = UniqueHandle<vk::DeviceMemory>;
  21. using UniqueEvent = UniqueHandle<vk::Event>;
  22. using UniqueFence = UniqueHandle<vk::Fence>;
  23. using UniqueFramebuffer = UniqueHandle<vk::Framebuffer>;
  24. using UniqueImage = UniqueHandle<vk::Image>;
  25. using UniqueImageView = UniqueHandle<vk::ImageView>;
  26. using UniqueIndirectCommandsLayoutNVX = UniqueHandle<vk::IndirectCommandsLayoutNVX>;
  27. using UniqueObjectTableNVX = UniqueHandle<vk::ObjectTableNVX>;
  28. using UniquePipeline = UniqueHandle<vk::Pipeline>;
  29. using UniquePipelineCache = UniqueHandle<vk::PipelineCache>;
  30. using UniquePipelineLayout = UniqueHandle<vk::PipelineLayout>;
  31. using UniqueQueryPool = UniqueHandle<vk::QueryPool>;
  32. using UniqueRenderPass = UniqueHandle<vk::RenderPass>;
  33. using UniqueSampler = UniqueHandle<vk::Sampler>;
  34. using UniqueSamplerYcbcrConversion = UniqueHandle<vk::SamplerYcbcrConversion>;
  35. using UniqueSemaphore = UniqueHandle<vk::Semaphore>;
  36. using UniqueShaderModule = UniqueHandle<vk::ShaderModule>;
  37. using UniqueSwapchainKHR = UniqueHandle<vk::SwapchainKHR>;
  38. using UniqueValidationCacheEXT = UniqueHandle<vk::ValidationCacheEXT>;
  39. } // namespace Vulkan