Files
funnygame/materialsystem/vulkan/renderpassmgr.h
T
2026-08-29 12:31:10 +03:00

41 lines
822 B
C++

#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