PixelBullet  0.0.1
A C++ game engine
Loading...
Searching...
No Matches
CommandBuffer.hpp
1#pragma once
2
3#include "PixelBullet/Graphics/Commands/CommandPool.hpp"
4
5#include <memory>
6
7namespace PixelBullet
8{
9 class LogicalDevice;
10
15 {
16 public:
23 explicit CommandBuffer(const LogicalDevice* logicalDevice, bool begin = true,
24 VkQueueFlagBits queueType = VK_QUEUE_GRAPHICS_BIT,
25 VkCommandBufferLevel bufferLevel = VK_COMMAND_BUFFER_LEVEL_PRIMARY);
26
28
33 void Begin(VkCommandBufferUsageFlags usage = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT);
34
38 void End();
39
43 void SubmitIdle();
44
51 void Submit(const VkSemaphore& waitSemaphore = VK_NULL_HANDLE,
52 const VkSemaphore& signalSemaphore = VK_NULL_HANDLE, VkFence fence = VK_NULL_HANDLE);
53
54 operator const VkCommandBuffer&() const
55 {
56 return m_CommandBuffer;
57 }
58
59 const VkCommandBuffer& GetCommandBuffer() const
60 {
61 return m_CommandBuffer;
62 }
63 bool IsRunning() const
64 {
65 return m_Running;
66 }
67
68 private:
69 VkQueue GetQueue() const;
70
71 private:
72 std::shared_ptr<CommandPool> m_CommandPool;
73 const LogicalDevice* m_LogicalDevice;
74
75 VkQueueFlagBits m_QueueType;
76 VkCommandBuffer m_CommandBuffer = VK_NULL_HANDLE;
77 bool m_Running = false;
78 };
79} // namespace PixelBullet
Class that represents a command buffer.
Definition CommandBuffer.hpp:15
CommandBuffer(const LogicalDevice *logicalDevice, bool begin=true, VkQueueFlagBits queueType=VK_QUEUE_GRAPHICS_BIT, VkCommandBufferLevel bufferLevel=VK_COMMAND_BUFFER_LEVEL_PRIMARY)
Definition CommandBuffer.cpp:9
void Begin(VkCommandBufferUsageFlags usage=VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT)
Definition CommandBuffer.cpp:34
void Submit(const VkSemaphore &waitSemaphore=VK_NULL_HANDLE, const VkSemaphore &signalSemaphore=VK_NULL_HANDLE, VkFence fence=VK_NULL_HANDLE)
Definition CommandBuffer.cpp:89
void End()
Definition CommandBuffer.cpp:48
void SubmitIdle()
Definition CommandBuffer.cpp:59
Definition LogicalDevice.hpp:13