summaryrefslogtreecommitdiff
path: root/Source/Android/src
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Android/src')
-rw-r--r--Source/Android/src/org/dolphinemu/dolphinemu/DolphinEmulator.java16
-rw-r--r--Source/Android/src/org/dolphinemu/dolphinemu/settings/UserPreferences.java5
-rw-r--r--Source/Android/src/org/dolphinemu/dolphinemu/settings/video/VideoSettingsFragment.java36
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.
//