Implement OneParameterFilter and TwoParameterFilter in all filters

pull/535/head
Mattia Iavarone 6 years ago
parent a837f4e928
commit 5ffdbc5713
  1. 1
      cameraview/src/main/java/com/otaliastudios/cameraview/filter/BaseFilter.java
  2. 45
      cameraview/src/main/java/com/otaliastudios/cameraview/filters/BrightnessFilter.java
  3. 41
      cameraview/src/main/java/com/otaliastudios/cameraview/filters/ContrastFilter.java
  4. 34
      cameraview/src/main/java/com/otaliastudios/cameraview/filters/DuotoneFilter.java
  5. 21
      cameraview/src/main/java/com/otaliastudios/cameraview/filters/FillLightFilter.java
  6. 38
      cameraview/src/main/java/com/otaliastudios/cameraview/filters/GammaFilter.java
  7. 19
      cameraview/src/main/java/com/otaliastudios/cameraview/filters/GrainFilter.java
  8. 23
      cameraview/src/main/java/com/otaliastudios/cameraview/filters/HueFilter.java
  9. 42
      cameraview/src/main/java/com/otaliastudios/cameraview/filters/SaturationFilter.java
  10. 20
      cameraview/src/main/java/com/otaliastudios/cameraview/filters/SharpnessFilter.java
  11. 33
      cameraview/src/main/java/com/otaliastudios/cameraview/filters/TemperatureFilter.java
  12. 22
      cameraview/src/main/java/com/otaliastudios/cameraview/filters/TintFilter.java
  13. 37
      cameraview/src/main/java/com/otaliastudios/cameraview/filters/VignetteFilter.java

@ -210,6 +210,7 @@ public abstract class BaseFilter implements Filter {
return copy;
}
@SuppressWarnings("WeakerAccess")
protected BaseFilter onCopy() {
try {
return getClass().newInstance();

@ -5,12 +5,13 @@ import android.opengl.GLES20;
import androidx.annotation.NonNull;
import com.otaliastudios.cameraview.filter.BaseFilter;
import com.otaliastudios.cameraview.filter.OneParameterFilter;
import com.otaliastudios.cameraview.internal.GlUtils;
/**
* Adjusts the brightness of the frames.
*/
public class BrightnessFilter extends BaseFilter {
public class BrightnessFilter extends BaseFilter implements OneParameterFilter {
private final static String FRAGMENT_SHADER = "#extension GL_OES_EGL_image_external : require\n"
+ "precision mediump float;\n"
@ -22,28 +23,24 @@ public class BrightnessFilter extends BaseFilter {
+ " gl_FragColor = brightness * color;\n"
+ "}\n";
private float brightness = 2.0f;
private float brightness = 2.0f; // 1.0F...2.0F
private int brightnessLocation = -1;
@SuppressWarnings("WeakerAccess")
public BrightnessFilter() { }
/**
* Sets the brightness adjustment.
* 0.0: normal brightness.
* 1.0: high brightness.
* 1.0: normal brightness.
* 2.0: high brightness.
*
* @param brightness brightness.
*/
@SuppressWarnings("WeakerAccess")
@SuppressWarnings({"WeakerAccess", "unused"})
public void setBrightness(float brightness) {
if (brightness < 0.0f) brightness = 0.0f;
if (brightness > 1.0f) brightness = 1.0f;
//since the shader excepts a range of 1.0 - 2.0
// will add the 1.0 to every value
this.brightness = 1.0f + brightness;
if (brightness < 1.0f) brightness = 1.0f;
if (brightness > 2.0f) brightness = 2.0f;
this.brightness = brightness;
}
/**
@ -54,9 +51,19 @@ public class BrightnessFilter extends BaseFilter {
*/
@SuppressWarnings({"unused", "WeakerAccess"})
public float getBrightness() {
//since the shader excepts a range of 1.0 - 2.0
//to keep it between 0.0f - 1.0f range, will subtract the 1.0 to every value
return brightness - 1.0f;
return brightness;
}
@Override
public void setParameter1(float value) {
// parameter is 0...1, brightness is 1...2.
setBrightness(value + 1);
}
@Override
public float getParameter1() {
// parameter is 0...1, brightness is 1...2.
return getBrightness() - 1F;
}
@NonNull
@ -84,12 +91,4 @@ public class BrightnessFilter extends BaseFilter {
GLES20.glUniform1f(brightnessLocation, brightness);
GlUtils.checkError("glUniform1f");
}
@Override
protected BaseFilter onCopy() {
BrightnessFilter filter = new BrightnessFilter();
filter.setBrightness(getBrightness());
return filter;
}
}

@ -5,12 +5,13 @@ import android.opengl.GLES20;
import androidx.annotation.NonNull;
import com.otaliastudios.cameraview.filter.BaseFilter;
import com.otaliastudios.cameraview.filter.OneParameterFilter;
import com.otaliastudios.cameraview.internal.GlUtils;
/**
* Adjusts the contrast.
*/
public class ContrastFilter extends BaseFilter {
public class ContrastFilter extends BaseFilter implements OneParameterFilter {
private final static String FRAGMENT_SHADER = "#extension GL_OES_EGL_image_external : require\n"
+ "precision mediump float;\n"
@ -25,26 +26,23 @@ public class ContrastFilter extends BaseFilter {
+ " gl_FragColor = color;\n"
+ "}\n";
private float contrast = 2.0f;
private float contrast = 2F;
private int contrastLocation = -1;
@SuppressWarnings("WeakerAccess")
public ContrastFilter() { }
/**
* Sets the current contrast adjustment.
* 0.0: no adjustment
* 1.0: maximum adjustment
* 1.0: no adjustment
* 2.0: increased contrast
*
* @param contrast contrast
*/
@SuppressWarnings("WeakerAccess")
public void setContrast(float contrast) {
if (contrast < 0.0f) contrast = 0.0f;
if (contrast > 1.0f) contrast = 1.0f;
//since the shader excepts a range of 1.0 - 2.0
//will add the 1.0 to every value
this.contrast = contrast + 1.0f;
if (contrast < 1.0f) contrast = 1.0f;
if (contrast > 2.0f) contrast = 2.0f;
this.contrast = contrast;
}
/**
@ -55,9 +53,19 @@ public class ContrastFilter extends BaseFilter {
*/
@SuppressWarnings({"unused", "WeakerAccess"})
public float getContrast() {
//since the shader excepts a range of 1.0 - 2.0
//to keep it between 0.0f - 1.0f range, will subtract the 1.0 to every value
return contrast - 1.0f;
return contrast;
}
@Override
public void setParameter1(float value) {
// parameter is 0...1, contrast is 1...2.
setContrast(value + 1);
}
@Override
public float getParameter1() {
// parameter is 0...1, contrast is 1...2.
return getContrast() - 1F;
}
@NonNull
@ -85,11 +93,4 @@ public class ContrastFilter extends BaseFilter {
GLES20.glUniform1f(contrastLocation, contrast);
GlUtils.checkError("glUniform1f");
}
@Override
protected BaseFilter onCopy() {
ContrastFilter filter = new ContrastFilter();
filter.setContrast(getContrast());
return filter;
}
}

@ -7,12 +7,13 @@ import androidx.annotation.ColorInt;
import androidx.annotation.NonNull;
import com.otaliastudios.cameraview.filter.BaseFilter;
import com.otaliastudios.cameraview.filter.TwoParameterFilter;
import com.otaliastudios.cameraview.internal.GlUtils;
/**
* Representation of input frames using only two color tones.
*/
public class DuotoneFilter extends BaseFilter {
public class DuotoneFilter extends BaseFilter implements TwoParameterFilter {
private final static String FRAGMENT_SHADER = "#extension GL_OES_EGL_image_external : require\n"
+ "precision mediump float;\n"
@ -33,7 +34,6 @@ public class DuotoneFilter extends BaseFilter {
private int mFirstColorLocation = -1;
private int mSecondColorLocation = -1;
@SuppressWarnings("WeakerAccess")
public DuotoneFilter() { }
/**
@ -41,7 +41,7 @@ public class DuotoneFilter extends BaseFilter {
* @param firstColor first
* @param secondColor second
*/
@SuppressWarnings({"unused", "WeakerAccess"})
@SuppressWarnings({"unused"})
public void setColors(@ColorInt int firstColor, @ColorInt int secondColor) {
setFirstColor(firstColor);
setSecondColor(secondColor);
@ -93,6 +93,27 @@ public class DuotoneFilter extends BaseFilter {
return mSecondColor;
}
@Override
public void setParameter1(float value) {
// no easy way to transform 0...1 into a color.
setFirstColor((int) (value * Integer.MAX_VALUE));
}
@Override
public float getParameter1() {
return (float) getFirstColor() / Integer.MAX_VALUE;
}
@Override
public void setParameter2(float value) {
// no easy way to transform 0...1 into a color.
setSecondColor((int) (value * Integer.MAX_VALUE));
}
@Override
public float getParameter2() {
return (float) getSecondColor() / Integer.MAX_VALUE;
}
@NonNull
@Override
@ -134,11 +155,4 @@ public class DuotoneFilter extends BaseFilter {
mFirstColorLocation = -1;
mSecondColorLocation = -1;
}
@Override
protected BaseFilter onCopy() {
DuotoneFilter filter = new DuotoneFilter();
filter.setColors(getFirstColor(), getSecondColor());
return filter;
}
}

@ -5,12 +5,13 @@ import android.opengl.GLES20;
import androidx.annotation.NonNull;
import com.otaliastudios.cameraview.filter.BaseFilter;
import com.otaliastudios.cameraview.filter.OneParameterFilter;
import com.otaliastudios.cameraview.internal.GlUtils;
/**
* Applies back-light filling to the frames.
*/
public class FillLightFilter extends BaseFilter {
public class FillLightFilter extends BaseFilter implements OneParameterFilter {
private final static String FRAGMENT_SHADER = "#extension GL_OES_EGL_image_external : require\n"
+ "precision mediump float;\n"
@ -34,7 +35,6 @@ public class FillLightFilter extends BaseFilter {
private int multiplierLocation = -1;
private int gammaLocation = -1;
@SuppressWarnings("WeakerAccess")
public FillLightFilter() { }
/**
@ -62,6 +62,15 @@ public class FillLightFilter extends BaseFilter {
return strength;
}
@Override
public void setParameter1(float value) {
setStrength(value);
}
@Override
public float getParameter1() {
return getStrength();
}
@NonNull
@Override
@ -99,12 +108,4 @@ public class FillLightFilter extends BaseFilter {
GLES20.glUniform1f(gammaLocation, gamma);
GlUtils.checkError("glUniform1f");
}
@Override
protected BaseFilter onCopy() {
FillLightFilter filter = new FillLightFilter();
filter.setStrength(getStrength());
return filter;
}
}

@ -5,12 +5,13 @@ import android.opengl.GLES20;
import androidx.annotation.NonNull;
import com.otaliastudios.cameraview.filter.BaseFilter;
import com.otaliastudios.cameraview.filter.OneParameterFilter;
import com.otaliastudios.cameraview.internal.GlUtils;
/**
* Applies gamma correction to the frames.
*/
public class GammaFilter extends BaseFilter {
public class GammaFilter extends BaseFilter implements OneParameterFilter {
private final static String FRAGMENT_SHADER = "#extension GL_OES_EGL_image_external : require\n"
+ "precision mediump float;\n"
@ -25,22 +26,19 @@ public class GammaFilter extends BaseFilter {
private float gamma = 2.0f;
private int gammaLocation = -1;
@SuppressWarnings("WeakerAccess")
public GammaFilter() { }
/**
* Sets the new gamma value in the 0.0 - 1.0 range.
* The 0.5 value means no correction will be applied.
* Sets the new gamma value in the 0.0 - 2.0 range.
* The 1.0 value means no correction will be applied.
*
* @param gamma gamma value
*/
@SuppressWarnings("WeakerAccess")
public void setGamma(float gamma) {
if (gamma < 0.0f) gamma = 0.0f;
if (gamma > 1.0f) gamma = 1.0f;
//since the shader excepts a range of 0.0 - 2.0
//will multiply the 2.0 to every value
this.gamma = gamma * 2.0f;
if (gamma > 2.0f) gamma = 2.0f;
this.gamma = gamma;
}
/**
@ -49,11 +47,19 @@ public class GammaFilter extends BaseFilter {
* @see #setGamma(float)
* @return gamma
*/
@SuppressWarnings({"unused", "WeakerAccess"})
@SuppressWarnings("WeakerAccess")
public float getGamma() {
//since the shader excepts a range of 0.0 - 2.0
//to keep it between 0.0f - 1.0f range, will divide it with 2.0
return gamma / 2.0f;
return gamma;
}
@Override
public void setParameter1(float value) {
setGamma(value * 2F);
}
@Override
public float getParameter1() {
return getGamma() / 2F;
}
@NonNull
@ -80,13 +86,5 @@ public class GammaFilter extends BaseFilter {
super.onPreDraw(transformMatrix);
GLES20.glUniform1f(gammaLocation, gamma);
GlUtils.checkError("glUniform1f");
}
@Override
protected BaseFilter onCopy() {
GammaFilter filter = new GammaFilter();
filter.setGamma(getGamma());
return filter;
}
}

@ -5,6 +5,7 @@ import android.opengl.GLES20;
import androidx.annotation.NonNull;
import com.otaliastudios.cameraview.filter.BaseFilter;
import com.otaliastudios.cameraview.filter.OneParameterFilter;
import com.otaliastudios.cameraview.internal.GlUtils;
import java.util.Random;
@ -12,7 +13,7 @@ import java.util.Random;
/**
* Applies film grain effect to the frames.
*/
public class GrainFilter extends BaseFilter {
public class GrainFilter extends BaseFilter implements OneParameterFilter {
private final static Random RANDOM = new Random();
private final static String FRAGMENT_SHADER = "#extension GL_OES_EGL_image_external : require\n"
@ -95,6 +96,15 @@ public class GrainFilter extends BaseFilter {
return strength;
}
@Override
public void setParameter1(float value) {
setStrength(value);
}
@Override
public float getParameter1() {
return getStrength();
}
@NonNull
@Override
@ -131,11 +141,4 @@ public class GrainFilter extends BaseFilter {
GLES20.glUniform1f(stepYLocation, 0.5f / height);
GlUtils.checkError("glUniform1f");
}
@Override
protected BaseFilter onCopy() {
GrainFilter filter = new GrainFilter();
filter.setStrength(getStrength());
return filter;
}
}

@ -5,12 +5,13 @@ import android.opengl.GLES20;
import androidx.annotation.NonNull;
import com.otaliastudios.cameraview.filter.BaseFilter;
import com.otaliastudios.cameraview.filter.OneParameterFilter;
import com.otaliastudios.cameraview.internal.GlUtils;
/**
* Applies a hue effect on the input frames.
*/
public class HueFilter extends BaseFilter {
public class HueFilter extends BaseFilter implements OneParameterFilter {
private final static String FRAGMENT_SHADER = "#extension GL_OES_EGL_image_external : require\n"
+ "precision mediump float;\n"
@ -41,7 +42,6 @@ public class HueFilter extends BaseFilter {
private float hue = 0.0f;
private int hueLocation = -1;
@SuppressWarnings("WeakerAccess")
public HueFilter() { }
/**
@ -52,7 +52,7 @@ public class HueFilter extends BaseFilter {
*/
@SuppressWarnings({"unused", "WeakerAccess"})
public void setHue(float hue) {
this.hue = hue;
this.hue = hue % 360;
}
/**
@ -66,6 +66,16 @@ public class HueFilter extends BaseFilter {
return hue;
}
@Override
public void setParameter1(float value) {
setHue(value * 360F);
}
@Override
public float getParameter1() {
return getHue() / 360F;
}
@NonNull
@Override
public String getFragmentShader() {
@ -93,11 +103,4 @@ public class HueFilter extends BaseFilter {
GLES20.glUniform1f(hueLocation, shaderHue);
GlUtils.checkError("glUniform1f");
}
@Override
protected BaseFilter onCopy() {
HueFilter filter = new HueFilter();
filter.setHue(getHue());
return filter;
}
}

@ -5,12 +5,13 @@ import android.opengl.GLES20;
import androidx.annotation.NonNull;
import com.otaliastudios.cameraview.filter.BaseFilter;
import com.otaliastudios.cameraview.filter.OneParameterFilter;
import com.otaliastudios.cameraview.internal.GlUtils;
/**
* Adjusts color saturation.
*/
public class SaturationFilter extends BaseFilter {
public class SaturationFilter extends BaseFilter implements OneParameterFilter {
private final static String FRAGMENT_SHADER = "#extension GL_OES_EGL_image_external : require\n"
+ "precision mediump float;\n"
@ -37,29 +38,25 @@ public class SaturationFilter extends BaseFilter {
+ " gl_FragColor = gl_FragColor+vec4(verynew_color / max_color, color.a);\n"
+ "}\n";
private float scale = 1.0f;
private float scale = 1F; // -1...1
private int scaleLocation = -1;
private int exponentsLocation = -1;
@SuppressWarnings("WeakerAccess")
public SaturationFilter() { }
/**
* Sets the saturation correction value:
* 0.0: fully desaturated, grayscale.
* 0.5: no change.
* 1.0: fully saturated.
* -1.0: fully desaturated, grayscale.
* 0.0: no change.
* +1.0: fully saturated.
*
* @param value new value
*/
@SuppressWarnings("WeakerAccess")
public void setSaturation(float value) {
if (value < 0.0f) value = 0.0f;
if (value > 1.0f) value = 1.0f;
//since the shader excepts a range of -1.0 to 1.0
//will multiply it by 2.0f and subtract 1.0 to every value
this.scale = (2.0f * value) - 1.0f;
if (value < -1F) value = -1F;
if (value > 1F) value = 1F;
scale = value;
}
/**
@ -70,9 +67,17 @@ public class SaturationFilter extends BaseFilter {
*/
@SuppressWarnings("WeakerAccess")
public float getSaturation() {
//since the shader excepts a range of -1.0 to 1.0
//will add 1.0 to every value and divide it by 2.0f
return (scale + 1.0f) / 2.0f;
return scale;
}
@Override
public void setParameter1(float value) {
setSaturation(2F * value - 1F);
}
@Override
public float getParameter1() {
return (getSaturation() + 1F) / 2F;
}
@NonNull
@ -116,11 +121,4 @@ public class SaturationFilter extends BaseFilter {
GlUtils.checkError("glUniform3f");
}
}
@Override
protected BaseFilter onCopy() {
SaturationFilter filter = new SaturationFilter();
filter.setSaturation(getSaturation());
return filter;
}
}

@ -5,12 +5,13 @@ import android.opengl.GLES20;
import androidx.annotation.NonNull;
import com.otaliastudios.cameraview.filter.BaseFilter;
import com.otaliastudios.cameraview.filter.OneParameterFilter;
import com.otaliastudios.cameraview.internal.GlUtils;
/**
* Sharpens the input frames.
*/
public class SharpnessFilter extends BaseFilter {
public class SharpnessFilter extends BaseFilter implements OneParameterFilter {
private final static String FRAGMENT_SHADER = "#extension GL_OES_EGL_image_external : require\n"
+ "precision mediump float;\n"
@ -45,7 +46,6 @@ public class SharpnessFilter extends BaseFilter {
private int stepSizeXLocation = -1;
private int stepSizeYLocation = -1;
@SuppressWarnings("WeakerAccess")
public SharpnessFilter() { }
@Override
@ -80,6 +80,16 @@ public class SharpnessFilter extends BaseFilter {
return scale;
}
@Override
public void setParameter1(float value) {
setSharpness(value);
}
@Override
public float getParameter1() {
return getSharpness();
}
@NonNull
@Override
public String getFragmentShader() {
@ -115,10 +125,4 @@ public class SharpnessFilter extends BaseFilter {
GLES20.glUniform1f(stepSizeYLocation, 1.0F / height);
GlUtils.checkError("glUniform1f");
}
@Override
protected BaseFilter onCopy() {
SharpnessFilter filter = new SharpnessFilter();
filter.setSharpness(getSharpness());
return filter;
}
}

@ -5,12 +5,13 @@ import android.opengl.GLES20;
import androidx.annotation.NonNull;
import com.otaliastudios.cameraview.filter.BaseFilter;
import com.otaliastudios.cameraview.filter.OneParameterFilter;
import com.otaliastudios.cameraview.internal.GlUtils;
/**
* Adjusts color temperature.
*/
public class TemperatureFilter extends BaseFilter {
public class TemperatureFilter extends BaseFilter implements OneParameterFilter {
private final static String FRAGMENT_SHADER = "#extension GL_OES_EGL_image_external : require\n"
+ "precision mediump float;\n"
@ -32,24 +33,23 @@ public class TemperatureFilter extends BaseFilter {
+ " gl_FragColor = vec4(new_color, color.a);\n"
+ "}\n";
private float scale = 0f;
private float scale = 1F; // -1...1
private int scaleLocation = -1;
@SuppressWarnings("WeakerAccess")
public TemperatureFilter() { }
/**
* Sets the new temperature value:
* 0.0: cool colors
* 0.5: no change
* -1.0: cool colors
* 0.0: no change
* 1.0: warm colors
*
* @param value new value
*/
@SuppressWarnings("WeakerAccess")
public void setTemperature(float value) {
if (value < 0.0f) value = 0.0f;
if (value > 1.0f) value = 1.0f;
if (value < -1F) value = -1F;
if (value > 1F) value = 1F;
this.scale = value;
}
@ -64,6 +64,16 @@ public class TemperatureFilter extends BaseFilter {
return scale;
}
@Override
public void setParameter1(float value) {
setTemperature((2F * value - 1F));
}
@Override
public float getParameter1() {
return (getTemperature() + 1F) / 2F;
}
@NonNull
@Override
public String getFragmentShader() {
@ -86,14 +96,7 @@ public class TemperatureFilter extends BaseFilter {
@Override
protected void onPreDraw(float[] transformMatrix) {
super.onPreDraw(transformMatrix);
GLES20.glUniform1f(scaleLocation, (2.0f * scale - 1.0f));
GLES20.glUniform1f(scaleLocation, scale);
GlUtils.checkError("glUniform1f");
}
@Override
protected BaseFilter onCopy() {
TemperatureFilter filter = new TemperatureFilter();
filter.setTemperature(getTemperature());
return filter;
}
}

@ -7,13 +7,14 @@ import androidx.annotation.ColorInt;
import androidx.annotation.NonNull;
import com.otaliastudios.cameraview.filter.BaseFilter;
import com.otaliastudios.cameraview.filter.OneParameterFilter;
import com.otaliastudios.cameraview.internal.GlUtils;
/**
* Tints the frames with specified color.
*/
public class TintFilter extends BaseFilter {
public class TintFilter extends BaseFilter implements OneParameterFilter {
private final static String FRAGMENT_SHADER = "#extension GL_OES_EGL_image_external : require\n"
+ "precision mediump float;\n"
@ -33,7 +34,6 @@ public class TintFilter extends BaseFilter {
private int tint = Color.RED;
private int tintLocation = -1;
@SuppressWarnings("WeakerAccess")
public TintFilter() { }
/**
@ -57,6 +57,17 @@ public class TintFilter extends BaseFilter {
return tint;
}
@Override
public void setParameter1(float value) {
// no easy way to transform 0...1 into a color.
setTint((int) (value * Integer.MAX_VALUE));
}
@Override
public float getParameter1() {
return (float) getTint() / Integer.MAX_VALUE;
}
@NonNull
@Override
public String getFragmentShader() {
@ -87,11 +98,4 @@ public class TintFilter extends BaseFilter {
GLES20.glUniform3fv(tintLocation, 1, channels, 0);
GlUtils.checkError("glUniform3fv");
}
@Override
protected BaseFilter onCopy() {
TintFilter filter = new TintFilter();
filter.setTint(getTint());
return filter;
}
}

@ -5,13 +5,14 @@ import android.opengl.GLES20;
import androidx.annotation.NonNull;
import com.otaliastudios.cameraview.filter.BaseFilter;
import com.otaliastudios.cameraview.filter.TwoParameterFilter;
import com.otaliastudios.cameraview.internal.GlUtils;
/**
* Applies a vignette effect to input frames.
*/
public class VignetteFilter extends BaseFilter {
public class VignetteFilter extends BaseFilter implements TwoParameterFilter {
private final static String FRAGMENT_SHADER = "#extension GL_OES_EGL_image_external : require\n"
+ "precision mediump float;\n"
@ -30,8 +31,8 @@ public class VignetteFilter extends BaseFilter {
+ " gl_FragColor = vec4(color.rgb * lumen, color.a);\n"
+ "}\n";
private float mScale = 0.85f;
private float mShade = 0.5f;
private float mScale = 0.85f; // 0...1
private float mShade = 0.5f; // 0...1
private int mWidth = 1;
private int mHeight = 1;
@ -40,7 +41,6 @@ public class VignetteFilter extends BaseFilter {
private int mShadeLocation = -1;
private int mScaleLocation = -1;
@SuppressWarnings("WeakerAccess")
public VignetteFilter() { }
@Override
@ -94,6 +94,27 @@ public class VignetteFilter extends BaseFilter {
return mShade;
}
@Override
public void setParameter1(float value) {
setVignetteScale(value);
}
@Override
public float getParameter1() {
return getVignetteScale();
}
@Override
public void setParameter2(float value) {
setVignetteShade(value);
}
@Override
public float getParameter2() {
return getVignetteShade();
}
@NonNull
@Override
public String getFragmentShader() {
@ -150,12 +171,4 @@ public class VignetteFilter extends BaseFilter {
GLES20.glUniform1f(mRangeLocation, range);
GlUtils.checkError("glUniform1f");
}
@Override
protected BaseFilter onCopy() {
VignetteFilter filter = new VignetteFilter();
filter.setVignetteScale(getVignetteScale());
filter.setVignetteShade(getVignetteShade());
return filter;
}
}

Loading…
Cancel
Save