diff options
author | nicolasroard <nicolasroard@google.com> | 2013-07-02 11:00:01 -0700 |
---|---|---|
committer | nicolasroard <nicolasroard@google.com> | 2013-07-02 12:42:21 -0700 |
commit | f1f0d01da7742d46a546176081b441bdd23378f6 (patch) | |
tree | 3eef00dd8858bf7ac19ad4fbab8e1d14ade24126 /src/com/android/gallery3d/filtershow/imageshow/MasterImage.java | |
parent | a9be5b3d573b1b5511300272fca5b320bdc0aae0 (diff) | |
download | android_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.java | 9 |
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; } + } |