diff options
author | John Hoford <hoford@google.com> | 2013-04-23 15:55:51 -0700 |
---|---|---|
committer | John Hoford <hoford@google.com> | 2013-04-23 16:03:27 -0700 |
commit | c4109628aec151e2ba70c4be729a869960e1b960 (patch) | |
tree | 5b6b671631eb2767a50076dec08fecf796345ea5 /src/com/android/gallery3d/filtershow/cache | |
parent | dc84a61759d87e17e191d9a7a5f3c008d3f62abc (diff) | |
download | android_packages_apps_Snap-c4109628aec151e2ba70c4be729a869960e1b960.tar.gz android_packages_apps_Snap-c4109628aec151e2ba70c4be729a869960e1b960.tar.bz2 android_packages_apps_Snap-c4109628aec151e2ba70c4be729a869960e1b960.zip |
interruptible renderer
bug:8632908
Change-Id: I4df59fb0c82370491d953292fd1cd17443054ab3
Diffstat (limited to 'src/com/android/gallery3d/filtershow/cache')
-rw-r--r-- | src/com/android/gallery3d/filtershow/cache/CachingPipeline.java | 9 | ||||
-rw-r--r-- | src/com/android/gallery3d/filtershow/cache/FilteringPipeline.java | 9 |
2 files changed, 14 insertions, 4 deletions
diff --git a/src/com/android/gallery3d/filtershow/cache/CachingPipeline.java b/src/com/android/gallery3d/filtershow/cache/CachingPipeline.java index 566d161b5..e3c77000b 100644 --- a/src/com/android/gallery3d/filtershow/cache/CachingPipeline.java +++ b/src/com/android/gallery3d/filtershow/cache/CachingPipeline.java @@ -96,6 +96,10 @@ public class CachingPipeline { sResources = null; } + public void stop() { + mEnvironment.setStop(true); + } + public synchronized void reset() { synchronized (CachingPipeline.class) { if (getRenderScriptContext() == null) { @@ -170,6 +174,7 @@ public class CachingPipeline { } mEnvironment.setQuality(ImagePreset.QUALITY_PREVIEW); mEnvironment.setImagePreset(preset); + mEnvironment.setStop(false); } public void setOriginal(Bitmap bitmap) { @@ -294,7 +299,9 @@ public class CachingPipeline { } Bitmap bmp = preset.apply(bitmap, mEnvironment); - request.setBitmap(bmp); + if (!mEnvironment.needsStop()) { + request.setBitmap(bmp); + } mFiltersManager.freeFilterResources(preset); } } diff --git a/src/com/android/gallery3d/filtershow/cache/FilteringPipeline.java b/src/com/android/gallery3d/filtershow/cache/FilteringPipeline.java index 8202d71bb..a0b289733 100644 --- a/src/com/android/gallery3d/filtershow/cache/FilteringPipeline.java +++ b/src/com/android/gallery3d/filtershow/cache/FilteringPipeline.java @@ -117,9 +117,11 @@ public class FilteringPipeline implements Handler.Callback { } else { mAccessoryPipeline.render(request); } - Message uimsg = mUIHandler.obtainMessage(NEW_RENDERING_REQUEST); - uimsg.obj = request; - mUIHandler.sendMessage(uimsg); + if (request.getBitmap() != null) { + Message uimsg = mUIHandler.obtainMessage(NEW_RENDERING_REQUEST); + uimsg.obj = request; + mUIHandler.sendMessage(uimsg); + } break; } } @@ -185,6 +187,7 @@ public class FilteringPipeline implements Handler.Callback { return; } mHasUnhandledPreviewRequest = true; + mHighresPreviewPipeline.stop(); if (mProcessingHandler.hasMessages(COMPUTE_PRESET)) { return; } |