NarcEngine 0.1.1
C++ Vulkan game engine
 
Loading...
Searching...
No Matches
CommandBuffer.h
1#pragma once
2#include "buffers/Buffer.h"
3
4namespace narc_engine {
6 {
7 public:
8 GETTER VkCommandBuffer getVkCommandBuffer() const { return m_commandBuffer; }
9
10 void allocate(const DeviceHandler* deviceHandler, const VkCommandBufferAllocateInfo* allocInfo);
11 void reset(VkCommandBufferResetFlags flags);
12 void begin(VkCommandBufferBeginInfo beginInfo);
13 VkResult end();
14 void release(const DeviceHandler* deviceHandler, const VkCommandPool& commandPool);
15
16 void cmdBeginRenderPass(const VkRenderPassBeginInfo* renderPassInfo, VkSubpassContents contents) const;
17 void cmdBindPipeline(VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline) const;
18 void cmdSetViewport(const VkViewport* viewport, uint32_t firstViewport, uint32_t viewportCount) const;
19 void cmdSetScissor(const VkRect2D* scissor, uint32_t firstScissor, uint32_t scissorCount) const;
20 void cmdBindVertexBuffers(uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* buffers, const VkDeviceSize* offsets) const;
21 void cmdBindIndexBuffer(VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType) const;
22 void cmdBindDescriptorSets(VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const
23 VkDescriptorSet* descriptorSets, uint32_t dynamicOffsetCount, const uint32_t* dynamicOffsets) const;
24 void cmdDrawIndexed(uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance) const;
25 void cmdEndRenderPass() const;
26
27 void cmdPipelineBarrier(VkPipelineStageFlags sourceStage, VkPipelineStageFlags destinationStage, VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount,
28 const VkMemoryBarrier* memoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* bufferMemoryBarriers, uint32_t imageMemoryBarrierCount,
29 const VkImageMemoryBarrier* imageMemoryBarriers) const;
30 void cmdCopyBufferImage(VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* regions) const;
31 void cmdCopyBuffer(VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* copyRegion) const;
32
33 static void allocateBuffers(const DeviceHandler* deviceHandler, const VkCommandBufferAllocateInfo* allocInfo, std::vector<CommandBuffer>& commandBuffers);
34
35 private:
36 VkCommandBuffer m_commandBuffer;
37 bool m_allocated = false;
38 };
39}
Definition CommandBuffer.h:6
Definition DeviceHandler.h:11