mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-12 21:10:42 +00:00
Add further checks for windows being deleted during long async callbacks
* This is not really a full solution but fixes the common cases at least.
This commit is contained in:
@@ -2402,6 +2402,9 @@ void BufferViewer::OnEventChanged(uint32_t eventId)
|
||||
bufdata->vsinConfig.curView, MeshDataStage::GSOut);
|
||||
|
||||
RT_FetchMeshData(r, m_Ctx, bufdata);
|
||||
|
||||
if(!me)
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -2418,6 +2421,9 @@ void BufferViewer::OnEventChanged(uint32_t eventId)
|
||||
{
|
||||
buf->storage = r->GetTextureData(m_BufferID, m_TexSub);
|
||||
}
|
||||
|
||||
if(!me)
|
||||
return;
|
||||
}
|
||||
|
||||
GUIInvoke::call(this, [this, buf, bufdata]() {
|
||||
@@ -2548,6 +2554,9 @@ void BufferViewer::populateBBox(PopulateBufferData *bufdata)
|
||||
|
||||
calcBoundingData(*bbox);
|
||||
|
||||
if(!me)
|
||||
return;
|
||||
|
||||
GUIInvoke::call(this, [this, bbox]() { UI_UpdateBoundingBox(*bbox); });
|
||||
});
|
||||
thread->setName(lit("BBox calc"));
|
||||
@@ -3103,6 +3112,9 @@ void BufferViewer::render_clicked(QMouseEvent *e)
|
||||
|
||||
if(vertSelected != ~0U)
|
||||
{
|
||||
if(!me)
|
||||
return;
|
||||
|
||||
GUIInvoke::call(this, [this, vertSelected, instanceSelected] {
|
||||
int row = (int)vertSelected;
|
||||
|
||||
|
||||
@@ -355,6 +355,9 @@ void ShaderViewer::debugShader(const ShaderBindpointMapping *bind, const ShaderR
|
||||
|
||||
rdcstr disasm = r->DisassembleShader(m_Pipeline, m_ShaderDetails, "");
|
||||
|
||||
if(!me)
|
||||
return;
|
||||
|
||||
GUIInvoke::call(this, [this, targets, disasm]() {
|
||||
QStringList targetNames;
|
||||
for(int i = 0; i < targets.count(); i++)
|
||||
@@ -1229,6 +1232,9 @@ void ShaderViewer::disassemble_typeChanged(int index)
|
||||
|
||||
rdcstr disasm = r->DisassembleShader(m_Pipeline, m_ShaderDetails, target.data());
|
||||
|
||||
if(!me)
|
||||
return;
|
||||
|
||||
GUIInvoke::call(this, [this, disasm]() {
|
||||
m_DisassemblyView->setReadOnly(false);
|
||||
m_DisassemblyView->setText(disasm.c_str());
|
||||
|
||||
Reference in New Issue
Block a user