Don't allow displaying non-debuggable disassembly forms when debugging

This commit is contained in:
baldurk
2017-08-02 15:30:58 +01:00
parent 9379633621
commit 9878223839
3 changed files with 31 additions and 7 deletions
+11 -7
View File
@@ -126,26 +126,26 @@ ShaderViewer::ShaderViewer(ICaptureContext &ctx, QWidget *parent)
m_DisassemblyFrame = new QWidget(this);
m_DisassemblyFrame->setWindowTitle(tr("Disassembly"));
QFrame *disasmToolbar = new QFrame(this);
disasmToolbar->setFrameShape(QFrame::Panel);
disasmToolbar->setFrameShadow(QFrame::Raised);
m_DisassemblyToolbar = new QFrame(this);
m_DisassemblyToolbar->setFrameShape(QFrame::Panel);
m_DisassemblyToolbar->setFrameShadow(QFrame::Raised);
QHBoxLayout *toolbarlayout = new QHBoxLayout(disasmToolbar);
QHBoxLayout *toolbarlayout = new QHBoxLayout(m_DisassemblyToolbar);
toolbarlayout->setSpacing(2);
toolbarlayout->setContentsMargins(3, 3, 3, 3);
m_DisassemblyType = new QComboBox(disasmToolbar);
m_DisassemblyType = new QComboBox(m_DisassemblyToolbar);
m_DisassemblyType->setMaxVisibleItems(12);
m_DisassemblyType->setSizeAdjustPolicy(QComboBox::AdjustToContents);
toolbarlayout->addWidget(new QLabel(tr("Disassembly type:"), disasmToolbar));
toolbarlayout->addWidget(new QLabel(tr("Disassembly type:"), m_DisassemblyToolbar));
toolbarlayout->addWidget(m_DisassemblyType);
toolbarlayout->addItem(new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum));
QVBoxLayout *framelayout = new QVBoxLayout(m_DisassemblyFrame);
framelayout->setSpacing(0);
framelayout->setMargin(0);
framelayout->addWidget(disasmToolbar);
framelayout->addWidget(m_DisassemblyToolbar);
framelayout->addWidget(m_DisassemblyView);
ui->docking->addToolWindow(m_DisassemblyFrame, ToolWindowManager::EmptySpace);
@@ -290,6 +290,8 @@ void ShaderViewer::debugShader(const ShaderBindpointMapping *bind, const ShaderR
m_Trace = trace;
m_Stage = stage;
m_DisassemblyFrame->layout()->removeWidget(m_DisassemblyToolbar);
// no replacing allowed, stay in find mode
m_FindReplace->allowUserModeChange(false);
@@ -324,6 +326,8 @@ void ShaderViewer::debugShader(const ShaderBindpointMapping *bind, const ShaderR
m_DisassemblyView->setReadOnly(false);
m_DisassemblyView->setText(disasm.c_str());
m_DisassemblyView->setReadOnly(true);
updateDebugging();
});
});
}
+1
View File
@@ -171,6 +171,7 @@ private:
const ShaderReflection *m_ShaderDetails = NULL;
ShaderStage m_Stage;
ScintillaEdit *m_DisassemblyView = NULL;
QFrame *m_DisassemblyToolbar = NULL;
QWidget *m_DisassemblyFrame = NULL;
QComboBox *m_DisassemblyType = NULL;
ScintillaEdit *m_Errors = NULL;
+19
View File
@@ -497,6 +497,23 @@ namespace renderdocui.Windows
disasmLayoutPanel.RowStyles.Add(new RowStyle());
disasmLayoutPanel.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
if (m_Trace == null)
{
disasmLayoutPanel.ColumnCount = 1;
disasmLayoutPanel.Controls.Add(disasmToolStrip, 0, 0);
disasmLayoutPanel.Controls.Add(m_DisassemblyView, 0, 1);
disasmLayoutPanel.RowCount = 2;
disasmLayoutPanel.RowStyles.Add(new RowStyle());
disasmLayoutPanel.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
}
else
{
disasmLayoutPanel.ColumnCount = 1;
disasmLayoutPanel.RowCount = 1;
disasmLayoutPanel.Controls.Add(m_DisassemblyView, 0, 0);
disasmLayoutPanel.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
}
m_Scintillas.Add(m_DisassemblyView);
var w = Helpers.WrapDockContent(dockPanel, disasmLayoutPanel, "Disassembly");
@@ -519,6 +536,8 @@ namespace renderdocui.Windows
m_DisassemblyView.Text = disasm;
m_DisassemblyView.UndoRedo.EmptyUndoBuffer();
m_DisassemblyView.IsReadOnly = true;
UpdateDebugging();
});
});
}