Created a paper-thin wrapper around a VkQueue mainly so it manages its own lifecycle so long as its associated device is alive
This commit is contained in:
30
include/vulkan/basalt_queue.h
Normal file
30
include/vulkan/basalt_queue.h
Normal file
@@ -0,0 +1,30 @@
|
||||
#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;
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user