#pragma once

/*
	VulkanFramework
	by John Ryland
	Copyright (c) 2023
*/

////////////////////////////////////////////////////////////////////////////////////
//	Vulkan Command Pool

#include "VulkanDevice.h"

namespace Vulkan {

// There is now a CommandPool created with the context
class CommandPool
{
public:
    CommandPool();
    virtual ~CommandPool();

    virtual void Initialize(Device* device);
    virtual void Destroy();

    VkCommandBuffer BeginSingleTimeCommands();
    void EndSingleTimeCommands(VkCommandBuffer commandBuffer);

    Device*               m_owner;
    VkCommandPool         m_commandPool;
};

} // Vulkan namespace
