diff options
author | Linux Build Service Account <lnxbuild@localhost> | 2016-09-14 04:53:27 -0700 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2016-09-14 04:53:27 -0700 |
commit | eeb2253db1ee359acb0ec0df177290d7d1d15c29 (patch) | |
tree | f56b90ea0b48a8fe9e20206e72cf56e17619d72e /src/com/android/gallery3d/ui | |
parent | 3dc4ea8d1b31ac57c198ff7ba6704c84175d9d0e (diff) | |
parent | 7c1f6788830573f9b3dc378a80b9d288ffd9ccea (diff) | |
download | android_packages_apps_Gallery2-eeb2253db1ee359acb0ec0df177290d7d1d15c29.tar.gz android_packages_apps_Gallery2-eeb2253db1ee359acb0ec0df177290d7d1d15c29.tar.bz2 android_packages_apps_Gallery2-eeb2253db1ee359acb0ec0df177290d7d1d15c29.zip |
Merge "Gallery: speed up TileImageView"
Diffstat (limited to 'src/com/android/gallery3d/ui')
-rw-r--r-- | src/com/android/gallery3d/ui/TileImageView.java | 23 |
1 files changed, 8 insertions, 15 deletions
diff --git a/src/com/android/gallery3d/ui/TileImageView.java b/src/com/android/gallery3d/ui/TileImageView.java index 16e2fc129..05bc9aff5 100644 --- a/src/com/android/gallery3d/ui/TileImageView.java +++ b/src/com/android/gallery3d/ui/TileImageView.java @@ -90,7 +90,6 @@ public class TileImageView extends GLView { private int mOffsetX; private int mOffsetY; - private int mUploadQuota; private boolean mRenderComplete; private final RectF mSourceRect = new RectF(); @@ -404,7 +403,6 @@ public class TileImageView extends GLView { @Override protected void render(GLCanvas canvas) { - mUploadQuota = UPLOAD_LIMIT; mRenderComplete = true; int level = mLevel; @@ -560,12 +558,10 @@ public class TileImageView extends GLView { @Override public boolean onGLIdle(GLCanvas canvas, boolean renderRequested, long dueTime) { - // Skips uploading if there is a pending rendering request. - // Returns true to keep uploading in next rendering loop. - if (renderRequested) return true; - int quota = UPLOAD_LIMIT; + long now = System.nanoTime(); + long uploadTime = 0; Tile tile = null; - while (quota > 0) { + while (now + uploadTime < dueTime) { synchronized (TileImageView.this) { tile = mUploadQueue.pop(); } @@ -575,8 +571,10 @@ public class TileImageView extends GLView { Utils.assertTrue(tile.mTileState == STATE_DECODED); tile.updateContent(canvas); if (!hasBeenLoaded) tile.draw(canvas, 0, 0); - --quota; } + long t1 = System.nanoTime(); + uploadTime = t1 - now; + now = t1; } if (tile == null) mActive.set(false); return tile != null; @@ -596,13 +594,8 @@ public class TileImageView extends GLView { if (tile != null) { if (!tile.isContentValid()) { if (tile.mTileState == STATE_DECODED) { - if (mUploadQuota > 0) { - --mUploadQuota; - tile.updateContent(canvas); - } else { - mRenderComplete = false; - } - } else if (tile.mTileState != STATE_DECODE_FAIL){ + mRenderComplete = false; + } else if (tile.mTileState != STATE_DECODE_FAIL) { mRenderComplete = false; queueForDecode(tile); } |