luna engine
software engine
Loading...
Searching...
No Matches
luna::vulkan::vulkanCmdPool Class Reference

abbstraction class around the vulkan commandbuffer and pool to introduce increased workflow safety and usability and to decrease bugs. all a VkCommandBuffer has been changed out by virtualCmdBuffer type. More...

#include <vulkanCmdPool.h>

Collaboration diagram for luna::vulkan::vulkanCmdPool:

Public Member Functions

VkCommandBuffer vulkanCmdPool::operator[] (const virtualCmdBuffer commandBuffer)
 
VkCommandBuffer operator= (const virtualCmdBuffer commandBuffer)
 
 vulkanCmdPool (const vulkanCmdPoolSpec &commandBufferSPec)
 vulkanCmdPool constructor More...
 
virtual ~vulkanCmdPool ()
 commandPool destructor, does nothing at the moment More...
 
VkResult createNewBuffer (virtualCmdBuffer *commandBuffer, const uint32_t &commandBufferCount, const VkCommandBufferLevel &commandBufferLevel)
 createNewBuffer creates a proteceted commandBuffer that is bound to the pool it is created with. More...
 
VkResult begin (virtualCmdBuffer commandBuffer, const VkCommandBufferUsageFlags &usageFlags)
 starts recording a commandBuffer. More...
 
VkResult end (virtualCmdBuffer commandBuffer)
 stops recording the commandBuffer. More...
 
VkResult flush (const VkQueue &queue, const uint64_t &submitCount, const commandPoolSubmitInfo *pCommandPoolSubmitInfo, const VkFence &waitFence)
 flush executes all flushed/submitted commandBuffers. More...
 
void freeCommandBuffer (virtualCmdBuffer *pCommandBuffers, uint32_t count)
 frees commandbuffers to be able to rerecord them. More...
 
void resetCommandBuffer (const virtualCmdBuffer &commandBuffer)
 

Private Attributes

std::unordered_map< virtualCmdBuffer, std::pair< VkCommandBuffer, VkCommandBufferUsageFlags > > virtualBuffers
 
VkCommandPool commandPool
 
vulkanCmdPoolSpec sCommandPoolSpec
 

Detailed Description

abbstraction class around the vulkan commandbuffer and pool to introduce increased workflow safety and usability and to decrease bugs. all a VkCommandBuffer has been changed out by virtualCmdBuffer type.

Constructor & Destructor Documentation

◆ vulkanCmdPool()

luna::vulkan::vulkanCmdPool::vulkanCmdPool ( const vulkanCmdPoolSpec commandBufferSPec)

vulkanCmdPool constructor

Parameters
vulkanCmdPoolSpeccommandPoolSpecefication;

◆ ~vulkanCmdPool()

luna::vulkan::vulkanCmdPool::~vulkanCmdPool ( )
virtual

commandPool destructor, does nothing at the moment

Member Function Documentation

◆ begin()

VkResult luna::vulkan::vulkanCmdPool::begin ( virtualCmdBuffer  commandBuffer,
const VkCommandBufferUsageFlags &  usageFlags 
)

starts recording a commandBuffer.

Parameters
virtualCommandBuffercommandBuffer handle.
constVkCommandBufferUsageFlags& usageFlags

◆ createNewBuffer()

VkResult luna::vulkan::vulkanCmdPool::createNewBuffer ( virtualCmdBuffer commandBuffer,
const uint32_t &  commandBufferCount,
const VkCommandBufferLevel &  commandBufferLevel 
)

createNewBuffer creates a proteceted commandBuffer that is bound to the pool it is created with.

Parameters
virtualCmdBuffer*a command buffer array pointer or std::vector pointer.
constuint32_t& commandBufferCount number of commandBuffers to be created.
constVkCommandBufferLevel& commandBufferLevel specifies the commandBuffer type.

◆ end()

VkResult luna::vulkan::vulkanCmdPool::end ( virtualCmdBuffer  commandBuffer)

stops recording the commandBuffer.

Parameters
virtualCommandBuffercommandBuffer handle.

◆ flush()

VkResult luna::vulkan::vulkanCmdPool::flush ( const VkQueue &  queue,
const uint64_t &  submitCount,
const commandPoolSubmitInfo pCommandPoolSubmitInfo,
const VkFence &  waitFence 
)

flush executes all flushed/submitted commandBuffers.

Parameters
VkQueuequeue
submiCountthe amount of commandPoolSubmitInfos
constcommandPoolSubmitInfo* pCommandPoolSubmitInfo

◆ freeCommandBuffer()

void luna::vulkan::vulkanCmdPool::freeCommandBuffer ( virtualCmdBuffer pCommandBuffers,
uint32_t  count 
)

frees commandbuffers to be able to rerecord them.

Parameters
pCommandBuffersa command buffer array pointer or std::vector pointer.
count

◆ operator=()

VkCommandBuffer luna::vulkan::vulkanCmdPool::operator= ( const virtualCmdBuffer  commandBuffer)
inline

◆ resetCommandBuffer()

void luna::vulkan::vulkanCmdPool::resetCommandBuffer ( const virtualCmdBuffer commandBuffer)

◆ vulkanCmdPool::operator[]()

VkCommandBuffer luna::vulkan::vulkanCmdPool::vulkanCmdPool::operator[] ( const virtualCmdBuffer  commandBuffer)

Member Data Documentation

◆ commandPool

VkCommandPool luna::vulkan::vulkanCmdPool::commandPool
private

◆ sCommandPoolSpec

vulkanCmdPoolSpec luna::vulkan::vulkanCmdPool::sCommandPoolSpec
private

◆ virtualBuffers

std::unordered_map<virtualCmdBuffer, std::pair<VkCommandBuffer, VkCommandBufferUsageFlags> > luna::vulkan::vulkanCmdPool::virtualBuffers
private

The documentation for this class was generated from the following files: