Skip to content

Commit 82cdd80

Browse files
committed
Add a UI panel to ShaderViewer to show the shader debug loading log
A button toggles the logging panel open/closed
1 parent 47340b2 commit 82cdd80

File tree

3 files changed

+56
-0
lines changed

3 files changed

+56
-0
lines changed

qrenderdoc/Windows/ShaderViewer.cpp

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -455,6 +455,9 @@ void ShaderViewer::editShader(ResourceId id, ShaderStage stage, const QString &e
455455
ui->inputSig->hide();
456456
ui->outputSig->hide();
457457

458+
// hide debug info logging
459+
ui->toggleLog->hide();
460+
458461
QString title;
459462

460463
QWidget *sel = NULL;
@@ -6627,6 +6630,38 @@ void ShaderViewer::on_debugToggle_clicked()
66276630
updateDebugState();
66286631
}
66296632

6633+
void ShaderViewer::on_toggleLog_clicked()
6634+
{
6635+
if(m_Scintillas.isEmpty())
6636+
return;
6637+
6638+
if(debugInfoLog)
6639+
{
6640+
ui->docking->removeToolWindow(debugInfoLog);
6641+
debugInfoLog = NULL;
6642+
return;
6643+
}
6644+
6645+
debugInfoLog = new QTextEdit(this);
6646+
debugInfoLog->setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded);
6647+
debugInfoLog->setWindowTitle(tr("Debug Info Loading Logging"));
6648+
debugInfoLog->setFont(Formatter::FixedFont());
6649+
6650+
QString qText;
6651+
if(m_ShaderDetails && !m_ShaderDetails->debugInfo.debugInfoLoadingLog.empty())
6652+
qText = m_ShaderDetails->debugInfo.debugInfoLoadingLog;
6653+
else
6654+
qText = QString::fromUtf8("Debug info loading logging is not available for this shader");
6655+
6656+
debugInfoLog->setText(qText);
6657+
6658+
ui->docking->addToolWindow(
6659+
debugInfoLog, ToolWindowManager::AreaReference(ToolWindowManager::AddTo,
6660+
ui->docking->areaOf(m_Scintillas.back())));
6661+
ui->docking->setToolWindowProperties(
6662+
debugInfoLog, ToolWindowManager::HideCloseButton | ToolWindowManager::DisallowFloatWindow);
6663+
}
6664+
66306665
void ShaderViewer::on_resources_sortByStep_clicked()
66316666
{
66326667
m_AccessedResourceView = AccessedResourceView::SortByStep;

qrenderdoc/Windows/ShaderViewer.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ class QTableWidgetItem;
4444
class QKeyEvent;
4545
class QMouseEvent;
4646
class QComboBox;
47+
class QTextEdit;
4748

4849
// from Scintilla
4950
typedef intptr_t sptr_t;
@@ -189,6 +190,7 @@ private slots:
189190
void on_intView_clicked();
190191
void on_floatView_clicked();
191192
void on_debugToggle_clicked();
193+
void on_toggleLog_clicked();
192194

193195
void on_resources_sortByStep_clicked();
194196
void on_resources_sortByResource_clicked();
@@ -358,6 +360,8 @@ private slots:
358360
static const int BOOKMARK_MAX_MENU_ENTRY_COUNT = 30; // max number of bookmarks listed in menu
359361
QMap<ScintillaEdit *, QList<sptr_t>> m_Bookmarks;
360362

363+
QTextEdit *debugInfoLog = NULL;
364+
361365
static const int CURRENT_MARKER = 0;
362366
static const int BREAKPOINT_MARKER = 2;
363367
static const int FINISHED_MARKER = 4;

qrenderdoc/Windows/ShaderViewer.ui

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -299,6 +299,23 @@
299299
<property name="bottomMargin">
300300
<number>2</number>
301301
</property>
302+
<item>
303+
<widget class="QToolButton" name="toggleLog">
304+
<property name="toolTip">
305+
<string>Show/Hide Debug Info Logging Panel</string>
306+
</property>
307+
<property name="icon">
308+
<iconset resource="../Resources/resources.qrc">
309+
<normaloff>:/information.png</normaloff>:/information.png</iconset>
310+
</property>
311+
<property name="toolButtonStyle">
312+
<enum>Qt::ToolButtonTextBesideIcon</enum>
313+
</property>
314+
<property name="autoRaise">
315+
<bool>true</bool>
316+
</property>
317+
</widget>
318+
</item>
302319
<item>
303320
<widget class="QToolButton" name="findReplace">
304321
<property name="toolTip">

0 commit comments

Comments
 (0)