// Path: videffects/src/main/java/com/sherazkhilji/videffects/Constants.java
// public final class Constants {
// 
//     public static final int FLOAT_SIZE_BYTES = 4;
// 
//     public static final String DEFAULT_VERTEX_SHADER = "uniform mat4 uMVPMatrix;\n"
//             + "uniform mat4 uSTMatrix;\n"
//             + "attribute vec4 aPosition;\n"
//             + "attribute vec4 aTextureCoord;\n"
//             + "varying vec2 vTextureCoord;\n"
//             + "void main() {\n"
//             + "  gl_Position = uMVPMatrix * aPosition;\n"
//             + "  vTextureCoord = (uSTMatrix * aTextureCoord).xy;\n"
//             + "}\n";
// }
// 
// Path: videffects/src/main/java/com/sherazkhilji/videffects/interfaces/Filter.java
// public interface Filter {
// 
// 	public String getVertexShader();
// 
// 	public String getFragmentShader();
// 
// 	public void setIntensity(float intensity);
// }


import android.os.Parcel;
import com.sherazkhilji.videffects.Constants;
import com.sherazkhilji.videffects.interfaces.Filter;
import java.util.Locale;
import java.util.concurrent.ThreadLocalRandom;
package com.sherazkhilji.videffects.filter;




public class GrainFilter implements Filter {

    private float intensity = 0.0F;

    private String shaderString;

    public GrainFilter(int width, int height) {
        shaderString = "#extension GL_OES_EGL_image_external : require\n"
                + "precision mediump float;\n"
                + " vec2 seed;\n"
// Path: videffects/src/main/java/com/sherazkhilji/videffects/Constants.java
// public final class Constants {
// 
//     public static final int FLOAT_SIZE_BYTES = 4;
// 
//     public static final String DEFAULT_VERTEX_SHADER = "uniform mat4 uMVPMatrix;\n"
//             + "uniform mat4 uSTMatrix;\n"
//             + "attribute vec4 aPosition;\n"
//             + "attribute vec4 aTextureCoord;\n"
//             + "varying vec2 vTextureCoord;\n"
//             + "void main() {\n"
//             + "  gl_Position = uMVPMatrix * aPosition;\n"
//             + "  vTextureCoord = (uSTMatrix * aTextureCoord).xy;\n"
//             + "}\n";
// }
// 
// Path: videffects/src/main/java/com/sherazkhilji/videffects/interfaces/Filter.java
// public interface Filter {
// 
// 	public String getVertexShader();
// 
// 	public String getFragmentShader();
// 
// 	public void setIntensity(float intensity);
// }


// Path: videffects/src/main/java/com/sherazkhilji/videffects/filter/GrainFilter.java
import android.os.Parcel;
import com.sherazkhilji.videffects.Constants;
import com.sherazkhilji.videffects.interfaces.Filter;
import java.util.Locale;
import java.util.concurrent.ThreadLocalRandom;

package com.sherazkhilji.videffects.filter;




public class GrainFilter implements Filter {

    private float intensity = 0.0F;

    private String shaderString;

    public GrainFilter(int width, int height) {
        shaderString = "#extension GL_OES_EGL_image_external : require\n"
                + "precision mediump float;\n"
                + " vec2 seed;\n"
                + "varying vec2 vTextureCoord;\n"