diff --git a/qrenderdoc/Windows/PipelineState/D3D11PipelineStateViewer.cpp b/qrenderdoc/Windows/PipelineState/D3D11PipelineStateViewer.cpp index 17d73b3c4..71324ddcb 100644 --- a/qrenderdoc/Windows/PipelineState/D3D11PipelineStateViewer.cpp +++ b/qrenderdoc/Windows/PipelineState/D3D11PipelineStateViewer.cpp @@ -1488,6 +1488,10 @@ void D3D11PipelineStateViewer::setState() ui->iaBuffers->addTopLevelItem(node); } + else + { + m_VBNodes.push_back(NULL); + } } ui->iaBuffers->clearSelection(); ui->iaBuffers->endUpdate(); @@ -2286,7 +2290,7 @@ void D3D11PipelineStateViewer::highlightIABind(int slot) { RDTreeWidgetItem *item = m_VBNodes[(int)slot]; - if(!m_EmptyNodes.contains(item)) + if(item && !m_EmptyNodes.contains(item)) { item->setBackgroundColor(col); item->setForegroundColor(contrastingColor(col, QColor(0, 0, 0))); diff --git a/qrenderdoc/Windows/PipelineState/D3D12PipelineStateViewer.cpp b/qrenderdoc/Windows/PipelineState/D3D12PipelineStateViewer.cpp index b3aedcd46..ae1aae550 100644 --- a/qrenderdoc/Windows/PipelineState/D3D12PipelineStateViewer.cpp +++ b/qrenderdoc/Windows/PipelineState/D3D12PipelineStateViewer.cpp @@ -1472,6 +1472,10 @@ void D3D12PipelineStateViewer::setState() ui->iaBuffers->addTopLevelItem(node); } + else + { + m_VBNodes.push_back(NULL); + } continue; } @@ -1514,6 +1518,10 @@ void D3D12PipelineStateViewer::setState() ui->iaBuffers->addTopLevelItem(node); } + else + { + m_VBNodes.push_back(NULL); + } } ui->iaBuffers->clearSelection(); ui->iaBuffers->endUpdate(); @@ -2130,7 +2138,7 @@ void D3D12PipelineStateViewer::highlightIABind(int slot) if(slot < m_VBNodes.count()) { - if(!m_EmptyNodes.contains(m_VBNodes[slot])) + if(m_VBNodes[slot] && !m_EmptyNodes.contains(m_VBNodes[slot])) { m_VBNodes[slot]->setBackgroundColor(col); m_VBNodes[slot]->setForegroundColor(contrastingColor(col, QColor(0, 0, 0))); diff --git a/qrenderdoc/Windows/PipelineState/GLPipelineStateViewer.cpp b/qrenderdoc/Windows/PipelineState/GLPipelineStateViewer.cpp index 532f1114b..5e1b7690a 100644 --- a/qrenderdoc/Windows/PipelineState/GLPipelineStateViewer.cpp +++ b/qrenderdoc/Windows/PipelineState/GLPipelineStateViewer.cpp @@ -1410,6 +1410,10 @@ void GLPipelineStateViewer::setState() ui->viBuffers->addTopLevelItem(node); } + else + { + m_VBNodes.push_back(NULL); + } } ui->viBuffers->clearSelection(); ui->viBuffers->endUpdate(); @@ -2253,7 +2257,7 @@ void GLPipelineStateViewer::highlightIABind(int slot) if(slot < m_VBNodes.count()) { - if(!m_EmptyNodes.contains(m_VBNodes[slot])) + if(m_VBNodes[slot] && !m_EmptyNodes.contains(m_VBNodes[slot])) { m_VBNodes[slot]->setBackgroundColor(col); m_VBNodes[slot]->setForegroundColor(contrastingColor(col, QColor(0, 0, 0))); diff --git a/qrenderdoc/Windows/PipelineState/VulkanPipelineStateViewer.cpp b/qrenderdoc/Windows/PipelineState/VulkanPipelineStateViewer.cpp index 4605e911e..5e5c9641b 100644 --- a/qrenderdoc/Windows/PipelineState/VulkanPipelineStateViewer.cpp +++ b/qrenderdoc/Windows/PipelineState/VulkanPipelineStateViewer.cpp @@ -1791,6 +1791,10 @@ void VulkanPipelineStateViewer::setState() ui->viBuffers->addTopLevelItem(node); } + else + { + m_VBNodes.push_back(NULL); + } } for(; i < (int)ARRAY_COUNT(usedBindings); i++) @@ -1811,6 +1815,10 @@ void VulkanPipelineStateViewer::setState() m_VBNodes.push_back(node); } + else + { + m_VBNodes.push_back(NULL); + } } } ui->viBuffers->clearSelection(); @@ -2429,7 +2437,7 @@ void VulkanPipelineStateViewer::highlightIABind(int slot) if(slot < m_VBNodes.count()) { - if(!m_EmptyNodes.contains(m_VBNodes[slot])) + if(m_VBNodes[slot] && !m_EmptyNodes.contains(m_VBNodes[slot])) { m_VBNodes[slot]->setBackgroundColor(col); m_VBNodes[slot]->setForegroundColor(contrastingColor(col, QColor(0, 0, 0)));