summaryrefslogtreecommitdiff
path: root/Source/Android/src
diff options
context:
space:
mode:
authorRyan Houdek <ryan.houdek@codethink.co.uk>2014-01-21 17:55:00 -0600
committerRyan Houdek <ryan.houdek@codethink.co.uk>2014-01-21 17:55:00 -0600
commit7e9b8d18a70b26cb4ddbaa195e85a84d25f5f0fa (patch)
tree8689d2989907aea7bd7dd01a6dcb6c16eeb4f227 /Source/Android/src
parentd3ccf1c7b56cf560298eead942f27cf675aff37e (diff)
[android-about-menu-info] Add desktop OpenGL tab population.
Since showing every single limit that desktop OGL supports is crazy, Let's just show the basic information, and extensions.
Diffstat (limited to 'Source/Android/src')
-rw-r--r--Source/Android/src/org/dolphinemu/dolphinemu/about/AboutActivity.java4
-rw-r--r--Source/Android/src/org/dolphinemu/dolphinemu/about/GLInfoFragment.java88
2 files changed, 90 insertions, 2 deletions
diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/about/AboutActivity.java b/Source/Android/src/org/dolphinemu/dolphinemu/about/AboutActivity.java
index e852088c8b..c365a8172a 100644
--- a/Source/Android/src/org/dolphinemu/dolphinemu/about/AboutActivity.java
+++ b/Source/Android/src/org/dolphinemu/dolphinemu/about/AboutActivity.java
@@ -195,11 +195,11 @@ public final class AboutActivity extends Activity implements TabListener
if (eglHelper.supportsGLES3())
return new GLES3InfoFragment(); // TODO: Return the GLES 3 fragment in this case (normal case)
else
- return new Fragment(); // TODO: Return the OpenGL fragment in this case (GLES3 not supported case)
+ return new GLInfoFragment(); // TODO: Return the OpenGL fragment in this case (GLES3 not supported case)
}
else if (position == 4) // OpenGL fragment
{
- return new Fragment();
+ return new GLInfoFragment();
}
// This should never happen.
diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/about/GLInfoFragment.java b/Source/Android/src/org/dolphinemu/dolphinemu/about/GLInfoFragment.java
new file mode 100644
index 0000000000..7e8f541a0a
--- /dev/null
+++ b/Source/Android/src/org/dolphinemu/dolphinemu/about/GLInfoFragment.java
@@ -0,0 +1,88 @@
+/**
+ * Copyright 2013 Dolphin Emulator Project
+ * Licensed under GPLv2
+ * Refer to the license.txt file included.
+ */
+
+package org.dolphinemu.dolphinemu.about;
+
+import android.app.ListFragment;
+import android.opengl.GLES10;
+import android.opengl.GLES20;
+import android.opengl.GLES30;
+import android.os.Bundle;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ListView;
+
+import org.dolphinemu.dolphinemu.R;
+import org.dolphinemu.dolphinemu.utils.EGLHelper;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.microedition.khronos.opengles.GL10;
+
+public class GLInfoFragment extends ListFragment {
+
+ private EGLHelper eglHelper = new EGLHelper(EGLHelper.EGL_OPENGL_BIT);
+
+ public static final int TYPE_STRING = 0;
+ public static final int TYPE_INTEGER = 1;
+ public static final int TYPE_INTEGER_RANGE = 2;
+
+ class Limit
+ {
+ public final String name;
+ public final int glEnum;
+ public final int type;
+
+ public Limit(String name, int glEnum, int type)
+ {
+ this.name = name;
+ this.glEnum = glEnum;
+ this.type = type;
+ }
+ public String GetValue()
+ {
+ if (type == TYPE_INTEGER)
+ return Integer.toString(eglHelper.glGetInteger(glEnum));
+ return eglHelper.glGetString(glEnum);
+ }
+ }
+
+ private final Limit Limits[] = {
+ new Limit("Vendor", GL10.GL_VENDOR, TYPE_STRING),
+ new Limit("Version", GL10.GL_VERSION, TYPE_STRING),
+ new Limit("Renderer", GL10.GL_RENDERER, TYPE_STRING),
+ new Limit("GLSL version", GLES20.GL_SHADING_LANGUAGE_VERSION, TYPE_STRING),
+ };
+
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
+ {
+ ListView rootView = (ListView) inflater.inflate(R.layout.gamelist_listview, container, false);
+
+
+ List<AboutActivity.AboutFragmentItem> Input = new ArrayList<AboutActivity.AboutFragmentItem>();
+
+ for(Limit limit : Limits)
+ {
+ Log.w("Dolphinemu", "Getting enum " + limit.name);
+ Input.add(new AboutActivity.AboutFragmentItem(limit.name, limit.GetValue()));
+ }
+
+ // Get extensions manually
+ int numExtensions = eglHelper.glGetInteger(GLES30.GL_NUM_EXTENSIONS);
+ String ExtensionsString = "";
+ for (int indx = 0; indx < numExtensions; ++indx)
+ ExtensionsString += eglHelper.glGetStringi(GLES10.GL_EXTENSIONS, indx) + "\n";
+ Input.add(new AboutActivity.AboutFragmentItem("OpenGL Extensions", ExtensionsString));
+
+ AboutActivity.InfoFragmentAdapter adapter = new AboutActivity.InfoFragmentAdapter(getActivity(), R.layout.about_layout, Input);
+ rootView.setAdapter(adapter);
+
+ return rootView;
+ }
+}