summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authornicolasroard <nicolasroard@google.com>2013-04-12 17:47:14 -0700
committernicolasroard <nicolasroard@google.com>2013-04-12 18:07:11 -0700
commit4b6ea5bce9b68eea16eb8a0980501f671e7fbf44 (patch)
treeeb515dd081c6c267ee9b76d7770b614cb0b3b803 /src
parentb9db2d6aeb5b3b1d6a2335509de14612ce4453c3 (diff)
downloadandroid_packages_apps_Gallery2-4b6ea5bce9b68eea16eb8a0980501f671e7fbf44.tar.gz
android_packages_apps_Gallery2-4b6ea5bce9b68eea16eb8a0980501f671e7fbf44.tar.bz2
android_packages_apps_Gallery2-4b6ea5bce9b68eea16eb8a0980501f671e7fbf44.zip
Add direct rendering for border
bug:8603245 Change-Id: Ibc1bde9adb19f930b474e4076a0c2720fbe0bc8d
Diffstat (limited to 'src')
-rw-r--r--src/com/android/gallery3d/filtershow/cache/CachingPipeline.java2
-rw-r--r--src/com/android/gallery3d/filtershow/presets/ImagePreset.java15
2 files changed, 17 insertions, 0 deletions
diff --git a/src/com/android/gallery3d/filtershow/cache/CachingPipeline.java b/src/com/android/gallery3d/filtershow/cache/CachingPipeline.java
index b8dc466d9..8cb8f8f9e 100644
--- a/src/com/android/gallery3d/filtershow/cache/CachingPipeline.java
+++ b/src/com/android/gallery3d/filtershow/cache/CachingPipeline.java
@@ -308,6 +308,8 @@ public class CachingPipeline {
setupEnvironment(preset, false);
mFiltersManager.freeFilterResources(preset);
preset.applyFilters(-1, -1, in, out, mEnvironment);
+ // TODO: we should render the border onto a different bitmap instead
+ preset.applyBorder(in, out, mEnvironment);
}
}
diff --git a/src/com/android/gallery3d/filtershow/presets/ImagePreset.java b/src/com/android/gallery3d/filtershow/presets/ImagePreset.java
index 791164f5c..00f5977d1 100644
--- a/src/com/android/gallery3d/filtershow/presets/ImagePreset.java
+++ b/src/com/android/gallery3d/filtershow/presets/ImagePreset.java
@@ -22,6 +22,7 @@ import android.support.v8.renderscript.Allocation;
import android.util.Log;
import com.android.gallery3d.filtershow.ImageStateAdapter;
+import com.android.gallery3d.filtershow.cache.CachingPipeline;
import com.android.gallery3d.filtershow.cache.ImageLoader;
import com.android.gallery3d.filtershow.filters.BaseFiltersManager;
import com.android.gallery3d.filtershow.filters.FilterRepresentation;
@@ -228,6 +229,10 @@ public class ImagePreset {
mBorder = filter;
}
+ public void resetBorder() {
+ mBorder = null;
+ }
+
public boolean isFx() {
return mIsFxPreset;
}
@@ -474,6 +479,16 @@ public class ImagePreset {
return bitmap;
}
+ public void applyBorder(Allocation in, Allocation out, FilterEnvironment environment) {
+ if (mBorder != null && mDoApplyGeometry) {
+ mBorder.synchronizeRepresentation();
+ // TODO: should keep the bitmap around
+ Allocation bitmapIn = Allocation.createTyped(CachingPipeline.getRenderScriptContext(), in.getType());
+ bitmapIn.copyFrom(out);
+ environment.applyRepresentation(mBorder, bitmapIn, out);
+ }
+ }
+
public void applyFilters(int from, int to, Allocation in, Allocation out, FilterEnvironment environment) {
if (mDoApplyFilters) {
if (from < 0) {