RavEngine
Loading...
Searching...
No Matches
VkCommandQueue.hpp
1#pragma once
2#include <RGL/Types.hpp>
3#include <RGL/CommandQueue.hpp>
4#include "VkSynchronization.hpp"
5#include <volk.h>
6#include <span>
7
8namespace RGL {
9 struct DeviceVk;
10 struct ICommandBuffer;
11 struct CommandBufferVk;
12 struct CommitConfig;
13
14 struct CommandQueueVk : public ICommandQueue, public std::enable_shared_from_this<CommandQueueVk> {
15 const std::shared_ptr<DeviceVk> owningDevice;
16 VkQueue queue;
17 CommandQueueVk(decltype(owningDevice) device);
18
19 // call by commandbuffer::commit
20 void Submit(CommandBufferVk*, const CommitConfig&, VkFence internalFence);
21
22 // ICommandQueue
23 RGLCommandBufferPtr CreateCommandBuffer() final;
24
25 void WaitUntilCompleted() final;
26
27 QueueData GetQueueData() final;
28 };
29
30}
Definition VkCommandBuffer.hpp:38
Definition VkCommandQueue.hpp:14
Definition CommandBuffer.hpp:46
Definition CommandQueue.hpp:27
Definition CommandQueue.hpp:15