diff options
author | nicolasroard <nicolasroard@google.com> | 2013-03-29 16:20:51 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2013-03-29 16:20:52 +0000 |
commit | 7857fc5931953ed5d63fbcbd1c810740f6e0eef6 (patch) | |
tree | fff6c517c001a338824873ec6b58b3014083b3be /src | |
parent | 2e45fd060ca623a3f28858eabd17be891b4fba89 (diff) | |
parent | b782f6d9e38c84124735044708246112e62ddc9a (diff) | |
download | android_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')
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; } + } |