aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/evas/src/modules/engines/gl_common/shader/yuv_frag.h
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/evas/src/modules/engines/gl_common/shader/yuv_frag.h')
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/yuv_frag.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/yuv_frag.h b/libraries/evas/src/modules/engines/gl_common/shader/yuv_frag.h
new file mode 100644
index 0000000..de9acf8
--- /dev/null
+++ b/libraries/evas/src/modules/engines/gl_common/shader/yuv_frag.h
@@ -0,0 +1,20 @@
1"#ifdef GL_ES\n"
2"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
3"precision highp float;\n"
4"#else\n"
5"precision mediump float;\n"
6"#endif\n"
7"#endif\n"
8"uniform sampler2D tex, texu, texv;\n"
9"varying vec4 col;\n"
10"varying vec2 tex_c, tex_c2, tex_c3;\n"
11"void main()\n"
12"{\n"
13" const mat4 yuv2rgb = mat4( 1.16400, 1.16400, 1.16400, 0.00000,\n"
14" 0.00000, -0.34410, 1.77200, 0.00000,\n"
15" 1.40200, -0.71410, 0.00000, 0.00000,\n"
16" -0.77380, 0.45630, -0.95880, 1.00000);\n"
17" gl_FragColor = (yuv2rgb * vec4(texture2D(tex, tex_c.xy).r,\n"
18" texture2D(texu, tex_c2.xy).r,\n"
19" texture2D(texv, tex_c3.xy).r, 1.0)) * col;\n"
20"}\n"