diff options
Diffstat (limited to 'libs/nativedisplay/include-private/private/android/choreographer.h')
-rw-r--r-- | libs/nativedisplay/include-private/private/android/choreographer.h | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/libs/nativedisplay/include-private/private/android/choreographer.h b/libs/nativedisplay/include-private/private/android/choreographer.h index 21649304bf..7d25ce8253 100644 --- a/libs/nativedisplay/include-private/private/android/choreographer.h +++ b/libs/nativedisplay/include-private/private/android/choreographer.h @@ -18,7 +18,7 @@ #include <apex/choreographer.h> #include <inttypes.h> -#include <nativehelper/JNIHelp.h> +#include <jni.h> namespace android { @@ -29,6 +29,24 @@ void AChoreographer_initJVM(JNIEnv* env); // for consumption by callbacks. void AChoreographer_signalRefreshRateCallbacks(int64_t vsyncPeriod); +// Returns the vsync id of the last frame callback. Client are expected to call +// this function from their frame callback function to get the vsyncId and pass +// it together with a buffer or transaction to the Surface Composer. Calling +// this function from anywhere else will return an undefined value. +int64_t AChoreographer_getVsyncId(const AChoreographer* choreographer); + +// Returns the deadline timestamp (in CLOCK_MONOTONIC) of the last frame callback. +// Client are expected to call this function from their frame callback function +// to get the deadline and use it to know whether a frame is likely to miss +// presentation. Calling this function from anywhere else will return an undefined +// value. +int64_t AChoreographer_getFrameDeadline(const AChoreographer* choreographer); + +// Returns the current interval in ns between frames. +// Client are expected to call this function from their frame callback function. +// Calling this function from anywhere else will return an undefined value. +int64_t AChoreographer_getFrameInterval(const AChoreographer* choreographer); + // Trampoline functions allowing libandroid.so to define the NDK symbols without including // the entirety of libnativedisplay as a whole static lib. As libnativedisplay // maintains global state, libnativedisplay can never be directly statically |