#pragma once #include "vulkaninstance.h" class VulkanSurface; class VulkanCompatibleDevice { public: VulkanPhysicalDevice* Device = nullptr; int GraphicsFamily = -1; int PresentFamily = -1; bool GraphicsTimeQueries = false; std::vector EnabledDeviceExtensions; VulkanDeviceFeatures EnabledFeatures; static std::vector FindDevices(const std::shared_ptr& instance, const std::shared_ptr& surface); static VulkanCompatibleDevice SelectDevice(const std::shared_ptr& instance, const std::shared_ptr& surface, int vk_device); };