shader/filter_blur.shd \
shader/filter_blur_nomul.shd \
shader/filter_blur_bgra.shd \
-shader/filter_blur_bgra_nomul.shd
+shader/filter_blur_bgra_nomul.shd \
+shader/nv12_frag.h \
+shader/nv12_frag.shd \
+shader/nv12_nomul_frag.h \
+shader/nv12_nomul_frag.shd \
+shader/nv12_nomul_vert.h \
+shader/nv12_nomul_vert.shd \
+shader/nv12_vert.h \
+shader/nv12_vert.shd \
+shader/yuy2_frag.h \
+shader/yuy2_frag.shd \
+shader/yuy2_nomul_frag.h \
+shader/yuy2_nomul_frag.shd \
+shader/yuy2_nomul_vert.h \
+shader/yuy2_nomul_vert.shd \
+shader/yuy2_vert.h \
+shader/yuy2_vert.shd
+
compile yuv_nomul
compile tex
compile tex_nomul
+compile nv12
+compile nv12_nomul
+compile yuy2
+compile yuy2_nomul
## FIXME: compile filter_*
--- /dev/null
+#ifdef GL_ES
+precision mediump float;
+#endif
+uniform sampler2D tex, texuv;
+varying vec4 col;
+varying vec2 tex_c, tex_cuv;
+void main()
+{
+ float y,u,v,vmu,r,g,b;
+ y=texture2D(tex,tex_c).g;
+ u=texture2D(texuv,tex_cuv).g;
+ v=texture2D(texuv,tex_cuv).a;
+
+ u=u-0.5;
+ v=v-0.5;
+ vmu=v*0.813+u*0.391;
+ u=u*2.018;
+ v=v*1.596;
+ y=(y-0.062)*1.164;
+
+ r=y+v;
+ g=y-vmu;
+ b=y+u;
+
+ gl_FragColor=vec4(r,g,b,1.0) * col;
+}
+
--- /dev/null
+#ifdef GL_ES
+precision mediump float;
+#endif
+uniform sampler2D tex, texuv;
+varying vec2 tex_c, tex_cuv;
+void main()
+{
+ float y,u,v,vmu,r,g,b;
+ y=texture2D(tex,tex_c).g;
+ u=texture2D(texuv,tex_cuv).g;
+ v=texture2D(texuv,tex_cuv).a;
+
+ u=u-0.5;
+ v=v-0.5;
+ vmu=v*0.813+u*0.391;
+ u=u*2.018;
+ v=v*1.596;
+ y=(y-0.062)*1.164;
+
+ r=y+v;
+ g=y-vmu;
+ b=y+u;
+
+ gl_FragColor=vec4(r,g,b,1.0);
+}
+
+
{
gl_Position = mvp * vertex;
tex_y = tex_coord;
- tex_cuv = tex_coord2;
+ tex_cuv = tex_coord2 * 0.5;
}
gl_Position = mvp * vertex;
col = color;
tex_y = tex_coord;
- tex_cuv = tex_coord2;
+ tex_cuv = tex_coord2 * 0.5;
}