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. 3
      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. 5
      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. 5
      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
public void setFilter(Filters filter) {
public void setFilter(@NonNull Filters filter) {
if (mCameraPreview instanceof GlCameraPreview) {
Filter shaderEffect = filter.newInstance();
((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) {
((GlCameraPreview) mCameraPreview).setShaderEffect(shaderEffect);
} else {

@ -1,6 +1,6 @@
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.
@ -32,6 +32,7 @@ public class AutoFixEffect extends Filter {
this.scale = scale;
}
@NonNull
@Override
public String getFragmentShader() {

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

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

@ -1,6 +1,7 @@
package com.otaliastudios.cameraview.filters;
import com.otaliastudios.cameraview.filters.Filter;
import androidx.annotation.NonNull;
/**
* 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.
*/
public void setContrast(float contrast){
public void setContrast(float contrast) {
if (contrast < 0.0f)
contrast = 0.0f;
else if (contrast > 1.0f)
@ -34,6 +36,7 @@ public class ContrastEffect extends Filter {
return contrast - 1.0f;
}
@NonNull
@Override
public String getFragmentShader() {

@ -1,6 +1,6 @@
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
@ -14,6 +14,7 @@ public class CrossProcessEffect extends Filter {
public CrossProcessEffect() {
}
@NonNull
@Override
public String getFragmentShader() {

@ -1,6 +1,6 @@
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;
}
@NonNull
@Override
public String getFragmentShader() {
return mFragmentShader;

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

@ -2,7 +2,7 @@ package com.otaliastudios.cameraview.filters;
import android.graphics.Color;
import com.otaliastudios.cameraview.filters.Filter;
import androidx.annotation.NonNull;
/**
* Representation of preview using only two color tones.
@ -39,6 +39,7 @@ public class DuotoneEffect extends Filter {
return mSecondColor;
}
@NonNull
@Override
public String getFragmentShader() {
float first[] = {Color.red(mFirstColor) / 255f,

@ -1,6 +1,6 @@
package com.otaliastudios.cameraview.filters;
import com.otaliastudios.cameraview.filters.Filter;
import androidx.annotation.NonNull;
/**
* 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.
*/
public void setStrength(float strength){
public void setStrength(float strength) {
if (strength < 0.0f)
strength = 0f;
else if (strength > 1.0f)
@ -32,6 +32,7 @@ public class FillLightEffect extends Filter {
return strength;
}
@NonNull
@Override
public String getFragmentShader() {
float fade_gamma = 0.3f;

@ -1,5 +1,7 @@
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.
* <p>
@ -24,7 +26,7 @@ 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" +
@ -41,6 +43,7 @@ public abstract class Filter {
* 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"
@ -57,7 +60,7 @@ public abstract class Filter {
int mPreviewingViewWidth = 0;
int mPreviewingViewHeight = 0;
public void setPreviewingViewSize(int width, int height){
public void setPreviewingViewSize(int width, int height) {
mPreviewingViewWidth = width;
mPreviewingViewHeight = height;
}
@ -108,6 +111,7 @@ public abstract class Filter {
*
* @return complete shader code in C
*/
@NonNull
public String getVertexShader() {
return mVertexShader;
}
@ -118,6 +122,7 @@ public abstract class Filter {
*
* @return complete shader code in C
*/
@NonNull
public abstract String getFragmentShader();
}

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

@ -1,6 +1,6 @@
package com.otaliastudios.cameraview.filters;
import com.otaliastudios.cameraview.filters.Filter;
import androidx.annotation.NonNull;
/**
* 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.
*/
public void setGammaValue(float gammaValue){
public void setGammaValue(float gammaValue) {
if (gammaValue < 0.0f)
gammaValue = 0.0f;
else if (gammaValue > 1.0f)
@ -36,6 +36,7 @@ public class GammaEffect extends Filter {
return gammaValue / 2.0f;
}
@NonNull
@Override
public String getFragmentShader() {

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

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

@ -1,6 +1,6 @@
package com.otaliastudios.cameraview.filters;
import com.otaliastudios.cameraview.filters.Filter;
import androidx.annotation.NonNull;
/**
* 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" >
*
* @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
hueValue = ((hueDegrees - 45) / 45f + 0.5f) * -1;
}
@NonNull
@Override
public String getFragmentShader() {

@ -1,6 +1,6 @@
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.
@ -12,6 +12,7 @@ public class InvertColorsEffect extends Filter {
public InvertColorsEffect() {
}
@NonNull
@Override
public String getFragmentShader() {

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

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

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

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

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

@ -1,6 +1,6 @@
package com.otaliastudios.cameraview.filters;
import com.otaliastudios.cameraview.filters.Filter;
import androidx.annotation.NonNull;
/**
* Sharpens the preview.
@ -11,12 +11,13 @@ public class SharpnessEffect extends Filter {
/**
* Initialize Effect
*/
public SharpnessEffect() { }
public SharpnessEffect() {
}
/**
* @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)
value = 0.0f;
else if (value > 1.0f)
@ -29,6 +30,7 @@ public class SharpnessEffect extends Filter {
return scale;
}
@NonNull
@Override
public String getFragmentShader() {

@ -1,6 +1,6 @@
package com.otaliastudios.cameraview.filters;
import com.otaliastudios.cameraview.filters.Filter;
import androidx.annotation.NonNull;
/**
* Adjusts color temperature of the preview.
@ -18,7 +18,7 @@ public class TemperatureEffect extends Filter {
* @param scale Float, between 0 and 1, with 0 indicating cool, and 1
* 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)
scale = 0.0f;
else if (scale > 1.0f)
@ -30,6 +30,7 @@ public class TemperatureEffect extends Filter {
return scale;
}
@NonNull
@Override
public String getFragmentShader() {

@ -2,7 +2,7 @@ package com.otaliastudios.cameraview.filters;
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 void setTintColor(int color){
public void setTintColor(int color) {
this.mTint = color;
}
@ -25,6 +25,7 @@ public class TintEffect extends Filter {
return mTint;
}
@NonNull
@Override
public String getFragmentShader() {
float color_ratio[] = {0.21f, 0.71f, 0.07f};

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

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

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

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

Loading…
Cancel
Save