From 2c2270051c35a1da2aef05d6ce9df995cfc7b0c3 Mon Sep 17 00:00:00 2001 From: baldurk Date: Mon, 6 Nov 2017 12:09:46 +0000 Subject: [PATCH] Hide/disable options when they're not available. Refs #788 * Hopefully these can be restored at some point, when the features are implemented. For now where possible we remove options that are just unavailable always, and selectively disable others when they may or may not be available based on what API the capture uses. --- qrenderdoc/Windows/BufferViewer.cpp | 2 +- qrenderdoc/Windows/MainWindow.cpp | 6 ++++++ qrenderdoc/Windows/TextureViewer.cpp | 27 ++++++++++++++++++++++++++- 3 files changed, 33 insertions(+), 2 deletions(-) diff --git a/qrenderdoc/Windows/BufferViewer.cpp b/qrenderdoc/Windows/BufferViewer.cpp index cf7df637f..415227e65 100644 --- a/qrenderdoc/Windows/BufferViewer.cpp +++ b/qrenderdoc/Windows/BufferViewer.cpp @@ -1263,7 +1263,7 @@ void BufferViewer::stageRowMenu(MeshDataStage stage, QMenu *menu, const QPoint & menu->clear(); - if(m_MeshView && stage != MeshDataStage::GSOut) + if(m_MeshView && stage != MeshDataStage::GSOut && m_Ctx.CurPipelineState().IsLogD3D11()) { menu->addAction(m_DebugVert); menu->addSeparator(); diff --git a/qrenderdoc/Windows/MainWindow.cpp b/qrenderdoc/Windows/MainWindow.cpp index 89bfdecc5..e6f2b1aa4 100644 --- a/qrenderdoc/Windows/MainWindow.cpp +++ b/qrenderdoc/Windows/MainWindow.cpp @@ -59,6 +59,12 @@ MainWindow::MainWindow(ICaptureContext &ctx) : QMainWindow(NULL), ui(new Ui::Mai { ui->setupUi(this); +#if !defined(Q_OS_WIN32) + // process injection is not supported on non-Windows, so remove the menu item rather than disable + // it without a clear way to communicate that it is never supported + ui->menu_File->removeAction(ui->action_Inject_into_Process); +#endif + QToolTip::setPalette(palette()); installEventFilter(this); diff --git a/qrenderdoc/Windows/TextureViewer.cpp b/qrenderdoc/Windows/TextureViewer.cpp index dc7565bf6..c50765929 100644 --- a/qrenderdoc/Windows/TextureViewer.cpp +++ b/qrenderdoc/Windows/TextureViewer.cpp @@ -2491,6 +2491,28 @@ void TextureViewer::OnLogfileLoaded() ui->locationGoto->setEnabled(true); ui->viewTexBuffer->setEnabled(true); + if(m_Ctx.CurPipelineState().IsLogD3D11()) + { + ui->pixelHistory->setEnabled(true); + ui->pixelHistory->setToolTip(QString()); + } + else + { + ui->pixelHistory->setEnabled(false); + ui->pixelHistory->setToolTip(tr("Pixel History not implemented on this API")); + } + + if(m_Ctx.CurPipelineState().IsLogD3D11()) + { + ui->debugPixelContext->setEnabled(true); + ui->debugPixelContext->setToolTip(QString()); + } + else + { + ui->debugPixelContext->setEnabled(false); + ui->debugPixelContext->setToolTip(tr("Shader Debugging not implemented on this API")); + } + TextureListItemModel *model = (TextureListItemModel *)ui->textureList->model(); model->reset(TextureListItemModel::String, QString(), m_Ctx); @@ -2545,7 +2567,10 @@ void TextureViewer::Reset() ui->renderHScroll->setEnabled(false); ui->renderVScroll->setEnabled(false); - // PixelPicked = false; + ui->pixelHistory->setEnabled(false); + ui->pixelHistory->setToolTip(QString()); + ui->debugPixelContext->setEnabled(false); + ui->debugPixelContext->setToolTip(QString()); ui->statusText->setText(QString()); ui->renderContainer->setWindowTitle(tr("Current"));