From 08a7c5ee848874759f28be0b5998269e5a32293c Mon Sep 17 00:00:00 2001 From: nicolasroard Date: Fri, 2 Aug 2013 11:35:32 -0700 Subject: Fix display bug with highres Change-Id: I8961beca6bf80efdf3cf1c3b6cae691dd0f473ed --- .../filtershow/pipeline/CachingPipeline.java | 24 ++++++++++++++++++++++ .../pipeline/HighresRenderingRequestTask.java | 2 +- 2 files changed, 25 insertions(+), 1 deletion(-) (limited to 'src/com/android/gallery3d') diff --git a/src/com/android/gallery3d/filtershow/pipeline/CachingPipeline.java b/src/com/android/gallery3d/filtershow/pipeline/CachingPipeline.java index 155ddaa19..fc0d6ce49 100644 --- a/src/com/android/gallery3d/filtershow/pipeline/CachingPipeline.java +++ b/src/com/android/gallery3d/filtershow/pipeline/CachingPipeline.java @@ -202,6 +202,30 @@ public class CachingPipeline implements PipelineInterface { return true; } + public void renderHighres(RenderingRequest request) { + synchronized (CachingPipeline.class) { + if (getRenderScriptContext() == null) { + return; + } + ImagePreset preset = request.getImagePreset(); + setupEnvironment(preset, false); + Bitmap bitmap = MasterImage.getImage().getOriginalBitmapHighres(); + if (bitmap == null) { + return; + } + // TODO: use a cache of bitmaps + bitmap = bitmap.copy(Bitmap.Config.ARGB_8888, true); + bitmap = preset.applyGeometry(bitmap, mEnvironment); + + mEnvironment.setQuality(FilterEnvironment.QUALITY_PREVIEW); + Bitmap bmp = preset.apply(bitmap, mEnvironment); + if (!mEnvironment.needsStop()) { + request.setBitmap(bmp); + } + mFiltersManager.freeFilterResources(preset); + } + } + public synchronized void render(RenderingRequest request) { synchronized (CachingPipeline.class) { if (getRenderScriptContext() == null) { diff --git a/src/com/android/gallery3d/filtershow/pipeline/HighresRenderingRequestTask.java b/src/com/android/gallery3d/filtershow/pipeline/HighresRenderingRequestTask.java index af9f79ce3..5a0eb4d45 100644 --- a/src/com/android/gallery3d/filtershow/pipeline/HighresRenderingRequestTask.java +++ b/src/com/android/gallery3d/filtershow/pipeline/HighresRenderingRequestTask.java @@ -70,7 +70,7 @@ public class HighresRenderingRequestTask extends ProcessingTask { public Result doInBackground(Request message) { RenderingRequest request = ((Render) message).request; RenderResult result = null; - mHighresPreviewPipeline.render(request); + mHighresPreviewPipeline.renderHighres(request); result = new RenderResult(); result.request = request; return result; -- cgit v1.2.3