diff --git a/qrenderdoc/Code/QRDUtils.cpp b/qrenderdoc/Code/QRDUtils.cpp
index daa5a5294..bd65da02b 100644
--- a/qrenderdoc/Code/QRDUtils.cpp
+++ b/qrenderdoc/Code/QRDUtils.cpp
@@ -2386,7 +2386,8 @@ bool QCollatorSortFilterProxyModel::lessThan(const QModelIndex &source_left,
void addGridLines(QGridLayout *grid, QColor gridColor)
{
QString style =
- QFormatStr("border: solid #%1%2%3; border-bottom-width: 1px; border-right-width: 1px;")
+ QFormatStr(
+ "QLabel { border: solid #%1%2%3; border-bottom-width: 1px; border-right-width: 1px;")
.arg(gridColor.red(), 2, 16, QLatin1Char('0'))
.arg(gridColor.green(), 2, 16, QLatin1Char('0'))
.arg(gridColor.blue(), 2, 16, QLatin1Char('0'));
@@ -2412,6 +2413,8 @@ void addGridLines(QGridLayout *grid, QColor gridColor)
if(y == 0)
cellStyle += lit("border-top-width: 1px;");
+ cellStyle += lit(" };");
+
w->setStyleSheet(cellStyle);
}
}
diff --git a/qrenderdoc/Windows/PipelineState/GLPipelineStateViewer.cpp b/qrenderdoc/Windows/PipelineState/GLPipelineStateViewer.cpp
index adc56e5ee..ae61e9c71 100644
--- a/qrenderdoc/Windows/PipelineState/GLPipelineStateViewer.cpp
+++ b/qrenderdoc/Windows/PipelineState/GLPipelineStateViewer.cpp
@@ -686,7 +686,8 @@ void GLPipelineStateViewer::clearState()
ui->fillMode->setText(tr("Solid", "Fill Mode"));
ui->cullMode->setText(tr("Front", "Cull Mode"));
- ui->frontCCW->setPixmap(tick);
+ ui->frontFace->setText(tr("CCW"));
+ ui->frontFace->setToolTip(QString());
ui->scissorEnabled->setPixmap(tick);
ui->provoking->setText(tr("Last"));
@@ -1788,7 +1789,37 @@ void GLPipelineStateViewer::setState()
ui->fillMode->setText(ToQStr(state.rasterizer.state.fillMode));
ui->cullMode->setText(ToQStr(state.rasterizer.state.cullMode));
- ui->frontCCW->setPixmap(state.rasterizer.state.frontCCW ? tick : cross);
+
+ if(state.rasterizer.state.frontCCW)
+ {
+ if(state.vertexProcessing.clipOriginLowerLeft)
+ {
+ ui->frontFace->setText(tr("CCW"));
+ ui->frontFace->setToolTip(QString());
+ }
+ else
+ {
+ ui->frontFace->setText(tr("CW (clip origin flipped)"));
+ ui->frontFace->setToolTip(
+ tr("The GL state specifies that front faces have CCW winding,\n"
+ "but this is inverted by the upper-left clip origin."));
+ }
+ }
+ else
+ {
+ if(state.vertexProcessing.clipOriginLowerLeft)
+ {
+ ui->frontFace->setText(tr("CW"));
+ ui->frontFace->setToolTip(QString());
+ }
+ else
+ {
+ ui->frontFace->setText(tr("CCW (clip origin flipped)"));
+ ui->frontFace->setToolTip(
+ tr("The GL state specifies that front faces have CW winding,\n"
+ "but this is inverted by the upper-left clip origin."));
+ }
+ }
ui->scissorEnabled->setPixmap(anyScissorEnable ? tick : cross);
ui->provoking->setText(state.vertexInput.provokingVertexLast ? tr("Last") : tr("First"));
diff --git a/qrenderdoc/Windows/PipelineState/GLPipelineStateViewer.ui b/qrenderdoc/Windows/PipelineState/GLPipelineStateViewer.ui
index 0d991427b..43fbf14b9 100644
--- a/qrenderdoc/Windows/PipelineState/GLPipelineStateViewer.ui
+++ b/qrenderdoc/Windows/PipelineState/GLPipelineStateViewer.ui
@@ -2552,9 +2552,9 @@
-
-
+
- Front CCW:
+ Rasterizer Discard:
Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
@@ -2565,7 +2565,7 @@
-
-
+
@@ -2581,9 +2581,9 @@
-
-
+
- Rasterizer Discard:
+ Front:
Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
@@ -2594,12 +2594,14 @@
-
-
-
-
+
+
+
+ 12
+
-
- :/cross.png
+
+ CCW
Qt::AlignCenter