added renderpass manager
This commit is contained in:
@@ -156,8 +156,9 @@ VkFormat CVkImage::GetImageFormat( enum EImageFormat eImageFormat )
|
||||
|
||||
case IMAGE_FORMAT_D32_SFLOAT:
|
||||
return VK_FORMAT_D32_SFLOAT;
|
||||
default:
|
||||
return VK_FORMAT_UNDEFINED;
|
||||
}
|
||||
return VK_FORMAT_UNDEFINED;
|
||||
}
|
||||
|
||||
VkSampleCountFlagBits CVkImage::GetMultisampling( enum EMultisampleType eImageFormat )
|
||||
@@ -514,6 +515,7 @@ public:
|
||||
virtual void *GetVulkanPhysicalDevice() override;
|
||||
virtual void *GetVulkanDevice() override;
|
||||
virtual IImage *CreateImageFromVkImage( uint64_t pVkImage, uint32_t x, uint32_t y, uint64_t optimalLayout, EImageFormat eFormat, EMultisampleType eMultisampleType ) override;
|
||||
|
||||
private:
|
||||
VkPhysicalDevice SelectPhysicalDevice( CUtlVector<VkPhysicalDevice> physicalDevices );
|
||||
CUtlVector<const char *> GetDeviceExtensions();
|
||||
@@ -538,6 +540,7 @@ private:
|
||||
CUtlVector<CVkImage*> m_scheduledRemovalImages;
|
||||
|
||||
CVkSampler m_defaultSampler;
|
||||
CRenderPassMgr m_renderPassMgr = {};
|
||||
};
|
||||
EXPOSE_INTERFACE(CVkRenderContext, IRenderContext, RENDER_CONTEXT_INTERFACE_VERSION);
|
||||
|
||||
@@ -681,6 +684,7 @@ IRenderCommandList *CVkRenderContext::CreateCommandList()
|
||||
{
|
||||
CVkRenderCommandList *pList = new CVkRenderCommandList;
|
||||
pList->m_pCommandBufferManager = m_pCommandBufferManager;
|
||||
pList->m_pRenderPassMgr = &m_renderPassMgr;
|
||||
return pList;
|
||||
}
|
||||
|
||||
@@ -941,6 +945,8 @@ void CVkRenderContext::Init()
|
||||
samplerInfo.minLod = 0.0f;
|
||||
samplerInfo.maxLod = VK_LOD_CLAMP_NONE;
|
||||
vkCreateSampler(s_vkDevice, &samplerInfo, nullptr, &m_defaultSampler.m_sampler);
|
||||
|
||||
m_renderPassMgr.m_hDevice = s_vkDevice;
|
||||
}
|
||||
|
||||
#include "time.h"
|
||||
@@ -1127,6 +1133,8 @@ void CVkRenderContext::Frame( float fDeltaTime )
|
||||
m_scheduledRemovalTextureArrays = {};
|
||||
m_scheduledRemovalBuffers = {};
|
||||
|
||||
m_renderPassMgr.Frame();
|
||||
|
||||
}
|
||||
|
||||
VulkanWindow_t CVkRenderContext::CreateSwapchain( IGameWindow *pWindow )
|
||||
|
||||
Reference in New Issue
Block a user