From 1439461f15d185f6950f143e46c906d6bb3f6524 Mon Sep 17 00:00:00 2001 From: Mattia Iavarone Date: Mon, 5 Aug 2019 17:55:42 +0200 Subject: [PATCH] Create Filter interface and BaseFilter abstract class --- .../cameraview/filters/AutoFixFilter.java | 2 +- .../cameraview/filters/BaseFilter.java | 120 ++++++++++++++++++ .../filters/BlackAndWhiteFilter.java | 2 +- .../cameraview/filters/BrightnessFilter.java | 2 +- .../cameraview/filters/ContrastFilter.java | 2 +- .../filters/CrossProcessFilter.java | 2 +- .../cameraview/filters/CustomFilter.java | 2 +- .../cameraview/filters/DocumentaryFilter.java | 2 +- .../cameraview/filters/DuotoneFilter.java | 2 +- .../cameraview/filters/FillLightFilter.java | 2 +- .../cameraview/filters/Filter.java | 120 +----------------- .../cameraview/filters/GammaFilter.java | 2 +- .../cameraview/filters/GrainFilter.java | 2 +- .../cameraview/filters/GrayscaleFilter.java | 2 +- .../cameraview/filters/HueFilter.java | 2 +- .../filters/InvertColorsFilter.java | 2 +- .../cameraview/filters/LamoishFilter.java | 2 +- .../cameraview/filters/NoFilter.java | 2 +- .../cameraview/filters/PosterizeFilter.java | 2 +- .../cameraview/filters/SaturationFilter.java | 2 +- .../cameraview/filters/SepiaFilter.java | 2 +- .../cameraview/filters/SharpnessFilter.java | 2 +- .../cameraview/filters/TemperatureFilter.java | 2 +- .../cameraview/filters/TintFilter.java | 2 +- .../cameraview/filters/VignetteFilter.java | 2 +- 25 files changed, 147 insertions(+), 139 deletions(-) create mode 100644 cameraview/src/main/java/com/otaliastudios/cameraview/filters/BaseFilter.java diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/AutoFixFilter.java b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/AutoFixFilter.java index 92549229..88cee44f 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/AutoFixFilter.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/AutoFixFilter.java @@ -5,7 +5,7 @@ import androidx.annotation.NonNull; /** * Attempts to auto-fix the preview based on histogram equalization. */ -public class AutoFixFilter extends Filter { +public class AutoFixFilter extends BaseFilter { private float scale = 1.0f; diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/BaseFilter.java b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/BaseFilter.java new file mode 100644 index 00000000..27c532d5 --- /dev/null +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/BaseFilter.java @@ -0,0 +1,120 @@ +package com.otaliastudios.cameraview.filters; + +import androidx.annotation.NonNull; + +/** + * A Base abstract class that every effect must extend so that there is a common getShader method. + *

+ * This class has a default Vertex Shader implementation which in most cases not required to touch. + * In Effects like sepia, B/W any many, only pixel color changes which can be managed by only fragment shader. + * If there is some other effect which requires vertex shader also change, you can override it. + *

+ * If your provide your own vertex and fragment shader, + * please set the {@link #mPositionVariableName}, {@link #mTextureCoordinateVariableName}, + * {@link #mMVPMatrixVariableName}, {@link #mTextureMatrixVariableName} + * according to your shader code. + *

+ * Please note that these shader applies on live preview as well as pictureSnapshot and videoSnapshot, + * we only support GLES11Ext.GL_TEXTURE_EXTERNAL_OES + * check EglViewport() + *

+ * The default implementation of this class is NoEffect. + */ +public abstract class BaseFilter implements Filter { + + /** + * Vertex shader code written in Shader Language (C) and stored as String. + * This wil be used by GL to apply any effect. + */ + @NonNull + String mVertexShader = + "uniform mat4 uMVPMatrix;\n" + + "uniform mat4 uTexMatrix;\n" + + "attribute vec4 aPosition;\n" + + "attribute vec4 aTextureCoord;\n" + + "varying vec2 vTextureCoord;\n" + + "void main() {\n" + + " gl_Position = uMVPMatrix * aPosition;\n" + + " vTextureCoord = (uTexMatrix * aTextureCoord).xy;\n" + + "}\n"; + + + /** + * Fragment shader code written in Shader Language (C) and stored as String. + * This wil be used by GL to apply any effect. + */ + @NonNull + String mFragmentShader = + "#extension GL_OES_EGL_image_external : require\n" + + "precision mediump float;\n" + + "varying vec2 vTextureCoord;\n" + + "uniform samplerExternalOES sTexture;\n" + + "void main() {\n" + + " gl_FragColor = texture2D(sTexture, vTextureCoord);\n" + + "}\n"; + + /** + * Width and height of previewing GlSurfaceview. + * This will be used by a few effects. + */ + int mPreviewingViewWidth = 0; + int mPreviewingViewHeight = 0; + + public void setOutputSize(int width, int height) { + mPreviewingViewWidth = width; + mPreviewingViewHeight = height; + } + + /** + * Local variable name which were used in the shader code. + * These will be used by openGL program to render these vertex and fragment shader + */ + private String mPositionVariableName = "aPosition"; + private String mTextureCoordinateVariableName = "aTextureCoord"; + private String mMVPMatrixVariableName = "uMVPMatrix"; + private String mTextureMatrixVariableName = "uTexMatrix"; + + public String getPositionVariableName() { + return mPositionVariableName; + } + + public void setPositionVariableName(String positionVariableName) { + this.mPositionVariableName = positionVariableName; + } + + public String getTexttureCoordinateVariableName() { + return mTextureCoordinateVariableName; + } + + public void setTexttureCoordinateVariableName(String texttureCoordinateVariableName) { + this.mTextureCoordinateVariableName = texttureCoordinateVariableName; + } + + public String getMVPMatrixVariableName() { + return mMVPMatrixVariableName; + } + + public void setMVPMatrixVariableName(String mvpMatrixVariableName) { + this.mMVPMatrixVariableName = mvpMatrixVariableName; + } + + public String getTextureMatrixVariableName() { + return mTextureMatrixVariableName; + } + + public void setTextureMatrixVariableName(String textureMatrixVariableName) { + this.mTextureMatrixVariableName = textureMatrixVariableName; + } + + /** + * Get vertex Shader code + * + * @return complete shader code in C + */ + @Override + @NonNull + public String getVertexShader() { + return mVertexShader; + } + +} diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/BlackAndWhiteFilter.java b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/BlackAndWhiteFilter.java index c7316ea0..bc4af92a 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/BlackAndWhiteFilter.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/BlackAndWhiteFilter.java @@ -5,7 +5,7 @@ import androidx.annotation.NonNull; /** * Converts the preview into black and white colors */ -public class BlackAndWhiteFilter extends Filter { +public class BlackAndWhiteFilter extends BaseFilter { /** diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/BrightnessFilter.java b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/BrightnessFilter.java index f2718b8c..61c79ade 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/BrightnessFilter.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/BrightnessFilter.java @@ -5,7 +5,7 @@ import androidx.annotation.NonNull; /** * Adjusts the brightness of the preview. */ -public class BrightnessFilter extends Filter { +public class BrightnessFilter extends BaseFilter { private float brightnessValue = 2.0f; /** diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/ContrastFilter.java b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/ContrastFilter.java index 03034f46..9f79a93b 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/ContrastFilter.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/ContrastFilter.java @@ -5,7 +5,7 @@ import androidx.annotation.NonNull; /** * Adjusts the contrast of the preview. */ -public class ContrastFilter extends Filter { +public class ContrastFilter extends BaseFilter { private float contrast = 2.0f; /** diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/CrossProcessFilter.java b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/CrossProcessFilter.java index 883a15bb..985ca7e4 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/CrossProcessFilter.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/CrossProcessFilter.java @@ -6,7 +6,7 @@ import androidx.annotation.NonNull; * Applies a cross process effect on preview, in which the red and green channels * are enhanced while the blue channel is restricted. */ -public class CrossProcessFilter extends Filter { +public class CrossProcessFilter extends BaseFilter { /** * Initialize Effect diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/CustomFilter.java b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/CustomFilter.java index f1b53220..876fc366 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/CustomFilter.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/CustomFilter.java @@ -6,7 +6,7 @@ import androidx.annotation.NonNull; /** * This class is to implement any custom effect. */ -public class CustomFilter extends Filter { +public class CustomFilter extends BaseFilter { /** * Parameterized constructor with vertex and fragment shader as parameter diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/DocumentaryFilter.java b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/DocumentaryFilter.java index c81fcac4..c1fa3370 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/DocumentaryFilter.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/DocumentaryFilter.java @@ -8,7 +8,7 @@ import java.util.Random; /** * Applies black and white documentary style effect on preview. */ -public class DocumentaryFilter extends Filter { +public class DocumentaryFilter extends BaseFilter { private Random mRandom; public DocumentaryFilter() { diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/DuotoneFilter.java b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/DuotoneFilter.java index c13398eb..97fba11c 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/DuotoneFilter.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/DuotoneFilter.java @@ -7,7 +7,7 @@ import androidx.annotation.NonNull; /** * Representation of preview using only two color tones. */ -public class DuotoneFilter extends Filter { +public class DuotoneFilter extends BaseFilter { // Default values private int mFirstColor = Color.MAGENTA; private int mSecondColor = Color.YELLOW; diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/FillLightFilter.java b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/FillLightFilter.java index 8d807137..48fed323 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/FillLightFilter.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/FillLightFilter.java @@ -5,7 +5,7 @@ import androidx.annotation.NonNull; /** * Applies back-light filling to the preview. */ -public class FillLightFilter extends Filter { +public class FillLightFilter extends BaseFilter { private float strength = 0.5f; /** diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/Filter.java b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/Filter.java index 8d173119..1a106dc6 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/Filter.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/Filter.java @@ -2,127 +2,15 @@ package com.otaliastudios.cameraview.filters; import androidx.annotation.NonNull; -/** - * A Base abstract class that every effect must extend so that there is a common getShader method. - *

- * This class has a default Vertex Shader implementation which in most cases not required to touch. - * In Effects like sepia, B/W any many, only pixel color changes which can be managed by only fragment shader. - * If there is some other effect which requires vertex shader also change, you can override it. - *

- * If your provide your own vertex and fragment shader, - * please set the {@link #mPositionVariableName}, {@link #mTextureCoordinateVariableName}, - * {@link #mMVPMatrixVariableName}, {@link #mTextureMatrixVariableName} - * according to your shader code. - *

- * Please note that these shader applies on live preview as well as pictureSnapshot and videoSnapshot, - * we only support GLES11Ext.GL_TEXTURE_EXTERNAL_OES - * check EglViewport() - *

- * The default implementation of this class is NoEffect. - */ -public abstract class Filter { - /** - * Vertex shader code written in Shader Language (C) and stored as String. - * This wil be used by GL to apply any effect. - */ - @NonNull - String mVertexShader = - "uniform mat4 uMVPMatrix;\n" + - "uniform mat4 uTexMatrix;\n" + - "attribute vec4 aPosition;\n" + - "attribute vec4 aTextureCoord;\n" + - "varying vec2 vTextureCoord;\n" + - "void main() {\n" + - " gl_Position = uMVPMatrix * aPosition;\n" + - " vTextureCoord = (uTexMatrix * aTextureCoord).xy;\n" + - "}\n"; +public interface Filter { + void setOutputSize(int width, int height); - /** - * Fragment shader code written in Shader Language (C) and stored as String. - * This wil be used by GL to apply any effect. - */ @NonNull - String mFragmentShader = - "#extension GL_OES_EGL_image_external : require\n" - + "precision mediump float;\n" - + "varying vec2 vTextureCoord;\n" - + "uniform samplerExternalOES sTexture;\n" - + "void main() {\n" - + " gl_FragColor = texture2D(sTexture, vTextureCoord);\n" - + "}\n"; - - /** - * Width and height of previewing GlSurfaceview. - * This will be used by a few effects. - */ - int mPreviewingViewWidth = 0; - int mPreviewingViewHeight = 0; - - public void setOutputSize(int width, int height) { - mPreviewingViewWidth = width; - mPreviewingViewHeight = height; - } - - /** - * Local variable name which were used in the shader code. - * These will be used by openGL program to render these vertex and fragment shader - */ - private String mPositionVariableName = "aPosition"; - private String mTextureCoordinateVariableName = "aTextureCoord"; - private String mMVPMatrixVariableName = "uMVPMatrix"; - private String mTextureMatrixVariableName = "uTexMatrix"; - - public String getPositionVariableName() { - return mPositionVariableName; - } - - public void setPositionVariableName(String positionVariableName) { - this.mPositionVariableName = positionVariableName; - } - - public String getTexttureCoordinateVariableName() { - return mTextureCoordinateVariableName; - } - - public void setTexttureCoordinateVariableName(String texttureCoordinateVariableName) { - this.mTextureCoordinateVariableName = texttureCoordinateVariableName; - } - - public String getMVPMatrixVariableName() { - return mMVPMatrixVariableName; - } - - public void setMVPMatrixVariableName(String mvpMatrixVariableName) { - this.mMVPMatrixVariableName = mvpMatrixVariableName; - } - - public String getTextureMatrixVariableName() { - return mTextureMatrixVariableName; - } - - public void setTextureMatrixVariableName(String textureMatrixVariableName) { - this.mTextureMatrixVariableName = textureMatrixVariableName; - } - - /** - * Get vertex Shader code - * - * @return complete shader code in C - */ - @NonNull - public String getVertexShader() { - return mVertexShader; - } - + String getVertexShader(); - /** - * Get fragment Shader code - * - * @return complete shader code in C - */ @NonNull - public abstract String getFragmentShader(); + String getFragmentShader(); } diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/GammaFilter.java b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/GammaFilter.java index aa17715a..a6a53c00 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/GammaFilter.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/GammaFilter.java @@ -5,7 +5,7 @@ import androidx.annotation.NonNull; /** * Apply Gamma Effect on preview being played */ -public class GammaFilter extends Filter { +public class GammaFilter extends BaseFilter { private float gammaValue = 2.0f; /** diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/GrainFilter.java b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/GrainFilter.java index e7292ac7..55938ecb 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/GrainFilter.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/GrainFilter.java @@ -8,7 +8,7 @@ import java.util.Random; /** * Applies film grain effect to preview. */ -public class GrainFilter extends Filter { +public class GrainFilter extends BaseFilter { private float strength = 0.5f; private Random mRandom; diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/GrayscaleFilter.java b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/GrayscaleFilter.java index 6015120f..0f0d3bd8 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/GrayscaleFilter.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/GrayscaleFilter.java @@ -5,7 +5,7 @@ import androidx.annotation.NonNull; /** * Converts preview to GreyScale. */ -public class GrayscaleFilter extends Filter { +public class GrayscaleFilter extends BaseFilter { /** * Initialize Effect */ diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/HueFilter.java b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/HueFilter.java index 7a74cd2f..ee0ed2eb 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/HueFilter.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/HueFilter.java @@ -5,7 +5,7 @@ import androidx.annotation.NonNull; /** * Apply Hue effect on the preview */ -public class HueFilter extends Filter { +public class HueFilter extends BaseFilter { float hueValue = 0.0f; /** diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/InvertColorsFilter.java b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/InvertColorsFilter.java index 638819d8..df22216a 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/InvertColorsFilter.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/InvertColorsFilter.java @@ -5,7 +5,7 @@ import androidx.annotation.NonNull; /** * Inverts the preview colors. This can also be known as negative Effect. */ -public class InvertColorsFilter extends Filter { +public class InvertColorsFilter extends BaseFilter { /** * Initialize Effect */ diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/LamoishFilter.java b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/LamoishFilter.java index b4fce780..5734585b 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/LamoishFilter.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/LamoishFilter.java @@ -8,7 +8,7 @@ import java.util.Random; /** * Applies lomo-camera style effect to preview. */ -public class LamoishFilter extends Filter { +public class LamoishFilter extends BaseFilter { private Random mRandom; /** diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/NoFilter.java b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/NoFilter.java index 5f76028d..005a5887 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/NoFilter.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/NoFilter.java @@ -2,7 +2,7 @@ package com.otaliastudios.cameraview.filters; import androidx.annotation.NonNull; -public class NoFilter extends Filter { +public class NoFilter extends BaseFilter { @NonNull @Override diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/PosterizeFilter.java b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/PosterizeFilter.java index df70697e..86eee47f 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/PosterizeFilter.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/PosterizeFilter.java @@ -5,7 +5,7 @@ import androidx.annotation.NonNull; /** * Applies Posterization effect to Preview. */ -public class PosterizeFilter extends Filter { +public class PosterizeFilter extends BaseFilter { /** * Initialize Effect */ diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/SaturationFilter.java b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/SaturationFilter.java index ddb02931..73ed84f5 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/SaturationFilter.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/SaturationFilter.java @@ -5,7 +5,7 @@ import androidx.annotation.NonNull; /** * Adjusts color saturation of preview. */ -public class SaturationFilter extends Filter { +public class SaturationFilter extends BaseFilter { private float scale = 1.0f; /** diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/SepiaFilter.java b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/SepiaFilter.java index c312bee2..8de33517 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/SepiaFilter.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/SepiaFilter.java @@ -5,7 +5,7 @@ import androidx.annotation.NonNull; /** * Converts preview to Sepia tone. */ -public class SepiaFilter extends Filter { +public class SepiaFilter extends BaseFilter { /** * Initialize Effect */ diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/SharpnessFilter.java b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/SharpnessFilter.java index 8984a12d..c2013806 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/SharpnessFilter.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/SharpnessFilter.java @@ -5,7 +5,7 @@ import androidx.annotation.NonNull; /** * Sharpens the preview. */ -public class SharpnessFilter extends Filter { +public class SharpnessFilter extends BaseFilter { private float scale = 0.5f; /** diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/TemperatureFilter.java b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/TemperatureFilter.java index fbcf5710..178494a7 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/TemperatureFilter.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/TemperatureFilter.java @@ -5,7 +5,7 @@ import androidx.annotation.NonNull; /** * Adjusts color temperature of the preview. */ -public class TemperatureFilter extends Filter { +public class TemperatureFilter extends BaseFilter { private float scale = 0f; /** diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/TintFilter.java b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/TintFilter.java index a7a9cd08..67f1f9f2 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/TintFilter.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/TintFilter.java @@ -8,7 +8,7 @@ import androidx.annotation.NonNull; /** * Tints the preview with specified color.. */ -public class TintFilter extends Filter { +public class TintFilter extends BaseFilter { private int mTint = 0xFFFF0000; /** diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/VignetteFilter.java b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/VignetteFilter.java index 3d515e48..1d861225 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/VignetteFilter.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/VignetteFilter.java @@ -6,7 +6,7 @@ import androidx.annotation.NonNull; /** * Applies lomo-camera style effect to your preview. */ -public class VignetteFilter extends Filter { +public class VignetteFilter extends BaseFilter { private float mScale = 0.85f; private float mShade = 0.5f;