Graphics: Fix submesh rendering

This commit is contained in:
SirLynix 2022-04-09 20:00:01 +02:00
parent 138f2b88b3
commit cd08d97ac6
2 changed files with 7 additions and 7 deletions

View File

@ -81,7 +81,7 @@ namespace Nz
if (const RenderPipeline* pipeline = &spriteChain.GetRenderPipeline(); m_pendingData.currentPipeline != pipeline)
{
FlushDrawCall();
FlushDrawData();
m_pendingData.currentPipeline = pipeline;
}

View File

@ -65,7 +65,7 @@ namespace Nz
if (const MaterialPass* materialPass = &submesh.GetMaterialPass(); currentMaterialPass != materialPass)
{
FlushDrawCall();
FlushDrawData();
currentMaterialPass = materialPass;
}
@ -99,19 +99,19 @@ namespace Nz
const Recti& targetScissorBox = (scissorBox.width >= 0) ? scissorBox : invalidScissorBox;
if (currentScissorBox != targetScissorBox)
{
FlushDrawData();
FlushDrawCall();
currentScissorBox = targetScissorBox;
}
if (!currentShaderBinding)
{
m_bindingCache.clear();
assert(currentMaterialPass);
const MaterialPass& materialPass = submesh.GetMaterialPass();
materialPass.FillShaderBinding(m_bindingCache);
m_bindingCache.clear();
currentMaterialPass->FillShaderBinding(m_bindingCache);
// Predefined shader bindings
const auto& matSettings = materialPass.GetSettings();
const auto& matSettings = currentMaterialPass->GetSettings();
if (std::size_t bindingIndex = matSettings->GetPredefinedBinding(PredefinedShaderBinding::InstanceDataUbo); bindingIndex != MaterialSettings::InvalidIndex)
{
assert(currentWorldInstance);