Expose 'threads' option through the Video Settings -> General UI.

This commit is contained in:
Stephen Anthony 2017-08-15 10:58:19 -02:30
parent 4f336eddeb
commit 24e55baa2c
3 changed files with 20 additions and 0 deletions

View File

@ -2089,6 +2089,11 @@
<td>Disable Supercharger BIOS progress loading bars.</td>
</tr>
<tr>
<td><pre>-threads &lt;1|0&gt;</pre></td>
<td>Enable multi-threaded video rendering (may not improve performance on all systems).</td>
</tr>
<tr>
<td><pre>-snapsavedir &lt;path&gt;</pre></td>
<td>The directory to save snapshot files to.</td>

View File

@ -188,6 +188,11 @@ VideoDialog::VideoDialog(OSystem& osystem, DialogContainer& parent,
// Center window (in windowed mode)
myCenter = new CheckboxWidget(myTab, font, xpos, ypos, "Center window");
wid.push_back(myCenter);
ypos += lineHeight + 4;
// Use multi-threading
myUseThreads = new CheckboxWidget(myTab, font, xpos, ypos, "Use multi-threading");
wid.push_back(myUseThreads);
// Add items for tab 0
addToFocusList(wid, myTab, tabID);
@ -437,6 +442,9 @@ void VideoDialog::loadConfig()
// Fast loading of Supercharger BIOS
myFastSCBios->setState(instance().settings().getBool("fastscbios"));
// Multi-threaded rendering
myUseThreads->setState(instance().settings().getBool("threads"));
// TV Mode
myTVMode->setSelected(
instance().settings().getString("tv.filter"), "0");
@ -530,6 +538,11 @@ void VideoDialog::saveConfig()
// Fast loading of Supercharger BIOS
instance().settings().setValue("fastscbios", myFastSCBios->getState());
// Multi-threaded rendering
instance().settings().setValue("threads", myUseThreads->getState());
if(instance().hasConsole())
instance().frameBuffer().tiaSurface().ntsc().enableThreading(myUseThreads->getState());
// TV Mode
instance().settings().setValue("tv.filter",
myTVMode->getSelectedTag().toString());
@ -607,6 +620,7 @@ void VideoDialog::setDefaults()
myUIMessages->setState(true);
myCenter->setState(false);
myFastSCBios->setState(true);
myUseThreads->setState(false);
break;
}

View File

@ -74,6 +74,7 @@ class VideoDialog : public Dialog
CheckboxWidget* myUIMessages;
CheckboxWidget* myCenter;
CheckboxWidget* myFastSCBios;
CheckboxWidget* myUseThreads;
// TV effects adjustables (custom mode)
PopUpWidget* myTVMode;