#pragma once #include "basalt_window.h" namespace basalt { class Device; typedef u16 QueueFlag; typedef enum QueueFlags { QUEUE_FLAG_SUPPORTS_GRAPHICS = 1, QUEUE_FLAG_SUPPORTS_PRESENT = 2, QUEUE_FLAG_SUPPORTS_COMPUTE = 4, QUEUE_FLAG_SUPPORTS_TRANSFER = 8 } QueueFlags; class Queue { public: Queue(const Queue&) = default; Queue& operator =(const Queue&) = default; Queue(Queue&&) = default; Queue& operator =(Queue&&) = default; Queue(basalt::Device& dev, VkQueue queue, u32 family_index, VkSurfaceKHR surface=VK_NULL_HANDLE); basalt::Device* device; VkQueue queue; QueueFlag flags; }; }