aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/evas/src/modules/engines/gl_common/shader/nv12_frag.shd
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/evas/src/modules/engines/gl_common/shader/nv12_frag.shd')
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/nv12_frag.shd31
1 files changed, 31 insertions, 0 deletions
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/nv12_frag.shd b/libraries/evas/src/modules/engines/gl_common/shader/nv12_frag.shd
new file mode 100644
index 0000000..34748fc
--- /dev/null
+++ b/libraries/evas/src/modules/engines/gl_common/shader/nv12_frag.shd
@@ -0,0 +1,31 @@
1#ifdef GL_ES
2#ifdef GL_FRAGMENT_PRECISION_HIGH
3precision highp float;
4#else
5precision mediump float;
6#endif
7#endif
8uniform sampler2D tex, texuv;
9varying vec4 col;
10varying vec2 tex_c, tex_cuv;
11void main()
12{
13 float y,u,v,vmu,r,g,b;
14 y=texture2D(tex,tex_c).g;
15 u=texture2D(texuv,tex_cuv).g;
16 v=texture2D(texuv,tex_cuv).a;
17
18 u=u-0.5;
19 v=v-0.5;
20 vmu=v*0.813+u*0.391;
21 u=u*2.018;
22 v=v*1.596;
23 y=(y-0.062)*1.164;
24
25 r=y+v;
26 g=y-vmu;
27 b=y+u;
28
29 gl_FragColor=vec4(r,g,b,1.0) * col;
30}
31