diff options
Diffstat (limited to 'src/com/android/gallery3d/filtershow/cache/FilteringPipeline.java')
-rw-r--r-- | src/com/android/gallery3d/filtershow/cache/FilteringPipeline.java | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/com/android/gallery3d/filtershow/cache/FilteringPipeline.java b/src/com/android/gallery3d/filtershow/cache/FilteringPipeline.java index a8c8d7b47..a295647b5 100644 --- a/src/com/android/gallery3d/filtershow/cache/FilteringPipeline.java +++ b/src/com/android/gallery3d/filtershow/cache/FilteringPipeline.java @@ -34,12 +34,13 @@ public class FilteringPipeline implements Handler.Callback { private static final String LOGTAG = "FilteringPipeline"; private boolean DEBUG = false; - private static long HIRES_DELAY = 100; // in ms + private static long HIRES_DELAY = 300; // in ms private volatile boolean mPipelineIsOn = false; private CachingPipeline mAccessoryPipeline = null; private CachingPipeline mPreviewPipeline = null; + private CachingPipeline mHighresPreviewPipeline = null; private HandlerThread mHandlerThread = null; private final static int NEW_PRESET = 0; @@ -111,7 +112,11 @@ public class FilteringPipeline implements Handler.Callback { } RenderingRequest request = (RenderingRequest) msg.obj; - mAccessoryPipeline.render(request); + if (msg.what == COMPUTE_HIGHRES_RENDERING_REQUEST) { + mHighresPreviewPipeline.render(request); + } else { + mAccessoryPipeline.render(request); + } Message uimsg = mUIHandler.obtainMessage(NEW_RENDERING_REQUEST); uimsg.obj = request; mUIHandler.sendMessage(uimsg); @@ -128,6 +133,7 @@ public class FilteringPipeline implements Handler.Callback { mProcessingHandler = new Handler(mHandlerThread.getLooper(), this); mAccessoryPipeline = new CachingPipeline(FiltersManager.getManager(), "Accessory"); mPreviewPipeline = new CachingPipeline(FiltersManager.getPreviewManager(), "Preview"); + mHighresPreviewPipeline = new CachingPipeline(FiltersManager.getHighresManager(), "Highres"); } public synchronized static FilteringPipeline getPipeline() { @@ -145,6 +151,7 @@ public class FilteringPipeline implements Handler.Callback { Log.v(LOGTAG,"setOriginal, size " + bitmap.getWidth() + " x " + bitmap.getHeight()); mAccessoryPipeline.setOriginal(bitmap); mPreviewPipeline.setOriginal(bitmap); + mHighresPreviewPipeline.setOriginal(bitmap); } public void postRenderingRequest(RenderingRequest request) { @@ -194,16 +201,19 @@ public class FilteringPipeline implements Handler.Callback { public void setPreviewScaleFactor(float previewScaleFactor) { mAccessoryPipeline.setPreviewScaleFactor(previewScaleFactor); mPreviewPipeline.setPreviewScaleFactor(previewScaleFactor); + mHighresPreviewPipeline.setPreviewScaleFactor(previewScaleFactor); } public void setHighResPreviewScaleFactor(float highResPreviewScaleFactor) { mAccessoryPipeline.setHighResPreviewScaleFactor(highResPreviewScaleFactor); mPreviewPipeline.setHighResPreviewScaleFactor(highResPreviewScaleFactor); + mHighresPreviewPipeline.setHighResPreviewScaleFactor(highResPreviewScaleFactor); } public static synchronized void reset() { sPipeline.mAccessoryPipeline.reset(); sPipeline.mPreviewPipeline.reset(); + sPipeline.mHighresPreviewPipeline.reset(); sPipeline.mHandlerThread.quit(); sPipeline = null; } @@ -213,6 +223,7 @@ public class FilteringPipeline implements Handler.Callback { if (mPipelineIsOn) { assert(mPreviewPipeline.isInitialized()); assert(mAccessoryPipeline.isInitialized()); + assert(mHighresPreviewPipeline.isInitialized()); updatePreviewBuffer(); } } |