Android: Add video backend choice to settings
This commit is contained in:
parent
77a128ab87
commit
4a4f6cc135
|
@ -14,6 +14,7 @@ import org.dolphinemu.dolphinemu.R;
|
||||||
import org.dolphinemu.dolphinemu.model.settings.BooleanSetting;
|
import org.dolphinemu.dolphinemu.model.settings.BooleanSetting;
|
||||||
import org.dolphinemu.dolphinemu.model.settings.FloatSetting;
|
import org.dolphinemu.dolphinemu.model.settings.FloatSetting;
|
||||||
import org.dolphinemu.dolphinemu.model.settings.IntSetting;
|
import org.dolphinemu.dolphinemu.model.settings.IntSetting;
|
||||||
|
import org.dolphinemu.dolphinemu.model.settings.StringSetting;
|
||||||
import org.dolphinemu.dolphinemu.model.settings.view.CheckBoxSetting;
|
import org.dolphinemu.dolphinemu.model.settings.view.CheckBoxSetting;
|
||||||
import org.dolphinemu.dolphinemu.model.settings.view.SettingsItem;
|
import org.dolphinemu.dolphinemu.model.settings.view.SettingsItem;
|
||||||
import org.dolphinemu.dolphinemu.model.settings.view.SingleChoiceSetting;
|
import org.dolphinemu.dolphinemu.model.settings.view.SingleChoiceSetting;
|
||||||
|
@ -207,7 +208,11 @@ public final class SettingsAdapter extends RecyclerView.Adapter<SettingViewHolde
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (scSetting.getKey().equals(SettingsFile.KEY_XFB_METHOD))
|
if (scSetting.getKey().equals(SettingsFile.KEY_VIDEO_BACKEND_INDEX))
|
||||||
|
{
|
||||||
|
putVideoBackendSetting(which);
|
||||||
|
}
|
||||||
|
else if (scSetting.getKey().equals(SettingsFile.KEY_XFB_METHOD))
|
||||||
{
|
{
|
||||||
putXfbSetting(which);
|
putXfbSetting(which);
|
||||||
}
|
}
|
||||||
|
@ -318,6 +323,31 @@ public final class SettingsAdapter extends RecyclerView.Adapter<SettingViewHolde
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void putVideoBackendSetting(int which)
|
||||||
|
{
|
||||||
|
StringSetting gfxBackend = null;
|
||||||
|
switch (which)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
gfxBackend = new StringSetting(SettingsFile.KEY_VIDEO_BACKEND, SettingsFile.SECTION_CORE, "OGL");
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 1:
|
||||||
|
gfxBackend = new StringSetting(SettingsFile.KEY_VIDEO_BACKEND, SettingsFile.SECTION_CORE, "Vulkan");
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 2:
|
||||||
|
gfxBackend = new StringSetting(SettingsFile.KEY_VIDEO_BACKEND, SettingsFile.SECTION_CORE, "SW");
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 3:
|
||||||
|
gfxBackend = new StringSetting(SettingsFile.KEY_VIDEO_BACKEND, SettingsFile.SECTION_CORE, "Null");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
mView.putSetting(gfxBackend);
|
||||||
|
}
|
||||||
|
|
||||||
public void putXfbSetting(int which)
|
public void putXfbSetting(int which)
|
||||||
{
|
{
|
||||||
BooleanSetting xfbEnable = null;
|
BooleanSetting xfbEnable = null;
|
||||||
|
|
|
@ -5,6 +5,7 @@ import org.dolphinemu.dolphinemu.model.settings.BooleanSetting;
|
||||||
import org.dolphinemu.dolphinemu.model.settings.IntSetting;
|
import org.dolphinemu.dolphinemu.model.settings.IntSetting;
|
||||||
import org.dolphinemu.dolphinemu.model.settings.Setting;
|
import org.dolphinemu.dolphinemu.model.settings.Setting;
|
||||||
import org.dolphinemu.dolphinemu.model.settings.SettingSection;
|
import org.dolphinemu.dolphinemu.model.settings.SettingSection;
|
||||||
|
import org.dolphinemu.dolphinemu.model.settings.StringSetting;
|
||||||
import org.dolphinemu.dolphinemu.model.settings.view.CheckBoxSetting;
|
import org.dolphinemu.dolphinemu.model.settings.view.CheckBoxSetting;
|
||||||
import org.dolphinemu.dolphinemu.model.settings.view.HeaderSetting;
|
import org.dolphinemu.dolphinemu.model.settings.view.HeaderSetting;
|
||||||
import org.dolphinemu.dolphinemu.model.settings.view.SettingsItem;
|
import org.dolphinemu.dolphinemu.model.settings.view.SettingsItem;
|
||||||
|
@ -137,6 +138,7 @@ public final class SettingsFragmentPresenter
|
||||||
Setting dualCore = null;
|
Setting dualCore = null;
|
||||||
Setting overclockEnable = null;
|
Setting overclockEnable = null;
|
||||||
Setting overclock = null;
|
Setting overclock = null;
|
||||||
|
IntSetting videoBackend = new IntSetting(SettingsFile.KEY_VIDEO_BACKEND_INDEX, SettingsFile.SECTION_CORE, getVideoBackendValue());
|
||||||
Setting continuousScan = null;
|
Setting continuousScan = null;
|
||||||
Setting wiimoteSpeaker = null;
|
Setting wiimoteSpeaker = null;
|
||||||
|
|
||||||
|
@ -162,6 +164,13 @@ public final class SettingsFragmentPresenter
|
||||||
sl.add(new CheckBoxSetting(SettingsFile.KEY_DUAL_CORE, SettingsFile.SECTION_CORE, R.string.dual_core, R.string.dual_core_descrip, true, dualCore));
|
sl.add(new CheckBoxSetting(SettingsFile.KEY_DUAL_CORE, SettingsFile.SECTION_CORE, R.string.dual_core, R.string.dual_core_descrip, true, dualCore));
|
||||||
sl.add(new CheckBoxSetting(SettingsFile.KEY_OVERCLOCK_ENABLE, SettingsFile.SECTION_CORE, R.string.overclock_enable, R.string.overclock_enable_description, false, overclockEnable));
|
sl.add(new CheckBoxSetting(SettingsFile.KEY_OVERCLOCK_ENABLE, SettingsFile.SECTION_CORE, R.string.overclock_enable, R.string.overclock_enable_description, false, overclockEnable));
|
||||||
sl.add(new SliderSetting(SettingsFile.KEY_OVERCLOCK_PERCENT, SettingsFile.SECTION_CORE, R.string.overclock_title, 0, 400, "%", 100, overclock));
|
sl.add(new SliderSetting(SettingsFile.KEY_OVERCLOCK_PERCENT, SettingsFile.SECTION_CORE, R.string.overclock_title, 0, 400, "%", 100, overclock));
|
||||||
|
|
||||||
|
// While it doesn't seem appropriate to store the video backend with the CPU settings, the video
|
||||||
|
// backend is stored in the main INI, which can't be changed by the graphics settings page, so
|
||||||
|
// we have to put it here.
|
||||||
|
sl.add(new SingleChoiceSetting(SettingsFile.KEY_VIDEO_BACKEND_INDEX, SettingsFile.SECTION_CORE, R.string.video_backend, R.string.video_backend_descrip,
|
||||||
|
R.array.videoBackendEntries, R.array.videoBackendValues, 0, videoBackend));
|
||||||
|
|
||||||
sl.add(new CheckBoxSetting(SettingsFile.KEY_WIIMOTE_SCAN, SettingsFile.SECTION_CORE, R.string.wiimote_scanning, R.string.wiimote_scanning_description, true, continuousScan));
|
sl.add(new CheckBoxSetting(SettingsFile.KEY_WIIMOTE_SCAN, SettingsFile.SECTION_CORE, R.string.wiimote_scanning, R.string.wiimote_scanning_description, true, continuousScan));
|
||||||
sl.add(new CheckBoxSetting(SettingsFile.KEY_WIIMOTE_SPEAKER, SettingsFile.SECTION_CORE, R.string.wiimote_speaker, R.string.wiimote_speaker_description, true, wiimoteSpeaker));
|
sl.add(new CheckBoxSetting(SettingsFile.KEY_WIIMOTE_SPEAKER, SettingsFile.SECTION_CORE, R.string.wiimote_speaker, R.string.wiimote_speaker_description, true, wiimoteSpeaker));
|
||||||
}
|
}
|
||||||
|
@ -291,6 +300,32 @@ public final class SettingsFragmentPresenter
|
||||||
sl.add(new CheckBoxSetting(SettingsFile.KEY_GCADAPTER_BONGOS + gcPadNumber, SettingsFile.SECTION_CORE, R.string.gc_adapter_bongos, R.string.gc_adapter_bongos_description, false, bongos));
|
sl.add(new CheckBoxSetting(SettingsFile.KEY_GCADAPTER_BONGOS + gcPadNumber, SettingsFile.SECTION_CORE, R.string.gc_adapter_bongos, R.string.gc_adapter_bongos_description, false, bongos));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private int getVideoBackendValue()
|
||||||
|
{
|
||||||
|
int videoBackendValue;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
String videoBackend = ((StringSetting)mSettings.get(SettingsFile.SECTION_CORE).getSetting(SettingsFile.KEY_VIDEO_BACKEND)).getValue();
|
||||||
|
if (videoBackend.equals("OGL"))
|
||||||
|
videoBackendValue = 0;
|
||||||
|
else if (videoBackend.equals("Vulkan"))
|
||||||
|
videoBackendValue = 1;
|
||||||
|
else if (videoBackend.equals("Software"))
|
||||||
|
videoBackendValue = 2;
|
||||||
|
else if (videoBackend.equals("Null"))
|
||||||
|
videoBackendValue = 3;
|
||||||
|
else
|
||||||
|
videoBackendValue = 0;
|
||||||
|
}
|
||||||
|
catch (NullPointerException ex)
|
||||||
|
{
|
||||||
|
videoBackendValue = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return videoBackendValue;
|
||||||
|
}
|
||||||
|
|
||||||
private int getXfbValue()
|
private int getXfbValue()
|
||||||
{
|
{
|
||||||
int xfbValue;
|
int xfbValue;
|
||||||
|
|
|
@ -86,6 +86,7 @@ public final class SettingsFile
|
||||||
public static final String KEY_WIIMOTE_SPEAKER = "WiimoteEnableSpeaker";
|
public static final String KEY_WIIMOTE_SPEAKER = "WiimoteEnableSpeaker";
|
||||||
|
|
||||||
// Internal only, not actually found in settings file.
|
// Internal only, not actually found in settings file.
|
||||||
|
public static final String KEY_VIDEO_BACKEND_INDEX = "VideoBackendIndex";
|
||||||
public static final String KEY_XFB_METHOD = "XFBMethod";
|
public static final String KEY_XFB_METHOD = "XFBMethod";
|
||||||
|
|
||||||
private SettingsFile()
|
private SettingsFile()
|
||||||
|
|
|
@ -12,6 +12,20 @@
|
||||||
<item>5</item>
|
<item>5</item>
|
||||||
</integer-array>
|
</integer-array>
|
||||||
|
|
||||||
|
<!-- Video backend selection -->
|
||||||
|
<string-array name="videoBackendEntries" translatable="false">
|
||||||
|
<item>OpenGL</item>
|
||||||
|
<item>Vulkan</item>
|
||||||
|
<item>Software</item>
|
||||||
|
<item>Null</item>
|
||||||
|
</string-array>
|
||||||
|
<integer-array name="videoBackendValues" translatable="false">
|
||||||
|
<item>0</item>
|
||||||
|
<item>1</item>
|
||||||
|
<item>2</item>
|
||||||
|
<item>3</item>
|
||||||
|
</integer-array>
|
||||||
|
|
||||||
<!-- Wiimote extensions -->
|
<!-- Wiimote extensions -->
|
||||||
<string-array name="wiimoteExtEntries" translatable="false">
|
<string-array name="wiimoteExtEntries" translatable="false">
|
||||||
<item>"None"</item>
|
<item>"None"</item>
|
||||||
|
|
|
@ -263,7 +263,7 @@
|
||||||
<string name="opengl_es3">OpenGL ES</string>
|
<string name="opengl_es3">OpenGL ES</string>
|
||||||
<string name="opengl">OpenGL</string>
|
<string name="opengl">OpenGL</string>
|
||||||
<string name="video_backend">Video Backend</string>
|
<string name="video_backend">Video Backend</string>
|
||||||
<string name="video_backend_desc">%s</string>
|
<string name="video_backend_descrip">Select the API used for graphics rendering.</string>
|
||||||
<string name="show_fps">Show FPS</string>
|
<string name="show_fps">Show FPS</string>
|
||||||
<string name="show_fps_descrip">Show the number of frames rendered per second as a measure of emulation speed.</string>
|
<string name="show_fps_descrip">Show the number of frames rendered per second as a measure of emulation speed.</string>
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue