[Feat] (MG_Backend/DirectVulkan): new VkRenderPassManager and a bunch of changes accordingly

This commit is contained in:
2026-02-28 17:37:45 +08:00
parent 8adf1d3b8a
commit 6ff97a9bb1
14 changed files with 857 additions and 1048 deletions
@@ -61,14 +61,23 @@ namespace MobileGL::MG_Backend::DirectVulkan {
m_pendingClears[pTexture] = clearPayload;
}
Bool VkClearManager::DequeueClear(MG_State::GLState::ITextureObject* texture, ClearAttachmentPayload& outPayload) {
if (m_aliveObjects.find(texture) == m_aliveObjects.end())
Bool VkClearManager::HasPendingClear(MG_State::GLState::ITextureObject* texture) {
return m_pendingClears.find(texture) != m_pendingClears.end();
}
Bool VkClearManager::GetPendingClear(MG_State::GLState::ITextureObject* texture, ClearAttachmentPayload& outPayload) {
if (m_aliveObjects.find(texture) == m_aliveObjects.end() ||
m_pendingClears.find(texture) == m_pendingClears.end()) {
return false;
}
outPayload = m_pendingClears[texture];
return true;
}
void VkClearManager::PopPendingClear(MG_State::GLState::ITextureObject* texture) {
m_aliveObjects.erase(texture);
m_pendingClears.erase(texture);
return true;
}
SizeT VkClearManager::CollectGarbage() {