summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d/filtershow/pipeline/SharedBuffer.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/pipeline/SharedBuffer.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/pipeline/SharedBuffer.java')
-rw-r--r--src/com/android/gallery3d/filtershow/pipeline/SharedBuffer.java21
1 files changed, 7 insertions, 14 deletions
diff --git a/src/com/android/gallery3d/filtershow/pipeline/SharedBuffer.java b/src/com/android/gallery3d/filtershow/pipeline/SharedBuffer.java
index 587174668..98e69f60e 100644
--- a/src/com/android/gallery3d/filtershow/pipeline/SharedBuffer.java
+++ b/src/com/android/gallery3d/filtershow/pipeline/SharedBuffer.java
@@ -17,7 +17,6 @@
package com.android.gallery3d.filtershow.pipeline;
import android.graphics.Bitmap;
-import android.util.Log;
public class SharedBuffer {
@@ -26,15 +25,15 @@ public class SharedBuffer {
private volatile Buffer mProducer = null;
private volatile Buffer mConsumer = null;
private volatile Buffer mIntermediate = null;
- private volatile boolean mNeedsSwap = false;
+ private volatile boolean mNeedsSwap = false;
private volatile boolean mNeedsRepaint = true;
- public SharedBuffer() {
- }
-
- public synchronized void setProducer(Bitmap producer) {
- mProducer = new Buffer(producer);
+ public void setProducer(Bitmap producer) {
+ Buffer buffer = new Buffer(producer);
+ synchronized (this) {
+ mProducer = buffer;
+ }
}
public synchronized Buffer getProducer() {
@@ -46,22 +45,16 @@ public class SharedBuffer {
}
public synchronized void swapProducer() {
- if (mProducer != null) {
- mProducer.sync();
- }
Buffer intermediate = mIntermediate;
mIntermediate = mProducer;
mProducer = intermediate;
mNeedsSwap = true;
}
- public synchronized void swapConsumer() {
+ public synchronized void swapConsumerIfNeeded() {
if (!mNeedsSwap) {
return;
}
- if (mConsumer != null) {
- mConsumer.sync();
- }
Buffer intermediate = mIntermediate;
mIntermediate = mConsumer;
mConsumer = intermediate;