9#include <vulkan/vulkan.h>
21 const VkPhysicalDeviceProperties& get_properties()
const noexcept;
23 const VkPhysicalDeviceFeatures& get_features()
const noexcept;
25 VkSurfaceKHR get_surface()
const noexcept;
30 std::string_view
get_name()
const noexcept;
37 VkSurfaceCapabilitiesKHR get_surface_capabilities()
const;
38 std::vector<VkSurfaceFormatKHR> get_surface_formats()
const;
39 std::vector<VkPresentModeKHR> get_surface_present_modes()
const;
41 bool is_extension_available(std::string_view name)
const;
43 std::optional<uint32_t> graphics = std::nullopt;
44 std::optional<uint32_t> compute = std::nullopt;
45 std::optional<uint32_t> transfer = std::nullopt;
46 std::optional<uint32_t> present = std::nullopt;
48 operator VkPhysicalDevice();
49 operator VkPhysicalDevice()
const;
52 VkPhysicalDevice handle_;
53 VkPhysicalDeviceProperties properties_;
54 VkPhysicalDeviceFeatures features_;
56 VkSurfaceKHR surface_;
58 std::vector<VkExtensionProperties> available_extensions_;
Vulkan 物理设备.
Definition: VKPhysicalDevice.h:15
std::string_view get_vendor_name() const noexcept
获取设备供应商名称.
Definition: VKPhysicalDevice.cpp:60
std::string_view get_name() const noexcept
获取设备名称.
Definition: VKPhysicalDevice.cpp:55