package com.af.experiments.FxCameraApp.shaders;
public class GlFalseColorShader extends GlShader {
protected String mShaderName = "IR filter";
@Override
public String getName() {
return mShaderName;
}
private static final String FRAGMENT_SHADER =
"precision lowp float;" +
"varying vec2 vTextureCoord;" +
"uniform lowp sampler2D sTexture;" +
"const mediump vec4 firstColor = vec4(0.0, 0.0, 0.5, 1.0);" +
"const mediump vec4 secondColor = vec4(1.0, 0.0, 0.0, 1.0);" +
"const mediump vec3 luminanceWeighting = vec3(0.2125, 0.7154, 0.0721);" +
"void main() {" +
"lowp vec4 color = texture2D(sTexture, vTextureCoord);" +
"float luminance = dot(color.rgb, luminanceWeighting);" +
"gl_FragColor = vec4(mix(firstColor.rgb, secondColor.rgb, luminance), color.a);" +
"}";
private float[] mFirstColor = new float[]{0.0f, 0.0f, 0.5f, 1.0f};
private float[] mSecondColor = new float[]{1.0f, 0.0f, 0.0f, 1.0f};
public GlFalseColorShader() {
super(DEFAULT_VERTEX_SHADER, FRAGMENT_SHADER);
}
public float[] getFirstColor() {
return mFirstColor;
}
public void setFirstColor(final float[] firstColor) {
mFirstColor = firstColor;
}
public float[] getSecondColor() {
return mSecondColor;
}
public void setSecondColor(final float[] secondColor) {
mSecondColor = secondColor;
}
@Override
public void onDraw() {
//glUniform4fv(getHandle("firstColor"), 0, mFirstColor, 0);
//glUniform4fv(getHandle("secondColor"), 0, mSecondColor, 0);
}
}