summaryrefslogtreecommitdiff
path: root/Source/Android/src
diff options
context:
space:
mode:
authorRyan Houdek <ryan.houdek@codethink.co.uk>2014-02-11 00:16:21 -0600
committerRyan Houdek <ryan.houdek@codethink.co.uk>2014-02-22 21:08:27 -0600
commit1f750904af5d2bd25467fea9dd79e22153cd2bb6 (patch)
tree4dda3da5102103b902b05449ed07acf51990c768 /Source/Android/src
parentf9ed70b2f9d37bfa4347125ef345cd1ff97209b7 (diff)
Fix the OpenGL About tab.
Move EGLHelper to be local to the creation of the about GL/GLES tabs so we don't have 3 EGL contexts running at a time. Fix issues with OpenGL context creation here so we show the correct information. This requires adding an EGL function to the NativeLibrary since Android's JAVA bindings don't expose eglBindAPI.
Diffstat (limited to 'Source/Android/src')
-rw-r--r--Source/Android/src/org/dolphinemu/dolphinemu/NativeLibrary.java3
-rw-r--r--Source/Android/src/org/dolphinemu/dolphinemu/about/GLES2InfoFragment.java4
-rw-r--r--Source/Android/src/org/dolphinemu/dolphinemu/about/GLES3InfoFragment.java4
-rw-r--r--Source/Android/src/org/dolphinemu/dolphinemu/about/GLInfoFragment.java4
-rw-r--r--Source/Android/src/org/dolphinemu/dolphinemu/utils/EGLHelper.java10
5 files changed, 19 insertions, 6 deletions
diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/NativeLibrary.java b/Source/Android/src/org/dolphinemu/dolphinemu/NativeLibrary.java
index 1289ff7d01..6b5cca1448 100644
--- a/Source/Android/src/org/dolphinemu/dolphinemu/NativeLibrary.java
+++ b/Source/Android/src/org/dolphinemu/dolphinemu/NativeLibrary.java
@@ -200,6 +200,9 @@ public final class NativeLibrary
/** Stops emulation. */
public static native void StopEmulation();
+ /** Native EGL functions not exposed by Java bindings **/
+ public static native void eglBindAPI(int api);
+
static
{
try
diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/about/GLES2InfoFragment.java b/Source/Android/src/org/dolphinemu/dolphinemu/about/GLES2InfoFragment.java
index a0029af330..952516165d 100644
--- a/Source/Android/src/org/dolphinemu/dolphinemu/about/GLES2InfoFragment.java
+++ b/Source/Android/src/org/dolphinemu/dolphinemu/about/GLES2InfoFragment.java
@@ -28,8 +28,6 @@ import java.util.List;
*/
public final class GLES2InfoFragment extends ListFragment
{
- private final EGLHelper eglHelper = new EGLHelper(EGLHelper.EGL_OPENGL_ES2_BIT);
-
private final Limit[] Limits = {
new Limit("Vendor", GLES20.GL_VENDOR, Type.STRING),
new Limit("Version", GLES20.GL_VERSION, Type.STRING),
@@ -56,6 +54,8 @@ public final class GLES2InfoFragment extends ListFragment
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
+ final EGLHelper eglHelper = new EGLHelper(EGLHelper.EGL_OPENGL_ES2_BIT);
+
ListView rootView = (ListView) inflater.inflate(R.layout.gamelist_listview, container, false);
List<AboutActivity.AboutFragmentItem> Input = new ArrayList<AboutActivity.AboutFragmentItem>();
diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/about/GLES3InfoFragment.java b/Source/Android/src/org/dolphinemu/dolphinemu/about/GLES3InfoFragment.java
index 797a047b14..17ba49635c 100644
--- a/Source/Android/src/org/dolphinemu/dolphinemu/about/GLES3InfoFragment.java
+++ b/Source/Android/src/org/dolphinemu/dolphinemu/about/GLES3InfoFragment.java
@@ -28,8 +28,6 @@ import java.util.List;
*/
public final class GLES3InfoFragment extends ListFragment
{
- private final EGLHelper eglHelper = new EGLHelper(EGLHelper.EGL_OPENGL_ES3_BIT_KHR);
-
private final Limit[] Limits = {
new Limit("Vendor", GLES30.GL_VENDOR, Type.STRING),
new Limit("Version", GLES30.GL_VERSION, Type.STRING),
@@ -88,6 +86,8 @@ public final class GLES3InfoFragment extends ListFragment
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
+ final EGLHelper eglHelper = new EGLHelper(EGLHelper.EGL_OPENGL_ES3_BIT_KHR);
+
ListView rootView = (ListView) inflater.inflate(R.layout.gamelist_listview, container, false);
List<AboutActivity.AboutFragmentItem> Input = new ArrayList<AboutActivity.AboutFragmentItem>();
diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/about/GLInfoFragment.java b/Source/Android/src/org/dolphinemu/dolphinemu/about/GLInfoFragment.java
index a3d7167528..448f56d8e0 100644
--- a/Source/Android/src/org/dolphinemu/dolphinemu/about/GLInfoFragment.java
+++ b/Source/Android/src/org/dolphinemu/dolphinemu/about/GLInfoFragment.java
@@ -31,8 +31,6 @@ import javax.microedition.khronos.opengles.GL10;
*/
public final class GLInfoFragment extends ListFragment
{
- private final EGLHelper eglHelper = new EGLHelper(EGLHelper.EGL_OPENGL_BIT);
-
private final Limit[] Limits = {
new Limit("Vendor", GL10.GL_VENDOR, Type.STRING),
new Limit("Version", GL10.GL_VERSION, Type.STRING),
@@ -43,6 +41,8 @@ public final class GLInfoFragment extends ListFragment
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
+ final EGLHelper eglHelper = new EGLHelper(EGLHelper.EGL_OPENGL_BIT);
+
ListView rootView = (ListView) inflater.inflate(R.layout.gamelist_listview, container, false);
List<AboutActivity.AboutFragmentItem> Input = new ArrayList<AboutActivity.AboutFragmentItem>();
diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/utils/EGLHelper.java b/Source/Android/src/org/dolphinemu/dolphinemu/utils/EGLHelper.java
index 94ea903ae6..c908a7631f 100644
--- a/Source/Android/src/org/dolphinemu/dolphinemu/utils/EGLHelper.java
+++ b/Source/Android/src/org/dolphinemu/dolphinemu/utils/EGLHelper.java
@@ -16,6 +16,8 @@ import javax.microedition.khronos.opengles.GL10;
import android.opengl.GLES30;
import android.util.Log;
+import org.dolphinemu.dolphinemu.NativeLibrary;
+
/**
* Utility class that abstracts all the stuff about
* EGL initialization out of the way if all that is
@@ -41,6 +43,10 @@ public final class EGLHelper
public static final int EGL_OPENGL_BIT = 0x0008;
public static final int EGL_OPENGL_ES3_BIT_KHR = 0x0040;
+ // API types
+ public static final int EGL_OPENGL_ES_API = 0x30A0;
+ public static final int EGL_OPENGL_API = 0x30A2;
+
/**
* Constructor
* <p>
@@ -295,6 +301,10 @@ public final class EGLHelper
ctx_attribs[1] = 2;
break;
}
+ if (renderableType == EGL_OPENGL_BIT)
+ NativeLibrary.eglBindAPI(EGL_OPENGL_API);
+ else
+ NativeLibrary.eglBindAPI(EGL_OPENGL_ES_API);
mEGLContext = mEGL.eglCreateContext(mDisplay, mEGLConfigs[0], EGL10.EGL_NO_CONTEXT, ctx_attribs);
mEGLSurface = mEGL.eglCreatePbufferSurface(mDisplay, mEGLConfigs[0], attribs);