From a2978dc33d2a00466a54b3bd458b15ac0c9f0488 Mon Sep 17 00:00:00 2001 From: John Kattukudiyil Date: Fri, 5 Nov 2021 18:57:59 -0400 Subject: [PATCH] readded custom axis mapping button and updated documentation --- docs/python_api/renderdoc/outputs.rst | 3 ++ qrenderdoc/Windows/BufferViewer.cpp | 45 ++++++++++++++++++++------- qrenderdoc/Windows/BufferViewer.h | 3 ++ qrenderdoc/Windows/BufferViewer.ui | 20 +++++++++--- 4 files changed, 54 insertions(+), 17 deletions(-) diff --git a/docs/python_api/renderdoc/outputs.rst b/docs/python_api/renderdoc/outputs.rst index 14a1da9db..7ba929596 100644 --- a/docs/python_api/renderdoc/outputs.rst +++ b/docs/python_api/renderdoc/outputs.rst @@ -64,4 +64,7 @@ Mesh View .. autoclass:: CameraType :members: +.. autoclass:: AxisMapping + :members: + .. autofunction:: renderdoc.InitCamera \ No newline at end of file diff --git a/qrenderdoc/Windows/BufferViewer.cpp b/qrenderdoc/Windows/BufferViewer.cpp index c4253868a..6fa5c6f9e 100644 --- a/qrenderdoc/Windows/BufferViewer.cpp +++ b/qrenderdoc/Windows/BufferViewer.cpp @@ -4107,28 +4107,47 @@ void BufferViewer::on_axisMappingCombo_currentIndexChanged(int index) break; default: break; } + ui->axisMappingButton->setEnabled(false); previousAxisMappingIndex = index; on_resetCamera_clicked(); INVOKE_MEMFN(RT_UpdateAndDisplay); } - else if(previousAxisMappingIndex != 4) + else { - AxisMappingDialog dialog(m_Ctx, m_Config, this); - RDDialog::show(&dialog); + ui->axisMappingButton->setEnabled(true); + if(previousAxisMappingIndex != 4) + { + bool validConfig = showAxisMappingDialog(); - if(dialog.result() == QDialog::Accepted) - { - m_Config.axisMapping = dialog.getAxisMapping(); - on_resetCamera_clicked(); - INVOKE_MEMFN(RT_UpdateAndDisplay); - } - else - { - ui->axisMappingCombo->setCurrentIndex(previousAxisMappingIndex); + if(!validConfig) + { + ui->axisMappingCombo->setCurrentIndex(previousAxisMappingIndex); + ui->axisMappingButton->setEnabled(false); + } } } } +bool BufferViewer::showAxisMappingDialog() +{ + AxisMappingDialog dialog(m_Ctx, m_Config, this); + RDDialog::show(&dialog); + + if(dialog.result() == QDialog::Accepted) + { + m_Config.axisMapping = dialog.getAxisMapping(); + on_resetCamera_clicked(); + INVOKE_MEMFN(RT_UpdateAndDisplay); + return true; + } + return false; +} + +void BufferViewer::on_axisMappingButton_clicked() +{ + showAxisMappingDialog(); +} + void BufferViewer::processFormat(const QString &format) { QString errors; @@ -4613,6 +4632,8 @@ void BufferViewer::on_outputTabs_currentChanged(int index) ui->autofitCamera->setEnabled(!isCurrentRasterOut()); EnableCameraGuessControls(); + ui->axisMappingCombo->setEnabled(index != 1); + ui->axisMappingButton->setEnabled(index != 1 && ui->axisMappingCombo->currentIndex() == 4); UpdateCurrentMeshConfig(); diff --git a/qrenderdoc/Windows/BufferViewer.h b/qrenderdoc/Windows/BufferViewer.h index 1d1c1aaeb..8e1f3314b 100644 --- a/qrenderdoc/Windows/BufferViewer.h +++ b/qrenderdoc/Windows/BufferViewer.h @@ -119,6 +119,7 @@ private slots: void on_byteRangeStart_valueChanged(double value); void on_byteRangeLength_valueChanged(double value); void on_axisMappingCombo_currentIndexChanged(int index); + void on_axisMappingButton_clicked(); // manual slots void render_mouseMove(QMouseEvent *e); @@ -264,4 +265,6 @@ private: void UpdateHighlightVerts(); void ScrollToRow(RDTableView *view, int row); void ScrollToColumn(RDTableView *view, int column); + + bool showAxisMappingDialog(); }; diff --git a/qrenderdoc/Windows/BufferViewer.ui b/qrenderdoc/Windows/BufferViewer.ui index b6a47bec3..dab90b909 100644 --- a/qrenderdoc/Windows/BufferViewer.ui +++ b/qrenderdoc/Windows/BufferViewer.ui @@ -495,7 +495,7 @@ Enter 0.0 to use automatic/guessed value derived from data. - + Qt::Horizontal @@ -560,7 +560,7 @@ Enter 0.0 to use automatic/guessed value derived from data. - + @@ -584,7 +584,7 @@ Enter 0.0 to use automatic/guessed value derived from data. - + Qt::Vertical @@ -597,14 +597,14 @@ Enter 0.0 to use automatic/guessed value derived from data. - + - + Bounding Box: @@ -618,6 +618,16 @@ Enter 0.0 to use automatic/guessed value derived from data. + + + + false + + + Edit Custom Mapping + + +