#pragma once
#include <mutex>
#include "../vulkan.h"
namespace vulkanapi {
	class Device;
	class CommandBuffer;
	class Queue {
	protected:
		VkQueue mPtr;
		uint32_t mQueueFamilyIndex;
		const string mName;
	public:
		Queue(const string& name, uint32_t queueFamilyIndex, VkQueue queue);
		uint32_t QueueFamilyIndex()
		{
			return mQueueFamilyIndex;
		}
		VkQueue& Ptr() {
			return mPtr;
		}
	public:
		static const string TransferQueue;
		static const string RenderQueue;
		static const string ComputeQueue;
		static const string PresentQueue;
	};
}