summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d/ui
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2016-09-14 04:53:27 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2016-09-14 04:53:27 -0700
commiteeb2253db1ee359acb0ec0df177290d7d1d15c29 (patch)
treef56b90ea0b48a8fe9e20206e72cf56e17619d72e /src/com/android/gallery3d/ui
parent3dc4ea8d1b31ac57c198ff7ba6704c84175d9d0e (diff)
parent7c1f6788830573f9b3dc378a80b9d288ffd9ccea (diff)
downloadandroid_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.java23
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);
}