2020-03-24 21:05:32 +01:00
|
|
|
#pragma once
|
2023-10-26 18:37:29 +02:00
|
|
|
#include "Resources.h"
|
2020-03-24 21:05:32 +01:00
|
|
|
|
2024-06-09 12:20:04 +02:00
|
|
|
namespace Seele {
|
|
|
|
|
namespace Vulkan {
|
2023-11-15 00:06:00 +01:00
|
|
|
DECLARE_REF(Command)
|
2021-04-01 16:40:14 +02:00
|
|
|
DECLARE_REF(Graphics)
|
2024-06-09 12:20:04 +02:00
|
|
|
class Queue {
|
|
|
|
|
public:
|
2024-01-16 19:24:49 +01:00
|
|
|
Queue(PGraphics graphics, uint32 familyIndex, uint32 queueIndex);
|
2020-04-12 15:47:19 +02:00
|
|
|
virtual ~Queue();
|
2023-11-17 16:53:37 +01:00
|
|
|
void submitCommandBuffer(PCommand command, const Array<VkSemaphore>& signalSemaphore);
|
2024-06-09 12:20:04 +02:00
|
|
|
constexpr uint32 getFamilyIndex() const { return familyIndex; }
|
|
|
|
|
constexpr VkQueue getHandle() const { return queue; }
|
2020-04-12 15:47:19 +02:00
|
|
|
|
2024-06-09 12:20:04 +02:00
|
|
|
private:
|
2021-04-13 23:09:16 +02:00
|
|
|
std::mutex queueLock;
|
2020-04-12 15:47:19 +02:00
|
|
|
PGraphics graphics;
|
|
|
|
|
VkQueue queue;
|
|
|
|
|
uint32 familyIndex;
|
|
|
|
|
};
|
|
|
|
|
DEFINE_REF(Queue)
|
|
|
|
|
} // namespace Vulkan
|
|
|
|
|
} // namespace Seele
|