summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d/filtershow/filters/ImageFilterCurves.java
diff options
context:
space:
mode:
authorJohn Hoford <hoford@google.com>2013-02-05 09:09:04 -0800
committerJohn Hoford <hoford@google.com>2013-02-07 14:43:26 -0800
commit394c12c26d03f0ae341b2251c4e5ad35c4463e9c (patch)
treea8f862a85301d99e4892347e1bf50f599f5dad94 /src/com/android/gallery3d/filtershow/filters/ImageFilterCurves.java
parent96bba43f8ea135208d9c2a33ae309326a7abfd69 (diff)
downloadandroid_packages_apps_Snap-394c12c26d03f0ae341b2251c4e5ad35c4463e9c.tar.gz
android_packages_apps_Snap-394c12c26d03f0ae341b2251c4e5ad35c4463e9c.tar.bz2
android_packages_apps_Snap-394c12c26d03f0ae341b2251c4e5ad35c4463e9c.zip
fix draw and curves to use FilterRepresentation
Change-Id: I500d9c04ea0e55cbc9b1927dee2f6a19a67d5349
Diffstat (limited to 'src/com/android/gallery3d/filtershow/filters/ImageFilterCurves.java')
-rw-r--r--src/com/android/gallery3d/filtershow/filters/ImageFilterCurves.java54
1 files changed, 34 insertions, 20 deletions
diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterCurves.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterCurves.java
index 15cf046c0..79190522d 100644
--- a/src/com/android/gallery3d/filtershow/filters/ImageFilterCurves.java
+++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterCurves.java
@@ -25,7 +25,26 @@ import com.android.gallery3d.filtershow.ui.Spline;
public class ImageFilterCurves extends ImageFilter {
private static final String LOGTAG = "ImageFilterCurves";
- private Spline[] mSplines = new Spline[4];
+ FilterCurvesRepresentation mParameters = new FilterCurvesRepresentation();
+
+ @Override
+ public boolean hasDefaultRepresentation() {
+ return true;
+ }
+
+ @Override
+ public FilterRepresentation getDefaultRepresentation() {
+ FilterCurvesRepresentation representation = new FilterCurvesRepresentation();
+ representation.setName("Draw");
+ representation.setFilterClass(ImageFilterCurves.class);
+ return representation;
+ }
+
+ @Override
+ public void useRepresentation(FilterRepresentation representation) {
+ FilterCurvesRepresentation parameters = (FilterCurvesRepresentation) representation;
+ mParameters = parameters;
+ }
public ImageFilterCurves() {
mName = "Curves";
@@ -65,18 +84,14 @@ public class ImageFilterCurves extends ImageFilter {
@Override
public ImageFilter clone() throws CloneNotSupportedException {
ImageFilterCurves filter = (ImageFilterCurves) super.clone();
- filter.mSplines = new Spline[4];
- for (int i = 0; i < 4; i++) {
- if (mSplines[i] != null) {
- filter.setSpline(mSplines[i], i);
- }
- }
+ filter.mParameters = (FilterCurvesRepresentation) mParameters.clone();
+
return filter;
}
public boolean isNil() {
for (int i = 0; i < 4; i++) {
- if (mSplines[i] != null && !mSplines[i].isOriginal()) {
+ if (mParameters.getSpline(i) != null && !mParameters.getSpline(i).isOriginal()) {
return false;
}
}
@@ -91,7 +106,7 @@ public class ImageFilterCurves extends ImageFilter {
}
ImageFilterCurves curve = (ImageFilterCurves) filter;
for (int i = 0; i < 4; i++) {
- if (mSplines[i] != curve.mSplines[i]) {
+ if (mParameters.getSpline(i) != curve.mParameters.getSpline(i)) {
return false;
}
}
@@ -99,7 +114,7 @@ public class ImageFilterCurves extends ImageFilter {
}
public void populateArray(int[] array, int curveIndex) {
- Spline spline = mSplines[curveIndex];
+ Spline spline = mParameters.getSpline(curveIndex);
if (spline == null) {
return;
}
@@ -111,7 +126,7 @@ public class ImageFilterCurves extends ImageFilter {
@Override
public Bitmap apply(Bitmap bitmap, float scaleFactor, boolean highQuality) {
- if (!mSplines[Spline.RGB].isOriginal()) {
+ if (!mParameters.getSpline(Spline.RGB).isOriginal()) {
int[] rgbGradient = new int[256];
populateArray(rgbGradient, Spline.RGB);
nativeApplyGradientFilter(bitmap, bitmap.getWidth(), bitmap.getHeight(),
@@ -119,17 +134,17 @@ public class ImageFilterCurves extends ImageFilter {
}
int[] redGradient = null;
- if (!mSplines[Spline.RED].isOriginal()) {
+ if (!mParameters.getSpline(Spline.RED).isOriginal()) {
redGradient = new int[256];
populateArray(redGradient, Spline.RED);
}
int[] greenGradient = null;
- if (!mSplines[Spline.GREEN].isOriginal()) {
+ if (!mParameters.getSpline(Spline.GREEN).isOriginal()) {
greenGradient = new int[256];
populateArray(greenGradient, Spline.GREEN);
}
int[] blueGradient = null;
- if (!mSplines[Spline.BLUE].isOriginal()) {
+ if (!mParameters.getSpline(Spline.BLUE).isOriginal()) {
blueGradient = new int[256];
populateArray(blueGradient, Spline.BLUE);
}
@@ -140,11 +155,11 @@ public class ImageFilterCurves extends ImageFilter {
}
public void setSpline(Spline spline, int splineIndex) {
- mSplines[splineIndex] = new Spline(spline);
+ mParameters.setSpline(splineIndex, new Spline(spline));
}
public Spline getSpline(int splineIndex) {
- return mSplines[splineIndex];
+ return mParameters.getSpline(splineIndex);
}
public void reset() {
@@ -154,16 +169,15 @@ public class ImageFilterCurves extends ImageFilter {
spline.addPoint(1.0f, 0.0f);
for (int i = 0; i < 4; i++) {
- mSplines[i] = new Spline(spline);
+ mParameters.setSpline(i, new Spline(spline));
}
}
- // TODO: fix useFilter
public void useFilter(ImageFilter a) {
ImageFilterCurves c = (ImageFilterCurves) a;
for (int i = 0; i < 4; i++) {
- if (c.mSplines[i] != null) {
- setSpline(c.mSplines[i], i);
+ if (c.mParameters.getSpline(i) != null) {
+ setSpline(c.mParameters.getSpline(i), i);
}
}
}