From 1feca40a5c3bf2f40d3bcf15f4f76119188f1011 Mon Sep 17 00:00:00 2001 From: seven332 Date: Sat, 7 May 2016 14:17:10 +0800 Subject: [PATCH] Use System.nanoTime() to calculate frame delay compensation Use System.nanoTime() instead of SystemClock.elapsedRealtime() --- app/src/main/java/com/hippo/gl/glrenderer/ImageTexture.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/hippo/gl/glrenderer/ImageTexture.java b/app/src/main/java/com/hippo/gl/glrenderer/ImageTexture.java index da0c28c07..224f60e7c 100644 --- a/app/src/main/java/com/hippo/gl/glrenderer/ImageTexture.java +++ b/app/src/main/java/com/hippo/gl/glrenderer/ImageTexture.java @@ -249,7 +249,7 @@ public class ImageTexture implements Texture, Animatable { private class AnimateRunnable implements Runnable { public void doRun() { - long lastTime = SystemClock.elapsedRealtime(); + long lastTime = System.nanoTime(); long lastDelay = -1L; synchronized (mImage) { @@ -319,9 +319,9 @@ public class ImageTexture implements Texture, Animatable { mImage.advance(); long delay = mImage.getDelay(); - long time = SystemClock.elapsedRealtime(); + long time = System.nanoTime(); if (-1L != lastDelay) { - delay -= (time - lastTime) - lastDelay; + delay -= (time - lastTime) / 1000000 - lastDelay; } lastTime = time; lastDelay = delay;