PixelBullet  0.0.1
A C++ game engine
Loading...
Searching...
No Matches
command_buffer.h
1#pragma once
2
3#include <volk.h>
4
5#include <memory>
6
7namespace pixelbullet
8{
9class CommandPool;
10class LogicalDevice;
11class RenderDevice;
12
17{
18public:
25 explicit CommandBuffer(const RenderDevice& render_device, bool begin = true, VkQueueFlagBits queueType = VK_QUEUE_GRAPHICS_BIT,
26 VkCommandBufferLevel bufferLevel = VK_COMMAND_BUFFER_LEVEL_PRIMARY);
27
29
34 void Reset(VkCommandBufferResetFlags flags = 0);
35
40 void Begin(VkCommandBufferUsageFlags usage = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT);
41
45 void End();
46
50 void SubmitIdle();
51
58 void Submit(const VkSemaphore& waitSemaphore = VK_NULL_HANDLE, const VkSemaphore& signalSemaphore = VK_NULL_HANDLE,
59 VkFence fence = VK_NULL_HANDLE);
60
61 operator const VkCommandBuffer&() const
62 {
63 return command_buffer_;
64 }
65
66 const VkCommandBuffer& GetCommandBuffer() const
67 {
68 return command_buffer_;
69 }
70 bool IsRunning() const
71 {
72 return running_;
73 }
74
75private:
76 VkQueue GetQueue() const;
77
78private:
79 std::shared_ptr<CommandPool> command_pool_;
80 const LogicalDevice* logical_device_;
81
82 VkQueueFlagBits queue_type_;
83 VkCommandBuffer command_buffer_ = VK_NULL_HANDLE;
84 bool running_ = false;
85};
86} // namespace pixelbullet
Class that represents a command buffer.
Definition command_buffer.h:17
void Reset(VkCommandBufferResetFlags flags=0)
Definition command_buffer.cc:35
void End()
Definition command_buffer.cc:59
void Begin(VkCommandBufferUsageFlags usage=VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT)
Definition command_buffer.cc:45
CommandBuffer(const RenderDevice &render_device, bool begin=true, VkQueueFlagBits queueType=VK_QUEUE_GRAPHICS_BIT, VkCommandBufferLevel bufferLevel=VK_COMMAND_BUFFER_LEVEL_PRIMARY)
Definition command_buffer.cc:11
void SubmitIdle()
Definition command_buffer.cc:70
void Submit(const VkSemaphore &waitSemaphore=VK_NULL_HANDLE, const VkSemaphore &signalSemaphore=VK_NULL_HANDLE, VkFence fence=VK_NULL_HANDLE)
Definition command_buffer.cc:99
Definition logical_device.h:13
Definition render_device.h:15