diff options
Diffstat (limited to 'opengl')
-rw-r--r-- | opengl/java/android/opengl/EGLExt.java | 40 | ||||
-rw-r--r-- | opengl/java/android/opengl/GLLogWrapper.java | 70 |
2 files changed, 75 insertions, 35 deletions
diff --git a/opengl/java/android/opengl/EGLExt.java b/opengl/java/android/opengl/EGLExt.java index 74b64ead77bb..1570e0e22f50 100644 --- a/opengl/java/android/opengl/EGLExt.java +++ b/opengl/java/android/opengl/EGLExt.java @@ -18,6 +18,11 @@ package android.opengl; +import android.annotation.NonNull; +import android.hardware.SyncFence; +import android.os.ParcelFileDescriptor; +import android.util.Log; + /** * EGL Extensions */ @@ -30,6 +35,12 @@ public class EGLExt { public static final int EGL_OPENGL_ES3_BIT_KHR = 0x0040; public static final int EGL_RECORDABLE_ANDROID = 0x3142; + // EGL_ANDROID_native_fence_sync + public static final int EGL_SYNC_NATIVE_FENCE_ANDROID = 0x3144; + public static final int EGL_SYNC_NATIVE_FENCE_FD_ANDROID = 0x3145; + public static final int EGL_SYNC_NATIVE_FENCE_SIGNALED_ANDROID = 0x3146; + public static final int EGL_NO_NATIVE_FENCE_FD_ANDROID = -1; + native private static void _nativeClassInit(); static { _nativeClassInit(); @@ -43,4 +54,33 @@ public class EGLExt { long time ); + /** + * Retrieves the SyncFence for an EGLSync created with EGL_SYNC_NATIVE_FENCE_ANDROID + * + * See <a href="https://www.khronos.org/registry/EGL/extensions/ANDROID/EGL_ANDROID_native_fence_sync.txt"> + * EGL_ANDROID_native_fence_sync</a> extension for more details + * @param display The EGLDisplay connection + * @param sync The EGLSync to fetch the SyncFence from + * @return A SyncFence representing the native fence. + * * If <sync> is not a valid sync object for <display>, + * an {@link SyncFence#isValid() invalid} SyncFence is returned and an EGL_BAD_PARAMETER + * error is generated. + * * If the EGL_SYNC_NATIVE_FENCE_FD_ANDROID attribute of <sync> is + * EGL_NO_NATIVE_FENCE_FD_ANDROID, an {@link SyncFence#isValid() invalid} SyncFence is + * returned and an EGL_BAD_PARAMETER error is generated. + * * If <display> does not match the display passed to eglCreateSync + * when <sync> was created, the behaviour is undefined. + */ + public static @NonNull SyncFence eglDupNativeFenceFDANDROID(@NonNull EGLDisplay display, + @NonNull EGLSync sync) { + int fd = eglDupNativeFenceFDANDROIDImpl(display, sync); + Log.d("EGL", "eglDupNativeFence returned " + fd); + if (fd >= 0) { + return SyncFence.create(ParcelFileDescriptor.adoptFd(fd)); + } else { + return SyncFence.createEmpty(); + } + } + + private static native int eglDupNativeFenceFDANDROIDImpl(EGLDisplay display, EGLSync sync); } diff --git a/opengl/java/android/opengl/GLLogWrapper.java b/opengl/java/android/opengl/GLLogWrapper.java index bff739636b3e..e645afa1df5a 100644 --- a/opengl/java/android/opengl/GLLogWrapper.java +++ b/opengl/java/android/opengl/GLLogWrapper.java @@ -2812,7 +2812,7 @@ class GLLogWrapper extends GLWrapperBase { public void glDeleteBuffers(int n, int[] buffers, int offset) { begin("glDeleteBuffers"); arg("n", n); - arg("buffers", buffers.toString()); + arg("buffers", Arrays.toString(buffers)); arg("offset", offset); end(); mgl11.glDeleteBuffers(n, buffers, offset); @@ -2831,7 +2831,7 @@ class GLLogWrapper extends GLWrapperBase { public void glGenBuffers(int n, int[] buffers, int offset) { begin("glGenBuffers"); arg("n", n); - arg("buffers", buffers.toString()); + arg("buffers", Arrays.toString(buffers)); arg("offset", offset); end(); mgl11.glGenBuffers(n, buffers, offset); @@ -2850,7 +2850,7 @@ class GLLogWrapper extends GLWrapperBase { public void glGetBooleanv(int pname, boolean[] params, int offset) { begin("glGetBooleanv"); arg("pname", pname); - arg("params", params.toString()); + arg("params", Arrays.toString(params)); arg("offset", offset); end(); mgl11.glGetBooleanv(pname, params, offset); @@ -2871,7 +2871,7 @@ class GLLogWrapper extends GLWrapperBase { begin("glGetBufferParameteriv"); arg("target", target); arg("pname", pname); - arg("params", params.toString()); + arg("params", Arrays.toString(params)); arg("offset", offset); end(); mgl11.glGetBufferParameteriv(target, pname, params, offset); @@ -2891,7 +2891,7 @@ class GLLogWrapper extends GLWrapperBase { public void glGetClipPlanef(int pname, float[] eqn, int offset) { begin("glGetClipPlanef"); arg("pname", pname); - arg("eqn", eqn.toString()); + arg("eqn", Arrays.toString(eqn)); arg("offset", offset); end(); mgl11.glGetClipPlanef(pname, eqn, offset); @@ -2910,7 +2910,7 @@ class GLLogWrapper extends GLWrapperBase { public void glGetClipPlanex(int pname, int[] eqn, int offset) { begin("glGetClipPlanex"); arg("pname", pname); - arg("eqn", eqn.toString()); + arg("eqn", Arrays.toString(eqn)); arg("offset", offset); end(); mgl11.glGetClipPlanex(pname, eqn, offset); @@ -2928,7 +2928,7 @@ class GLLogWrapper extends GLWrapperBase { public void glGetFixedv(int pname, int[] params, int offset) { begin("glGetFixedv"); arg("pname", pname); - arg("params", params.toString()); + arg("params", Arrays.toString(params)); arg("offset", offset); end(); mgl11.glGetFixedv(pname, params, offset); @@ -2946,7 +2946,7 @@ class GLLogWrapper extends GLWrapperBase { public void glGetFloatv(int pname, float[] params, int offset) { begin("glGetFloatv"); arg("pname", pname); - arg("params", params.toString()); + arg("params", Arrays.toString(params)); arg("offset", offset); end(); mgl11.glGetFloatv(pname, params, offset); @@ -2965,7 +2965,7 @@ class GLLogWrapper extends GLWrapperBase { begin("glGetLightfv"); arg("light", light); arg("pname", pname); - arg("params", params.toString()); + arg("params", Arrays.toString(params)); arg("offset", offset); end(); mgl11.glGetLightfv(light, pname, params, offset); @@ -2986,7 +2986,7 @@ class GLLogWrapper extends GLWrapperBase { begin("glGetLightxv"); arg("light", light); arg("pname", pname); - arg("params", params.toString()); + arg("params", Arrays.toString(params)); arg("offset", offset); end(); mgl11.glGetLightxv(light, pname, params, offset); @@ -3008,7 +3008,7 @@ class GLLogWrapper extends GLWrapperBase { begin("glGetMaterialfv"); arg("face", face); arg("pname", pname); - arg("params", params.toString()); + arg("params", Arrays.toString(params)); arg("offset", offset); end(); mgl11.glGetMaterialfv(face, pname, params, offset); @@ -3029,7 +3029,7 @@ class GLLogWrapper extends GLWrapperBase { begin("glGetMaterialxv"); arg("face", face); arg("pname", pname); - arg("params", params.toString()); + arg("params", Arrays.toString(params)); arg("offset", offset); end(); mgl11.glGetMaterialxv(face, pname, params, offset); @@ -3050,7 +3050,7 @@ class GLLogWrapper extends GLWrapperBase { begin("glGetTexEnviv"); arg("env", env); arg("pname", pname); - arg("params", params.toString()); + arg("params", Arrays.toString(params)); arg("offset", offset); end(); mgl11.glGetTexEnviv(env, pname, params, offset); @@ -3071,7 +3071,7 @@ class GLLogWrapper extends GLWrapperBase { begin("glGetTexEnviv"); arg("env", env); arg("pname", pname); - arg("params", params.toString()); + arg("params", Arrays.toString(params)); arg("offset", offset); end(); mgl11.glGetTexEnviv(env, pname, params, offset); @@ -3092,7 +3092,7 @@ class GLLogWrapper extends GLWrapperBase { begin("glGetTexParameterfv"); arg("target", target); arg("pname", pname); - arg("params", params.toString()); + arg("params", Arrays.toString(params)); arg("offset", offset); end(); mgl11.glGetTexParameterfv(target, pname, params, offset); @@ -3113,7 +3113,7 @@ class GLLogWrapper extends GLWrapperBase { begin("glGetTexParameteriv"); arg("target", target); arg("pname", pname); - arg("params", params.toString()); + arg("params", Arrays.toString(params)); arg("offset", offset); end(); mgl11.glGetTexEnviv(target, pname, params, offset); @@ -3135,7 +3135,7 @@ class GLLogWrapper extends GLWrapperBase { begin("glGetTexParameterxv"); arg("target", target); arg("pname", pname); - arg("params", params.toString()); + arg("params", Arrays.toString(params)); arg("offset", offset); end(); mgl11.glGetTexParameterxv(target, pname, params, offset); @@ -3191,7 +3191,7 @@ class GLLogWrapper extends GLWrapperBase { public void glPointParameterfv(int pname, float[] params, int offset) { begin("glPointParameterfv"); arg("pname", pname); - arg("params", params.toString()); + arg("params", Arrays.toString(params)); arg("offset", offset); end(); mgl11.glPointParameterfv(pname, params, offset); @@ -3219,7 +3219,7 @@ class GLLogWrapper extends GLWrapperBase { public void glPointParameterxv(int pname, int[] params, int offset) { begin("glPointParameterxv"); arg("pname", pname); - arg("params", params.toString()); + arg("params", Arrays.toString(params)); arg("offset", offset); end(); mgl11.glPointParameterxv(pname, params, offset); @@ -3259,7 +3259,7 @@ class GLLogWrapper extends GLWrapperBase { begin("glTexEnviv"); arg("target", target); arg("pname", pname); - arg("params", params.toString()); + arg("params", Arrays.toString(params)); arg("offset", offset); end(); mgl11.glTexEnviv(target, pname, params, offset); @@ -3281,7 +3281,7 @@ class GLLogWrapper extends GLWrapperBase { begin("glTexParameterfv"); arg("target", target); arg("pname", pname); - arg("params", params.toString()); + arg("params", Arrays.toString(params)); arg("offset", offset); end(); mgl11.glTexParameterfv( target, pname, params, offset); @@ -3313,7 +3313,7 @@ class GLLogWrapper extends GLWrapperBase { begin("glTexParameterxv"); arg("target", target); arg("pname", pname); - arg("params", params.toString()); + arg("params", Arrays.toString(params)); arg("offset", offset); end(); mgl11.glTexParameterxv(target, pname, params, offset); @@ -3356,7 +3356,7 @@ class GLLogWrapper extends GLWrapperBase { public void glGetPointerv(int pname, Buffer[] params) { begin("glGetPointerv"); arg("pname", pname); - arg("params", params.toString()); + arg("params", Arrays.toString(params)); end(); mgl11.glGetPointerv(pname, params); checkError(); @@ -3513,7 +3513,7 @@ class GLLogWrapper extends GLWrapperBase { public void glDeleteFramebuffersOES(int n, int[] framebuffers, int offset) { begin("glDeleteFramebuffersOES"); arg("n", n); - arg("framebuffers", framebuffers.toString()); + arg("framebuffers", Arrays.toString(framebuffers)); arg("offset", offset); end(); mgl11ExtensionPack.glDeleteFramebuffersOES(n, framebuffers, offset); @@ -3534,7 +3534,7 @@ class GLLogWrapper extends GLWrapperBase { public void glDeleteRenderbuffersOES(int n, int[] renderbuffers, int offset) { begin("glDeleteRenderbuffersOES"); arg("n", n); - arg("renderbuffers", renderbuffers.toString()); + arg("renderbuffers", Arrays.toString(renderbuffers)); arg("offset", offset); end(); mgl11ExtensionPack.glDeleteRenderbuffersOES(n, renderbuffers, offset); @@ -3591,7 +3591,7 @@ class GLLogWrapper extends GLWrapperBase { public void glGenFramebuffersOES(int n, int[] framebuffers, int offset) { begin("glGenFramebuffersOES"); arg("n", n); - arg("framebuffers", framebuffers.toString()); + arg("framebuffers", Arrays.toString(framebuffers)); arg("offset", offset); end(); mgl11ExtensionPack.glGenFramebuffersOES(n, framebuffers, offset); @@ -3612,7 +3612,7 @@ class GLLogWrapper extends GLWrapperBase { public void glGenRenderbuffersOES(int n, int[] renderbuffers, int offset) { begin("glGenRenderbuffersOES"); arg("n", n); - arg("renderbuffers", renderbuffers.toString()); + arg("renderbuffers", Arrays.toString(renderbuffers)); arg("offset", offset); end(); mgl11ExtensionPack.glGenRenderbuffersOES(n, renderbuffers, offset); @@ -3636,7 +3636,7 @@ class GLLogWrapper extends GLWrapperBase { arg("target", target); arg("attachment", attachment); arg("pname", pname); - arg("params", params.toString()); + arg("params", Arrays.toString(params)); arg("offset", offset); end(); mgl11ExtensionPack.glGetFramebufferAttachmentParameterivOES(target, attachment, pname, params, offset); @@ -3662,7 +3662,7 @@ class GLLogWrapper extends GLWrapperBase { begin("glGetRenderbufferParameterivOES"); arg("target", target); arg("pname", pname); - arg("params", params.toString()); + arg("params", Arrays.toString(params)); arg("offset", offset); end(); mgl11ExtensionPack.glGetRenderbufferParameterivOES(target, pname, params, offset); @@ -3686,7 +3686,7 @@ class GLLogWrapper extends GLWrapperBase { begin("glGetTexGenfv"); arg("coord", coord); arg("pname", pname); - arg("params", params.toString()); + arg("params", Arrays.toString(params)); arg("offset", offset); end(); mgl11ExtensionPack.glGetTexGenfv(coord, pname, params, offset); @@ -3709,7 +3709,7 @@ class GLLogWrapper extends GLWrapperBase { begin("glGetTexGeniv"); arg("coord", coord); arg("pname", pname); - arg("params", params.toString()); + arg("params", Arrays.toString(params)); arg("offset", offset); end(); mgl11ExtensionPack.glGetTexGeniv(coord, pname, params, offset); @@ -3732,7 +3732,7 @@ class GLLogWrapper extends GLWrapperBase { begin("glGetTexGenxv"); arg("coord", coord); arg("pname", pname); - arg("params", params.toString()); + arg("params", Arrays.toString(params)); arg("offset", offset); end(); mgl11ExtensionPack.glGetTexGenxv(coord, pname, params, offset); @@ -3799,7 +3799,7 @@ class GLLogWrapper extends GLWrapperBase { begin("glTexGenfv"); arg("coord", coord); arg("pname", pname); - arg("params", params.toString()); + arg("params", Arrays.toString(params)); arg("offset", offset); end(); mgl11ExtensionPack.glTexGenfv(coord, pname, params, offset); @@ -3833,7 +3833,7 @@ class GLLogWrapper extends GLWrapperBase { begin("glTexGeniv"); arg("coord", coord); arg("pname", pname); - arg("params", params.toString()); + arg("params", Arrays.toString(params)); arg("offset", offset); end(); mgl11ExtensionPack.glTexGeniv(coord, pname, params, offset); @@ -3867,7 +3867,7 @@ class GLLogWrapper extends GLWrapperBase { begin("glTexGenxv"); arg("coord", coord); arg("pname", pname); - arg("params", params.toString()); + arg("params", Arrays.toString(params)); arg("offset", offset); end(); mgl11ExtensionPack.glTexGenxv(coord, pname, params, offset); |