Save the queued frame capture settings with settings files

This commit is contained in:
baldurk
2019-02-07 15:23:07 +00:00
parent ac357a8dec
commit 852d345bf7
4 changed files with 39 additions and 0 deletions
@@ -73,6 +73,8 @@ CaptureSettings::CaptureSettings()
{
inject = false;
autoStart = false;
queuedFrameCap = 0;
numQueuedFrames = 0;
RENDERDOC_GetDefaultCaptureOptions(&options);
}
@@ -106,6 +108,9 @@ CaptureSettings::operator QVariant() const
opts[lit("debugOutputMute")] = options.debugOutputMute;
ret[lit("options")] = opts;
ret[lit("queuedFrameCap")] = queuedFrameCap;
ret[lit("numQueuedFrames")] = numQueuedFrames;
return ret;
}
@@ -144,6 +149,15 @@ CaptureSettings::CaptureSettings(const QVariant &v)
options.refAllResources = opts[lit("refAllResources")].toBool();
options.captureAllCmdLists = opts[lit("captureAllCmdLists")].toBool();
options.debugOutputMute = opts[lit("debugOutputMute")].toBool();
if(data.contains(lit("queuedFrameCap")))
queuedFrameCap = data[lit("queuedFrameCap")].toUInt();
else
queuedFrameCap = 0;
if(data.contains(lit("numQueuedFrames")))
numQueuedFrames = data[lit("numQueuedFrames")].toUInt();
else
numQueuedFrames = 0;
}
rdcstr configFilePath(const rdcstr &filename)
+4
View File
@@ -117,6 +117,10 @@ struct CaptureSettings
"A ``list`` of :class:`~renderdoc.EnvironmentModification` with environment changes to "
"apply.");
rdcarray<EnvironmentModification> environment;
DOCUMENT("The number of queued frames to capture, or 0 if no frames are queued to be captured.");
uint32_t numQueuedFrames;
DOCUMENT("The first queued frame to capture. Ignored if :data:`numQueuedFrames` is 0.");
uint32_t queuedFrameCap;
};
DECLARE_REFLECTION_STRUCT(CaptureSettings);
@@ -38,6 +38,8 @@ CaptureSettings::CaptureSettings()
{
inject = false;
autoStart = false;
queuedFrameCap = 0;
numQueuedFrames = 0;
RENDERDOC_GetDefaultCaptureOptions(&options);
}
@@ -909,6 +909,19 @@ void CaptureDialog::SetSettings(CaptureSettings settings)
// force flush this state
on_CaptureCallstacks_toggled(ui->CaptureCallstacks->isChecked());
if(settings.numQueuedFrames > 0)
{
ui->queuedFrame->setValue(settings.queuedFrameCap);
ui->numFrames->setValue(settings.numQueuedFrames);
ui->queueFrameCap->setChecked(true);
}
else
{
ui->queuedFrame->setValue(0);
ui->numFrames->setValue(0);
ui->queueFrameCap->setChecked(false);
}
if(settings.autoStart)
{
TriggerCapture();
@@ -940,6 +953,12 @@ CaptureSettings CaptureDialog::Settings()
ret.options.delayForDebugger = (uint32_t)ui->DelayForDebugger->value();
ret.options.verifyBufferAccess = ui->VerifyBufferAccess->isChecked();
if(ui->queueFrameCap->isChecked())
{
ret.queuedFrameCap = (uint32_t)ui->queuedFrame->value();
ret.numQueuedFrames = (uint32_t)ui->numFrames->value();
}
return ret;
}