summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d/filtershow/cache/CachingPipeline.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/gallery3d/filtershow/cache/CachingPipeline.java')
-rw-r--r--src/com/android/gallery3d/filtershow/cache/CachingPipeline.java14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/com/android/gallery3d/filtershow/cache/CachingPipeline.java b/src/com/android/gallery3d/filtershow/cache/CachingPipeline.java
index 8cb8f8f9e..566d161b5 100644
--- a/src/com/android/gallery3d/filtershow/cache/CachingPipeline.java
+++ b/src/com/android/gallery3d/filtershow/cache/CachingPipeline.java
@@ -22,9 +22,9 @@ import android.graphics.Bitmap;
import android.support.v8.renderscript.Allocation;
import android.support.v8.renderscript.RenderScript;
import android.util.Log;
+
import com.android.gallery3d.filtershow.filters.FiltersManager;
import com.android.gallery3d.filtershow.filters.ImageFilterGeometry;
-import com.android.gallery3d.filtershow.filters.ImageFilterRS;
import com.android.gallery3d.filtershow.imageshow.GeometryMetadata;
import com.android.gallery3d.filtershow.imageshow.MasterImage;
import com.android.gallery3d.filtershow.presets.FilterEnvironment;
@@ -357,19 +357,25 @@ public class CachingPipeline {
Bitmap resizedOriginalBitmap = mResizedOriginalBitmap;
if (updateOriginalAllocation(preset)) {
resizedOriginalBitmap = mResizedOriginalBitmap;
- buffer.updateBitmaps(resizedOriginalBitmap);
+ mEnvironment.cache(buffer.getProducer());
+ buffer.updateProducerBitmap(resizedOriginalBitmap);
}
Bitmap bitmap = buffer.getProducer();
long time2 = System.currentTimeMillis();
if (bitmap == null || (bitmap.getWidth() != resizedOriginalBitmap.getWidth())
|| (bitmap.getHeight() != resizedOriginalBitmap.getHeight())) {
- buffer.updateBitmaps(resizedOriginalBitmap);
+ mEnvironment.cache(buffer.getProducer());
+ buffer.updateProducerBitmap(resizedOriginalBitmap);
bitmap = buffer.getProducer();
}
mOriginalAllocation.copyTo(bitmap);
- bitmap = preset.apply(bitmap, mEnvironment);
+ Bitmap tmpbitmap = preset.apply(bitmap, mEnvironment);
+ if (tmpbitmap != bitmap) {
+ mEnvironment.cache(buffer.getProducer());
+ buffer.setProducer(tmpbitmap);
+ }
mFiltersManager.freeFilterResources(preset);