added annotations

pull/527/head
Suneet Agrawal 6 years ago
parent 34f1a49ed2
commit 5f1dcbaccb
  1. 4
      cameraview/src/main/java/com/otaliastudios/cameraview/CameraView.java
  2. 3
      cameraview/src/main/java/com/otaliastudios/cameraview/filters/AutoFixEffect.java
  3. 5
      cameraview/src/main/java/com/otaliastudios/cameraview/filters/BlackAndWhiteEffect.java
  4. 3
      cameraview/src/main/java/com/otaliastudios/cameraview/filters/BrightnessEffect.java
  5. 9
      cameraview/src/main/java/com/otaliastudios/cameraview/filters/ContrastEffect.java
  6. 3
      cameraview/src/main/java/com/otaliastudios/cameraview/filters/CrossProcessEffect.java
  7. 3
      cameraview/src/main/java/com/otaliastudios/cameraview/filters/CustomEffect.java
  8. 3
      cameraview/src/main/java/com/otaliastudios/cameraview/filters/DocumentaryEffect.java
  9. 9
      cameraview/src/main/java/com/otaliastudios/cameraview/filters/DuotoneEffect.java
  10. 5
      cameraview/src/main/java/com/otaliastudios/cameraview/filters/FillLightEffect.java
  11. 9
      cameraview/src/main/java/com/otaliastudios/cameraview/filters/Filter.java
  12. 2
      cameraview/src/main/java/com/otaliastudios/cameraview/filters/Filters.java
  13. 5
      cameraview/src/main/java/com/otaliastudios/cameraview/filters/GammaEffect.java
  14. 7
      cameraview/src/main/java/com/otaliastudios/cameraview/filters/GrainEffect.java
  15. 3
      cameraview/src/main/java/com/otaliastudios/cameraview/filters/GreyScaleEffect.java
  16. 6
      cameraview/src/main/java/com/otaliastudios/cameraview/filters/HueEffect.java
  17. 3
      cameraview/src/main/java/com/otaliastudios/cameraview/filters/InvertColorsEffect.java
  18. 5
      cameraview/src/main/java/com/otaliastudios/cameraview/filters/LamoishEffect.java
  19. 3
      cameraview/src/main/java/com/otaliastudios/cameraview/filters/NoFilterEffect.java
  20. 3
      cameraview/src/main/java/com/otaliastudios/cameraview/filters/PosterizeEffect.java
  21. 3
      cameraview/src/main/java/com/otaliastudios/cameraview/filters/SaturationEffect.java
  22. 3
      cameraview/src/main/java/com/otaliastudios/cameraview/filters/SepiaEffect.java
  23. 8
      cameraview/src/main/java/com/otaliastudios/cameraview/filters/SharpnessEffect.java
  24. 7
      cameraview/src/main/java/com/otaliastudios/cameraview/filters/TemperatureEffect.java
  25. 5
      cameraview/src/main/java/com/otaliastudios/cameraview/filters/TintEffect.java
  26. 9
      cameraview/src/main/java/com/otaliastudios/cameraview/filters/VignetteEffect.java
  27. 4
      cameraview/src/main/java/com/otaliastudios/cameraview/internal/egl/EglViewport.java
  28. 2
      cameraview/src/main/java/com/otaliastudios/cameraview/preview/GlCameraPreview.java
  29. 5
      demo/src/main/java/com/otaliastudios/cameraview/demo/CameraActivity.java

@ -2132,7 +2132,7 @@ public class CameraView extends FrameLayout implements LifecycleObserver {
//region Effects //region Effects
public void setFilter(Filters filter) { public void setFilter(@NonNull Filters filter) {
if (mCameraPreview instanceof GlCameraPreview) { if (mCameraPreview instanceof GlCameraPreview) {
Filter shaderEffect = filter.newInstance(); Filter shaderEffect = filter.newInstance();
((GlCameraPreview) mCameraPreview).setShaderEffect(shaderEffect); ((GlCameraPreview) mCameraPreview).setShaderEffect(shaderEffect);
@ -2141,7 +2141,7 @@ public class CameraView extends FrameLayout implements LifecycleObserver {
} }
} }
public void setFilter(Filter shaderEffect) { public void setFilter(@NonNull Filter shaderEffect) {
if (mCameraPreview instanceof GlCameraPreview) { if (mCameraPreview instanceof GlCameraPreview) {
((GlCameraPreview) mCameraPreview).setShaderEffect(shaderEffect); ((GlCameraPreview) mCameraPreview).setShaderEffect(shaderEffect);
} else { } else {

@ -1,6 +1,6 @@
package com.otaliastudios.cameraview.filters; package com.otaliastudios.cameraview.filters;
import com.otaliastudios.cameraview.filters.Filter; import androidx.annotation.NonNull;
/** /**
* Attempts to auto-fix the preview based on histogram equalization. * Attempts to auto-fix the preview based on histogram equalization.
@ -32,6 +32,7 @@ public class AutoFixEffect extends Filter {
this.scale = scale; this.scale = scale;
} }
@NonNull
@Override @Override
public String getFragmentShader() { public String getFragmentShader() {

@ -1,6 +1,6 @@
package com.otaliastudios.cameraview.filters; package com.otaliastudios.cameraview.filters;
import com.otaliastudios.cameraview.filters.Filter; import androidx.annotation.NonNull;
/** /**
* Converts the preview into black and white colors * Converts the preview into black and white colors
@ -11,9 +11,10 @@ public class BlackAndWhiteEffect extends Filter {
/** /**
* Initialize effect * Initialize effect
*/ */
public BlackAndWhiteEffect(){ public BlackAndWhiteEffect() {
} }
@NonNull
@Override @Override
public String getFragmentShader() { public String getFragmentShader() {

@ -1,6 +1,6 @@
package com.otaliastudios.cameraview.filters; package com.otaliastudios.cameraview.filters;
import com.otaliastudios.cameraview.filters.Filter; import androidx.annotation.NonNull;
/** /**
* Adjusts the brightness of the preview. * Adjusts the brightness of the preview.
@ -36,6 +36,7 @@ public class BrightnessEffect extends Filter {
return brightnessValue - 1.0f; return brightnessValue - 1.0f;
} }
@NonNull
@Override @Override
public String getFragmentShader() { public String getFragmentShader() {

@ -1,6 +1,7 @@
package com.otaliastudios.cameraview.filters; package com.otaliastudios.cameraview.filters;
import com.otaliastudios.cameraview.filters.Filter; import androidx.annotation.NonNull;
/** /**
* Adjusts the contrast of the preview. * Adjusts the contrast of the preview.
*/ */
@ -14,10 +15,11 @@ public class ContrastEffect extends Filter {
} }
/** /**
*setContrast * setContrast
*
* @param contrast Range should be between 0.0- 1.0 with 0.0 being normal. * @param contrast Range should be between 0.0- 1.0 with 0.0 being normal.
*/ */
public void setContrast(float contrast){ public void setContrast(float contrast) {
if (contrast < 0.0f) if (contrast < 0.0f)
contrast = 0.0f; contrast = 0.0f;
else if (contrast > 1.0f) else if (contrast > 1.0f)
@ -34,6 +36,7 @@ public class ContrastEffect extends Filter {
return contrast - 1.0f; return contrast - 1.0f;
} }
@NonNull
@Override @Override
public String getFragmentShader() { public String getFragmentShader() {

@ -1,6 +1,6 @@
package com.otaliastudios.cameraview.filters; package com.otaliastudios.cameraview.filters;
import com.otaliastudios.cameraview.filters.Filter; import androidx.annotation.NonNull;
/** /**
* Applies a cross process effect on preview, in which the red and green channels * Applies a cross process effect on preview, in which the red and green channels
@ -14,6 +14,7 @@ public class CrossProcessEffect extends Filter {
public CrossProcessEffect() { public CrossProcessEffect() {
} }
@NonNull
@Override @Override
public String getFragmentShader() { public String getFragmentShader() {

@ -1,6 +1,6 @@
package com.otaliastudios.cameraview.filters; package com.otaliastudios.cameraview.filters;
import com.otaliastudios.cameraview.filters.Filter; import androidx.annotation.NonNull;
/** /**
@ -19,6 +19,7 @@ public class CustomEffect extends Filter {
this.mFragmentShader = fragmentShader; this.mFragmentShader = fragmentShader;
} }
@NonNull
@Override @Override
public String getFragmentShader() { public String getFragmentShader() {
return mFragmentShader; return mFragmentShader;

@ -1,6 +1,6 @@
package com.otaliastudios.cameraview.filters; package com.otaliastudios.cameraview.filters;
import com.otaliastudios.cameraview.filters.Filter; import androidx.annotation.NonNull;
import java.util.Date; import java.util.Date;
import java.util.Random; import java.util.Random;
@ -15,6 +15,7 @@ public class DocumentaryEffect extends Filter {
mRandom = new Random(new Date().getTime()); mRandom = new Random(new Date().getTime());
} }
@NonNull
@Override @Override
public String getFragmentShader() { public String getFragmentShader() {
float scale[] = new float[2]; float scale[] = new float[2];

@ -2,7 +2,7 @@ package com.otaliastudios.cameraview.filters;
import android.graphics.Color; import android.graphics.Color;
import com.otaliastudios.cameraview.filters.Filter; import androidx.annotation.NonNull;
/** /**
* Representation of preview using only two color tones. * Representation of preview using only two color tones.
@ -21,10 +21,10 @@ public class DuotoneEffect extends Filter {
/** /**
* setDuoToneColors * setDuoToneColors
* *
* @param firstColor Integer, representing an ARGB color with 8 bits per channel. * @param firstColor Integer, representing an ARGB color with 8 bits per channel.
* May be created using Color class. * May be created using Color class.
* @param secondColor Integer, representing an ARGB color with 8 bits per channel. * @param secondColor Integer, representing an ARGB color with 8 bits per channel.
* May be created using Color class. * May be created using Color class.
*/ */
public void setDuoToneColors(int firstColor, int secondColor) { public void setDuoToneColors(int firstColor, int secondColor) {
this.mFirstColor = firstColor; this.mFirstColor = firstColor;
@ -39,6 +39,7 @@ public class DuotoneEffect extends Filter {
return mSecondColor; return mSecondColor;
} }
@NonNull
@Override @Override
public String getFragmentShader() { public String getFragmentShader() {
float first[] = {Color.red(mFirstColor) / 255f, float first[] = {Color.red(mFirstColor) / 255f,

@ -1,6 +1,6 @@
package com.otaliastudios.cameraview.filters; package com.otaliastudios.cameraview.filters;
import com.otaliastudios.cameraview.filters.Filter; import androidx.annotation.NonNull;
/** /**
* Applies back-light filling to the preview. * Applies back-light filling to the preview.
@ -19,7 +19,7 @@ public class FillLightEffect extends Filter {
* *
* @param strength Float, between 0.0 and 1.0 where 0.0 means no change. * @param strength Float, between 0.0 and 1.0 where 0.0 means no change.
*/ */
public void setStrength(float strength){ public void setStrength(float strength) {
if (strength < 0.0f) if (strength < 0.0f)
strength = 0f; strength = 0f;
else if (strength > 1.0f) else if (strength > 1.0f)
@ -32,6 +32,7 @@ public class FillLightEffect extends Filter {
return strength; return strength;
} }
@NonNull
@Override @Override
public String getFragmentShader() { public String getFragmentShader() {
float fade_gamma = 0.3f; float fade_gamma = 0.3f;

@ -1,5 +1,7 @@
package com.otaliastudios.cameraview.filters; 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. * A Base abstract class that every effect must extend so that there is a common getShader method.
* <p> * <p>
@ -24,7 +26,7 @@ public abstract class Filter {
* Vertex shader code written in Shader Language (C) and stored as String. * Vertex shader code written in Shader Language (C) and stored as String.
* This wil be used by GL to apply any effect. * This wil be used by GL to apply any effect.
*/ */
@NonNull
String mVertexShader = String mVertexShader =
"uniform mat4 uMVPMatrix;\n" + "uniform mat4 uMVPMatrix;\n" +
"uniform mat4 uTexMatrix;\n" + "uniform mat4 uTexMatrix;\n" +
@ -41,6 +43,7 @@ public abstract class Filter {
* Fragment shader code written in Shader Language (C) and stored as String. * Fragment shader code written in Shader Language (C) and stored as String.
* This wil be used by GL to apply any effect. * This wil be used by GL to apply any effect.
*/ */
@NonNull
String mFragmentShader = String mFragmentShader =
"#extension GL_OES_EGL_image_external : require\n" "#extension GL_OES_EGL_image_external : require\n"
+ "precision mediump float;\n" + "precision mediump float;\n"
@ -57,7 +60,7 @@ public abstract class Filter {
int mPreviewingViewWidth = 0; int mPreviewingViewWidth = 0;
int mPreviewingViewHeight = 0; int mPreviewingViewHeight = 0;
public void setPreviewingViewSize(int width, int height){ public void setPreviewingViewSize(int width, int height) {
mPreviewingViewWidth = width; mPreviewingViewWidth = width;
mPreviewingViewHeight = height; mPreviewingViewHeight = height;
} }
@ -108,6 +111,7 @@ public abstract class Filter {
* *
* @return complete shader code in C * @return complete shader code in C
*/ */
@NonNull
public String getVertexShader() { public String getVertexShader() {
return mVertexShader; return mVertexShader;
} }
@ -118,6 +122,7 @@ public abstract class Filter {
* *
* @return complete shader code in C * @return complete shader code in C
*/ */
@NonNull
public abstract String getFragmentShader(); public abstract String getFragmentShader();
} }

@ -25,7 +25,7 @@ public enum Filters {
TINT_EFFECT, TINT_EFFECT,
VIGNETTE_EFFECT; VIGNETTE_EFFECT;
public Filter newInstance(){ public Filter newInstance() {
Filter shaderEffect; Filter shaderEffect;
switch (this) { switch (this) {

@ -1,6 +1,6 @@
package com.otaliastudios.cameraview.filters; package com.otaliastudios.cameraview.filters;
import com.otaliastudios.cameraview.filters.Filter; import androidx.annotation.NonNull;
/** /**
* Apply Gamma Effect on preview being played * Apply Gamma Effect on preview being played
@ -19,7 +19,7 @@ public class GammaEffect extends Filter {
* *
* @param gammaValue Range should be between 0.0 - 1.0 with 0.5 being normal. * @param gammaValue Range should be between 0.0 - 1.0 with 0.5 being normal.
*/ */
public void setGammaValue(float gammaValue){ public void setGammaValue(float gammaValue) {
if (gammaValue < 0.0f) if (gammaValue < 0.0f)
gammaValue = 0.0f; gammaValue = 0.0f;
else if (gammaValue > 1.0f) else if (gammaValue > 1.0f)
@ -36,6 +36,7 @@ public class GammaEffect extends Filter {
return gammaValue / 2.0f; return gammaValue / 2.0f;
} }
@NonNull
@Override @Override
public String getFragmentShader() { public String getFragmentShader() {

@ -1,6 +1,6 @@
package com.otaliastudios.cameraview.filters; package com.otaliastudios.cameraview.filters;
import com.otaliastudios.cameraview.filters.Filter; import androidx.annotation.NonNull;
import java.util.Date; import java.util.Date;
import java.util.Random; import java.util.Random;
@ -23,9 +23,9 @@ public class GrainEffect extends Filter {
* setDistortionStrength * setDistortionStrength
* *
* @param strength Float, between 0.0f and 1.0. Zero means no distortion, while 1 * @param strength Float, between 0.0f and 1.0. Zero means no distortion, while 1
* indicates the maximum amount of adjustment. * indicates the maximum amount of adjustment.
*/ */
public void setDistortionStrength(float strength){ public void setDistortionStrength(float strength) {
if (strength < 0.0f) if (strength < 0.0f)
strength = 0.0f; strength = 0.0f;
else if (strength > 1.0f) else if (strength > 1.0f)
@ -37,6 +37,7 @@ public class GrainEffect extends Filter {
return strength; return strength;
} }
@NonNull
@Override @Override
public String getFragmentShader() { public String getFragmentShader() {
float seed[] = {mRandom.nextFloat(), mRandom.nextFloat()}; float seed[] = {mRandom.nextFloat(), mRandom.nextFloat()};

@ -1,6 +1,6 @@
package com.otaliastudios.cameraview.filters; package com.otaliastudios.cameraview.filters;
import com.otaliastudios.cameraview.filters.Filter; import androidx.annotation.NonNull;
/** /**
* Converts preview to GreyScale. * Converts preview to GreyScale.
@ -12,6 +12,7 @@ public class GreyScaleEffect extends Filter {
public GreyScaleEffect() { public GreyScaleEffect() {
} }
@NonNull
@Override @Override
public String getFragmentShader() { public String getFragmentShader() {

@ -1,6 +1,6 @@
package com.otaliastudios.cameraview.filters; package com.otaliastudios.cameraview.filters;
import com.otaliastudios.cameraview.filters.Filter; import androidx.annotation.NonNull;
/** /**
* Apply Hue effect on the preview * Apply Hue effect on the preview
@ -16,13 +16,15 @@ public class HueEffect extends Filter {
/** /**
* Hue value chart - https://cloud.githubusercontent.com/assets/2201511/21810115/b99ac22a-d74a-11e6-9f6c-ef74d15c88c7.jpg" > * Hue value chart - https://cloud.githubusercontent.com/assets/2201511/21810115/b99ac22a-d74a-11e6-9f6c-ef74d15c88c7.jpg" >
*
* @param hueDegrees Range of value should be between 0 to 360 degrees as described in the image above * @param hueDegrees Range of value should be between 0 to 360 degrees as described in the image above
*/ */
public void setHueDegreeValue(float hueDegrees){ public void setHueDegreeValue(float hueDegrees) {
// manipulating input value so that we can map it on 360 degree circle // manipulating input value so that we can map it on 360 degree circle
hueValue = ((hueDegrees - 45) / 45f + 0.5f) * -1; hueValue = ((hueDegrees - 45) / 45f + 0.5f) * -1;
} }
@NonNull
@Override @Override
public String getFragmentShader() { public String getFragmentShader() {

@ -1,6 +1,6 @@
package com.otaliastudios.cameraview.filters; package com.otaliastudios.cameraview.filters;
import com.otaliastudios.cameraview.filters.Filter; import androidx.annotation.NonNull;
/** /**
* Inverts the preview colors. This can also be known as negative Effect. * Inverts the preview colors. This can also be known as negative Effect.
@ -12,6 +12,7 @@ public class InvertColorsEffect extends Filter {
public InvertColorsEffect() { public InvertColorsEffect() {
} }
@NonNull
@Override @Override
public String getFragmentShader() { public String getFragmentShader() {

@ -1,6 +1,6 @@
package com.otaliastudios.cameraview.filters; package com.otaliastudios.cameraview.filters;
import com.otaliastudios.cameraview.filters.Filter; import androidx.annotation.NonNull;
import java.util.Date; import java.util.Date;
import java.util.Random; import java.util.Random;
@ -13,13 +13,12 @@ public class LamoishEffect extends Filter {
/** /**
* Initialize Effect * Initialize Effect
*
* @param glSurfaceView GLSurfaceView
*/ */
public LamoishEffect() { public LamoishEffect() {
mRandom = new Random(new Date().getTime()); mRandom = new Random(new Date().getTime());
} }
@NonNull
@Override @Override
public String getFragmentShader() { public String getFragmentShader() {
float scale[] = new float[2]; float scale[] = new float[2];

@ -1,9 +1,10 @@
package com.otaliastudios.cameraview.filters; package com.otaliastudios.cameraview.filters;
import com.otaliastudios.cameraview.filters.Filter; import androidx.annotation.NonNull;
public class NoFilterEffect extends Filter { public class NoFilterEffect extends Filter {
@NonNull
@Override @Override
public String getFragmentShader() { public String getFragmentShader() {
return mFragmentShader; return mFragmentShader;

@ -1,6 +1,6 @@
package com.otaliastudios.cameraview.filters; package com.otaliastudios.cameraview.filters;
import com.otaliastudios.cameraview.filters.Filter; import androidx.annotation.NonNull;
/** /**
* Applies Posterization effect to Preview. * Applies Posterization effect to Preview.
@ -12,6 +12,7 @@ public class PosterizeEffect extends Filter {
public PosterizeEffect() { public PosterizeEffect() {
} }
@NonNull
@Override @Override
public String getFragmentShader() { public String getFragmentShader() {

@ -1,6 +1,6 @@
package com.otaliastudios.cameraview.filters; package com.otaliastudios.cameraview.filters;
import com.otaliastudios.cameraview.filters.Filter; import androidx.annotation.NonNull;
/** /**
* Adjusts color saturation of preview. * Adjusts color saturation of preview.
@ -36,6 +36,7 @@ public class SaturationEffect extends Filter {
return (scale + 1.0f) / 2.0f; return (scale + 1.0f) / 2.0f;
} }
@NonNull
@Override @Override
public String getFragmentShader() { public String getFragmentShader() {
float shift = 1.0f / 255.0f; float shift = 1.0f / 255.0f;

@ -1,6 +1,6 @@
package com.otaliastudios.cameraview.filters; package com.otaliastudios.cameraview.filters;
import com.otaliastudios.cameraview.filters.Filter; import androidx.annotation.NonNull;
/** /**
* Converts preview to Sepia tone. * Converts preview to Sepia tone.
@ -12,6 +12,7 @@ public class SepiaEffect extends Filter {
public SepiaEffect() { public SepiaEffect() {
} }
@NonNull
@Override @Override
public String getFragmentShader() { public String getFragmentShader() {
float weights[] = {805.0f / 2048.0f, 715.0f / 2048.0f, float weights[] = {805.0f / 2048.0f, 715.0f / 2048.0f,

@ -1,6 +1,6 @@
package com.otaliastudios.cameraview.filters; package com.otaliastudios.cameraview.filters;
import com.otaliastudios.cameraview.filters.Filter; import androidx.annotation.NonNull;
/** /**
* Sharpens the preview. * Sharpens the preview.
@ -11,12 +11,13 @@ public class SharpnessEffect extends Filter {
/** /**
* Initialize Effect * Initialize Effect
*/ */
public SharpnessEffect() { } public SharpnessEffect() {
}
/** /**
* @param value Float, between 0 and 1. 0 means no change. * @param value Float, between 0 and 1. 0 means no change.
*/ */
public void setSharpnessValue(float value){ public void setSharpnessValue(float value) {
if (value < 0.0f) if (value < 0.0f)
value = 0.0f; value = 0.0f;
else if (value > 1.0f) else if (value > 1.0f)
@ -29,6 +30,7 @@ public class SharpnessEffect extends Filter {
return scale; return scale;
} }
@NonNull
@Override @Override
public String getFragmentShader() { public String getFragmentShader() {

@ -1,6 +1,6 @@
package com.otaliastudios.cameraview.filters; package com.otaliastudios.cameraview.filters;
import com.otaliastudios.cameraview.filters.Filter; import androidx.annotation.NonNull;
/** /**
* Adjusts color temperature of the preview. * Adjusts color temperature of the preview.
@ -16,9 +16,9 @@ public class TemperatureEffect extends Filter {
/** /**
* @param scale Float, between 0 and 1, with 0 indicating cool, and 1 * @param scale Float, between 0 and 1, with 0 indicating cool, and 1
* indicating warm. A value of of 0.5 indicates no change. * indicating warm. A value of of 0.5 indicates no change.
*/ */
public void setTemperatureScale(float scale){ public void setTemperatureScale(float scale) {
if (scale < 0.0f) if (scale < 0.0f)
scale = 0.0f; scale = 0.0f;
else if (scale > 1.0f) else if (scale > 1.0f)
@ -30,6 +30,7 @@ public class TemperatureEffect extends Filter {
return scale; return scale;
} }
@NonNull
@Override @Override
public String getFragmentShader() { public String getFragmentShader() {

@ -2,7 +2,7 @@ package com.otaliastudios.cameraview.filters;
import android.graphics.Color; import android.graphics.Color;
import com.otaliastudios.cameraview.filters.Filter; import androidx.annotation.NonNull;
/** /**
@ -17,7 +17,7 @@ public class TintEffect extends Filter {
public TintEffect() { public TintEffect() {
} }
public void setTintColor(int color){ public void setTintColor(int color) {
this.mTint = color; this.mTint = color;
} }
@ -25,6 +25,7 @@ public class TintEffect extends Filter {
return mTint; return mTint;
} }
@NonNull
@Override @Override
public String getFragmentShader() { public String getFragmentShader() {
float color_ratio[] = {0.21f, 0.71f, 0.07f}; float color_ratio[] = {0.21f, 0.71f, 0.07f};

@ -1,6 +1,6 @@
package com.otaliastudios.cameraview.filters; package com.otaliastudios.cameraview.filters;
import com.otaliastudios.cameraview.filters.Filter; import androidx.annotation.NonNull;
/** /**
@ -18,9 +18,10 @@ public class VignetteEffect extends Filter {
/** /**
* setVignetteEffectScale * setVignetteEffectScale
*
* @param scale Float, between 0.0 and 1. 0 * @param scale Float, between 0.0 and 1. 0
*/ */
public void setVignetteEffectScale(float scale){ public void setVignetteEffectScale(float scale) {
if (scale < 0.0f) if (scale < 0.0f)
scale = 0.0f; scale = 0.0f;
else if (scale > 1.0f) else if (scale > 1.0f)
@ -30,9 +31,10 @@ public class VignetteEffect extends Filter {
/** /**
* setVignetteEffectShade * setVignetteEffectShade
*
* @param shade Float, between 0.0 and 1. 0 * @param shade Float, between 0.0 and 1. 0
*/ */
public void setVignetteEffectShade(float shade){ public void setVignetteEffectShade(float shade) {
if (shade < 0.0f) if (shade < 0.0f)
shade = 0.0f; shade = 0.0f;
else if (shade > 1.0f) else if (shade > 1.0f)
@ -40,6 +42,7 @@ public class VignetteEffect extends Filter {
this.mShade = shade; this.mShade = shade;
} }
@NonNull
@Override @Override
public String getFragmentShader() { public String getFragmentShader() {
float scale[] = new float[2]; float scale[] = new float[2];

@ -4,6 +4,8 @@ package com.otaliastudios.cameraview.internal.egl;
import android.opengl.GLES11Ext; import android.opengl.GLES11Ext;
import android.opengl.GLES20; import android.opengl.GLES20;
import androidx.annotation.NonNull;
import com.otaliastudios.cameraview.CameraLogger; import com.otaliastudios.cameraview.CameraLogger;
import com.otaliastudios.cameraview.filters.Filter; import com.otaliastudios.cameraview.filters.Filter;
import com.otaliastudios.cameraview.filters.NoFilterEffect; import com.otaliastudios.cameraview.filters.NoFilterEffect;
@ -110,7 +112,7 @@ public class EglViewport extends EglElement {
return texId; return texId;
} }
public void changeShaderEffect(Filter shaderEffect){ public void changeShaderEffect(@NonNull Filter shaderEffect){
this.mShaderEffect = shaderEffect; this.mShaderEffect = shaderEffect;
mIsShaderChanged = true; mIsShaderChanged = true;
} }

@ -316,7 +316,7 @@ public class GlCameraPreview extends CameraPreview<GLSurfaceView, SurfaceTexture
return new Renderer(); return new Renderer();
} }
public void setShaderEffect(Filter shaderEffect){ public void setShaderEffect(@NonNull Filter shaderEffect){
mCurrentShaderEffect = shaderEffect; mCurrentShaderEffect = shaderEffect;
shaderEffect.setPreviewingViewSize(getView().getWidth(), getView().getHeight()); shaderEffect.setPreviewingViewSize(getView().getWidth(), getView().getHeight());

@ -322,6 +322,11 @@ public class CameraActivity extends AppCompatActivity implements View.OnClickLis
} }
private void changeCurrentFilter(){ private void changeCurrentFilter(){
if (camera.getPreview() != Preview.GL_SURFACE) {
message("Filters are supported only for GLSurfaceView", true);
return;
}
switch (mCurrentEffect){ switch (mCurrentEffect){
case NO_EFFECT: case NO_EFFECT:
mCurrentEffect = AUTO_FIX_EFFECT; mCurrentEffect = AUTO_FIX_EFFECT;

Loading…
Cancel
Save