Improved rendertechnique fallback (will no longer loop)
Former-commit-id: 1aeb737432de1d2a8f205e547404b3f140967a16
This commit is contained in:
@@ -33,7 +33,7 @@ struct NzSceneImpl
|
|||||||
NzSceneRoot root;
|
NzSceneRoot root;
|
||||||
NzAbstractViewer* viewer = nullptr;
|
NzAbstractViewer* viewer = nullptr;
|
||||||
bool backgroundEnabled = true;
|
bool backgroundEnabled = true;
|
||||||
bool update;
|
bool update = false;
|
||||||
float frameTime;
|
float frameTime;
|
||||||
float updateTime;
|
float updateTime;
|
||||||
int renderTechniqueRanking;
|
int renderTechniqueRanking;
|
||||||
@@ -99,8 +99,18 @@ void NzScene::Draw()
|
|||||||
catch (const std::exception& e)
|
catch (const std::exception& e)
|
||||||
{
|
{
|
||||||
NzString oldName = m_impl->renderTechnique->GetName();
|
NzString oldName = m_impl->renderTechnique->GetName();
|
||||||
|
|
||||||
|
if (m_impl->renderTechniqueRanking > 0)
|
||||||
|
{
|
||||||
m_impl->renderTechnique.reset(NzRenderTechniques::GetByRanking(m_impl->renderTechniqueRanking-1, &m_impl->renderTechniqueRanking));
|
m_impl->renderTechnique.reset(NzRenderTechniques::GetByRanking(m_impl->renderTechniqueRanking-1, &m_impl->renderTechniqueRanking));
|
||||||
NazaraError("Render technique \"" + oldName + "\" failed, switched to \"" + m_impl->renderTechnique->GetName() + '"');
|
NazaraError("Render technique \"" + oldName + "\" failed, fallback to \"" + m_impl->renderTechnique->GetName() + '"');
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
NzErrorFlags errFlags(nzErrorFlag_ThrowException);
|
||||||
|
NazaraError("Render technique \"" + oldName + "\" failed and no fallback is available");
|
||||||
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user