Clear the UI after async shader compilation

This commit is contained in:
Silent 2019-11-10 22:33:33 +01:00
parent dcad3ec892
commit 7faf5ea170
No known key found for this signature in database
GPG Key ID: AE53149BB0C45AF1
1 changed files with 30 additions and 23 deletions

View File

@ -159,10 +159,7 @@ void ShaderCache::WaitForAsyncCompiler()
{
bool running = true;
while (running &&
(m_async_shader_compiler->HasPendingWork() || m_async_shader_compiler->HasCompletedWork()))
{
running = m_async_shader_compiler->WaitUntilCompletion([](size_t completed, size_t total) {
constexpr auto update_ui_progress = [](size_t completed, size_t total) {
g_renderer->BeginUIFrame();
const float center_x = ImGui::GetIO().DisplaySize.x * 0.5f;
@ -185,9 +182,19 @@ void ShaderCache::WaitForAsyncCompiler()
ImGui::End();
g_renderer->EndUIFrame();
});
};
while (running &&
(m_async_shader_compiler->HasPendingWork() || m_async_shader_compiler->HasCompletedWork()))
{
running = m_async_shader_compiler->WaitUntilCompletion(update_ui_progress);
m_async_shader_compiler->RetrieveWorkItems();
}
// Just render nothing to clear the screen
g_renderer->BeginUIFrame();
g_renderer->EndUIFrame();
}
template <typename SerializedUidType, typename UidType>