summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d
diff options
context:
space:
mode:
authornicolasroard <nicolasroard@google.com>2013-08-02 11:35:32 -0700
committernicolasroard <nicolasroard@google.com>2013-08-02 11:35:32 -0700
commit08a7c5ee848874759f28be0b5998269e5a32293c (patch)
tree05f48f3019f18787f133c4b3314e1b7f84be2f33 /src/com/android/gallery3d
parent8f0065ba9aefe1c6b53c941b6d2438b7b9cb2c66 (diff)
downloadandroid_packages_apps_Snap-08a7c5ee848874759f28be0b5998269e5a32293c.tar.gz
android_packages_apps_Snap-08a7c5ee848874759f28be0b5998269e5a32293c.tar.bz2
android_packages_apps_Snap-08a7c5ee848874759f28be0b5998269e5a32293c.zip
Fix display bug with highres
Change-Id: I8961beca6bf80efdf3cf1c3b6cae691dd0f473ed
Diffstat (limited to 'src/com/android/gallery3d')
-rw-r--r--src/com/android/gallery3d/filtershow/pipeline/CachingPipeline.java24
-rw-r--r--src/com/android/gallery3d/filtershow/pipeline/HighresRenderingRequestTask.java2
2 files changed, 25 insertions, 1 deletions
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;