added renderpass manager

This commit is contained in:
2026-08-29 12:31:10 +03:00
parent eef7d2b046
commit ee9bffcca4
12 changed files with 319 additions and 106 deletions
+40
View File
@@ -0,0 +1,40 @@
#ifndef RENDERPASSMGR_H
#define RENDERPASSMGR_H
#include "vulkan_state.h"
struct RenderPassUsage
{
IImage *pImage;
EImageFormat eFormat;
EMultisampleType eMultisampleType;
ELoadMode eLoadMode;
EStoreMode eStoreMode;
};
struct RenderPassHandle
{
uint32_t uWidth;
uint32_t uHeight;
CUtlVector<RenderPassUsage> usages;
RenderPassUsage depth;
VkRenderPass renderpass;
VkFramebuffer framebuffer;
bool bIsDepth;
bool bIsUsed;
};
class CRenderPassMgr
{
public:
void CreateRenderPass(BeginInfo *pBeginInfo, VkRenderPass *prp, VkFramebuffer *pfb);
void Frame();
VkDevice m_hDevice;
private:
RenderPassHandle *FindRenderPass(BeginInfo *pBeginInfo);
CUtlVector<RenderPassHandle> m_renderPassHandles;
CUtlVector<VkFramebuffer> m_scheduledReleasesFB;
CUtlVector<VkRenderPass> m_scheduledReleasesRP;
};
#endif