From 9b7146db6d9c0586b98b062fbcdb3fac6cc54d19 Mon Sep 17 00:00:00 2001 From: Romain Guy Date: Mon, 7 Mar 2011 18:05:04 -0800 Subject: Fix EGL JNI bugs Bug #3461349 Before this change, eglGetCurrent*() could not be used to compare contexts, displays and surfaces at the Dalvik level. Change-Id: I442037dae37bc357b64810ab10c779b5754e9153 --- .../java/com/google/android/gles_jni/EGLContextImpl.java | 15 +++++++++++++++ .../java/com/google/android/gles_jni/EGLDisplayImpl.java | 16 ++++++++++++++++ .../java/com/google/android/gles_jni/EGLSurfaceImpl.java | 16 ++++++++++++++++ 3 files changed, 47 insertions(+) (limited to 'opengl/java/com') diff --git a/opengl/java/com/google/android/gles_jni/EGLContextImpl.java b/opengl/java/com/google/android/gles_jni/EGLContextImpl.java index 9cf5de7..cd36099 100644 --- a/opengl/java/com/google/android/gles_jni/EGLContextImpl.java +++ b/opengl/java/com/google/android/gles_jni/EGLContextImpl.java @@ -32,4 +32,19 @@ public class EGLContextImpl extends EGLContext { public GL getGL() { return mGLContext; } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + EGLContextImpl that = (EGLContextImpl) o; + + return mEGLContext == that.mEGLContext; + } + + @Override + public int hashCode() { + return mEGLContext; + } } diff --git a/opengl/java/com/google/android/gles_jni/EGLDisplayImpl.java b/opengl/java/com/google/android/gles_jni/EGLDisplayImpl.java index cb94888..e6c9817 100644 --- a/opengl/java/com/google/android/gles_jni/EGLDisplayImpl.java +++ b/opengl/java/com/google/android/gles_jni/EGLDisplayImpl.java @@ -24,4 +24,20 @@ public class EGLDisplayImpl extends EGLDisplay { public EGLDisplayImpl(int dpy) { mEGLDisplay = dpy; } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + EGLDisplayImpl that = (EGLDisplayImpl) o; + + return mEGLDisplay == that.mEGLDisplay; + + } + + @Override + public int hashCode() { + return mEGLDisplay; + } } diff --git a/opengl/java/com/google/android/gles_jni/EGLSurfaceImpl.java b/opengl/java/com/google/android/gles_jni/EGLSurfaceImpl.java index f6b90ab..e7f15dc 100644 --- a/opengl/java/com/google/android/gles_jni/EGLSurfaceImpl.java +++ b/opengl/java/com/google/android/gles_jni/EGLSurfaceImpl.java @@ -29,4 +29,20 @@ public class EGLSurfaceImpl extends EGLSurface { mEGLSurface = surface; mNativePixelRef = 0; } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + EGLSurfaceImpl that = (EGLSurfaceImpl) o; + + return mEGLSurface == that.mEGLSurface; + + } + + @Override + public int hashCode() { + return mEGLSurface; + } } -- cgit v1.1