2021-09-22 16:28:39 +08:00
|
|
|
#ifndef HGL_VULKAN_DEVICE_RENDERPASS_MANAGE_INCLUDE
|
|
|
|
#define HGL_VULKAN_DEVICE_RENDERPASS_MANAGE_INCLUDE
|
|
|
|
|
|
|
|
#include<hgl/graph/VK.h>
|
|
|
|
#include<hgl/type/Map.h>
|
|
|
|
#include<hgl/util/hash/Hash.h>
|
|
|
|
|
|
|
|
VK_NAMESPACE_BEGIN
|
|
|
|
using RenderPassHASHCode=util::HashCodeSHA1LE;
|
|
|
|
|
|
|
|
class DeviceRenderPassManage
|
|
|
|
{
|
|
|
|
VkDevice device;
|
2021-09-22 17:15:17 +08:00
|
|
|
VkPipelineCache pipeline_cache;
|
2021-09-22 16:28:39 +08:00
|
|
|
|
|
|
|
util::Hash *hash;
|
|
|
|
|
|
|
|
Map<RenderPassHASHCode,RenderPass *> RenderPassList;
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
|
|
friend class GPUDevice;
|
|
|
|
|
2021-09-22 17:15:17 +08:00
|
|
|
DeviceRenderPassManage(VkDevice,VkPipelineCache);
|
2021-09-22 16:28:39 +08:00
|
|
|
~DeviceRenderPassManage();
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
|
|
RenderPass * CreateRenderPass( const List<VkAttachmentDescription> &desc_list,
|
|
|
|
const List<VkSubpassDescription> &subpass,
|
|
|
|
const List<VkSubpassDependency> &dependency,
|
|
|
|
const RenderbufferInfo *);
|
|
|
|
|
2021-11-22 15:31:30 +08:00
|
|
|
RenderPass * AcquireRenderPass( const RenderbufferInfo *,const uint subpass_count=2);
|
2021-09-22 16:28:39 +08:00
|
|
|
};//class DeviceRenderPassManage
|
|
|
|
VK_NAMESPACE_END
|
|
|
|
#endif//HGL_VULKAN_DEVICE_RENDERPASS_MANAGE_INCLUDE
|