mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-05 09:30:44 +00:00
Don't sort resource list in resource inspector every time
This commit is contained in:
@@ -299,8 +299,8 @@ void CaptureContext::LoadCaptureThreaded(const QString &captureFile, const QStri
|
||||
m_StructuredFile = &r->GetStructuredFile();
|
||||
|
||||
m_ResourceList = r->GetResources();
|
||||
for(ResourceDescription &res : m_ResourceList)
|
||||
m_Resources[res.resourceId] = &res;
|
||||
|
||||
CacheResources();
|
||||
|
||||
m_BufferList = r->GetBuffers();
|
||||
for(BufferDescription &b : m_BufferList)
|
||||
@@ -375,6 +375,19 @@ void CaptureContext::LoadCaptureThreaded(const QString &captureFile, const QStri
|
||||
m_CaptureLoaded = true;
|
||||
}
|
||||
|
||||
void CaptureContext::CacheResources()
|
||||
{
|
||||
m_Resources.clear();
|
||||
|
||||
std::sort(m_ResourceList.begin(), m_ResourceList.end(),
|
||||
[this](const ResourceDescription &a, const ResourceDescription &b) {
|
||||
return GetResourceName(&a) < GetResourceName(&b);
|
||||
});
|
||||
|
||||
for(ResourceDescription &res : m_ResourceList)
|
||||
m_Resources[res.resourceId] = &res;
|
||||
}
|
||||
|
||||
bool CaptureContext::PassEquivalent(const DrawcallDescription &a, const DrawcallDescription &b)
|
||||
{
|
||||
// executing command lists can have children
|
||||
@@ -1194,19 +1207,24 @@ rdcstr CaptureContext::GetResourceName(ResourceId id)
|
||||
if(id == ResourceId())
|
||||
return tr("No Resource");
|
||||
|
||||
if(m_CustomNames.contains(id))
|
||||
return m_CustomNames[id];
|
||||
|
||||
ResourceDescription *desc = GetResource(id);
|
||||
|
||||
if(desc)
|
||||
return desc->name;
|
||||
return GetResourceName(desc);
|
||||
|
||||
uint64_t num;
|
||||
memcpy(&num, &id, sizeof(num));
|
||||
return tr("Unknown Resource %1").arg(num);
|
||||
}
|
||||
|
||||
rdcstr CaptureContext::GetResourceName(const ResourceDescription *desc)
|
||||
{
|
||||
if(m_CustomNames.contains(desc->resourceId))
|
||||
return m_CustomNames[desc->resourceId];
|
||||
|
||||
return desc->name;
|
||||
}
|
||||
|
||||
bool CaptureContext::IsAutogeneratedName(ResourceId id)
|
||||
{
|
||||
if(id == ResourceId())
|
||||
@@ -1245,6 +1263,8 @@ void CaptureContext::SetResourceCustomName(ResourceId id, const rdcstr &name)
|
||||
m_CaptureMods |= CaptureModifications::Renames;
|
||||
m_MainWindow->captureModified();
|
||||
|
||||
CacheResources();
|
||||
|
||||
RefreshUIStatus({}, true, true);
|
||||
}
|
||||
|
||||
|
||||
@@ -277,6 +277,9 @@ private:
|
||||
void SaveNotes();
|
||||
void LoadNotes(const QString &data);
|
||||
|
||||
void CacheResources();
|
||||
rdcstr GetResourceName(const ResourceDescription *desc);
|
||||
|
||||
float m_LoadProgress = 0.0f;
|
||||
float m_PostloadProgress = 0.0f;
|
||||
float UpdateLoadProgress();
|
||||
|
||||
@@ -113,8 +113,6 @@ ResourceInspector::ResourceInspector(ICaptureContext &ctx, QWidget *parent)
|
||||
m_FilterModel->setSourceModel(m_ResourceModel);
|
||||
m_FilterModel->setFilterCaseSensitivity(Qt::CaseInsensitive);
|
||||
m_FilterModel->setFilterRole(FilterRole);
|
||||
m_FilterModel->setSortCaseSensitivity(Qt::CaseInsensitive);
|
||||
m_FilterModel->setSortRole(Qt::DisplayRole);
|
||||
|
||||
ui->resourceList->setModel(m_FilterModel);
|
||||
|
||||
@@ -166,7 +164,6 @@ void ResourceInspector::Inspect(ResourceId id)
|
||||
m_Entries.clear();
|
||||
|
||||
m_ResourceModel->reset();
|
||||
m_FilterModel->sort(0);
|
||||
|
||||
if(m_Ctx.HasResourceCustomName(id))
|
||||
ui->resetName->show();
|
||||
@@ -282,7 +279,6 @@ void ResourceInspector::OnCaptureLoaded()
|
||||
ui->renameResource->setEnabled(true);
|
||||
|
||||
m_ResourceModel->reset();
|
||||
m_FilterModel->sort(0);
|
||||
}
|
||||
|
||||
void ResourceInspector::OnCaptureClosed()
|
||||
@@ -308,7 +304,6 @@ void ResourceInspector::OnEventChanged(uint32_t eventId)
|
||||
Inspect(m_Resource);
|
||||
|
||||
m_ResourceModel->reset();
|
||||
m_FilterModel->sort(0);
|
||||
}
|
||||
|
||||
void ResourceInspector::on_renameResource_clicked()
|
||||
|
||||
Reference in New Issue
Block a user