diff options
Diffstat (limited to 'opengl')
| -rw-r--r-- | opengl/java/android/opengl/EGL14.java | 21 | ||||
| -rw-r--r-- | opengl/java/android/opengl/EGLConfig.java | 4 | ||||
| -rw-r--r-- | opengl/java/android/opengl/EGLContext.java | 4 | ||||
| -rw-r--r-- | opengl/java/android/opengl/EGLDisplay.java | 4 | ||||
| -rw-r--r-- | opengl/java/android/opengl/EGLObjectHandle.java | 32 | ||||
| -rw-r--r-- | opengl/java/android/opengl/EGLSurface.java | 4 | ||||
| -rw-r--r-- | opengl/java/android/opengl/GLSurfaceView.java | 8 | ||||
| -rw-r--r-- | opengl/java/com/google/android/gles_jni/EGLConfigImpl.java | 6 | ||||
| -rw-r--r-- | opengl/java/com/google/android/gles_jni/EGLContextImpl.java | 16 | ||||
| -rw-r--r-- | opengl/java/com/google/android/gles_jni/EGLDisplayImpl.java | 12 | ||||
| -rw-r--r-- | opengl/java/com/google/android/gles_jni/EGLImpl.java | 30 | ||||
| -rw-r--r-- | opengl/java/com/google/android/gles_jni/EGLSurfaceImpl.java | 14 | 
12 files changed, 110 insertions, 45 deletions
| diff --git a/opengl/java/android/opengl/EGL14.java b/opengl/java/android/opengl/EGL14.java index b93557d2ac83..cf09c5865b98 100644 --- a/opengl/java/android/opengl/EGL14.java +++ b/opengl/java/android/opengl/EGL14.java @@ -160,6 +160,13 @@ public static final int EGL_CORE_NATIVE_ENGINE             = 0x305B;          int display_id      ); +    /** +     * {@hide} +     */ +    public static native EGLDisplay eglGetDisplay( +        long display_id +    ); +      // C function EGLBoolean eglInitialize ( EGLDisplay dpy, EGLint *major, EGLint *minor )      public static native boolean eglInitialize( @@ -324,7 +331,7 @@ public static final int EGL_CORE_NATIVE_ENGINE             = 0x305B;      );      // C function EGLSurface eglCreatePbufferFromClientBuffer ( EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const EGLint *attrib_list ) - +    // TODO Deprecate the below method      public static native EGLSurface eglCreatePbufferFromClientBuffer(          EGLDisplay dpy,          int buftype, @@ -333,6 +340,18 @@ public static final int EGL_CORE_NATIVE_ENGINE             = 0x305B;          int[] attrib_list,          int offset      ); +    // TODO Unhide the below method +    /** +     * {@hide} +     */ +    public static native EGLSurface eglCreatePbufferFromClientBuffer( +        EGLDisplay dpy, +        int buftype, +        long buffer, +        EGLConfig config, +        int[] attrib_list, +        int offset +    );      // C function EGLBoolean eglSurfaceAttrib ( EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value ) diff --git a/opengl/java/android/opengl/EGLConfig.java b/opengl/java/android/opengl/EGLConfig.java index a7a6bbb8c3d4..9881070dc853 100644 --- a/opengl/java/android/opengl/EGLConfig.java +++ b/opengl/java/android/opengl/EGLConfig.java @@ -22,7 +22,7 @@ package android.opengl;   *   */  public class EGLConfig extends EGLObjectHandle { -    private EGLConfig(int handle) { +    private EGLConfig(long handle) {          super(handle);      } @@ -32,6 +32,6 @@ public class EGLConfig extends EGLObjectHandle {          if (!(o instanceof EGLConfig)) return false;          EGLConfig that = (EGLConfig) o; -        return getHandle() == that.getHandle(); +        return getNativeHandle() == that.getNativeHandle();      }  } diff --git a/opengl/java/android/opengl/EGLContext.java b/opengl/java/android/opengl/EGLContext.java index c93bd6ea7725..f791e7e10904 100644 --- a/opengl/java/android/opengl/EGLContext.java +++ b/opengl/java/android/opengl/EGLContext.java @@ -22,7 +22,7 @@ package android.opengl;   *   */  public class EGLContext extends EGLObjectHandle { -    private EGLContext(int handle) { +    private EGLContext(long handle) {          super(handle);      } @@ -32,6 +32,6 @@ public class EGLContext extends EGLObjectHandle {          if (!(o instanceof EGLContext)) return false;          EGLContext that = (EGLContext) o; -        return getHandle() == that.getHandle(); +        return getNativeHandle() == that.getNativeHandle();      }  } diff --git a/opengl/java/android/opengl/EGLDisplay.java b/opengl/java/android/opengl/EGLDisplay.java index 5b8043a304c0..e8727617f246 100644 --- a/opengl/java/android/opengl/EGLDisplay.java +++ b/opengl/java/android/opengl/EGLDisplay.java @@ -22,7 +22,7 @@ package android.opengl;   *   */  public class EGLDisplay extends EGLObjectHandle { -    private EGLDisplay(int handle) { +    private EGLDisplay(long handle) {          super(handle);      } @@ -32,6 +32,6 @@ public class EGLDisplay extends EGLObjectHandle {          if (!(o instanceof EGLDisplay)) return false;          EGLDisplay that = (EGLDisplay) o; -        return getHandle() == that.getHandle(); +        return getNativeHandle() == that.getNativeHandle();      }  } diff --git a/opengl/java/android/opengl/EGLObjectHandle.java b/opengl/java/android/opengl/EGLObjectHandle.java index d2710de4734f..e6e397602def 100644 --- a/opengl/java/android/opengl/EGLObjectHandle.java +++ b/opengl/java/android/opengl/EGLObjectHandle.java @@ -22,12 +22,20 @@ package android.opengl;   *   */  public abstract class EGLObjectHandle { -    private final int mHandle; +    private final long mHandle; +    // TODO Deprecate EGLObjectHandle(int) method      protected EGLObjectHandle(int handle) {          mHandle = handle;      } - +    // TODO Unhide the EGLObjectHandle(long) method +    /** +     * {@hide} +     */ +    protected EGLObjectHandle(long handle) { +        mHandle = handle; +    } +    // TODO Deprecate getHandle() method in favor of getNativeHandle()      /**       * Returns the native handle of the wrapped EGL object. This handle can be       * cast to the corresponding native type on the native side. @@ -37,11 +45,27 @@ public abstract class EGLObjectHandle {       * @return the native handle of the wrapped EGL object.       */      public int getHandle() { -        return mHandle; +        if ((mHandle & 0xffffffffL) != mHandle) { +            throw new UnsupportedOperationException(); +        } +        return (int)mHandle;      } +    // TODO Unhide getNativeHandle() method +    /** +     * {@hide} +     */ +    public long getNativeHandle() { +        return mHandle; +    }      @Override      public int hashCode() { -        return getHandle(); +        /* +         * Based on the algorithm suggested in +         * http://developer.android.com/reference/java/lang/Object.html +         */ +        int result = 17; +        result = 31 * result + (int) (mHandle ^ (mHandle >>> 32)); +        return result;      }  } diff --git a/opengl/java/android/opengl/EGLSurface.java b/opengl/java/android/opengl/EGLSurface.java index c379dc986464..c200f7290d98 100644 --- a/opengl/java/android/opengl/EGLSurface.java +++ b/opengl/java/android/opengl/EGLSurface.java @@ -22,7 +22,7 @@ package android.opengl;   *   */  public class EGLSurface extends EGLObjectHandle { -    private EGLSurface(int handle) { +    private EGLSurface(long handle) {          super(handle);      } @@ -32,6 +32,6 @@ public class EGLSurface extends EGLObjectHandle {          if (!(o instanceof EGLSurface)) return false;          EGLSurface that = (EGLSurface) o; -        return getHandle() == that.getHandle(); +        return getNativeHandle() == that.getNativeHandle();      }  } diff --git a/opengl/java/android/opengl/GLSurfaceView.java b/opengl/java/android/opengl/GLSurfaceView.java index 5a2e261fa3a4..4c024aeb0303 100644 --- a/opengl/java/android/opengl/GLSurfaceView.java +++ b/opengl/java/android/opengl/GLSurfaceView.java @@ -882,7 +882,7 @@ public class GLSurfaceView extends SurfaceView implements SurfaceHolder.Callback          protected int[] mConfigSpec;          private int[] filterConfigSpec(int[] configSpec) { -            if (mEGLContextClientVersion != 2) { +            if (mEGLContextClientVersion != 2 && mEGLContextClientVersion != 3) {                  return configSpec;              }              /* We know none of the subclasses define EGL_RENDERABLE_TYPE. @@ -892,7 +892,11 @@ public class GLSurfaceView extends SurfaceView implements SurfaceHolder.Callback              int[] newConfigSpec = new int[len + 2];              System.arraycopy(configSpec, 0, newConfigSpec, 0, len-1);              newConfigSpec[len-1] = EGL10.EGL_RENDERABLE_TYPE; -            newConfigSpec[len] = 4; /* EGL_OPENGL_ES2_BIT */ +            if (mEGLContextClientVersion == 2) { +                newConfigSpec[len] = EGL14.EGL_OPENGL_ES2_BIT;  /* EGL_OPENGL_ES2_BIT */ +            } else { +                newConfigSpec[len] = EGLExt.EGL_OPENGL_ES3_BIT_KHR; /* EGL_OPENGL_ES3_BIT_KHR */ +            }              newConfigSpec[len+1] = EGL10.EGL_NONE;              return newConfigSpec;          } diff --git a/opengl/java/com/google/android/gles_jni/EGLConfigImpl.java b/opengl/java/com/google/android/gles_jni/EGLConfigImpl.java index c2f440039726..1902a4016d07 100644 --- a/opengl/java/com/google/android/gles_jni/EGLConfigImpl.java +++ b/opengl/java/com/google/android/gles_jni/EGLConfigImpl.java @@ -19,13 +19,13 @@ package com.google.android.gles_jni;  import javax.microedition.khronos.egl.*;  public class EGLConfigImpl extends EGLConfig { -    private int mEGLConfig; +    private long mEGLConfig; -    EGLConfigImpl(int config) { +    EGLConfigImpl(long config) {          mEGLConfig = config;      } -    int get() { +    long get() {          return mEGLConfig;      }  } diff --git a/opengl/java/com/google/android/gles_jni/EGLContextImpl.java b/opengl/java/com/google/android/gles_jni/EGLContextImpl.java index cd3609975260..47369ac86b07 100644 --- a/opengl/java/com/google/android/gles_jni/EGLContextImpl.java +++ b/opengl/java/com/google/android/gles_jni/EGLContextImpl.java @@ -21,13 +21,13 @@ import javax.microedition.khronos.opengles.GL;  public class EGLContextImpl extends EGLContext {      private GLImpl mGLContext; -    int mEGLContext; -     -    public EGLContextImpl(int ctx) { +    long mEGLContext; + +    public EGLContextImpl(long ctx) {          mEGLContext = ctx;          mGLContext = new GLImpl();      } -  +      @Override      public GL getGL() {          return mGLContext; @@ -45,6 +45,12 @@ public class EGLContextImpl extends EGLContext {      @Override      public int hashCode() { -        return mEGLContext; +        /* +         * Based on the algorithm suggested in +         * http://developer.android.com/reference/java/lang/Object.html +         */ +        int result = 17; +        result = 31 * result + (int) (mEGLContext ^ (mEGLContext >>> 32)); +        return result;      }  } diff --git a/opengl/java/com/google/android/gles_jni/EGLDisplayImpl.java b/opengl/java/com/google/android/gles_jni/EGLDisplayImpl.java index e6c9817befe5..9b932fc12300 100644 --- a/opengl/java/com/google/android/gles_jni/EGLDisplayImpl.java +++ b/opengl/java/com/google/android/gles_jni/EGLDisplayImpl.java @@ -19,9 +19,9 @@ package com.google.android.gles_jni;  import javax.microedition.khronos.egl.*;  public class EGLDisplayImpl extends EGLDisplay { -    int mEGLDisplay; +    long mEGLDisplay; -    public EGLDisplayImpl(int dpy) { +    public EGLDisplayImpl(long dpy) {          mEGLDisplay = dpy;      } @@ -38,6 +38,12 @@ public class EGLDisplayImpl extends EGLDisplay {      @Override      public int hashCode() { -        return mEGLDisplay; +        /* +         * Based on the algorithm suggested in +         * http://developer.android.com/reference/java/lang/Object.html +         */ +        int result = 17; +        result = 31 * result + (int) (mEGLDisplay ^ (mEGLDisplay >>> 32)); +        return result;      }  } diff --git a/opengl/java/com/google/android/gles_jni/EGLImpl.java b/opengl/java/com/google/android/gles_jni/EGLImpl.java index 64a54c2e0d0e..41fb07228791 100644 --- a/opengl/java/com/google/android/gles_jni/EGLImpl.java +++ b/opengl/java/com/google/android/gles_jni/EGLImpl.java @@ -51,7 +51,7 @@ public class EGLImpl implements EGL10 {      public static native int  getInitCount(EGLDisplay display);      public EGLContext eglCreateContext(EGLDisplay display, EGLConfig config, EGLContext share_context, int[] attrib_list) { -        int eglContextId = _eglCreateContext(display, config, share_context, attrib_list); +        long eglContextId = _eglCreateContext(display, config, share_context, attrib_list);          if (eglContextId == 0) {              return EGL10.EGL_NO_CONTEXT;          } @@ -59,7 +59,7 @@ public class EGLImpl implements EGL10 {      }      public EGLSurface eglCreatePbufferSurface(EGLDisplay display, EGLConfig config, int[] attrib_list) { -        int eglSurfaceId = _eglCreatePbufferSurface(display, config, attrib_list); +        long eglSurfaceId = _eglCreatePbufferSurface(display, config, attrib_list);          if (eglSurfaceId == 0) {              return EGL10.EGL_NO_SURFACE;          } @@ -87,7 +87,7 @@ public class EGLImpl implements EGL10 {              sur = (Surface) native_window;          } -        int eglSurfaceId; +        long eglSurfaceId;          if (sur != null) {              eglSurfaceId = _eglCreateWindowSurface(display, config, sur, attrib_list);          } else if (native_window instanceof SurfaceTexture) { @@ -106,7 +106,7 @@ public class EGLImpl implements EGL10 {      }      public synchronized EGLDisplay eglGetDisplay(Object native_display) { -        int value = _eglGetDisplay(native_display); +        long value = _eglGetDisplay(native_display);          if (value == 0) {              return EGL10.EGL_NO_DISPLAY;          } @@ -116,7 +116,7 @@ public class EGLImpl implements EGL10 {      }      public synchronized EGLContext eglGetCurrentContext() { -        int value = _eglGetCurrentContext(); +        long value = _eglGetCurrentContext();          if (value == 0) {              return EGL10.EGL_NO_CONTEXT;          } @@ -126,7 +126,7 @@ public class EGLImpl implements EGL10 {      }      public synchronized EGLDisplay eglGetCurrentDisplay() { -        int value = _eglGetCurrentDisplay(); +        long value = _eglGetCurrentDisplay();          if (value == 0) {              return EGL10.EGL_NO_DISPLAY;          } @@ -136,7 +136,7 @@ public class EGLImpl implements EGL10 {      }      public synchronized EGLSurface eglGetCurrentSurface(int readdraw) { -        int value = _eglGetCurrentSurface(readdraw); +        long value = _eglGetCurrentSurface(readdraw);          if (value == 0) {              return EGL10.EGL_NO_SURFACE;          } @@ -145,15 +145,15 @@ public class EGLImpl implements EGL10 {          return mSurface;      } -    private native int _eglCreateContext(EGLDisplay display, EGLConfig config, EGLContext share_context, int[] attrib_list); -    private native int _eglCreatePbufferSurface(EGLDisplay display, EGLConfig config, int[] attrib_list); +    private native long _eglCreateContext(EGLDisplay display, EGLConfig config, EGLContext share_context, int[] attrib_list); +    private native long _eglCreatePbufferSurface(EGLDisplay display, EGLConfig config, int[] attrib_list);      private native void _eglCreatePixmapSurface(EGLSurface sur, EGLDisplay display, EGLConfig config, Object native_pixmap, int[] attrib_list); -    private native int _eglCreateWindowSurface(EGLDisplay display, EGLConfig config, Object native_window, int[] attrib_list); -    private native int _eglCreateWindowSurfaceTexture(EGLDisplay display, EGLConfig config, Object native_window, int[] attrib_list); -    private native int _eglGetDisplay(Object native_display); -    private native int _eglGetCurrentContext(); -    private native int _eglGetCurrentDisplay(); -    private native int _eglGetCurrentSurface(int readdraw); +    private native long _eglCreateWindowSurface(EGLDisplay display, EGLConfig config, Object native_window, int[] attrib_list); +    private native long _eglCreateWindowSurfaceTexture(EGLDisplay display, EGLConfig config, Object native_window, int[] attrib_list); +    private native long _eglGetDisplay(Object native_display); +    private native long _eglGetCurrentContext(); +    private native long _eglGetCurrentDisplay(); +    private native long _eglGetCurrentSurface(int readdraw);      native private static void _nativeClassInit();      static { _nativeClassInit(); } diff --git a/opengl/java/com/google/android/gles_jni/EGLSurfaceImpl.java b/opengl/java/com/google/android/gles_jni/EGLSurfaceImpl.java index e7f15dc2d4dc..7a3ed24f8811 100644 --- a/opengl/java/com/google/android/gles_jni/EGLSurfaceImpl.java +++ b/opengl/java/com/google/android/gles_jni/EGLSurfaceImpl.java @@ -19,13 +19,13 @@ package com.google.android.gles_jni;  import javax.microedition.khronos.egl.*;  public class EGLSurfaceImpl extends EGLSurface { -    int mEGLSurface; -    private int mNativePixelRef; +    long mEGLSurface; +    private long mNativePixelRef;      public EGLSurfaceImpl() {          mEGLSurface = 0;          mNativePixelRef = 0;      } -    public EGLSurfaceImpl(int surface) { +    public EGLSurfaceImpl(long surface) {          mEGLSurface = surface;          mNativePixelRef = 0;      } @@ -43,6 +43,12 @@ public class EGLSurfaceImpl extends EGLSurface {      @Override      public int hashCode() { -        return mEGLSurface; +        /* +         * Based on the algorithm suggested in +         * http://developer.android.com/reference/java/lang/Object.html +         */ +        int result = 17; +        result = 31 * result + (int) (mEGLSurface ^ (mEGLSurface >>> 32)); +        return result;      }  } |