diff options
Diffstat (limited to '')
-rw-r--r-- | libraries/evas/src/modules/engines/gl_common/shader/yuy2_frag.h | 30 |
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" | ||