mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-06 10:00:40 +00:00
Update mesh viewer to allow better customisation. Closes #1811
This commit is contained in:
@@ -342,6 +342,22 @@ DECLARE_REFLECTION_STRUCT(BugReport);
|
||||
":type: int"); \
|
||||
CONFIG_SETTING_VAL(public, int, int, MeshViewer_SpeedModifier, -1) \
|
||||
\
|
||||
DOCUMENT( \
|
||||
"The near plane used in the mesh viewers display." \
|
||||
"\n" \
|
||||
"Defaults to ``0.1``." \
|
||||
"" \
|
||||
":type: float"); \
|
||||
CONFIG_SETTING_VAL(public, float, float, MeshViewer_CameraNear, 0.1f) \
|
||||
\
|
||||
DOCUMENT( \
|
||||
"The far plane used in the mesh viewers display." \
|
||||
"\n" \
|
||||
"Defaults to ``100000.0``." \
|
||||
"" \
|
||||
":type: float"); \
|
||||
CONFIG_SETTING_VAL(public, float, float, MeshViewer_CameraFar, 100000.0f) \
|
||||
\
|
||||
DOCUMENT( \
|
||||
"List of the directories containing custom shader files for the Texture Viewer.\n" \
|
||||
"\n:" \
|
||||
|
||||
@@ -2577,10 +2577,6 @@ BufferViewer::BufferViewer(ICaptureContext &ctx, bool meshview, QWidget *parent)
|
||||
ui->instance->setFont(Formatter::PreferredFont());
|
||||
ui->viewIndex->setFont(Formatter::PreferredFont());
|
||||
ui->camSpeed->setFont(Formatter::PreferredFont());
|
||||
ui->fovGuess->setFont(Formatter::PreferredFont());
|
||||
ui->aspectGuess->setFont(Formatter::PreferredFont());
|
||||
ui->nearGuess->setFont(Formatter::PreferredFont());
|
||||
ui->farGuess->setFont(Formatter::PreferredFont());
|
||||
|
||||
if(meshview)
|
||||
SetupMeshView();
|
||||
@@ -2707,8 +2703,6 @@ BufferViewer::BufferViewer(ICaptureContext &ctx, bool meshview, QWidget *parent)
|
||||
ui->visualisation->adjustSize();
|
||||
ui->visualisation->setCurrentIndex(0);
|
||||
|
||||
ui->matrixType->addItems({tr("Perspective"), tr("Orthographic")});
|
||||
|
||||
ui->axisMappingCombo->addItems({tr("Y-up, left handed"), tr("Y-up, right handed"),
|
||||
tr("Z-up, left handed"), tr("Z-up, right handed"), tr("Custom...")});
|
||||
ui->axisMappingCombo->setCurrentIndex(0);
|
||||
@@ -2718,8 +2712,6 @@ BufferViewer::BufferViewer(ICaptureContext &ctx, bool meshview, QWidget *parent)
|
||||
|
||||
ui->setFormat->setVisible(false);
|
||||
|
||||
ui->fovGuess->setValue(90.0);
|
||||
|
||||
ui->controlType->setCurrentIndex(0);
|
||||
on_controlType_currentIndexChanged(0);
|
||||
|
||||
@@ -2752,17 +2744,6 @@ BufferViewer::BufferViewer(ICaptureContext &ctx, bool meshview, QWidget *parent)
|
||||
QObject::connect(ui->out2Table->verticalScrollBar(), &QScrollBar::valueChanged, this,
|
||||
&BufferViewer::data_scrolled);
|
||||
|
||||
QObject::connect(ui->fovGuess, OverloadedSlot<double>::of(&QDoubleSpinBox::valueChanged), this,
|
||||
&BufferViewer::camGuess_changed);
|
||||
QObject::connect(ui->aspectGuess, OverloadedSlot<double>::of(&QDoubleSpinBox::valueChanged), this,
|
||||
&BufferViewer::camGuess_changed);
|
||||
QObject::connect(ui->nearGuess, OverloadedSlot<double>::of(&QDoubleSpinBox::valueChanged), this,
|
||||
&BufferViewer::camGuess_changed);
|
||||
QObject::connect(ui->farGuess, OverloadedSlot<double>::of(&QDoubleSpinBox::valueChanged), this,
|
||||
&BufferViewer::camGuess_changed);
|
||||
QObject::connect(ui->matrixType, OverloadedSlot<int>::of(&QComboBox::currentIndexChanged),
|
||||
[this](int) { camGuess_changed(0.0); });
|
||||
|
||||
{
|
||||
QMenu *extensionsMenu = new QMenu(this);
|
||||
|
||||
@@ -2965,7 +2946,7 @@ void BufferViewer::SetupMeshView()
|
||||
|
||||
ui->resourceDetails->setVisible(false);
|
||||
ui->formatSpecifier->setVisible(false);
|
||||
ui->cameraControlsGroup->setVisible(false);
|
||||
ui->configurationGroup->setVisible(false);
|
||||
|
||||
ui->minBoundsLabel->setText(lit("---"));
|
||||
ui->maxBoundsLabel->setText(lit("---"));
|
||||
@@ -3502,12 +3483,12 @@ void BufferViewer::OnEventChanged(uint32_t eventId)
|
||||
float vpWidth = qAbs(vp.width);
|
||||
float vpHeight = qAbs(vp.height);
|
||||
|
||||
m_Config.fov = ui->fovGuess->value();
|
||||
m_Config.fov = m_ProjGuess.fov;
|
||||
m_Config.aspect = (vpWidth > 0.0f && vpHeight > 0.0f) ? (vpWidth / vpHeight) : 1.0f;
|
||||
m_Config.highlightVert = 0;
|
||||
|
||||
if(ui->aspectGuess->value() > 0.0)
|
||||
m_Config.aspect = ui->aspectGuess->value();
|
||||
if(m_ProjGuess.aspect > 0.0)
|
||||
m_Config.aspect = m_ProjGuess.aspect;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -3906,7 +3887,7 @@ void BufferViewer::OnEventChanged(uint32_t eventId)
|
||||
m_ModelOut2->setSecondaryColumn(-1, m_Config.visualisationMode == Visualisation::Secondary,
|
||||
false);
|
||||
|
||||
EnableCameraGuessControls();
|
||||
UpdateStageDataControls();
|
||||
|
||||
populateBBox(bufdata);
|
||||
|
||||
@@ -5066,7 +5047,7 @@ void BufferViewer::UpdateCurrentMeshConfig()
|
||||
default: break;
|
||||
}
|
||||
|
||||
camGuess_changed(0.0);
|
||||
UI_UpdateGuessParameters();
|
||||
|
||||
m_Config.showBBox = false;
|
||||
|
||||
@@ -6030,11 +6011,16 @@ void BufferViewer::data_scrolled(int scrollvalue)
|
||||
SyncViews(view, false, true);
|
||||
}
|
||||
|
||||
void BufferViewer::camGuess_changed(double value)
|
||||
void BufferViewer::UI_UpdateGuessParameters()
|
||||
{
|
||||
m_Config.ortho = (ui->matrixType->currentIndex() == 1);
|
||||
m_Arcball->camera()->SetNearFar(m_Ctx.Config().MeshViewer_CameraNear,
|
||||
m_Ctx.Config().MeshViewer_CameraFar);
|
||||
m_Flycam->camera()->SetNearFar(m_Ctx.Config().MeshViewer_CameraNear,
|
||||
m_Ctx.Config().MeshViewer_CameraFar);
|
||||
|
||||
m_Config.fov = ui->fovGuess->value();
|
||||
m_Config.ortho = m_ProjGuess.orthographic;
|
||||
|
||||
m_Config.fov = m_ProjGuess.fov;
|
||||
|
||||
m_Config.aspect = 1.0f;
|
||||
|
||||
@@ -6046,8 +6032,8 @@ void BufferViewer::camGuess_changed(double value)
|
||||
|
||||
m_Config.aspect = (vpWidth > 0.0f && vpHeight > 0.0f) ? (vpWidth / vpHeight) : 1.0f;
|
||||
|
||||
if(ui->aspectGuess->value() > 0.0)
|
||||
m_Config.aspect = ui->aspectGuess->value();
|
||||
if(m_ProjGuess.aspect > 0.0)
|
||||
m_Config.aspect = m_ProjGuess.aspect;
|
||||
|
||||
// use estimates from post vs data (calculated from vertex position data) if the user
|
||||
// hasn't overridden the values
|
||||
@@ -6075,8 +6061,8 @@ void BufferViewer::camGuess_changed(double value)
|
||||
m_Config.position.flipY = m_Out2Data.flipY;
|
||||
}
|
||||
|
||||
if(ui->nearGuess->value() > 0.0)
|
||||
m_Config.position.nearPlane = ui->nearGuess->value();
|
||||
if(m_ProjGuess.nearPlane > 0.0)
|
||||
m_Config.position.nearPlane = m_ProjGuess.nearPlane;
|
||||
|
||||
m_Config.position.farPlane = 100.0f;
|
||||
|
||||
@@ -6089,10 +6075,10 @@ void BufferViewer::camGuess_changed(double value)
|
||||
else if(m_CurStage == MeshDataStage::MeshOut)
|
||||
m_Config.position.farPlane = m_Out2Data.farPlane;
|
||||
|
||||
if(ui->farGuess->value() > 0.0)
|
||||
m_Config.position.farPlane = ui->farGuess->value();
|
||||
if(m_ProjGuess.farPlane > 0.0)
|
||||
m_Config.position.farPlane = m_ProjGuess.farPlane;
|
||||
|
||||
EnableCameraGuessControls();
|
||||
UpdateStageDataControls();
|
||||
|
||||
INVOKE_MEMFN(RT_UpdateAndDisplay);
|
||||
}
|
||||
@@ -6166,6 +6152,27 @@ void BufferViewer::on_axisMappingButton_clicked()
|
||||
showAxisMappingDialog();
|
||||
}
|
||||
|
||||
void BufferViewer::on_camParameters_clicked()
|
||||
{
|
||||
CameraControlsDialog dialog(m_Ctx, this);
|
||||
RDDialog::show(&dialog);
|
||||
|
||||
if(dialog.result() == QDialog::Accepted)
|
||||
UI_UpdateGuessParameters();
|
||||
}
|
||||
|
||||
void BufferViewer::on_guessButton_clicked()
|
||||
{
|
||||
ProjectionGuessDialog dialog(m_Ctx, m_ProjGuess, this);
|
||||
RDDialog::show(&dialog);
|
||||
|
||||
if(dialog.result() == QDialog::Accepted)
|
||||
{
|
||||
m_ProjGuess = dialog.getParameters();
|
||||
UI_UpdateGuessParameters();
|
||||
}
|
||||
}
|
||||
|
||||
void BufferViewer::on_setFormat_toggled(bool checked)
|
||||
{
|
||||
if(!checked)
|
||||
@@ -7102,15 +7109,69 @@ void BufferViewer::UpdateHighlightVerts()
|
||||
m_Config.highlightVert = selected[0].row();
|
||||
}
|
||||
|
||||
void BufferViewer::EnableCameraGuessControls()
|
||||
void BufferViewer::UpdateStageDataControls()
|
||||
{
|
||||
ui->matrixType->setEnabled(isCurrentRasterOut());
|
||||
ui->aspectGuess->setEnabled(isCurrentRasterOut());
|
||||
ui->nearGuess->setEnabled(isCurrentRasterOut());
|
||||
ui->farGuess->setEnabled(isCurrentRasterOut());
|
||||
if(isCurrentRasterOut())
|
||||
{
|
||||
ui->guessLabel->setVisible(true);
|
||||
ui->guessDetails1->setVisible(true);
|
||||
ui->guessDetails2->setVisible(true);
|
||||
ui->guessButton->setVisible(true);
|
||||
|
||||
// FOV is only available in perspective mode
|
||||
ui->fovGuess->setEnabled(isCurrentRasterOut() && ui->matrixType->currentIndex() == 0);
|
||||
QString aspectStr = tr("Auto");
|
||||
if(m_ProjGuess.aspect > 0)
|
||||
aspectStr = Formatter::Format(m_ProjGuess.aspect);
|
||||
|
||||
if(m_ProjGuess.orthographic)
|
||||
ui->guessDetails1->setText(tr("Orthographic Projection"));
|
||||
else
|
||||
ui->guessDetails1->setText(
|
||||
tr("Perspective Projection, FOV %1").arg(Formatter::Format(m_ProjGuess.fov)));
|
||||
|
||||
if(m_ProjGuess.farPlane == FLT_MAX)
|
||||
{
|
||||
if(m_ProjGuess.nearPlane > 0)
|
||||
ui->guessDetails2->setText(tr("Aspect Ratio %1, Reverse Z Near %2")
|
||||
.arg(aspectStr)
|
||||
.arg(Formatter::Format(m_ProjGuess.nearPlane)));
|
||||
else
|
||||
ui->guessDetails2->setText(tr("Aspect Ratio %1, Reverse Z Near Automatic").arg(aspectStr));
|
||||
}
|
||||
else
|
||||
{
|
||||
if(m_ProjGuess.nearPlane > 0 && m_ProjGuess.farPlane > 0)
|
||||
ui->guessDetails2->setText(tr("Aspect Ratio %1, Near-Far %2 - %3")
|
||||
.arg(aspectStr)
|
||||
.arg(Formatter::Format(m_ProjGuess.nearPlane))
|
||||
.arg(Formatter::Format(m_ProjGuess.farPlane)));
|
||||
else if(m_ProjGuess.nearPlane > 0)
|
||||
ui->guessDetails2->setText(tr("Aspect Ratio %1, Near %2 Far Auto")
|
||||
.arg(aspectStr)
|
||||
.arg(Formatter::Format(m_ProjGuess.nearPlane)));
|
||||
else if(m_ProjGuess.farPlane > 0)
|
||||
ui->guessDetails2->setText(tr("Aspect Ratio %1, Near Auto Far %2")
|
||||
.arg(aspectStr)
|
||||
.arg(Formatter::Format(m_ProjGuess.farPlane)));
|
||||
else
|
||||
ui->guessDetails2->setText(tr("Aspect Ratio %1, Near-Far Automatic").arg(aspectStr));
|
||||
}
|
||||
|
||||
ui->axisMappingLabel->setVisible(false);
|
||||
ui->axisMappingCombo->setVisible(false);
|
||||
ui->axisMappingButton->setVisible(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
ui->guessLabel->setVisible(false);
|
||||
ui->guessDetails1->setVisible(false);
|
||||
ui->guessDetails2->setVisible(false);
|
||||
ui->guessButton->setVisible(false);
|
||||
|
||||
ui->axisMappingLabel->setVisible(true);
|
||||
ui->axisMappingCombo->setVisible(true);
|
||||
ui->axisMappingButton->setVisible(true);
|
||||
ui->axisMappingButton->setEnabled(ui->axisMappingCombo->currentIndex() == 4);
|
||||
}
|
||||
}
|
||||
|
||||
void BufferViewer::on_outputTabs_currentChanged(int index)
|
||||
@@ -7130,10 +7191,7 @@ void BufferViewer::on_outputTabs_currentChanged(int index)
|
||||
on_resetCamera_clicked();
|
||||
ui->autofitCamera->setEnabled(!isCurrentRasterOut());
|
||||
|
||||
EnableCameraGuessControls();
|
||||
ui->axisMappingCombo->setEnabled(!isCurrentRasterOut());
|
||||
ui->axisMappingButton->setEnabled(!isCurrentRasterOut() &&
|
||||
ui->axisMappingCombo->currentIndex() == 4);
|
||||
UpdateStageDataControls();
|
||||
|
||||
UpdateCurrentMeshConfig();
|
||||
|
||||
@@ -7142,7 +7200,7 @@ void BufferViewer::on_outputTabs_currentChanged(int index)
|
||||
|
||||
void BufferViewer::on_toggleControls_toggled(bool checked)
|
||||
{
|
||||
ui->cameraControlsGroup->setVisible(checked);
|
||||
ui->configurationGroup->setVisible(checked);
|
||||
|
||||
// temporarily set minimum bounds to the longest float we could format, to ensure the minimum size
|
||||
// we calculate below is as big as needs to be (sigh...). This is necessary because Qt doesn't
|
||||
@@ -7165,7 +7223,7 @@ void BufferViewer::on_toggleControls_toggled(bool checked)
|
||||
|
||||
UI_UpdateBoundingBoxLabels();
|
||||
|
||||
EnableCameraGuessControls();
|
||||
UpdateStageDataControls();
|
||||
}
|
||||
|
||||
void BufferViewer::on_syncViews_toggled(bool checked)
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
#include <QMutex>
|
||||
#include "Code/Interface/QRDInterface.h"
|
||||
#include "Code/QRDUtils.h"
|
||||
#include "Windows/Dialogs/ProjectionGuessDialog.h"
|
||||
|
||||
namespace Ui
|
||||
{
|
||||
@@ -146,10 +147,13 @@ private slots:
|
||||
void on_axisMappingButton_clicked();
|
||||
void on_setFormat_toggled(bool checked);
|
||||
void on_resetMeshFilterButton_clicked();
|
||||
void on_camParameters_clicked();
|
||||
void on_guessButton_clicked();
|
||||
|
||||
// manual slots
|
||||
void render_mouseMove(QMouseEvent *e);
|
||||
void render_clicked(QMouseEvent *e);
|
||||
void render_unclicked(QMouseEvent *e);
|
||||
|
||||
void render_mouseWheel(QWheelEvent *e);
|
||||
void render_keyPress(QKeyEvent *e);
|
||||
@@ -158,7 +162,6 @@ private slots:
|
||||
|
||||
void data_selected(const QItemSelection &selected, const QItemSelection &deselected);
|
||||
void data_scrolled(int scroll);
|
||||
void camGuess_changed(double value);
|
||||
|
||||
void processFormat(const QString &format);
|
||||
|
||||
@@ -182,6 +185,7 @@ private:
|
||||
|
||||
void configureDrawRange();
|
||||
|
||||
void UI_UpdateGuessParameters();
|
||||
void RT_UpdateAndDisplay(IReplayController *r);
|
||||
|
||||
QPushButton *MakePreviousPageButton();
|
||||
@@ -253,6 +257,8 @@ private:
|
||||
ArcballWrapper *m_Arcball = NULL;
|
||||
FlycamWrapper *m_Flycam = NULL;
|
||||
|
||||
ProjectionGuessParameters m_ProjGuess;
|
||||
|
||||
bool m_MeshView;
|
||||
|
||||
// for ease of reading, these stages are named as in, out1, and out2. Note however that this does
|
||||
@@ -362,7 +368,7 @@ private:
|
||||
void UI_ConfigureMeshPipeFormats();
|
||||
|
||||
void UpdateCurrentMeshConfig();
|
||||
void EnableCameraGuessControls();
|
||||
void UpdateStageDataControls();
|
||||
|
||||
void CalcColumnWidth(int maxNumRows = 1);
|
||||
void ApplyRowAndColumnDims(int numColumns, RDTableView *view, int dataColWidth);
|
||||
|
||||
@@ -121,7 +121,7 @@
|
||||
<x>50</x>
|
||||
<y>220</y>
|
||||
<width>666</width>
|
||||
<height>312</height>
|
||||
<height>401</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="currentIndex">
|
||||
@@ -494,7 +494,7 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QGroupBox" name="cameraControlsGroup">
|
||||
<widget class="QGroupBox" name="configurationGroup">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
@@ -502,7 +502,7 @@
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Camera Controls</string>
|
||||
<string>Configuration</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_2">
|
||||
<property name="leftMargin">
|
||||
@@ -545,8 +545,8 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>312</width>
|
||||
<height>308</height>
|
||||
<width>267</width>
|
||||
<height>321</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
@@ -556,6 +556,41 @@
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_5">
|
||||
<item row="11" column="0" colspan="2">
|
||||
<widget class="Line" name="line_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="12" column="0">
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="text">
|
||||
<string>Bounding Box:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="9" column="0">
|
||||
<widget class="QLabel" name="axisMappingLabel">
|
||||
<property name="text">
|
||||
<string>Axis Mapping:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="0" colspan="2">
|
||||
<widget class="QLabel" name="guessDetails2">
|
||||
<property name="text">
|
||||
<string>Aspect ratio Auto, Near-Far 0.01 - 1000.0</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0" colspan="2">
|
||||
<widget class="Line" name="line_3">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="camSpeedLabel">
|
||||
<property name="text">
|
||||
@@ -563,6 +598,33 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="12" column="1">
|
||||
<widget class="QLabel" name="minBoundsLabel">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="9" column="1">
|
||||
<widget class="QComboBox" name="axisMappingCombo"/>
|
||||
</item>
|
||||
<item row="6" column="0" colspan="2">
|
||||
<widget class="QLabel" name="guessDetails1">
|
||||
<property name="text">
|
||||
<string>Perspective Projection, FOV 90</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="10" column="1">
|
||||
<widget class="QPushButton" name="axisMappingButton">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Edit Custom Mapping</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QDoubleSpinBox" name="camSpeed">
|
||||
<property name="sizePolicy">
|
||||
@@ -588,160 +650,35 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="2">
|
||||
<widget class="QLabel" name="guessInstructions">
|
||||
<property name="text">
|
||||
<string>Manually configure projection used by vertex pipeline.
|
||||
Enter 0.0 to use automatic/guessed value derived from data.</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="matrixTypeLabel">
|
||||
<property name="text">
|
||||
<string>Matrix Type:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QComboBox" name="matrixType">
|
||||
<property name="maxVisibleItems">
|
||||
<number>2</number>
|
||||
</property>
|
||||
<property name="maxCount">
|
||||
<number>2</number>
|
||||
</property>
|
||||
<property name="insertPolicy">
|
||||
<enum>QComboBox::NoInsert</enum>
|
||||
</property>
|
||||
<property name="frame">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="fovGuessLabel">
|
||||
<property name="text">
|
||||
<string>Persp. FOV:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QDoubleSpinBox" name="fovGuess">
|
||||
<property name="minimum">
|
||||
<double>1.000000000000000</double>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<double>180.000000000000000</double>
|
||||
</property>
|
||||
<property name="value">
|
||||
<double>90.000000000000000</double>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QLabel" name="aspectGuessLabel">
|
||||
<property name="text">
|
||||
<string>Aspect Ratio:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="QDoubleSpinBox" name="aspectGuess">
|
||||
<property name="minimum">
|
||||
<double>0.000000000000000</double>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<double>10.000000000000000</double>
|
||||
</property>
|
||||
<property name="singleStep">
|
||||
<double>0.010000000000000</double>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0">
|
||||
<widget class="QLabel" name="nearGuessLabel">
|
||||
<property name="text">
|
||||
<string>Near Plane:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="1">
|
||||
<widget class="QDoubleSpinBox" name="nearGuess">
|
||||
<property name="maximum">
|
||||
<double>100.000000000000000</double>
|
||||
</property>
|
||||
<property name="singleStep">
|
||||
<double>0.010000000000000</double>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="0">
|
||||
<widget class="QLabel" name="farGuessLabel">
|
||||
<property name="text">
|
||||
<string>Far Plane:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="1">
|
||||
<widget class="QDoubleSpinBox" name="farGuess">
|
||||
<property name="maximum">
|
||||
<double>1000000.000000000000000</double>
|
||||
</property>
|
||||
<property name="singleStep">
|
||||
<double>10.000000000000000</double>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="0">
|
||||
<widget class="QLabel" name="axisMappingLabel">
|
||||
<property name="text">
|
||||
<string>Axis Mapping:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="1">
|
||||
<widget class="QComboBox" name="axisMappingCombo"/>
|
||||
</item>
|
||||
<item row="8" column="1">
|
||||
<widget class="QPushButton" name="axisMappingButton">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Edit Custom Mapping</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="9" column="0" colspan="2">
|
||||
<widget class="Line" name="line_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="10" column="0">
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="text">
|
||||
<string>Bounding Box:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="10" column="1">
|
||||
<widget class="QLabel" name="minBoundsLabel">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="11" column="1">
|
||||
<item row="13" column="1">
|
||||
<widget class="QLabel" name="maxBoundsLabel">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="12" column="1">
|
||||
<item row="5" column="0" colspan="2">
|
||||
<widget class="QLabel" name="guessLabel">
|
||||
<property name="text">
|
||||
<string>Unproject matrix used:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="8" column="0" colspan="2">
|
||||
<widget class="QPushButton" name="guessButton">
|
||||
<property name="text">
|
||||
<string>Vertex Projection Configuration</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QPushButton" name="camParameters">
|
||||
<property name="text">
|
||||
<string>Camera Settings && Controls</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="14" column="1">
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
|
||||
@@ -6,8 +6,8 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>300</width>
|
||||
<height>200</height>
|
||||
<width>260</width>
|
||||
<height>149</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
@@ -18,16 +18,16 @@
|
||||
<enum>QLayout::SetFixedSize</enum>
|
||||
</property>
|
||||
<property name="leftMargin">
|
||||
<number>30</number>
|
||||
<number>10</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>30</number>
|
||||
<number>10</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>30</number>
|
||||
<number>10</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>30</number>
|
||||
<number>10</number>
|
||||
</property>
|
||||
<item>
|
||||
<layout class="QGridLayout" name="gridLayout_5">
|
||||
|
||||
@@ -251,7 +251,9 @@ SOURCES += Code/qrenderdoc.cpp \
|
||||
Windows/ResourceInspector.cpp \
|
||||
Windows/Dialogs/AnalyticsConfirmDialog.cpp \
|
||||
Windows/Dialogs/AnalyticsPromptDialog.cpp \
|
||||
Windows/Dialogs/AxisMappingDialog.cpp
|
||||
Windows/Dialogs/AxisMappingDialog.cpp \
|
||||
Windows/Dialogs/CameraControlsDialog.cpp \
|
||||
Windows/Dialogs/ProjectionGuessDialog.cpp
|
||||
HEADERS += Code/CaptureContext.h \
|
||||
Code/qprocessinfo.h \
|
||||
Code/ReplayManager.h \
|
||||
@@ -337,7 +339,9 @@ HEADERS += Code/CaptureContext.h \
|
||||
Windows/ResourceInspector.h \
|
||||
Windows/Dialogs/AnalyticsConfirmDialog.h \
|
||||
Windows/Dialogs/AnalyticsPromptDialog.h \
|
||||
Windows/Dialogs/AxisMappingDialog.h
|
||||
Windows/Dialogs/AxisMappingDialog.h \
|
||||
Windows/Dialogs/CameraControlsDialog.h \
|
||||
Windows/Dialogs/ProjectionGuessDialog.h
|
||||
FORMS += Windows/Dialogs/AboutDialog.ui \
|
||||
Windows/Dialogs/CrashDialog.ui \
|
||||
Windows/Dialogs/UpdateDialog.ui \
|
||||
@@ -382,7 +386,9 @@ FORMS += Windows/Dialogs/AboutDialog.ui \
|
||||
Windows/ResourceInspector.ui \
|
||||
Windows/Dialogs/AnalyticsConfirmDialog.ui \
|
||||
Windows/Dialogs/AnalyticsPromptDialog.ui \
|
||||
Windows/Dialogs/AxisMappingDialog.ui
|
||||
Windows/Dialogs/AxisMappingDialog.ui \
|
||||
Windows/Dialogs/CameraControlsDialog.ui \
|
||||
Windows/Dialogs/ProjectionGuessDialog.ui
|
||||
|
||||
RESOURCES += Resources/resources.qrc
|
||||
|
||||
|
||||
@@ -617,6 +617,8 @@
|
||||
<ClCompile Include="$(IntDir)generated\moc_AnalyticsPromptDialog.cpp" />
|
||||
<ClCompile Include="$(IntDir)generated\moc_APIInspector.cpp" />
|
||||
<ClCompile Include="$(IntDir)generated\moc_AxisMappingDialog.cpp" />
|
||||
<ClCompile Include="$(IntDir)generated\moc_CameraControlsDialog.cpp" />
|
||||
<ClCompile Include="$(IntDir)generated\moc_ProjectionGuessDialog.cpp" />
|
||||
<ClCompile Include="$(IntDir)generated\moc_ResourceInspector.cpp" />
|
||||
<ClCompile Include="$(IntDir)generated\moc_BufferFormatSpecifier.cpp" />
|
||||
<ClCompile Include="$(IntDir)generated\moc_ComputeDebugSelector.cpp" />
|
||||
@@ -756,6 +758,8 @@
|
||||
<ClCompile Include="Windows\Dialogs\AnalyticsConfirmDialog.cpp" />
|
||||
<ClCompile Include="Windows\Dialogs\AnalyticsPromptDialog.cpp" />
|
||||
<ClCompile Include="Windows\Dialogs\AxisMappingDialog.cpp" />
|
||||
<ClCompile Include="Windows\Dialogs\CameraControlsDialog.cpp" />
|
||||
<ClCompile Include="Windows\Dialogs\ProjectionGuessDialog.cpp" />
|
||||
<ClCompile Include="Windows\Dialogs\CaptureDialog.cpp" />
|
||||
<ClCompile Include="Windows\Dialogs\LiveCapture.cpp" />
|
||||
<ClCompile Include="Windows\Dialogs\EnvironmentEditor.cpp" />
|
||||
@@ -960,6 +964,8 @@
|
||||
<ClInclude Include="$(IntDir)generated\ui_AnalyticsPromptDialog.h" />
|
||||
<ClInclude Include="$(IntDir)generated\ui_APIInspector.h" />
|
||||
<ClInclude Include="$(IntDir)generated\ui_AxisMappingDialog.h" />
|
||||
<ClInclude Include="$(IntDir)generated\ui_CameraControlsDialog.h" />
|
||||
<ClInclude Include="$(IntDir)generated\ui_ProjectionGuessDialog.h" />
|
||||
<ClInclude Include="$(IntDir)generated\ui_ResourceInspector.h" />
|
||||
<ClInclude Include="$(IntDir)generated\ui_BufferFormatSpecifier.h" />
|
||||
<ClInclude Include="$(IntDir)generated\ui_ComputeDebugSelector.h" />
|
||||
@@ -1269,6 +1275,18 @@
|
||||
<Message>MOC %(Filename).h</Message>
|
||||
<Outputs>$(IntDir)generated\moc_%(Filename).cpp</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="Windows\Dialogs\CameraControlsDialog.h">
|
||||
<AdditionalInputs>%(Fullpath);$(QtBinDir)\moc.exe;%(AdditionalInputs)</AdditionalInputs>
|
||||
<Command>"$(QtBinDir)\moc.exe" -DUNICODE -DWIN32 -DWIN64 -D_WIN32 -D_WIN64 -DRENDERDOC_PLATFORM_WIN32 -DSCINTILLA_QT=1 -DSCI_LEXER=1 -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -D_MSC_VER=1900 -I"$(ProjectDir)." -I"$(SolutionDir)\renderdoc\api\replay" -I"$(QtIncludeDir)" -I"$(QtIncludeDir)\QtWidgets" -I"$(QtIncludeDir)\QtGui" -I"$(QtIncludeDir)\QtCore" "%(Fullpath)" -o "$(IntDir)generated\moc_%(Filename).cpp"</Command>
|
||||
<Message>MOC %(Filename).h</Message>
|
||||
<Outputs>$(IntDir)generated\moc_%(Filename).cpp</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="Windows\Dialogs\ProjectionGuessDialog.h">
|
||||
<AdditionalInputs>%(Fullpath);$(QtBinDir)\moc.exe;%(AdditionalInputs)</AdditionalInputs>
|
||||
<Command>"$(QtBinDir)\moc.exe" -DUNICODE -DWIN32 -DWIN64 -D_WIN32 -D_WIN64 -DRENDERDOC_PLATFORM_WIN32 -DSCINTILLA_QT=1 -DSCI_LEXER=1 -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -D_MSC_VER=1900 -I"$(ProjectDir)." -I"$(SolutionDir)\renderdoc\api\replay" -I"$(QtIncludeDir)" -I"$(QtIncludeDir)\QtWidgets" -I"$(QtIncludeDir)\QtGui" -I"$(QtIncludeDir)\QtCore" "%(Fullpath)" -o "$(IntDir)generated\moc_%(Filename).cpp"</Command>
|
||||
<Message>MOC %(Filename).h</Message>
|
||||
<Outputs>$(IntDir)generated\moc_%(Filename).cpp</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="Windows\Dialogs\CaptureDialog.h">
|
||||
<AdditionalInputs>%(Fullpath);$(QtBinDir)\moc.exe;%(AdditionalInputs)</AdditionalInputs>
|
||||
<Command>"$(QtBinDir)\moc.exe" -DUNICODE -DWIN32 -DWIN64 -D_WIN32 -D_WIN64 -DRENDERDOC_PLATFORM_WIN32 -DSCINTILLA_QT=1 -DSCI_LEXER=1 -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -D_MSC_VER=1900 -I"$(ProjectDir)." -I"$(SolutionDir)\renderdoc\api\replay" -I"$(QtIncludeDir)" -I"$(QtIncludeDir)\QtWidgets" -I"$(QtIncludeDir)\QtGui" -I"$(QtIncludeDir)\QtCore" "%(Fullpath)" -o "$(IntDir)generated\moc_%(Filename).cpp"</Command>
|
||||
@@ -1570,6 +1588,18 @@
|
||||
<Message>UIC %(Filename).ui</Message>
|
||||
<Outputs>$(IntDir)generated\ui_%(Filename).h</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="Windows\Dialogs\CameraControlsDialog.ui">
|
||||
<AdditionalInputs>%(Fullpath);$(QtBinDir)\uic.exe;%(AdditionalInputs)</AdditionalInputs>
|
||||
<Command>"$(QtBinDir)\uic.exe" "%(Fullpath)" -o "$(IntDir)generated\ui_%(Filename).h"</Command>
|
||||
<Message>UIC %(Filename).ui</Message>
|
||||
<Outputs>$(IntDir)generated\ui_%(Filename).h</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="Windows\Dialogs\ProjectionGuessDialog.ui">
|
||||
<AdditionalInputs>%(Fullpath);$(QtBinDir)\uic.exe;%(AdditionalInputs)</AdditionalInputs>
|
||||
<Command>"$(QtBinDir)\uic.exe" "%(Fullpath)" -o "$(IntDir)generated\ui_%(Filename).h"</Command>
|
||||
<Message>UIC %(Filename).ui</Message>
|
||||
<Outputs>$(IntDir)generated\ui_%(Filename).h</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="Windows\Dialogs\CaptureDialog.ui">
|
||||
<AdditionalInputs>%(Fullpath);$(QtBinDir)\uic.exe;%(AdditionalInputs)</AdditionalInputs>
|
||||
<Command>"$(QtBinDir)\uic.exe" "%(Fullpath)" -o "$(IntDir)generated\ui_%(Filename).h"</Command>
|
||||
|
||||
@@ -771,6 +771,18 @@
|
||||
<ClCompile Include="Widgets\ComputeDebugSelector.cpp">
|
||||
<Filter>Widgets</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)generated\moc_ProjectionGuessDialog.cpp">
|
||||
<Filter>Generated Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)generated\moc_CameraControlsDialog.cpp">
|
||||
<Filter>Generated Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Windows\Dialogs\CameraControlsDialog.cpp">
|
||||
<Filter>Windows\Dialogs</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Windows\Dialogs\ProjectionGuessDialog.cpp">
|
||||
<Filter>Windows\Dialogs</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="3rdparty\flowlayout\FlowLayout.h">
|
||||
@@ -1151,6 +1163,12 @@
|
||||
<ClInclude Include="3rdparty\catch\official\catch.hpp">
|
||||
<Filter>3rdparty\catch</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="$(IntDir)generated\ui_ProjectionGuessDialog.h">
|
||||
<Filter>Generated Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="$(IntDir)generated\ui_CameraControlsDialog.h">
|
||||
<Filter>Generated Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Code\pyrenderdoc\pyconversion.h">
|
||||
@@ -1574,6 +1592,18 @@
|
||||
<CustomBuild Include="Widgets\ComputeDebugSelector.ui">
|
||||
<Filter>Widgets</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="Windows\Dialogs\CameraControlsDialog.h">
|
||||
<Filter>Windows\Dialogs</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="Windows\Dialogs\CameraControlsDialog.ui">
|
||||
<Filter>Windows\Dialogs</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="Windows\Dialogs\ProjectionGuessDialog.h">
|
||||
<Filter>Windows\Dialogs</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="Windows\Dialogs\ProjectionGuessDialog.ui">
|
||||
<Filter>Windows\Dialogs</Filter>
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Image Include="Resources\action.png">
|
||||
|
||||
Reference in New Issue
Block a user