Skip to content

Commit 9878223

Browse files
committed
Don't allow displaying non-debuggable disassembly forms when debugging
1 parent 9379633 commit 9878223

File tree

3 files changed

+31
-7
lines changed

3 files changed

+31
-7
lines changed

qrenderdoc/Windows/ShaderViewer.cpp

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -126,26 +126,26 @@ ShaderViewer::ShaderViewer(ICaptureContext &ctx, QWidget *parent)
126126
m_DisassemblyFrame = new QWidget(this);
127127
m_DisassemblyFrame->setWindowTitle(tr("Disassembly"));
128128

129-
QFrame *disasmToolbar = new QFrame(this);
130-
disasmToolbar->setFrameShape(QFrame::Panel);
131-
disasmToolbar->setFrameShadow(QFrame::Raised);
129+
m_DisassemblyToolbar = new QFrame(this);
130+
m_DisassemblyToolbar->setFrameShape(QFrame::Panel);
131+
m_DisassemblyToolbar->setFrameShadow(QFrame::Raised);
132132

133-
QHBoxLayout *toolbarlayout = new QHBoxLayout(disasmToolbar);
133+
QHBoxLayout *toolbarlayout = new QHBoxLayout(m_DisassemblyToolbar);
134134
toolbarlayout->setSpacing(2);
135135
toolbarlayout->setContentsMargins(3, 3, 3, 3);
136136

137-
m_DisassemblyType = new QComboBox(disasmToolbar);
137+
m_DisassemblyType = new QComboBox(m_DisassemblyToolbar);
138138
m_DisassemblyType->setMaxVisibleItems(12);
139139
m_DisassemblyType->setSizeAdjustPolicy(QComboBox::AdjustToContents);
140140

141-
toolbarlayout->addWidget(new QLabel(tr("Disassembly type:"), disasmToolbar));
141+
toolbarlayout->addWidget(new QLabel(tr("Disassembly type:"), m_DisassemblyToolbar));
142142
toolbarlayout->addWidget(m_DisassemblyType);
143143
toolbarlayout->addItem(new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum));
144144

145145
QVBoxLayout *framelayout = new QVBoxLayout(m_DisassemblyFrame);
146146
framelayout->setSpacing(0);
147147
framelayout->setMargin(0);
148-
framelayout->addWidget(disasmToolbar);
148+
framelayout->addWidget(m_DisassemblyToolbar);
149149
framelayout->addWidget(m_DisassemblyView);
150150

151151
ui->docking->addToolWindow(m_DisassemblyFrame, ToolWindowManager::EmptySpace);
@@ -290,6 +290,8 @@ void ShaderViewer::debugShader(const ShaderBindpointMapping *bind, const ShaderR
290290
m_Trace = trace;
291291
m_Stage = stage;
292292

293+
m_DisassemblyFrame->layout()->removeWidget(m_DisassemblyToolbar);
294+
293295
// no replacing allowed, stay in find mode
294296
m_FindReplace->allowUserModeChange(false);
295297

@@ -324,6 +326,8 @@ void ShaderViewer::debugShader(const ShaderBindpointMapping *bind, const ShaderR
324326
m_DisassemblyView->setReadOnly(false);
325327
m_DisassemblyView->setText(disasm.c_str());
326328
m_DisassemblyView->setReadOnly(true);
329+
330+
updateDebugging();
327331
});
328332
});
329333
}

qrenderdoc/Windows/ShaderViewer.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,7 @@ public slots:
171171
const ShaderReflection *m_ShaderDetails = NULL;
172172
ShaderStage m_Stage;
173173
ScintillaEdit *m_DisassemblyView = NULL;
174+
QFrame *m_DisassemblyToolbar = NULL;
174175
QWidget *m_DisassemblyFrame = NULL;
175176
QComboBox *m_DisassemblyType = NULL;
176177
ScintillaEdit *m_Errors = NULL;

renderdocui/Windows/ShaderViewer.cs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -497,6 +497,23 @@ public ShaderViewer(Core core, ShaderReflection shader, ShaderStageType stage, S
497497
disasmLayoutPanel.RowStyles.Add(new RowStyle());
498498
disasmLayoutPanel.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
499499

500+
if (m_Trace == null)
501+
{
502+
disasmLayoutPanel.ColumnCount = 1;
503+
disasmLayoutPanel.Controls.Add(disasmToolStrip, 0, 0);
504+
disasmLayoutPanel.Controls.Add(m_DisassemblyView, 0, 1);
505+
disasmLayoutPanel.RowCount = 2;
506+
disasmLayoutPanel.RowStyles.Add(new RowStyle());
507+
disasmLayoutPanel.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
508+
}
509+
else
510+
{
511+
disasmLayoutPanel.ColumnCount = 1;
512+
disasmLayoutPanel.RowCount = 1;
513+
disasmLayoutPanel.Controls.Add(m_DisassemblyView, 0, 0);
514+
disasmLayoutPanel.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
515+
}
516+
500517
m_Scintillas.Add(m_DisassemblyView);
501518

502519
var w = Helpers.WrapDockContent(dockPanel, disasmLayoutPanel, "Disassembly");
@@ -519,6 +536,8 @@ public ShaderViewer(Core core, ShaderReflection shader, ShaderStageType stage, S
519536
m_DisassemblyView.Text = disasm;
520537
m_DisassemblyView.UndoRedo.EmptyUndoBuffer();
521538
m_DisassemblyView.IsReadOnly = true;
539+
540+
UpdateDebugging();
522541
});
523542
});
524543
}

0 commit comments

Comments
 (0)