added renderpass manager
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user