summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java
diff options
context:
space:
mode:
authornicolasroard <nicolasroard@google.com>2013-07-02 11:00:01 -0700
committernicolasroard <nicolasroard@google.com>2013-07-02 12:42:21 -0700
commitf1f0d01da7742d46a546176081b441bdd23378f6 (patch)
tree3eef00dd8858bf7ac19ad4fbab8e1d14ade24126 /src/com/android/gallery3d/filtershow/imageshow/MasterImage.java
parenta9be5b3d573b1b5511300272fca5b320bdc0aae0 (diff)
downloadandroid_packages_apps_Snap-f1f0d01da7742d46a546176081b441bdd23378f6.tar.gz
android_packages_apps_Snap-f1f0d01da7742d46a546176081b441bdd23378f6.tar.bz2
android_packages_apps_Snap-f1f0d01da7742d46a546176081b441bdd23378f6.zip
Pipeline refactoring
Remove the temp representations and instead use a triple buffer for ImagePresets. Change-Id: I4cdcfbe4941af72b38fe42385085ff4a20eb78cc
Diffstat (limited to 'src/com/android/gallery3d/filtershow/imageshow/MasterImage.java')
-rw-r--r--src/com/android/gallery3d/filtershow/imageshow/MasterImage.java9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java b/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java
index 76670754e..bc208887f 100644
--- a/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java
+++ b/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java
@@ -35,6 +35,7 @@ import com.android.gallery3d.filtershow.filters.FilterRepresentation;
import com.android.gallery3d.filtershow.filters.ImageFilter;
import com.android.gallery3d.filtershow.pipeline.Buffer;
import com.android.gallery3d.filtershow.pipeline.SharedBuffer;
+import com.android.gallery3d.filtershow.pipeline.SharedPreset;
import com.android.gallery3d.filtershow.presets.ImagePreset;
import com.android.gallery3d.filtershow.state.StateAdapter;
@@ -58,6 +59,7 @@ public class MasterImage implements RenderingRequestCaller {
private ImagePreset mFiltersOnlyPreset = null;
private SharedBuffer mPreviewBuffer = new SharedBuffer();
+ private SharedPreset mPreviewPreset = new SharedPreset();
private Bitmap mGeometryOnlyBitmap = null;
private Bitmap mFiltersOnlyBitmap = null;
@@ -255,6 +257,10 @@ public class MasterImage implements RenderingRequestCaller {
return mPreviewBuffer;
}
+ public SharedPreset getPreviewPreset() {
+ return mPreviewPreset;
+ }
+
public void setOriginalGeometry(Bitmap originalBitmapLarge) {
GeometryMetadata geo = getPreset().getGeometry();
float w = originalBitmapLarge.getWidth();
@@ -266,6 +272,7 @@ public class MasterImage implements RenderingRequestCaller {
}
public Bitmap getFilteredImage() {
+ mPreviewBuffer.swapConsumerIfNeeded(); // get latest bitmap
Buffer consumer = mPreviewBuffer.getConsumer();
if (consumer != null) {
return consumer.getBitmap();
@@ -349,6 +356,7 @@ public class MasterImage implements RenderingRequestCaller {
}
public void invalidatePreview() {
+ mPreviewPreset.enqueuePreset(mPreset);
mPreviewBuffer.invalidate();
invalidatePartialPreview();
invalidateHighresPreview();
@@ -554,4 +562,5 @@ public class MasterImage implements RenderingRequestCaller {
public ImagePreset getLoadedPreset() {
return mLoadedPreset;
}
+
}