29 lines
667 B
C++
29 lines
667 B
C++
|
#pragma once
|
||
|
|
||
|
#include "forward.hpp"
|
||
|
#include <vector>
|
||
|
|
||
|
namespace render::vk {
|
||
|
class SwapChain;
|
||
|
class Pipeline;
|
||
|
|
||
|
class CommandPool {
|
||
|
public:
|
||
|
CommandPool(VkDevice, const std::vector<VkImageView>&, PipelineRef, const PhysicalDeviceInfo&, const renderOptions&);
|
||
|
~CommandPool();
|
||
|
|
||
|
void submitGraphics(uint32_t, VkQueue, VkSemaphore, VkSemaphore, VkFence);
|
||
|
|
||
|
void allocate(const std::vector<VkImageView>&, PipelineRef, VkExtent2D, const renderOptions&);
|
||
|
void free();
|
||
|
|
||
|
private:
|
||
|
VkDevice device;
|
||
|
|
||
|
std::vector<VkFramebuffer> framebuffers;
|
||
|
|
||
|
VkCommandPool graphicsPool;
|
||
|
std::vector<VkCommandBuffer> graphicsBuffers;
|
||
|
bool freed = true;
|
||
|
};
|
||
|
}
|