From 97130b25d80b2c8727a33393257fbbc3ac7b11f0 Mon Sep 17 00:00:00 2001 From: baldurk Date: Mon, 3 Oct 2016 14:56:55 +0200 Subject: [PATCH] Add selection of background colour (or checkerboard pattern) --- qrenderdoc/Windows/TextureViewer.cpp | 43 ++++++++++++++++++++++++++++ qrenderdoc/Windows/TextureViewer.h | 3 ++ 2 files changed, 46 insertions(+) diff --git a/qrenderdoc/Windows/TextureViewer.cpp b/qrenderdoc/Windows/TextureViewer.cpp index fcd94c0a6..d0f3a0736 100644 --- a/qrenderdoc/Windows/TextureViewer.cpp +++ b/qrenderdoc/Windows/TextureViewer.cpp @@ -1,5 +1,6 @@ #include "TextureViewer.h" +#include #include "Code/Core.h" #include "FlowLayout.h" #include "ui_TextureViewer.h" @@ -30,6 +31,8 @@ TextureViewer::TextureViewer(Core *core, QWidget *parent) m_TexDisplay.linearDisplayAsGamma = true; m_TexDisplay.rangemax = 1.0f; + on_checkerBack_clicked(); + QWidget *renderContainer = ui->renderContainer; QObject::connect(ui->render, &CustomPaintWidget::clicked, this, &TextureViewer::render_mouseClick); @@ -1163,3 +1166,43 @@ void TextureViewer::on_reset01_clicked() void TextureViewer::on_visualiseRange_clicked() { } + +void TextureViewer::on_backcolorPick_clicked() +{ + QColor col = QColorDialog::getColor(Qt::black, this, tr("Choose background colour")); + + if(!col.isValid()) + col = QColor(0, 0, 0); + + col = col.toRgb(); + m_TexDisplay.darkBackgroundColour = m_TexDisplay.lightBackgroundColour = + FloatVector(col.redF(), col.greenF(), col.blueF(), 1.0f); + + ui->backcolorPick->setChecked(true); + ui->checkerBack->setChecked(false); + + INVOKE_MEMFN(RT_UpdateAndDisplay); + + if(m_Output == NULL) + { + ui->render->update(); + ui->pixelcontextgrid->update(); + } +} + +void TextureViewer::on_checkerBack_clicked() +{ + ui->checkerBack->setChecked(true); + ui->backcolorPick->setChecked(false); + + m_TexDisplay.lightBackgroundColour = FloatVector(0.81f, 0.81f, 0.81f, 1.0f); + m_TexDisplay.darkBackgroundColour = FloatVector(0.57f, 0.57f, 0.57f, 1.0f); + + INVOKE_MEMFN(RT_UpdateAndDisplay); + + if(m_Output == NULL) + { + ui->render->update(); + ui->pixelcontextgrid->update(); + } +} diff --git a/qrenderdoc/Windows/TextureViewer.h b/qrenderdoc/Windows/TextureViewer.h index 921b2b61e..e1d187490 100644 --- a/qrenderdoc/Windows/TextureViewer.h +++ b/qrenderdoc/Windows/TextureViewer.h @@ -46,6 +46,9 @@ private slots: void on_channelsWidget_toggled(bool checked) { UI_UpdateChannels(); } void on_channelsWidget_selected(int index) { UI_UpdateChannels(); } + void on_backcolorPick_clicked(); + void on_checkerBack_clicked(); + private: void RT_FetchCurrentPixel(uint32_t x, uint32_t y, PixelValue &pickValue, PixelValue &realValue); void RT_PickPixelsAndUpdate();