diff options
author | Justin Klaassen <justinklaassen@google.com> | 2018-01-03 13:39:41 -0500 |
---|---|---|
committer | Justin Klaassen <justinklaassen@google.com> | 2018-01-03 13:39:41 -0500 |
commit | 98fe7819c6d14f4f464a5cac047f9e82dee5da58 (patch) | |
tree | a6b8b93eb21e205b27590ab5e2a1fb9efe27f892 /android/view/Choreographer.java | |
parent | 4217cf85c20565a3446a662a7f07f26137b26b7f (diff) | |
download | android-28-98fe7819c6d14f4f464a5cac047f9e82dee5da58.tar.gz |
Import Android SDK Platform P [4524038]
/google/data/ro/projects/android/fetch_artifact \
--bid 4524038 \
--target sdk_phone_armv7-win_sdk \
sdk-repo-linux-sources-4524038.zip
AndroidVersion.ApiLevel has been modified to appear as 28
Change-Id: Ic193bf1cf0cae78d4f2bfb4fbddfe42025c5c3c2
Diffstat (limited to 'android/view/Choreographer.java')
-rw-r--r-- | android/view/Choreographer.java | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/android/view/Choreographer.java b/android/view/Choreographer.java index 2ffa1c5e..ba6b6cf6 100644 --- a/android/view/Choreographer.java +++ b/android/view/Choreographer.java @@ -164,6 +164,7 @@ public final class Choreographer { private long mLastFrameTimeNanos; private long mFrameIntervalNanos; private boolean mDebugPrintNextFrameTimeDelta; + private int mFPSDivisor = 1; /** * Contains information about the current frame for jank-tracking, @@ -601,6 +602,11 @@ public final class Choreographer { } } + void setFPSDivisor(int divisor) { + if (divisor <= 0) divisor = 1; + mFPSDivisor = divisor; + } + void doFrame(long frameTimeNanos, int frame) { final long startNanos; synchronized (mLock) { @@ -643,6 +649,14 @@ public final class Choreographer { return; } + if (mFPSDivisor > 1) { + long timeSinceVsync = frameTimeNanos - mLastFrameTimeNanos; + if (timeSinceVsync < (mFrameIntervalNanos * mFPSDivisor) && timeSinceVsync > 0) { + scheduleVsyncLocked(); + return; + } + } + mFrameInfo.setVsync(intendedFrameTimeNanos, frameTimeNanos); mFrameScheduled = false; mLastFrameTimeNanos = frameTimeNanos; |