diff options
Diffstat (limited to 'Source/Android/src')
3 files changed, 56 insertions, 1 deletions
diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/DolphinEmulator.java b/Source/Android/src/org/dolphinemu/dolphinemu/DolphinEmulator.java index b28d476e23..b49763b862 100644 --- a/Source/Android/src/org/dolphinemu/dolphinemu/DolphinEmulator.java +++ b/Source/Android/src/org/dolphinemu/dolphinemu/DolphinEmulator.java @@ -40,6 +40,21 @@ public final class DolphinEmulator extends Activity } } + private void CopyAssetFolder(String assetFolder, String outputFolder) + { + try + { + for (String file : getAssets().list(assetFolder)) + { + CopyAsset(assetFolder + File.separator + file, outputFolder + File.separator + file); + } + } + catch (IOException e) + { + Log.e("DolphinEmulator", "Failed to copy asset folder: " + assetFolder, e); + } + } + private void copyFile(InputStream in, OutputStream out) throws IOException { byte[] buffer = new byte[1024]; @@ -75,6 +90,7 @@ public final class DolphinEmulator extends Activity CopyAsset("dsp_rom.bin", GCDir + File.separator + "dsp_rom.bin"); CopyAsset("font_ansi.bin", GCDir + File.separator + "font_ansi.bin"); CopyAsset("font_sjis.bin", GCDir + File.separator + "font_sjis.bin"); + CopyAssetFolder("Shaders", BaseDir + File.separator + "Shaders"); } // Load the configuration keys set in the Dolphin ini and gfx ini files diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/settings/UserPreferences.java b/Source/Android/src/org/dolphinemu/dolphinemu/settings/UserPreferences.java index dcce4c51ef..1402f4393a 100644 --- a/Source/Android/src/org/dolphinemu/dolphinemu/settings/UserPreferences.java +++ b/Source/Android/src/org/dolphinemu/dolphinemu/settings/UserPreferences.java @@ -45,6 +45,7 @@ public final class UserPreferences editor.putString("internalResolution", getConfig("gfx_opengl.ini", "Settings", "EFBScale", "2") ); editor.putString("FSAA", getConfig("gfx_opengl.ini", "Settings", "MSAA", "0")); editor.putString("anisotropicFiltering", getConfig("gfx_opengl.ini", "Enhancements", "MaxAnisotropy", "0")); + editor.putString("postProcessingShader", getConfig("gfx_opengl.ini", "Enhancements", "PostProcessingShader", "")); editor.putBoolean("scaledEFBCopy", getConfig("gfx_opengl.ini", "Hacks", "EFBScaledCopy", "True").equals("True")); editor.putBoolean("perPixelLighting", getConfig("gfx_opengl.ini", "Settings", "EnablePixelLighting", "False").equals("True")); editor.putBoolean("forceTextureFiltering", getConfig("gfx_opengl.ini", "Enhancements", "ForceFiltering", "False").equals("True")); @@ -161,6 +162,9 @@ public final class UserPreferences // Anisotropic Filtering Level. Falls back to 1x upon error. String anisotropicFiltLevel = prefs.getString("anisotropicFiltering", "0"); + // Post processing shader setting + String postProcessing = prefs.getString("postProcessingShader", ""); + // Whether or not Scaled EFB copies are used. boolean usingScaledEFBCopy = prefs.getBoolean("scaledEFBCopy", true); @@ -237,6 +241,7 @@ public final class UserPreferences NativeLibrary.SetConfig("gfx_opengl.ini", "Settings", "EFBScale", internalResolution); NativeLibrary.SetConfig("gfx_opengl.ini", "Settings", "MSAA", FSAALevel); NativeLibrary.SetConfig("gfx_opengl.ini", "Enhancements", "MaxAnisotropy", anisotropicFiltLevel); + NativeLibrary.SetConfig("gfx_opengl.ini", "Enhancements", "PostProcessingShader", postProcessing); NativeLibrary.SetConfig("gfx_opengl.ini", "Hacks", "EFBScaledCopy", usingScaledEFBCopy ? "True" : "False"); NativeLibrary.SetConfig("gfx_opengl.ini", "Settings", "EnablePixelLighting", usingPerPixelLighting ? "True" : "False"); NativeLibrary.SetConfig("gfx_opengl.ini", "Enhancements", "ForceFiltering", isForcingTextureFiltering ? "True" : "False"); diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/settings/video/VideoSettingsFragment.java b/Source/Android/src/org/dolphinemu/dolphinemu/settings/video/VideoSettingsFragment.java index 94e411ca9e..e0ba5d3754 100644 --- a/Source/Android/src/org/dolphinemu/dolphinemu/settings/video/VideoSettingsFragment.java +++ b/Source/Android/src/org/dolphinemu/dolphinemu/settings/video/VideoSettingsFragment.java @@ -11,6 +11,7 @@ import android.content.DialogInterface; import android.content.SharedPreferences; import android.content.SharedPreferences.OnSharedPreferenceChangeListener; import android.os.Bundle; +import android.os.Environment; import android.preference.ListPreference; import android.preference.PreferenceFragment; import android.preference.PreferenceManager; @@ -19,6 +20,10 @@ import android.preference.PreferenceScreen; import org.dolphinemu.dolphinemu.R; import org.dolphinemu.dolphinemu.utils.EGLHelper; +import java.io.File; +import java.util.ArrayList; +import java.util.List; + import javax.microedition.khronos.opengles.GL10; /** @@ -54,7 +59,36 @@ public final class VideoSettingsFragment extends PreferenceFragment videoBackends.setEntries(R.array.videoBackendEntriesNoGLES3); videoBackends.setEntryValues(R.array.videoBackendValuesNoGLES3); } - + + // + // Set available post processing shaders + // + File[] shaders = new File(Environment.getExternalStorageDirectory()+ File.separator+"dolphin-emu"+ File.separator+"Shaders").listFiles(); + List<CharSequence> shader_names = new ArrayList<CharSequence>(); + List<CharSequence> shader_values = new ArrayList<CharSequence>(); + + // Disabled option + shader_names.add("Disabled"); + shader_values.add(""); + + for (File file : shaders) + { + if (file.isFile()) + { + String filename = file.getName(); + if (filename.contains(".glsl")) + { + // Strip the extension and put it in to the list + shader_names.add(filename.substring(0, filename.lastIndexOf('.'))); + shader_values.add(filename.substring(0, filename.lastIndexOf('.'))); + } + } + } + + final ListPreference shader_preference = (ListPreference) findPreference("postProcessingShader"); + shader_preference.setEntries(shader_names.toArray(new CharSequence[shader_names.size()])); + shader_preference.setEntryValues(shader_values.toArray(new CharSequence[shader_values.size()])); + // // Disable all options if Software Rendering is used. // |
