summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authornicolasroard <nicolasroard@google.com>2013-03-29 16:20:51 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2013-03-29 16:20:52 +0000
commit7857fc5931953ed5d63fbcbd1c810740f6e0eef6 (patch)
treefff6c517c001a338824873ec6b58b3014083b3be /src
parent2e45fd060ca623a3f28858eabd17be891b4fba89 (diff)
parentb782f6d9e38c84124735044708246112e62ddc9a (diff)
downloadandroid_packages_apps_Snap-7857fc5931953ed5d63fbcbd1c810740f6e0eef6.tar.gz
android_packages_apps_Snap-7857fc5931953ed5d63fbcbd1c810740f6e0eef6.tar.bz2
android_packages_apps_Snap-7857fc5931953ed5d63fbcbd1c810740f6e0eef6.zip
Merge "Re-enable caching step in RS filters" into gb-ub-photos-bryce
Diffstat (limited to 'src')
-rw-r--r--src/com/android/gallery3d/filtershow/filters/ImageFilterRS.java16
-rw-r--r--src/com/android/gallery3d/filtershow/filters/ImageFilterSharpen.java18
-rw-r--r--src/com/android/gallery3d/filtershow/presets/FilterEnvironment.java1
3 files changed, 23 insertions, 12 deletions
diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterRS.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterRS.java
index c76f7dda6..2aeaed877 100644
--- a/src/com/android/gallery3d/filtershow/filters/ImageFilterRS.java
+++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterRS.java
@@ -64,13 +64,16 @@ public abstract class ImageFilterRS extends ImageFilter {
if (DEBUG) {
Log.v(LOGTAG, "apply filter " + getName() + " in pipeline " + pipeline.getName());
}
- pipeline.prepareRenderscriptAllocations(bitmap);
Resources rsc = pipeline.getResources();
- createFilter(rsc, scaleFactor, quality);
- setResourcesLoaded(true);
+ if (pipeline.prepareRenderscriptAllocations(bitmap)
+ || !isResourcesLoaded()) {
+ freeResources();
+ createFilter(rsc, scaleFactor, quality);
+ setResourcesLoaded(true);
+ }
+ bindScriptValues();
runFilter();
update(bitmap);
- freeResources();
if (DEBUG) {
Log.v(LOGTAG, "DONE apply filter " + getName() + " in pipeline " + pipeline.getName());
}
@@ -158,6 +161,11 @@ public abstract class ImageFilterRS extends ImageFilter {
*/
abstract protected void resetScripts();
+ /**
+ * Scripts values should be bound here
+ */
+ abstract protected void bindScriptValues();
+
public void freeResources() {
if (!isResourcesLoaded()) {
return;
diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterSharpen.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterSharpen.java
index f545cd986..76ae475ac 100644
--- a/src/com/android/gallery3d/filtershow/filters/ImageFilterSharpen.java
+++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterSharpen.java
@@ -22,7 +22,6 @@ public class ImageFilterSharpen extends ImageFilterRS {
private static final String LOGTAG = "ImageFilterSharpen";
private ScriptC_convolve3x3 mScript;
- float mScaleFactor;
private FilterBasicRepresentation mParameters;
@@ -63,19 +62,14 @@ public class ImageFilterSharpen extends ImageFilterRS {
@Override
protected void createFilter(android.content.res.Resources res, float scaleFactor,
int quality) {
- int w = getInPixelsAllocation().getType().getX();
- int h = getInPixelsAllocation().getType().getY();
- mScaleFactor = scaleFactor;
-
if (mScript == null) {
mScript = new ScriptC_convolve3x3(getRenderScriptContext(), res, R.raw.convolve3x3);
}
- mScript.set_gWidth(w);
- mScript.set_gHeight(h);
}
private void computeKernel() {
- float p1 = mParameters.getValue() * mScaleFactor;
+ float scaleFactor = getEnvironment().getScaleFactor();
+ float p1 = mParameters.getValue() * scaleFactor;
float value = p1 / 100.0f;
float f[] = new float[9];
float p = value;
@@ -92,6 +86,14 @@ public class ImageFilterSharpen extends ImageFilterRS {
}
@Override
+ protected void bindScriptValues() {
+ int w = getInPixelsAllocation().getType().getX();
+ int h = getInPixelsAllocation().getType().getY();
+ mScript.set_gWidth(w);
+ mScript.set_gHeight(h);
+ }
+
+ @Override
protected void runFilter() {
if (mParameters == null) {
return;
diff --git a/src/com/android/gallery3d/filtershow/presets/FilterEnvironment.java b/src/com/android/gallery3d/filtershow/presets/FilterEnvironment.java
index c45036012..b474b8412 100644
--- a/src/com/android/gallery3d/filtershow/presets/FilterEnvironment.java
+++ b/src/com/android/gallery3d/filtershow/presets/FilterEnvironment.java
@@ -77,4 +77,5 @@ public class FilterEnvironment {
public void setCachingPipeline(CachingPipeline cachingPipeline) {
mCachingPipeline = cachingPipeline;
}
+
}