Add eglPresentationTimeANDROID
Added EGL extension to set a timestamp on a surface. Also, fix JNI encoding of "long" in glgen. Bug 8191230 Change-Id: I38b7334bade3f8ff02bffe600bb74469ef22c164
This commit is contained in:
parent
306f18c5fb
commit
7284145d56
@ -311,6 +311,18 @@ typedef EGLint (EGLAPIENTRYP PFNEGLWAITSYNCANDROID) (EGLDisplay dpy, EGLSyncKHR
|
||||
#define EGL_FRAMEBUFFER_TARGET_ANDROID 0x3147
|
||||
#endif
|
||||
|
||||
/* EGL_ANDROID_presentation_time
|
||||
*/
|
||||
#ifndef EGL_ANDROID_presentation_time
|
||||
#define EGL_ANDROID_presentation_time 1
|
||||
typedef khronos_stime_nanoseconds_t EGLnsecsANDROID;
|
||||
#ifdef EGL_EGLEXT_PROTOTYPES
|
||||
EGLAPI EGLBoolean eglPresentationTimeANDROID(EGLDisplay dpy, EGLSurface sur, EGLnsecsANDROID time);
|
||||
#else
|
||||
typedef EGLBoolean (EGLAPIENTRYP PFNEGLPRESENTATIONTIMEANDROID) (EGLDisplay dpy, EGLSurface sur, EGLnsecsANDROID time);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@ -1307,6 +1307,28 @@ EGLint eglWaitSyncANDROID(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags)
|
||||
return result;
|
||||
}
|
||||
|
||||
EGLBoolean eglPresentationTimeANDROID(EGLDisplay dpy, EGLSurface surface,
|
||||
EGLnsecsANDROID time)
|
||||
{
|
||||
clearError();
|
||||
|
||||
const egl_display_ptr dp = validate_display(dpy);
|
||||
if (!dp) {
|
||||
return EGL_FALSE;
|
||||
}
|
||||
|
||||
SurfaceRef _s(dp.get(), surface);
|
||||
if (!_s.get()) {
|
||||
setError(EGL_BAD_SURFACE, EGL_FALSE);
|
||||
return EGL_FALSE;
|
||||
}
|
||||
|
||||
egl_surface_t const * const s = get_surface(surface);
|
||||
native_window_set_buffers_timestamp(s->win.get(), time);
|
||||
|
||||
return EGL_TRUE;
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// NVIDIA extensions
|
||||
// ----------------------------------------------------------------------------
|
||||
|
@ -31,3 +31,4 @@ EGLBoolean eglWaitGL ( void )
|
||||
EGLBoolean eglWaitNative ( EGLint engine )
|
||||
EGLBoolean eglSwapBuffers ( EGLDisplay dpy, EGLSurface surface )
|
||||
EGLBoolean eglCopyBuffers ( EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target )
|
||||
EGLBoolean eglPresentationTimeANDROID ( EGLDisplay dpy, EGLSurface sur, EGLnsecsANDROID time )
|
||||
|
@ -56,6 +56,7 @@ public class JType {
|
||||
typeMapping.put(new CType("EGLNativeWindowType"), new JType("int"));
|
||||
typeMapping.put(new CType("EGLNativeDisplayType"), new JType("int"));
|
||||
typeMapping.put(new CType("EGLClientBuffer"), new JType("int"));
|
||||
typeMapping.put(new CType("EGLnsecsANDROID"), new JType("long"));
|
||||
|
||||
// EGL nonprimitive types
|
||||
typeMapping.put(new CType("EGLConfig"), new JType("EGLConfig", true, false));
|
||||
|
@ -54,7 +54,7 @@ public class JniCodeEmitter {
|
||||
} else if (baseType.equals("short")) {
|
||||
jniName += "S";
|
||||
} else if (baseType.equals("long")) {
|
||||
jniName += "L";
|
||||
jniName += "J";
|
||||
} else if (baseType.equals("byte")) {
|
||||
jniName += "B";
|
||||
} else if (baseType.equals("String")) {
|
||||
|
Loading…
Reference in New Issue
Block a user