BlackAndWhiteEffect.java 1.2 KB
Newer Older
G
guoshuyu 已提交
1
package com.shuyu.gsyvideoplayer.render.effect;
S
shuyu 已提交
2 3 4

import android.opengl.GLSurfaceView;

G
guoshuyu 已提交
5
import  com.shuyu.gsyvideoplayer.render.view.GSYVideoGLView.ShaderInterface;
S
shuyu 已提交
6 7

/**
S
shuyu 已提交
8
 * 黑白滤镜,
S
shuyu 已提交
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
 * Converts the video into black and white colors
 *
 * @author sheraz.khilji
 */
public class BlackAndWhiteEffect implements ShaderInterface {
    /**
     * Initialize Effect
     */
    public BlackAndWhiteEffect() {
    }

    @Override
    public String getShader(GLSurfaceView mGlSurfaceView) {

        String shader = "#extension GL_OES_EGL_image_external : require\n"
                + "precision mediump float;\n"
                + "varying vec2 vTextureCoord;\n"
                + "uniform samplerExternalOES sTexture;\n" + "void main() {\n"
                + "  vec4 color = texture2D(sTexture, vTextureCoord);\n"
                + "  float colorR = (color.r + color.g + color.b) / 3.0;\n"
                + "  float colorG = (color.r + color.g + color.b) / 3.0;\n"
                + "  float colorB = (color.r + color.g + color.b) / 3.0;\n"
                + "  gl_FragColor = vec4(colorR, colorG, colorB, color.a);\n"
                + "}\n";

        return shader;

    }
}