CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
VKCommandQueue.hpp
Go to the documentation of this file.
1//
2// CeresEngine - A game development framework
3//
4// Created by Rogiel Sulzbach.
5// Copyright (c) 2018-2022 Rogiel Sulzbach. All rights reserved.
6//
7
8#pragma once
9
10#include "VKCommon.hpp"
11
14
16
18
19#include <mutex>
20
21namespace CeresEngine {
22
23 class VKRenderAPI;
24 class VKCommandBuffer;
25
26 class VKSwapchain;
27
28 class VKCommandQueue final : public GPUCommandQueue, public VKDeviceObject<VKCommandQueue, GPUCommandQueue> {
29 friend class VKCommandBuffer;
30
31 private:
34
37
40
41#if defined(CE_VK_GPU_PROFILING)
42 private: // Profiling
44#endif
45
46 public:
47 mutable Mutex mutex;
48
49 public:
52
55
56 public:
59
60 public:
62 Async<> submit(GPUCommandBuffer& commandBuffer) final;
63
65 void wait() final;
66
67 public:
70 };
71
72} // namespace CeresEngine
#define CE_EXPLICIT_FALSE
Definition Macros.hpp:416
A retain-release type of smart pointer.
Definition SmartPtr.hpp:132
Definition GPUCommandBuffer.hpp:77
Definition GPUCommandQueue.hpp:29
GPUDevice & device
The owning device this object was created from.
Definition Common.hpp:55
const Descriptor & descriptor
A structure that describes the object and it's properties.
Definition Common.hpp:69
The GPUCommandBuffer implementation for the Vulkan RenderAPI.
Definition VKCommandBuffer.hpp:72
Definition VKCommandQueue.hpp:28
UInt32 getFamilyIndex() const
The Vulkan queue getFamilyIndex index.
Definition VKCommandQueue.hpp:69
Async submit(GPUCommandBuffer &commandBuffer) final
Mutex mutex
Definition VKCommandQueue.hpp:47
VKCommandQueue(VKDevice &device, UInt32 familyIndex, VkQueue queue)
UInt32 mFamilyIndex
The Vulkan queue getFamilyIndex index.
Definition VKCommandQueue.hpp:39
VkQueue mQueue
The Vulkan queue object.
Definition VKCommandQueue.hpp:36
GPUCommandBufferPtr createCommandBuffer(const GPUCommandBufferDescriptor &descriptor) final
const GPUCommandQueueDescriptor mDescriptorVK
A structure that describes the command queue and it's properties.
Definition VKCommandQueue.hpp:33
Definition VKDevice.hpp:79
Definition VKCommon.hpp:143
Definition Application.hpp:19
cti::continuable< Args... > Async
Defines a non-copyable continuation type which uses the function2 backend for type erasure.
Definition Async.hpp:22
std::mutex Mutex
The Mutex class is a synchronization primitive that can be used to protect shared data from being sim...
Definition Threading.hpp:73
std::uint32_t UInt32
Definition DataTypes.hpp:23
constexpr size_t hash(const T &v)
Generates a hash for the provided type.
Definition Hash.hpp:25
Command buffer descriptor structure.
Definition GPUCommandBuffer.hpp:32
Command queue descriptor structure.
Definition GPUCommandQueue.hpp:23