From 42ab7d3c309193ac9601880196e358dd6b153ed1 Mon Sep 17 00:00:00 2001 From: Suneet Agrawal Date: Mon, 5 Aug 2019 13:33:29 +0530 Subject: [PATCH] modified shaders and removed the glsurfaceview dependency --- .../cameraview/preview/GlCameraPreview.java | 10 ++++--- .../shadereffects/BaseShaderEffect.java | 11 ++++---- .../shadereffects/ShaderEffectFactory.java | 10 +++---- .../effects/DocumentaryEffect.java | 20 +++----------- .../shadereffects/effects/GrainEffect.java | 23 +++------------- .../shadereffects/effects/LamoishEffect.java | 26 +++++-------------- .../effects/SharpnessEffect.java | 21 +++------------ .../shadereffects/effects/VignetteEffect.java | 25 +++--------------- 8 files changed, 38 insertions(+), 108 deletions(-) diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/preview/GlCameraPreview.java b/cameraview/src/main/java/com/otaliastudios/cameraview/preview/GlCameraPreview.java index 35d36186..badfae13 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/preview/GlCameraPreview.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/preview/GlCameraPreview.java @@ -70,7 +70,7 @@ public class GlCameraPreview extends CameraPreview mHeight) { + if (mPreviewingViewWidth > mPreviewingViewHeight) { scale[0] = 1f; - scale[1] = ((float) mHeight) / mWidth; + scale[1] = ((float) mPreviewingViewHeight) / mPreviewingViewWidth; } else { - scale[0] = ((float) mWidth) / mHeight; + scale[0] = ((float) mPreviewingViewWidth) / mPreviewingViewHeight; scale[1] = 1f; } float max_dist = ((float) Math.sqrt(scale[0] * scale[0] + scale[1] diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/shadereffects/effects/GrainEffect.java b/cameraview/src/main/java/com/otaliastudios/cameraview/shadereffects/effects/GrainEffect.java index decb8f19..c64a15f7 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/shadereffects/effects/GrainEffect.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/shadereffects/effects/GrainEffect.java @@ -11,16 +11,14 @@ import java.util.Random; * Applies film grain effect to preview. */ public class GrainEffect extends BaseShaderEffect { - private int mWidth; - private int mHeight; private float strength = 0.5f; private Random mRandom; /** * Initialize Effect */ - public GrainEffect(GLSurfaceView glSurfaceView) { - this.mGlSurfaceView = glSurfaceView; + public GrainEffect() { + mRandom = new Random(new Date().getTime()); } /** @@ -41,28 +39,15 @@ public class GrainEffect extends BaseShaderEffect { return strength; } - /** - * Init all values that will be used by this shader. - * - * @param mGlSurfaceView which is responsible for displaying your video - */ - private void initValues(GLSurfaceView mGlSurfaceView) { - mWidth = mGlSurfaceView.getWidth(); - mHeight = mGlSurfaceView.getHeight(); - mRandom = new Random(new Date().getTime()); - } - @Override public String getFragmentShader() { - initValues(mGlSurfaceView); - float seed[] = {mRandom.nextFloat(), mRandom.nextFloat()}; String scaleString = "scale = " + strength + ";\n"; String seedString[] = new String[2]; seedString[0] = "seed[0] = " + seed[0] + ";\n"; seedString[1] = "seed[1] = " + seed[1] + ";\n"; - String stepX = "stepX = " + 0.5f / mWidth + ";\n"; - String stepY = "stepY = " + 0.5f / mHeight + ";\n"; + String stepX = "stepX = " + 0.5f / mPreviewingViewWidth + ";\n"; + String stepY = "stepY = " + 0.5f / mPreviewingViewHeight + ";\n"; // locString[1] = "loc[1] = loc[1]+" + seedString[1] + ";\n"; diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/shadereffects/effects/LamoishEffect.java b/cameraview/src/main/java/com/otaliastudios/cameraview/shadereffects/effects/LamoishEffect.java index db1721da..1cadd87c 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/shadereffects/effects/LamoishEffect.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/shadereffects/effects/LamoishEffect.java @@ -11,8 +11,6 @@ import java.util.Random; * Applies lomo-camera style effect to preview. */ public class LamoishEffect extends BaseShaderEffect { - private int mWidth; - private int mHeight; private Random mRandom; /** @@ -20,30 +18,18 @@ public class LamoishEffect extends BaseShaderEffect { * * @param glSurfaceView GLSurfaceView */ - public LamoishEffect(GLSurfaceView glSurfaceView) { - this.mGlSurfaceView = glSurfaceView; - } - - /** - * Init all values that will be used by this shader. - * - * @param mGlSurfaceView which is responsible for displaying your video - */ - private void initValues(GLSurfaceView mGlSurfaceView) { - mWidth = mGlSurfaceView.getWidth(); - mHeight = mGlSurfaceView.getHeight(); + public LamoishEffect() { mRandom = new Random(new Date().getTime()); } @Override public String getFragmentShader() { - initValues(mGlSurfaceView); float scale[] = new float[2]; - if (mWidth > mHeight) { + if (mPreviewingViewWidth > mPreviewingViewHeight) { scale[0] = 1f; - scale[1] = ((float) mHeight) / mWidth; + scale[1] = ((float) mPreviewingViewHeight) / mPreviewingViewWidth; } else { - scale[0] = ((float) mWidth) / mHeight; + scale[0] = ((float) mPreviewingViewWidth) / mPreviewingViewHeight; scale[1] = 1f; } float max_dist = ((float) Math.sqrt(scale[0] * scale[0] + scale[1] @@ -62,8 +48,8 @@ public class LamoishEffect extends BaseShaderEffect { String inv_max_distString = "inv_max_dist = " + 1.0f / max_dist + ";\n"; String stepsizeString = "stepsize = " + 1.0f / 255.0f + ";\n"; - String stepsizeXString = "stepsizeX = " + 1.0f / mWidth + ";\n"; - String stepsizeYString = "stepsizeY = " + 1.0f / mHeight + ";\n"; + String stepsizeXString = "stepsizeX = " + 1.0f / mPreviewingViewWidth + ";\n"; + String stepsizeYString = "stepsizeY = " + 1.0f / mPreviewingViewHeight + ";\n"; String shader = "#extension GL_OES_EGL_image_external : require\n" + "precision mediump float;\n" diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/shadereffects/effects/SharpnessEffect.java b/cameraview/src/main/java/com/otaliastudios/cameraview/shadereffects/effects/SharpnessEffect.java index 103fcd3e..b7cad61a 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/shadereffects/effects/SharpnessEffect.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/shadereffects/effects/SharpnessEffect.java @@ -7,16 +7,12 @@ import com.otaliastudios.cameraview.shadereffects.BaseShaderEffect; * Sharpens the preview. */ public class SharpnessEffect extends BaseShaderEffect { - private int mWidth; - private int mHeight; private float scale = 0.5f; /** * Initialize Effect */ - public SharpnessEffect(GLSurfaceView glSurfaceView) { - this.mGlSurfaceView = glSurfaceView; - } + public SharpnessEffect() { } /** * @param value Float, between 0 and 1. 0 means no change. @@ -34,22 +30,11 @@ public class SharpnessEffect extends BaseShaderEffect { return scale; } - /** - * Init all values that will be used by this shader. - * - * @param mGlSurfaceView which is responsible for displaying your video - */ - private void initValues(GLSurfaceView mGlSurfaceView) { - mWidth = mGlSurfaceView.getWidth(); - mHeight = mGlSurfaceView.getHeight(); - } - @Override public String getFragmentShader() { - initValues(mGlSurfaceView); - String stepsizeXString = "stepsizeX = " + 1.0f / mWidth + ";\n"; - String stepsizeYString = "stepsizeY = " + 1.0f / mHeight + ";\n"; + String stepsizeXString = "stepsizeX = " + 1.0f / mPreviewingViewWidth + ";\n"; + String stepsizeYString = "stepsizeY = " + 1.0f / mPreviewingViewHeight + ";\n"; String scaleString = "scale = " + scale + ";\n"; String shader = "#extension GL_OES_EGL_image_external : require\n" diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/shadereffects/effects/VignetteEffect.java b/cameraview/src/main/java/com/otaliastudios/cameraview/shadereffects/effects/VignetteEffect.java index 9b89b19f..844a71fb 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/shadereffects/effects/VignetteEffect.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/shadereffects/effects/VignetteEffect.java @@ -9,19 +9,13 @@ import com.otaliastudios.cameraview.shadereffects.BaseShaderEffect; * Applies lomo-camera style effect to your preview. */ public class VignetteEffect extends BaseShaderEffect { - private int mWidth = 0; - private int mHeight = 0; private float mScale = 0.85f; private float mShade = 0.5f; /** * Initialize Effect - * - * @param glSurfaceView GLSurfaceView */ - public VignetteEffect(GLSurfaceView glSurfaceView) { - this.mGlSurfaceView = glSurfaceView; - + public VignetteEffect() { } /** @@ -48,25 +42,14 @@ public class VignetteEffect extends BaseShaderEffect { this.mShade = shade; } - /** - * Init all values that will be used by this shader. - * - * @param mGlSurfaceView which is responsible for displaying your preview - */ - private void initValues(GLSurfaceView mGlSurfaceView) { - mWidth = mGlSurfaceView.getWidth(); - mHeight = mGlSurfaceView.getHeight(); - } - @Override public String getFragmentShader() { - initValues(mGlSurfaceView); float scale[] = new float[2]; - if (mWidth > mHeight) { + if (mPreviewingViewWidth > mPreviewingViewHeight) { scale[0] = 1f; - scale[1] = ((float) mHeight) / mWidth; + scale[1] = ((float) mPreviewingViewHeight) / mPreviewingViewWidth; } else { - scale[0] = ((float) mWidth) / mHeight; + scale[0] = ((float) mPreviewingViewWidth) / mPreviewingViewHeight; scale[1] = 1f; } float max_dist = ((float) Math.sqrt(scale[0] * scale[0] + scale[1]