aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/evas/src/modules/engines/gl_common/shader/yuy2_frag.h
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/evas/src/modules/engines/gl_common/shader/yuy2_frag.h')
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/yuy2_frag.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/yuy2_frag.h b/libraries/evas/src/modules/engines/gl_common/shader/yuy2_frag.h
new file mode 100644
index 0000000..abe4b03
--- /dev/null
+++ b/libraries/evas/src/modules/engines/gl_common/shader/yuy2_frag.h
@@ -0,0 +1,30 @@
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, texuv;\n"
9"varying vec4 col;\n"
10"varying vec2 tex_c, tex_cuv;\n"
11"void main()\n"
12"{\n"
13" float y,u,v,vmu,r,g,b;\n"
14" y=texture2D(tex,tex_c).r;\n"
15" u=texture2D(texuv,tex_cuv).g;\n"
16" v=texture2D(texuv,tex_cuv).a;\n"
17"\n"
18" u=u-0.5;\n"
19" v=v-0.5;\n"
20" vmu=v*0.813+u*0.391;\n"
21" u=u*2.018;\n"
22" v=v*1.596;\n"
23"\n"
24" r=y+v;\n"
25" g=y-vmu;\n"
26" b=y+u;\n"
27"\n"
28" gl_FragColor=vec4(r,g,b,1.0) * col;\n"
29"}\n"
30"\n"