#pragma once #include #include namespace VkObjects { class PhysicalDevice; class Device final { VkDevice device_ = nullptr; VkQueue graphics_queue_ = nullptr; VkQueue present_queue_ = nullptr; VkQueue transfer_queue_ = nullptr; public: explicit Device(const PhysicalDevice& physical_device, const std::vector& device_extensions); ~Device(); inline VkDevice get_native() const { return device_; } inline VkQueue get_graphics_queue() const { return graphics_queue_; } inline VkQueue get_present_queue() const { return present_queue_; } inline VkQueue get_transfer_queue() const { return transfer_queue_; } }; }