From 7d55ecbc48d90acec980b1a5b4e70c492ef4e5fa Mon Sep 17 00:00:00 2001 From: baldurk Date: Mon, 6 Aug 2018 11:29:04 +0100 Subject: [PATCH] Add 'capture frame immediately' button * This should be more obvious especially on e.g. android where there's no overlay and key shortcut. --- qrenderdoc/Windows/Dialogs/LiveCapture.cpp | 30 ++++++++++++++-------- qrenderdoc/Windows/Dialogs/LiveCapture.h | 3 ++- qrenderdoc/Windows/Dialogs/LiveCapture.ui | 23 +++++++++++------ 3 files changed, 36 insertions(+), 20 deletions(-) diff --git a/qrenderdoc/Windows/Dialogs/LiveCapture.cpp b/qrenderdoc/Windows/Dialogs/LiveCapture.cpp index 39e9c2834..c7bc11a42 100644 --- a/qrenderdoc/Windows/Dialogs/LiveCapture.cpp +++ b/qrenderdoc/Windows/Dialogs/LiveCapture.cpp @@ -119,7 +119,8 @@ LiveCapture::LiveCapture(ICaptureContext &ctx, const QString &hostname, const QS ui->apiIcon->setVisible(false); - ui->triggerCapture->setEnabled(false); + ui->triggerDelayedCapture->setEnabled(false); + ui->triggerImmediateCapture->setEnabled(false); ui->queueCap->setEnabled(false); ui->target->setText(QString()); @@ -275,19 +276,24 @@ void LiveCapture::on_queueCap_clicked() m_QueueCapture = true; } -void LiveCapture::on_triggerCapture_clicked() +void LiveCapture::on_triggerImmediateCapture_clicked() +{ + m_TriggerCapture = true; + m_CaptureNumFrames = (int)ui->numFrames->value(); +} + +void LiveCapture::on_triggerDelayedCapture_clicked() { if(ui->captureDelay->value() == 0.0) { - m_TriggerCapture = true; - m_CaptureNumFrames = (int)ui->numFrames->value(); + on_triggerImmediateCapture_clicked(); } else { m_CaptureCounter = (int)ui->captureDelay->value(); countdownTimer.start(); - ui->triggerCapture->setEnabled(false); - ui->triggerCapture->setText(tr("Triggering in %1s").arg(m_CaptureCounter)); + ui->triggerDelayedCapture->setEnabled(false); + ui->triggerDelayedCapture->setText(tr("Triggering in %1s").arg(m_CaptureCounter)); } } @@ -479,13 +485,13 @@ void LiveCapture::captureCountdownTick() { m_TriggerCapture = true; m_CaptureNumFrames = (int)ui->numFrames->value(); - ui->triggerCapture->setEnabled(true); - ui->triggerCapture->setText(tr("Trigger After Delay")); + ui->triggerDelayedCapture->setEnabled(true); + ui->triggerDelayedCapture->setText(tr("Trigger After Delay")); } else { countdownTimer.start(); - ui->triggerCapture->setText(tr("Triggering in %1s").arg(m_CaptureCounter)); + ui->triggerDelayedCapture->setText(tr("Triggering in %1s").arg(m_CaptureCounter)); } } @@ -1146,7 +1152,8 @@ void LiveCapture::connectionThreadEntry() if(presenting && supported) { - ui->triggerCapture->setEnabled(true); + ui->triggerImmediateCapture->setEnabled(true); + ui->triggerDelayedCapture->setEnabled(true); ui->queueCap->setEnabled(true); } @@ -1225,7 +1232,8 @@ void LiveCapture::connectionThreadEntry() ui->numFrames->setEnabled(false); ui->captureDelay->setEnabled(false); ui->captureFrame->setEnabled(false); - ui->triggerCapture->setEnabled(false); + ui->triggerDelayedCapture->setEnabled(false); + ui->triggerImmediateCapture->setEnabled(false); ui->queueCap->setEnabled(false); ui->apiStatus->setText(tr("None")); diff --git a/qrenderdoc/Windows/Dialogs/LiveCapture.h b/qrenderdoc/Windows/Dialogs/LiveCapture.h index 35511b107..35adfc518 100644 --- a/qrenderdoc/Windows/Dialogs/LiveCapture.h +++ b/qrenderdoc/Windows/Dialogs/LiveCapture.h @@ -69,7 +69,8 @@ private slots: void on_captures_mouseClicked(QMouseEvent *e); void on_captures_itemActivated(QListWidgetItem *item); void on_childProcesses_itemActivated(QListWidgetItem *item); - void on_triggerCapture_clicked(); + void on_triggerImmediateCapture_clicked(); + void on_triggerDelayedCapture_clicked(); void on_queueCap_clicked(); void on_previewSplit_splitterMoved(int pos, int index); void on_apiIcon_clicked(QMouseEvent *event); diff --git a/qrenderdoc/Windows/Dialogs/LiveCapture.ui b/qrenderdoc/Windows/Dialogs/LiveCapture.ui index 8c917ebd5..6a8be8685 100644 --- a/qrenderdoc/Windows/Dialogs/LiveCapture.ui +++ b/qrenderdoc/Windows/Dialogs/LiveCapture.ui @@ -190,7 +190,7 @@ Tools - + @@ -212,7 +212,7 @@ - + Frame @@ -225,17 +225,17 @@ - - + + - Trigger After Delay + Capture After Delay: - + - Queue Specific Frame + Capture Specific Frame(s): @@ -267,7 +267,7 @@ - + Qt::Vertical @@ -280,6 +280,13 @@ + + + + Capture Frame(s) Immediately + + +