From a3de2ee3fdbec622712206f8d4b0d2f246943a6d Mon Sep 17 00:00:00 2001 From: Jean-Philippe Andre Date: Wed, 1 Apr 2015 15:15:51 +0900 Subject: [PATCH] Evas GL common: Factorize shader generation code Remove all individual shaders, factorize everything into one vertex and one fragment shader. All previous functionality has been kept as is[*]. Some new features have been added (new shader types). This is a first step in simplifying and improving the shaders system. Next: simplify shader selection [*] Yeah, that's quite a bold statement here. Maybe I broke everything. --- src/Makefile_Evas.am | 133 +- .../evas/engines/gl_common/evas_gl_common.h | 2 + .../evas/engines/gl_common/evas_gl_context.c | 78 +- .../evas/engines/gl_common/shader/.gitignore | 1 + .../evas/engines/gl_common/shader/evas_gl_enum.x | 114 +- .../engines/gl_common/shader/evas_gl_shaders.x | 3917 +++++++++++++------- .../evas/engines/gl_common/shader/font_frag.shd | 14 - .../engines/gl_common/shader/font_mask_frag.shd | 17 - .../engines/gl_common/shader/font_mask_vert.shd | 23 - .../evas/engines/gl_common/shader/font_vert.shd | 15 - .../evas/engines/gl_common/shader/fragment.glsl | 142 + .../evas/engines/gl_common/shader/gen_shaders.sh | 178 +- .../engines/gl_common/shader/img_12_bgra_frag.shd | 18 - .../gl_common/shader/img_12_bgra_nomul_frag.shd | 17 - .../gl_common/shader/img_12_bgra_nomul_vert.shd | 18 - .../engines/gl_common/shader/img_12_bgra_vert.shd | 21 - .../evas/engines/gl_common/shader/img_12_frag.shd | 18 - .../engines/gl_common/shader/img_12_nomul_frag.shd | 17 - .../engines/gl_common/shader/img_12_nomul_vert.shd | 18 - .../evas/engines/gl_common/shader/img_12_vert.shd | 21 - .../engines/gl_common/shader/img_21_bgra_frag.shd | 18 - .../gl_common/shader/img_21_bgra_nomul_frag.shd | 17 - .../gl_common/shader/img_21_bgra_nomul_vert.shd | 18 - .../engines/gl_common/shader/img_21_bgra_vert.shd | 21 - .../evas/engines/gl_common/shader/img_21_frag.shd | 18 - .../engines/gl_common/shader/img_21_nomul_frag.shd | 17 - .../engines/gl_common/shader/img_21_nomul_vert.shd | 18 - .../evas/engines/gl_common/shader/img_21_vert.shd | 21 - .../engines/gl_common/shader/img_22_bgra_frag.shd | 20 - .../gl_common/shader/img_22_bgra_nomul_frag.shd | 19 - .../gl_common/shader/img_22_bgra_nomul_vert.shd | 20 - .../engines/gl_common/shader/img_22_bgra_vert.shd | 23 - .../evas/engines/gl_common/shader/img_22_frag.shd | 20 - .../engines/gl_common/shader/img_22_nomul_frag.shd | 19 - .../engines/gl_common/shader/img_22_nomul_vert.shd | 20 - .../evas/engines/gl_common/shader/img_22_vert.shd | 23 - .../engines/gl_common/shader/img_bgra_frag.shd | 14 - .../gl_common/shader/img_bgra_nomul_frag.shd | 13 - .../gl_common/shader/img_bgra_nomul_vert.shd | 12 - .../engines/gl_common/shader/img_bgra_vert.shd | 15 - .../evas/engines/gl_common/shader/img_frag.shd | 14 - .../gl_common/shader/img_mask_bgra_frag.shd | 17 - .../gl_common/shader/img_mask_bgra_nomul_frag.shd | 16 - .../gl_common/shader/img_mask_bgra_nomul_vert.shd | 20 - .../gl_common/shader/img_mask_bgra_vert.shd | 23 - .../engines/gl_common/shader/img_mask_frag.shd | 17 - .../gl_common/shader/img_mask_nomul_frag.shd | 16 - .../gl_common/shader/img_mask_nomul_vert.shd | 20 - .../engines/gl_common/shader/img_mask_vert.shd | 23 - .../engines/gl_common/shader/img_nomul_frag.shd | 13 - .../engines/gl_common/shader/img_nomul_vert.shd | 12 - .../evas/engines/gl_common/shader/img_vert.shd | 15 - .../gl_common/shader/map_mask_bgra_frag.shd | 15 - .../gl_common/shader/map_mask_bgra_nomul_frag.shd | 13 - .../gl_common/shader/map_mask_bgra_nomul_vert.shd | 17 - .../gl_common/shader/map_mask_bgra_vert.shd | 19 - .../engines/gl_common/shader/map_mask_frag.shd | 15 - .../gl_common/shader/map_mask_nomul_frag.shd | 13 - .../gl_common/shader/map_mask_nomul_vert.shd | 17 - .../engines/gl_common/shader/map_mask_vert.shd | 19 - .../evas/engines/gl_common/shader/nv12_frag.shd | 31 - .../engines/gl_common/shader/nv12_mask_frag.shd | 31 - .../engines/gl_common/shader/nv12_mask_vert.shd | 22 - .../engines/gl_common/shader/nv12_nomul_frag.shd | 31 - .../engines/gl_common/shader/nv12_nomul_vert.shd | 14 - .../evas/engines/gl_common/shader/nv12_vert.shd | 16 - .../evas/engines/gl_common/shader/rect_frag.shd | 13 - .../engines/gl_common/shader/rect_mask_frag.shd | 14 - .../engines/gl_common/shader/rect_mask_vert.shd | 19 - .../evas/engines/gl_common/shader/rect_vert.shd | 12 - .../engines/gl_common/shader/rgb_a_pair_frag.shd | 17 - .../gl_common/shader/rgb_a_pair_mask_frag.shd | 19 - .../gl_common/shader/rgb_a_pair_mask_vert.shd | 25 - .../gl_common/shader/rgb_a_pair_nomul_frag.shd | 16 - .../gl_common/shader/rgb_a_pair_nomul_vert.shd | 15 - .../engines/gl_common/shader/rgb_a_pair_vert.shd | 18 - .../evas/engines/gl_common/shader/shaders.txt | 113 + .../engines/gl_common/shader/tex_12_afill_frag.shd | 19 - .../engines/gl_common/shader/tex_12_afill_vert.shd | 21 - .../evas/engines/gl_common/shader/tex_12_frag.shd | 18 - .../gl_common/shader/tex_12_nomul_afill_frag.shd | 18 - .../gl_common/shader/tex_12_nomul_afill_vert.shd | 18 - .../engines/gl_common/shader/tex_12_nomul_frag.shd | 17 - .../engines/gl_common/shader/tex_12_nomul_vert.shd | 18 - .../evas/engines/gl_common/shader/tex_12_vert.shd | 21 - .../engines/gl_common/shader/tex_21_afill_frag.shd | 19 - .../engines/gl_common/shader/tex_21_afill_vert.shd | 21 - .../evas/engines/gl_common/shader/tex_21_frag.shd | 18 - .../gl_common/shader/tex_21_nomul_afill_frag.shd | 18 - .../gl_common/shader/tex_21_nomul_afill_vert.shd | 18 - .../engines/gl_common/shader/tex_21_nomul_frag.shd | 17 - .../engines/gl_common/shader/tex_21_nomul_vert.shd | 18 - .../evas/engines/gl_common/shader/tex_21_vert.shd | 21 - .../engines/gl_common/shader/tex_22_afill_frag.shd | 21 - .../engines/gl_common/shader/tex_22_afill_vert.shd | 23 - .../evas/engines/gl_common/shader/tex_22_frag.shd | 20 - .../gl_common/shader/tex_22_nomul_afill_frag.shd | 20 - .../gl_common/shader/tex_22_nomul_afill_vert.shd | 20 - .../engines/gl_common/shader/tex_22_nomul_frag.shd | 19 - .../engines/gl_common/shader/tex_22_nomul_vert.shd | 20 - .../evas/engines/gl_common/shader/tex_22_vert.shd | 23 - .../engines/gl_common/shader/tex_afill_frag.shd | 15 - .../engines/gl_common/shader/tex_afill_vert.shd | 15 - .../gl_common/shader/tex_external_afill_frag.shd | 18 - .../gl_common/shader/tex_external_afill_vert.shd | 15 - .../engines/gl_common/shader/tex_external_frag.shd | 17 - .../shader/tex_external_nomul_afill_frag.shd | 17 - .../shader/tex_external_nomul_afill_vert.shd | 12 - .../gl_common/shader/tex_external_nomul_frag.shd | 16 - .../gl_common/shader/tex_external_nomul_vert.shd | 12 - .../engines/gl_common/shader/tex_external_vert.shd | 15 - .../evas/engines/gl_common/shader/tex_frag.shd | 14 - .../gl_common/shader/tex_nomul_afill_frag.shd | 14 - .../gl_common/shader/tex_nomul_afill_vert.shd | 12 - .../engines/gl_common/shader/tex_nomul_frag.shd | 13 - .../engines/gl_common/shader/tex_nomul_vert.shd | 12 - .../evas/engines/gl_common/shader/tex_vert.shd | 15 - .../evas/engines/gl_common/shader/vertex.glsl | 117 + .../evas/engines/gl_common/shader/yuv_frag.shd | 24 - .../engines/gl_common/shader/yuv_mask_frag.shd | 25 - .../engines/gl_common/shader/yuv_mask_vert.shd | 23 - .../engines/gl_common/shader/yuv_nomul_frag.shd | 23 - .../engines/gl_common/shader/yuv_nomul_vert.shd | 14 - .../evas/engines/gl_common/shader/yuv_vert.shd | 17 - .../evas/engines/gl_common/shader/yuy2_frag.shd | 30 - .../engines/gl_common/shader/yuy2_mask_frag.shd | 30 - .../engines/gl_common/shader/yuy2_mask_vert.shd | 22 - .../engines/gl_common/shader/yuy2_nomul_frag.shd | 30 - .../engines/gl_common/shader/yuy2_nomul_vert.shd | 13 - .../evas/engines/gl_common/shader/yuy2_vert.shd | 16 - 130 files changed, 3156 insertions(+), 3834 deletions(-) create mode 100644 src/modules/evas/engines/gl_common/shader/.gitignore delete mode 100644 src/modules/evas/engines/gl_common/shader/font_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/font_mask_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/font_mask_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/font_vert.shd create mode 100644 src/modules/evas/engines/gl_common/shader/fragment.glsl delete mode 100644 src/modules/evas/engines/gl_common/shader/img_12_bgra_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/img_12_bgra_nomul_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/img_12_bgra_nomul_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/img_12_bgra_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/img_12_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/img_12_nomul_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/img_12_nomul_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/img_12_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/img_21_bgra_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/img_21_bgra_nomul_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/img_21_bgra_nomul_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/img_21_bgra_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/img_21_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/img_21_nomul_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/img_21_nomul_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/img_21_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/img_22_bgra_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/img_22_bgra_nomul_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/img_22_bgra_nomul_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/img_22_bgra_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/img_22_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/img_22_nomul_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/img_22_nomul_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/img_22_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/img_bgra_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/img_bgra_nomul_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/img_bgra_nomul_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/img_bgra_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/img_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/img_mask_bgra_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/img_mask_bgra_nomul_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/img_mask_bgra_nomul_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/img_mask_bgra_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/img_mask_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/img_mask_nomul_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/img_mask_nomul_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/img_mask_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/img_nomul_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/img_nomul_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/img_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/map_mask_bgra_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/map_mask_bgra_nomul_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/map_mask_bgra_nomul_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/map_mask_bgra_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/map_mask_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/map_mask_nomul_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/map_mask_nomul_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/map_mask_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/nv12_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/nv12_mask_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/nv12_mask_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/nv12_nomul_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/nv12_nomul_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/nv12_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/rect_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/rect_mask_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/rect_mask_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/rect_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/rgb_a_pair_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/rgb_a_pair_mask_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/rgb_a_pair_mask_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/rgb_a_pair_nomul_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/rgb_a_pair_nomul_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/rgb_a_pair_vert.shd create mode 100644 src/modules/evas/engines/gl_common/shader/shaders.txt delete mode 100644 src/modules/evas/engines/gl_common/shader/tex_12_afill_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/tex_12_afill_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/tex_12_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/tex_12_nomul_afill_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/tex_12_nomul_afill_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/tex_12_nomul_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/tex_12_nomul_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/tex_12_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/tex_21_afill_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/tex_21_afill_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/tex_21_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/tex_21_nomul_afill_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/tex_21_nomul_afill_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/tex_21_nomul_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/tex_21_nomul_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/tex_21_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/tex_22_afill_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/tex_22_afill_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/tex_22_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/tex_22_nomul_afill_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/tex_22_nomul_afill_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/tex_22_nomul_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/tex_22_nomul_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/tex_22_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/tex_afill_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/tex_afill_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/tex_external_afill_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/tex_external_afill_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/tex_external_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/tex_external_nomul_afill_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/tex_external_nomul_afill_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/tex_external_nomul_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/tex_external_nomul_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/tex_external_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/tex_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/tex_nomul_afill_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/tex_nomul_afill_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/tex_nomul_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/tex_nomul_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/tex_vert.shd create mode 100644 src/modules/evas/engines/gl_common/shader/vertex.glsl delete mode 100644 src/modules/evas/engines/gl_common/shader/yuv_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/yuv_mask_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/yuv_mask_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/yuv_nomul_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/yuv_nomul_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/yuv_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/yuy2_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/yuy2_mask_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/yuy2_mask_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/yuy2_nomul_frag.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/yuy2_nomul_vert.shd delete mode 100644 src/modules/evas/engines/gl_common/shader/yuy2_vert.shd diff --git a/src/Makefile_Evas.am b/src/Makefile_Evas.am index 7e417b0..bd3d377 100644 --- a/src/Makefile_Evas.am +++ b/src/Makefile_Evas.am @@ -618,135 +618,18 @@ modules/evas/engines/gl_common/evas_gl_3d_renderer.c \ modules/evas/engines/gl_common/evas_gl_3d_shader.c GL_SHADERS_GEN = \ -modules/evas/engines/gl_common/shader/font_frag.shd \ -modules/evas/engines/gl_common/shader/font_vert.shd \ -modules/evas/engines/gl_common/shader/font_mask_frag.shd \ -modules/evas/engines/gl_common/shader/font_mask_vert.shd \ -modules/evas/engines/gl_common/shader/img_12_bgra_frag.shd \ -modules/evas/engines/gl_common/shader/img_12_bgra_nomul_frag.shd \ -modules/evas/engines/gl_common/shader/img_12_bgra_nomul_vert.shd \ -modules/evas/engines/gl_common/shader/img_12_bgra_vert.shd \ -modules/evas/engines/gl_common/shader/img_12_frag.shd \ -modules/evas/engines/gl_common/shader/img_12_nomul_frag.shd \ -modules/evas/engines/gl_common/shader/img_12_nomul_vert.shd \ -modules/evas/engines/gl_common/shader/img_12_vert.shd \ -modules/evas/engines/gl_common/shader/img_21_bgra_frag.shd \ -modules/evas/engines/gl_common/shader/img_21_bgra_nomul_frag.shd \ -modules/evas/engines/gl_common/shader/img_21_bgra_nomul_vert.shd \ -modules/evas/engines/gl_common/shader/img_21_bgra_vert.shd \ -modules/evas/engines/gl_common/shader/img_21_frag.shd \ -modules/evas/engines/gl_common/shader/img_21_nomul_frag.shd \ -modules/evas/engines/gl_common/shader/img_21_nomul_vert.shd \ -modules/evas/engines/gl_common/shader/img_21_vert.shd \ -modules/evas/engines/gl_common/shader/img_22_bgra_frag.shd \ -modules/evas/engines/gl_common/shader/img_22_bgra_nomul_frag.shd \ -modules/evas/engines/gl_common/shader/img_22_bgra_nomul_vert.shd \ -modules/evas/engines/gl_common/shader/img_22_bgra_vert.shd \ -modules/evas/engines/gl_common/shader/img_22_frag.shd \ -modules/evas/engines/gl_common/shader/img_22_nomul_frag.shd \ -modules/evas/engines/gl_common/shader/img_22_nomul_vert.shd \ -modules/evas/engines/gl_common/shader/img_22_vert.shd \ -modules/evas/engines/gl_common/shader/img_bgra_frag.shd \ -modules/evas/engines/gl_common/shader/img_bgra_nomul_frag.shd \ -modules/evas/engines/gl_common/shader/img_bgra_nomul_vert.shd \ -modules/evas/engines/gl_common/shader/img_bgra_vert.shd \ -modules/evas/engines/gl_common/shader/img_frag.shd \ -modules/evas/engines/gl_common/shader/img_nomul_frag.shd \ -modules/evas/engines/gl_common/shader/img_nomul_vert.shd \ -modules/evas/engines/gl_common/shader/img_vert.shd \ -modules/evas/engines/gl_common/shader/nv12_frag.shd \ -modules/evas/engines/gl_common/shader/nv12_nomul_frag.shd \ -modules/evas/engines/gl_common/shader/nv12_nomul_vert.shd \ -modules/evas/engines/gl_common/shader/nv12_vert.shd \ -modules/evas/engines/gl_common/shader/rect_frag.shd \ -modules/evas/engines/gl_common/shader/rect_vert.shd \ -modules/evas/engines/gl_common/shader/rgb_a_pair_frag.shd \ -modules/evas/engines/gl_common/shader/rgb_a_pair_nomul_frag.shd \ -modules/evas/engines/gl_common/shader/rgb_a_pair_nomul_vert.shd \ -modules/evas/engines/gl_common/shader/rgb_a_pair_vert.shd \ -modules/evas/engines/gl_common/shader/tex_12_frag.shd \ -modules/evas/engines/gl_common/shader/tex_12_vert.shd \ -modules/evas/engines/gl_common/shader/tex_12_nomul_frag.shd \ -modules/evas/engines/gl_common/shader/tex_12_nomul_vert.shd \ -modules/evas/engines/gl_common/shader/tex_21_frag.shd \ -modules/evas/engines/gl_common/shader/tex_21_vert.shd \ -modules/evas/engines/gl_common/shader/tex_21_nomul_frag.shd \ -modules/evas/engines/gl_common/shader/tex_21_nomul_vert.shd \ -modules/evas/engines/gl_common/shader/tex_22_frag.shd \ -modules/evas/engines/gl_common/shader/tex_22_vert.shd \ -modules/evas/engines/gl_common/shader/tex_22_nomul_frag.shd \ -modules/evas/engines/gl_common/shader/tex_22_nomul_vert.shd \ -modules/evas/engines/gl_common/shader/tex_frag.shd \ -modules/evas/engines/gl_common/shader/tex_vert.shd \ -modules/evas/engines/gl_common/shader/tex_nomul_frag.shd \ -modules/evas/engines/gl_common/shader/tex_nomul_vert.shd \ -modules/evas/engines/gl_common/shader/tex_afill_frag.shd \ -modules/evas/engines/gl_common/shader/tex_afill_vert.shd \ -modules/evas/engines/gl_common/shader/tex_22_afill_frag.shd \ -modules/evas/engines/gl_common/shader/tex_22_afill_vert.shd \ -modules/evas/engines/gl_common/shader/tex_21_afill_frag.shd \ -modules/evas/engines/gl_common/shader/tex_21_afill_vert.shd \ -modules/evas/engines/gl_common/shader/tex_12_afill_frag.shd \ -modules/evas/engines/gl_common/shader/tex_12_afill_vert.shd \ -modules/evas/engines/gl_common/shader/tex_22_nomul_afill_frag.shd \ -modules/evas/engines/gl_common/shader/tex_22_nomul_afill_vert.shd \ -modules/evas/engines/gl_common/shader/tex_21_nomul_afill_frag.shd \ -modules/evas/engines/gl_common/shader/tex_21_nomul_afill_vert.shd \ -modules/evas/engines/gl_common/shader/tex_12_nomul_afill_frag.shd \ -modules/evas/engines/gl_common/shader/tex_12_nomul_afill_vert.shd \ -modules/evas/engines/gl_common/shader/tex_nomul_afill_frag.shd \ -modules/evas/engines/gl_common/shader/tex_nomul_afill_vert.shd \ -modules/evas/engines/gl_common/shader/yuv_frag.shd \ -modules/evas/engines/gl_common/shader/yuv_nomul_frag.shd \ -modules/evas/engines/gl_common/shader/yuv_nomul_vert.shd \ -modules/evas/engines/gl_common/shader/yuv_vert.shd \ -modules/evas/engines/gl_common/shader/yuy2_frag.shd \ -modules/evas/engines/gl_common/shader/yuy2_nomul_frag.shd \ -modules/evas/engines/gl_common/shader/yuy2_nomul_vert.shd \ -modules/evas/engines/gl_common/shader/yuy2_vert.shd \ -modules/evas/engines/gl_common/shader/img_mask_frag.shd \ -modules/evas/engines/gl_common/shader/img_mask_vert.shd \ -modules/evas/engines/gl_common/shader/img_mask_nomul_frag.shd \ -modules/evas/engines/gl_common/shader/img_mask_nomul_vert.shd \ -modules/evas/engines/gl_common/shader/img_mask_bgra_frag.shd \ -modules/evas/engines/gl_common/shader/img_mask_bgra_vert.shd \ -modules/evas/engines/gl_common/shader/img_mask_bgra_nomul_frag.shd \ -modules/evas/engines/gl_common/shader/img_mask_bgra_nomul_vert.shd \ -modules/evas/engines/gl_common/shader/yuv_mask_frag.shd \ -modules/evas/engines/gl_common/shader/yuv_mask_vert.shd \ -modules/evas/engines/gl_common/shader/nv12_mask_frag.shd \ -modules/evas/engines/gl_common/shader/nv12_mask_vert.shd \ -modules/evas/engines/gl_common/shader/yuy2_mask_frag.shd \ -modules/evas/engines/gl_common/shader/yuy2_mask_vert.shd \ -modules/evas/engines/gl_common/shader/rgb_a_pair_mask_frag.shd \ -modules/evas/engines/gl_common/shader/rgb_a_pair_mask_vert.shd \ -modules/evas/engines/gl_common/shader/rect_mask_frag.shd \ -modules/evas/engines/gl_common/shader/rect_mask_vert.shd \ -modules/evas/engines/gl_common/shader/map_mask_frag.shd \ -modules/evas/engines/gl_common/shader/map_mask_vert.shd \ -modules/evas/engines/gl_common/shader/map_mask_nomul_frag.shd \ -modules/evas/engines/gl_common/shader/map_mask_nomul_vert.shd \ -modules/evas/engines/gl_common/shader/map_mask_bgra_frag.shd \ -modules/evas/engines/gl_common/shader/map_mask_bgra_vert.shd \ -modules/evas/engines/gl_common/shader/map_mask_bgra_nomul_frag.shd \ -modules/evas/engines/gl_common/shader/map_mask_bgra_nomul_vert.shd \ -modules/evas/engines/gl_common/shader/tex_external_frag.shd \ -modules/evas/engines/gl_common/shader/tex_external_vert.shd \ -modules/evas/engines/gl_common/shader/tex_external_nomul_frag.shd \ -modules/evas/engines/gl_common/shader/tex_external_nomul_vert.shd \ -modules/evas/engines/gl_common/shader/tex_external_afill_frag.shd \ -modules/evas/engines/gl_common/shader/tex_external_afill_vert.shd \ -modules/evas/engines/gl_common/shader/tex_external_nomul_afill_frag.shd \ -modules/evas/engines/gl_common/shader/tex_external_nomul_afill_vert.shd \ +modules/evas/engines/gl_common/shader/gen_shaders.sh \ +modules/evas/engines/gl_common/shader/shaders.txt \ +modules/evas/engines/gl_common/shader/fragment.glsl \ +modules/evas/engines/gl_common/shader/vertex.glsl \ $(NULL) -EXTRA_DIST += \ -modules/evas/engines/gl_common/shader/gen_shaders.sh \ -$(GL_SHADERS_GEN) +EXTRA_DIST += $(GL_SHADERS_GEN) +EXTRA_lib_evas_libevas_la_DEPENDENCIES = modules/evas/engines/gl_common/shader/evas_gl_enum.x -modules/evas/engines/gl_common/shader/evas_gl_shaders.x: modules/evas/engines/gl_common/shader/gen_shaders.sh $(GL_SHADERS_GEN) +modules/evas/engines/gl_common/shader/evas_gl_shaders.x: $(GL_SHADERS_GEN) @echo " SHADERS $@" - @$^ + @$(builddir)/modules/evas/engines/gl_common/shader/gen_shaders.sh modules/evas/engines/gl_common/shader/evas_gl_enum.x: modules/evas/engines/gl_common/shader/evas_gl_shaders.x diff --git a/src/modules/evas/engines/gl_common/evas_gl_common.h b/src/modules/evas/engines/gl_common/evas_gl_common.h index 0747875..1adbf69 100644 --- a/src/modules/evas/engines/gl_common/evas_gl_common.h +++ b/src/modules/evas/engines/gl_common/evas_gl_common.h @@ -425,6 +425,8 @@ struct _Evas_GL_Shared #define RTYPE_YUY2 6 #define RTYPE_NV12 7 #define RTYPE_LINE 8 +#define RTYPE_RGB_A_PAIR 9 +#define RTYPE_TEX_EXTERNAL 10 #define ARRAY_BUFFER_USE 500 #define ARRAY_BUFFER_USE_SHIFT 100 diff --git a/src/modules/evas/engines/gl_common/evas_gl_context.c b/src/modules/evas/engines/gl_common/evas_gl_context.c index 7e3c74c..f1f4f47 100644 --- a/src/modules/evas/engines/gl_common/evas_gl_context.c +++ b/src/modules/evas/engines/gl_common/evas_gl_context.c @@ -933,10 +933,10 @@ evas_gl_common_context_new(void) SHADER_TEXTURE_ADD(shared, IMG_MASK_NOMUL, tex); SHADER_TEXTURE_ADD(shared, IMG_MASK_NOMUL, texm); - SHADER_TEXTURE_ADD(shared, IMG_MASK_BGRA, tex); - SHADER_TEXTURE_ADD(shared, IMG_MASK_BGRA, texm); - SHADER_TEXTURE_ADD(shared, IMG_MASK_BGRA_NOMUL, tex); - SHADER_TEXTURE_ADD(shared, IMG_MASK_BGRA_NOMUL, texm); + SHADER_TEXTURE_ADD(shared, IMG_BGRA_MASK, tex); + SHADER_TEXTURE_ADD(shared, IMG_BGRA_MASK, texm); + SHADER_TEXTURE_ADD(shared, IMG_BGRA_MASK_NOMUL, tex); + SHADER_TEXTURE_ADD(shared, IMG_BGRA_MASK_NOMUL, texm); SHADER_TEXTURE_ADD(shared, FONT_MASK, tex); SHADER_TEXTURE_ADD(shared, FONT_MASK, texm); @@ -1896,28 +1896,28 @@ evas_gl_common_context_image_push(Evas_Engine_GL_Context *gc, { shader = evas_gl_common_shader_choice(0, NULL, r, g, b, a, !!mtex, SHADER_IMG_22_BGRA_NOMUL, SHADER_IMG_22_BGRA, - SHADER_IMG_MASK_BGRA_NOMUL, SHADER_IMG_MASK_BGRA); + SHADER_IMG_22_BGRA_MASK_NOMUL, SHADER_IMG_22_BGRA_MASK); sam = 1; } else if ((smooth) && (sw >= (w * 2))) { shader = evas_gl_common_shader_choice(0, NULL, r, g, b, a, !!mtex, SHADER_IMG_21_BGRA_NOMUL, SHADER_IMG_21_BGRA, - SHADER_IMG_MASK_BGRA_NOMUL, SHADER_IMG_MASK_BGRA); + SHADER_IMG_BGRA_MASK_NOMUL, SHADER_IMG_BGRA_MASK); sam = 1; } else if ((smooth) && (sh >= (h * 2))) { shader = evas_gl_common_shader_choice(0, NULL, r, g, b, a, !!mtex, SHADER_IMG_12_BGRA_NOMUL, SHADER_IMG_12_BGRA, - SHADER_IMG_MASK_BGRA_NOMUL, SHADER_IMG_MASK_BGRA); + SHADER_IMG_BGRA_MASK_NOMUL, SHADER_IMG_BGRA_MASK); sam = 1; } else { shader = evas_gl_common_shader_choice(0, NULL, r, g, b, a, !!mtex, SHADER_IMG_BGRA_NOMUL, SHADER_IMG_BGRA, - SHADER_IMG_MASK_BGRA_NOMUL, SHADER_IMG_MASK_BGRA); + SHADER_IMG_BGRA_MASK_NOMUL, SHADER_IMG_BGRA_MASK); } } #ifdef GL_GLES @@ -1926,11 +1926,11 @@ evas_gl_common_context_image_push(Evas_Engine_GL_Context *gc, if ((!tex->alpha) && (tex->pt->native)) shader = evas_gl_common_shader_choice(0, NULL, r, g, b, a, !!mtex, SHADER_TEX_EXTERNAL_NOMUL_AFILL, SHADER_TEX_EXTERNAL_AFILL, - SHADER_IMG_MASK_NOMUL, SHADER_IMG_MASK); + SHADER_TEX_EXTERNAL_MASK_NOMUL, SHADER_TEX_EXTERNAL_MASK); else shader = evas_gl_common_shader_choice(0, NULL, r, g, b, a, !!mtex, SHADER_TEX_EXTERNAL_NOMUL, SHADER_TEX_EXTERNAL, - SHADER_IMG_MASK_NOMUL, SHADER_IMG_MASK); + SHADER_TEX_EXTERNAL_MASK_NOMUL, SHADER_TEX_EXTERNAL_MASK); } #endif else @@ -1939,48 +1939,48 @@ evas_gl_common_context_image_push(Evas_Engine_GL_Context *gc, { if ((!tex->alpha) && (tex->pt->native)) shader = evas_gl_common_shader_choice(0, NULL, r, g, b, a, !!mtex, - SHADER_TEX_22_NOMUL_AFILL, SHADER_TEX_22_AFILL, - SHADER_IMG_MASK_NOMUL, SHADER_IMG_MASK); + SHADER_IMG_22_BGRA_NOMUL_AFILL, SHADER_IMG_22_BGRA_AFILL, + SHADER_IMG_22_BGRA_MASK_NOMUL, SHADER_IMG_22_BGRA_MASK); else shader = evas_gl_common_shader_choice(0, NULL, r, g, b, a, !!mtex, - SHADER_TEX_22_NOMUL, SHADER_TEX_22, - SHADER_IMG_MASK_NOMUL, SHADER_IMG_MASK); + SHADER_IMG_22_BGRA_NOMUL, SHADER_IMG_22_BGRA, + SHADER_IMG_22_BGRA_MASK_NOMUL, SHADER_IMG_22_BGRA_MASK); sam = 1; } else if ((smooth) && (sw >= (w * 2))) { if ((!tex->alpha) && (tex->pt->native)) shader = evas_gl_common_shader_choice(0, NULL, r, g, b, a, !!mtex, - SHADER_TEX_21_NOMUL_AFILL, SHADER_TEX_21_AFILL, - SHADER_IMG_MASK_NOMUL, SHADER_IMG_MASK); + SHADER_IMG_21_BGRA_NOMUL_AFILL, SHADER_IMG_21_BGRA_AFILL, + SHADER_IMG_21_BGRA_MASK_NOMUL, SHADER_IMG_21_BGRA_MASK); else shader = evas_gl_common_shader_choice(0, NULL, r, g, b, a, !!mtex, - SHADER_TEX_21_NOMUL, SHADER_TEX_21, - SHADER_IMG_MASK_NOMUL, SHADER_IMG_MASK); + SHADER_IMG_21_BGRA_NOMUL, SHADER_IMG_21_BGRA, + SHADER_IMG_21_BGRA_MASK_NOMUL, SHADER_IMG_21_BGRA_MASK); sam = 1; } else if ((smooth) && (sh >= (h * 2))) { if ((!tex->alpha) && (tex->pt->native)) shader = evas_gl_common_shader_choice(0, NULL, r, g, b, a, !!mtex, - SHADER_TEX_12_NOMUL_AFILL, SHADER_TEX_12_AFILL, - SHADER_IMG_MASK_NOMUL, SHADER_IMG_MASK); + SHADER_IMG_12_BGRA_NOMUL_AFILL, SHADER_IMG_12_BGRA_AFILL, + SHADER_IMG_12_BGRA_MASK_NOMUL, SHADER_IMG_12_BGRA_MASK); else shader = evas_gl_common_shader_choice(0, NULL, r, g, b, a, !!mtex, - SHADER_TEX_12_NOMUL, SHADER_TEX_12, - SHADER_IMG_MASK_NOMUL, SHADER_IMG_MASK); + SHADER_IMG_12_BGRA_NOMUL, SHADER_IMG_12_BGRA, + SHADER_IMG_12_BGRA_MASK_NOMUL, SHADER_IMG_12_BGRA_MASK); sam = 1; } else { if ((!tex->alpha) && (tex->pt->native)) shader = evas_gl_common_shader_choice(0, NULL, r, g, b, a, !!mtex, - SHADER_TEX_NOMUL_AFILL, SHADER_TEX_AFILL, - SHADER_IMG_MASK_NOMUL, SHADER_IMG_MASK); + SHADER_IMG_BGRA_NOMUL_AFILL, SHADER_IMG_BGRA_AFILL, + SHADER_IMG_BGRA_MASK_NOMUL, SHADER_IMG_BGRA_MASK); else shader = evas_gl_common_shader_choice(0, NULL, r, g, b, a, !!mtex, - SHADER_TEX_NOMUL, SHADER_TEX, - SHADER_IMG_MASK_NOMUL, SHADER_IMG_MASK); + SHADER_IMG_BGRA_NOMUL, SHADER_IMG_BGRA, + SHADER_IMG_BGRA_MASK_NOMUL, SHADER_IMG_BGRA_MASK); } } } @@ -1992,28 +1992,28 @@ evas_gl_common_context_image_push(Evas_Engine_GL_Context *gc, { shader = evas_gl_common_shader_choice(0, NULL, r, g, b, a, !!mtex, SHADER_IMG_22_BGRA_NOMUL, SHADER_IMG_22_BGRA, - SHADER_IMG_MASK_BGRA_NOMUL, SHADER_IMG_MASK_BGRA); + SHADER_IMG_BGRA_MASK_NOMUL, SHADER_IMG_BGRA_MASK); sam = 1; } else if ((smooth) && (sw >= (w * 2))) { shader = evas_gl_common_shader_choice(0, NULL, r, g, b, a, !!mtex, SHADER_IMG_21_BGRA_NOMUL, SHADER_IMG_21_BGRA, - SHADER_IMG_MASK_BGRA_NOMUL, SHADER_IMG_MASK_BGRA); + SHADER_IMG_BGRA_MASK_NOMUL, SHADER_IMG_BGRA_MASK); sam = 1; } else if ((smooth) && (sh >= (h * 2))) { shader = evas_gl_common_shader_choice(0, NULL, r, g, b, a, !!mtex, SHADER_IMG_12_BGRA_NOMUL, SHADER_IMG_12_BGRA, - SHADER_IMG_MASK_BGRA_NOMUL, SHADER_IMG_MASK_BGRA); + SHADER_IMG_BGRA_MASK_NOMUL, SHADER_IMG_BGRA_MASK); sam = 1; } else { shader = evas_gl_common_shader_choice(0, NULL, r, g, b, a, !!mtex, SHADER_IMG_BGRA_NOMUL, SHADER_IMG_BGRA, - SHADER_IMG_MASK_BGRA_NOMUL, SHADER_IMG_MASK_BGRA); + SHADER_IMG_BGRA_MASK_NOMUL, SHADER_IMG_BGRA_MASK); } } else @@ -2474,7 +2474,7 @@ evas_gl_common_context_rgb_a_pair_push(Evas_Engine_GL_Context *gc, shader = evas_gl_common_shader_choice (0, NULL, r, g, b, a, !!mtex, SHADER_RGB_A_PAIR_NOMUL, SHADER_RGB_A_PAIR, - SHADER_RGB_A_PAIR_MASK, SHADER_RGB_A_PAIR_MASK); + SHADER_RGB_A_PAIR_MASK_NOMUL, SHADER_RGB_A_PAIR_MASK); prog = gc->shared->shader[shader].prog; pn = _evas_gl_common_context_push(RTYPE_IMAGE, @@ -2579,20 +2579,20 @@ evas_gl_common_context_image_map_push(Evas_Engine_GL_Context *gc, case EVAS_COLORSPACE_YCBCR422P709_PL: shader = evas_gl_common_shader_choice(npoints, p, r, g, b, a, !!mtex, SHADER_YUV_NOMUL, SHADER_YUV, - SHADER_YUV_MASK, SHADER_YUV_MASK); + SHADER_YUV_MASK_NOMUL, SHADER_YUV_MASK); utexture = EINA_TRUE; break; case EVAS_COLORSPACE_YCBCR422601_PL: shader = evas_gl_common_shader_choice(npoints, p, r, g, b, a, !!mtex, SHADER_YUY2_NOMUL, SHADER_YUY2, - SHADER_YUY2_MASK, SHADER_YUY2_MASK); + SHADER_YUY2_MASK_NOMUL, SHADER_YUY2_MASK); uvtexture = EINA_TRUE; break; case EVAS_COLORSPACE_YCBCR420NV12601_PL: case EVAS_COLORSPACE_YCBCR420TM12601_PL: shader = evas_gl_common_shader_choice(npoints, p, r, g, b, a, !!mtex, SHADER_NV12_NOMUL, SHADER_NV12, - SHADER_NV12_MASK, SHADER_NV12_MASK); + SHADER_NV12_MASK_NOMUL, SHADER_NV12_MASK); uvtexture = EINA_TRUE; break; @@ -2603,13 +2603,13 @@ evas_gl_common_context_image_map_push(Evas_Engine_GL_Context *gc, { shader = evas_gl_common_shader_choice(npoints, p, r, g, b, a, !!mtex, SHADER_IMG_BGRA_NOMUL, SHADER_IMG_BGRA, - SHADER_IMG_MASK_BGRA_NOMUL, SHADER_IMG_MASK_BGRA); + SHADER_IMG_BGRA_MASK_NOMUL, SHADER_IMG_BGRA_MASK); } else { shader = evas_gl_common_shader_choice(npoints, p, r, g, b, a, !!mtex, - SHADER_TEX_NOMUL, SHADER_TEX, - SHADER_IMG_MASK_BGRA_NOMUL, SHADER_IMG_MASK_BGRA); + SHADER_IMG_BGRA_NOMUL, SHADER_IMG_BGRA, + SHADER_IMG_BGRA_MASK_NOMUL, SHADER_IMG_BGRA_MASK); } } else @@ -2618,7 +2618,7 @@ evas_gl_common_context_image_map_push(Evas_Engine_GL_Context *gc, { shader = evas_gl_common_shader_choice(npoints, p, r, g, b, a, !!mtex, SHADER_IMG_BGRA_NOMUL, SHADER_IMG_BGRA, - SHADER_IMG_MASK_BGRA_NOMUL, SHADER_IMG_MASK_BGRA); + SHADER_IMG_BGRA_MASK_NOMUL, SHADER_IMG_BGRA_MASK); } else { @@ -3424,7 +3424,7 @@ shader_array_flush(Evas_Engine_GL_Context *gc) if (dbgflushnum == 1) { const char *types[] = - { "----", "RECT", "IMAG", "FONT", "YUV-", "MAP-", "YUY2", "NV12", "LINE" }; + { "----", "RECT", "IMAG", "FONT", "YUV-", "MAP-", "YUY2", "NV12", "LINE", "PAIR", "EXTR" }; printf(" DRAW#%3i %4i -> %p[%4ix%4i] @ %4ix%4i -{ tex %4i type %s }-\n", i, gc->pipe[i].array.num / 6, diff --git a/src/modules/evas/engines/gl_common/shader/.gitignore b/src/modules/evas/engines/gl_common/shader/.gitignore new file mode 100644 index 0000000..0074827 --- /dev/null +++ b/src/modules/evas/engines/gl_common/shader/.gitignore @@ -0,0 +1 @@ +*.shd diff --git a/src/modules/evas/engines/gl_common/shader/evas_gl_enum.x b/src/modules/evas/engines/gl_common/shader/evas_gl_enum.x index 3da8ac2..4db60a5 100644 --- a/src/modules/evas/engines/gl_common/shader/evas_gl_enum.x +++ b/src/modules/evas/engines/gl_common/shader/evas_gl_enum.x @@ -1,66 +1,80 @@ /* DO NOT MODIFY THIS FILE AS IT IS AUTO-GENERATED - * See: modules/evas/engines/gl_common/shader/gen_shaders.sh */ + * See: ./modules/evas/engines/gl_common/shader/gen_shaders.sh */ typedef enum { + SHADER_RECT, + SHADER_RECT_MASK, SHADER_FONT, SHADER_FONT_MASK, - SHADER_IMG_12_BGRA_NOMUL, - SHADER_IMG_12_BGRA, - SHADER_IMG_12_NOMUL, + SHADER_IMG, + SHADER_IMG_BGRA, SHADER_IMG_12, - SHADER_IMG_21_BGRA_NOMUL, - SHADER_IMG_21_BGRA, - SHADER_IMG_21_NOMUL, SHADER_IMG_21, - SHADER_IMG_22_BGRA_NOMUL, - SHADER_IMG_22_BGRA, - SHADER_IMG_22_NOMUL, SHADER_IMG_22, - SHADER_IMG_BGRA_NOMUL, - SHADER_IMG_BGRA, - SHADER_IMG_NOMUL, - SHADER_IMG, - SHADER_NV12_NOMUL, - SHADER_NV12, - SHADER_RECT, - SHADER_RGB_A_PAIR_NOMUL, - SHADER_RGB_A_PAIR, - SHADER_TEX_12, - SHADER_TEX_12_NOMUL, - SHADER_TEX_21, - SHADER_TEX_21_NOMUL, - SHADER_TEX_22, - SHADER_TEX_22_NOMUL, - SHADER_TEX, - SHADER_TEX_NOMUL, - SHADER_TEX_AFILL, - SHADER_TEX_22_AFILL, - SHADER_TEX_21_AFILL, - SHADER_TEX_12_AFILL, - SHADER_TEX_22_NOMUL_AFILL, - SHADER_TEX_21_NOMUL_AFILL, - SHADER_TEX_12_NOMUL_AFILL, - SHADER_TEX_NOMUL_AFILL, - SHADER_YUV_NOMUL, - SHADER_YUV, - SHADER_YUY2_NOMUL, - SHADER_YUY2, + SHADER_IMG_12_BGRA, + SHADER_IMG_21_BGRA, + SHADER_IMG_22_BGRA, SHADER_IMG_MASK, + SHADER_IMG_BGRA_MASK, + SHADER_IMG_12_MASK, + SHADER_IMG_21_MASK, + SHADER_IMG_22_MASK, + SHADER_IMG_12_BGRA_MASK, + SHADER_IMG_21_BGRA_MASK, + SHADER_IMG_22_BGRA_MASK, + SHADER_IMG_NOMUL, + SHADER_IMG_BGRA_NOMUL, + SHADER_IMG_12_NOMUL, + SHADER_IMG_21_NOMUL, + SHADER_IMG_22_NOMUL, + SHADER_IMG_12_BGRA_NOMUL, + SHADER_IMG_21_BGRA_NOMUL, + SHADER_IMG_22_BGRA_NOMUL, SHADER_IMG_MASK_NOMUL, - SHADER_IMG_MASK_BGRA, - SHADER_IMG_MASK_BGRA_NOMUL, - SHADER_YUV_MASK, - SHADER_NV12_MASK, - SHADER_YUY2_MASK, + SHADER_IMG_BGRA_MASK_NOMUL, + SHADER_IMG_12_MASK_NOMUL, + SHADER_IMG_21_MASK_NOMUL, + SHADER_IMG_22_MASK_NOMUL, + SHADER_IMG_12_BGRA_MASK_NOMUL, + SHADER_IMG_21_BGRA_MASK_NOMUL, + SHADER_IMG_22_BGRA_MASK_NOMUL, + SHADER_IMG_AFILL, + SHADER_IMG_BGRA_AFILL, + SHADER_IMG_NOMUL_AFILL, + SHADER_IMG_BGRA_NOMUL_AFILL, + SHADER_IMG_12_AFILL, + SHADER_IMG_21_AFILL, + SHADER_IMG_22_AFILL, + SHADER_IMG_12_BGRA_AFILL, + SHADER_IMG_21_BGRA_AFILL, + SHADER_IMG_22_BGRA_AFILL, + SHADER_IMG_12_NOMUL_AFILL, + SHADER_IMG_21_NOMUL_AFILL, + SHADER_IMG_22_NOMUL_AFILL, + SHADER_IMG_12_BGRA_NOMUL_AFILL, + SHADER_IMG_21_BGRA_NOMUL_AFILL, + SHADER_IMG_22_BGRA_NOMUL_AFILL, + SHADER_RGB_A_PAIR, SHADER_RGB_A_PAIR_MASK, - SHADER_RECT_MASK, - SHADER_MAP_MASK, - SHADER_MAP_MASK_NOMUL, - SHADER_MAP_MASK_BGRA, - SHADER_MAP_MASK_BGRA_NOMUL, + SHADER_RGB_A_PAIR_NOMUL, + SHADER_RGB_A_PAIR_MASK_NOMUL, SHADER_TEX_EXTERNAL, - SHADER_TEX_EXTERNAL_NOMUL, SHADER_TEX_EXTERNAL_AFILL, + SHADER_TEX_EXTERNAL_NOMUL, SHADER_TEX_EXTERNAL_NOMUL_AFILL, + SHADER_TEX_EXTERNAL_MASK, + SHADER_TEX_EXTERNAL_MASK_NOMUL, + SHADER_YUV, + SHADER_YUV_NOMUL, + SHADER_YUV_MASK, + SHADER_YUV_MASK_NOMUL, + SHADER_YUY2, + SHADER_YUY2_NOMUL, + SHADER_YUY2_MASK, + SHADER_YUY2_MASK_NOMUL, + SHADER_NV12, + SHADER_NV12_NOMUL, + SHADER_NV12_MASK, + SHADER_NV12_MASK_NOMUL, SHADER_LAST } Evas_GL_Shader; diff --git a/src/modules/evas/engines/gl_common/shader/evas_gl_shaders.x b/src/modules/evas/engines/gl_common/shader/evas_gl_shaders.x index d047c3f..4d18aed 100644 --- a/src/modules/evas/engines/gl_common/shader/evas_gl_shaders.x +++ b/src/modules/evas/engines/gl_common/shader/evas_gl_shaders.x @@ -1,10 +1,9 @@ /* DO NOT MODIFY THIS FILE AS IT IS AUTO-GENERATED - * See: modules/evas/engines/gl_common/shader/gen_shaders.sh */ + * See: ./modules/evas/engines/gl_common/shader/gen_shaders.sh */ #include "../evas_gl_private.h" -/* Source: modules/evas/engines/gl_common/shader/font_frag.shd */ -static const char const font_frag_glsl[] = +static const char const rect_frag_glsl[] = "#ifdef GL_ES\n" "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" @@ -12,44 +11,42 @@ static const char const font_frag_glsl[] = "precision mediump float;\n" "#endif\n" "#endif\n" - "uniform sampler2D tex;\n" "varying vec4 col;\n" - "varying vec2 tex_c;\n" "void main()\n" "{\n" - " gl_FragColor = texture2D(tex, tex_c.xy).aaaa * col;\n" + " vec4 c;\n" + " c = vec4(1, 1, 1, 1);\n" + " gl_FragColor =\n" + " c\n" + " * col\n" + " ;\n" "}\n"; -Evas_GL_Program_Source shader_font_frag_src = +Evas_GL_Program_Source shader_rect_frag_src = { - font_frag_glsl, + rect_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/font_vert.shd */ -static const char const font_vert_glsl[] = +static const char const rect_vert_glsl[] = "#ifdef GL_ES\n" "precision highp float;\n" "#endif\n" "attribute vec4 vertex;\n" - "attribute vec4 color;\n" - "attribute vec2 tex_coord;\n" "uniform mat4 mvp;\n" + "attribute vec4 color;\n" "varying vec4 col;\n" - "varying vec2 tex_c;\n" "void main()\n" "{\n" " gl_Position = mvp * vertex;\n" " col = color;\n" - " tex_c = tex_coord;\n" "}\n"; -Evas_GL_Program_Source shader_font_vert_src = +Evas_GL_Program_Source shader_rect_vert_src = { - font_vert_glsl, + rect_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/font_mask_frag.shd */ -static const char const font_mask_frag_glsl[] = +static const char const rect_mask_frag_glsl[] = "#ifdef GL_ES\n" "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" @@ -57,52 +54,49 @@ static const char const font_mask_frag_glsl[] = "precision mediump float;\n" "#endif\n" "#endif\n" - "uniform sampler2D tex;\n" - "uniform sampler2D texm;\n" "varying vec4 col;\n" - "varying vec2 tex_c;\n" + "uniform sampler2D texm;\n" "varying vec2 tex_m;\n" "void main()\n" "{\n" - " gl_FragColor = texture2D(tex, tex_c.xy).aaaa * texture2D(texm, tex_m.xy).aaaa * col;\n" + " vec4 c;\n" + " c = vec4(1, 1, 1, 1);\n" + " gl_FragColor =\n" + " c\n" + " * col\n" + " * texture2D(texm, tex_m).a\n" + " ;\n" "}\n"; -Evas_GL_Program_Source shader_font_mask_frag_src = +Evas_GL_Program_Source shader_rect_mask_frag_src = { - font_mask_frag_glsl, + rect_mask_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/font_mask_vert.shd */ -static const char const font_mask_vert_glsl[] = +static const char const rect_mask_vert_glsl[] = "#ifdef GL_ES\n" "precision highp float;\n" "#endif\n" "attribute vec4 vertex;\n" - "attribute vec4 color;\n" - "attribute vec2 tex_coord;\n" - "attribute vec4 mask_coord;\n" "uniform mat4 mvp;\n" + "attribute vec4 color;\n" "varying vec4 col;\n" - "varying vec2 tex_c;\n" + "attribute vec4 mask_coord;\n" "varying vec2 tex_m;\n" "void main()\n" "{\n" " gl_Position = mvp * vertex;\n" " col = color;\n" - " tex_c = tex_coord;\n" - " // mask_coord.w contains the Y-invert flag\n" - " // position on screen in [0..1] range of current pixel\n" " vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 0.5, 0.5) + vec4(0.5, 0.5, 0, 0);\n" " tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy;\n" "}\n"; -Evas_GL_Program_Source shader_font_mask_vert_src = +Evas_GL_Program_Source shader_rect_mask_vert_src = { - font_mask_vert_glsl, + rect_mask_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/img_12_bgra_frag.shd */ -static const char const img_12_bgra_frag_glsl[] = +static const char const font_frag_glsl[] = "#ifdef GL_ES\n" "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" @@ -110,105 +104,102 @@ static const char const img_12_bgra_frag_glsl[] = "precision mediump float;\n" "#endif\n" "#endif\n" - "uniform sampler2D tex;\n" "varying vec4 col;\n" + "uniform sampler2D tex;\n" "varying vec2 tex_c;\n" - "varying vec2 tex_s[2];\n" - "varying vec4 div_s;\n" "void main()\n" "{\n" - " vec4 col00 = texture2D(tex, tex_c + tex_s[0]);\n" - " vec4 col01 = texture2D(tex, tex_c + tex_s[1]);\n" - " gl_FragColor = ((col00 + col01) / div_s) * col;\n" + " vec4 c;\n" + " c = texture2D(tex, tex_c).aaaa;\n" + " gl_FragColor =\n" + " c\n" + " * col\n" + " ;\n" "}\n"; -Evas_GL_Program_Source shader_img_12_bgra_frag_src = +Evas_GL_Program_Source shader_font_frag_src = { - img_12_bgra_frag_glsl, + font_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/img_12_bgra_nomul_frag.shd */ -static const char const img_12_bgra_nomul_frag_glsl[] = +static const char const font_vert_glsl[] = "#ifdef GL_ES\n" - "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" - "#else\n" - "precision mediump float;\n" - "#endif\n" "#endif\n" - "uniform sampler2D tex;\n" + "attribute vec4 vertex;\n" + "uniform mat4 mvp;\n" + "attribute vec4 color;\n" + "varying vec4 col;\n" + "attribute vec2 tex_coord;\n" "varying vec2 tex_c;\n" - "varying vec2 tex_s[2];\n" - "varying vec4 div_s;\n" "void main()\n" "{\n" - " vec4 col00 = texture2D(tex, tex_c + tex_s[0]);\n" - " vec4 col01 = texture2D(tex, tex_c + tex_s[1]);\n" - " gl_FragColor = (col00 + col01) / div_s;\n" + " gl_Position = mvp * vertex;\n" + " col = color;\n" + " tex_c = tex_coord;\n" "}\n"; -Evas_GL_Program_Source shader_img_12_bgra_nomul_frag_src = +Evas_GL_Program_Source shader_font_vert_src = { - img_12_bgra_nomul_frag_glsl, + font_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/img_12_bgra_nomul_vert.shd */ -static const char const img_12_bgra_nomul_vert_glsl[] = +static const char const font_mask_frag_glsl[] = "#ifdef GL_ES\n" + "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" + "#else\n" + "precision mediump float;\n" "#endif\n" - "attribute vec4 vertex;\n" - "attribute vec2 tex_coord;\n" - "attribute vec2 tex_sample;\n" - "uniform mat4 mvp;\n" + "#endif\n" + "varying vec4 col;\n" + "uniform sampler2D tex;\n" "varying vec2 tex_c;\n" - "varying vec2 tex_s[2];\n" - "varying vec4 div_s;\n" + "uniform sampler2D texm;\n" + "varying vec2 tex_m;\n" "void main()\n" "{\n" - " gl_Position = mvp * vertex;\n" - " tex_c = tex_coord;\n" - " tex_s[0] = vec2(0, -tex_sample.y);\n" - " tex_s[1] = vec2(0, tex_sample.y);\n" - " div_s = vec4(2, 2, 2, 2);\n" + " vec4 c;\n" + " c = texture2D(tex, tex_c).aaaa;\n" + " gl_FragColor =\n" + " c\n" + " * col\n" + " * texture2D(texm, tex_m).a\n" + " ;\n" "}\n"; -Evas_GL_Program_Source shader_img_12_bgra_nomul_vert_src = +Evas_GL_Program_Source shader_font_mask_frag_src = { - img_12_bgra_nomul_vert_glsl, + font_mask_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/img_12_bgra_vert.shd */ -static const char const img_12_bgra_vert_glsl[] = +static const char const font_mask_vert_glsl[] = "#ifdef GL_ES\n" "precision highp float;\n" "#endif\n" "attribute vec4 vertex;\n" - "attribute vec4 color;\n" - "attribute vec2 tex_coord;\n" - "attribute vec2 tex_sample;\n" "uniform mat4 mvp;\n" + "attribute vec4 color;\n" "varying vec4 col;\n" + "attribute vec2 tex_coord;\n" "varying vec2 tex_c;\n" - "varying vec2 tex_s[2];\n" - "varying vec4 div_s;\n" + "attribute vec4 mask_coord;\n" + "varying vec2 tex_m;\n" "void main()\n" "{\n" " gl_Position = mvp * vertex;\n" " col = color;\n" " tex_c = tex_coord;\n" - " tex_s[0] = vec2(0, -tex_sample.y);\n" - " tex_s[1] = vec2(0, tex_sample.y);\n" - " div_s = vec4(2, 2, 2, 2);\n" + " vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 0.5, 0.5) + vec4(0.5, 0.5, 0, 0);\n" + " tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy;\n" "}\n"; -Evas_GL_Program_Source shader_img_12_bgra_vert_src = +Evas_GL_Program_Source shader_font_mask_vert_src = { - img_12_bgra_vert_glsl, + font_mask_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/img_12_frag.shd */ -static const char const img_12_frag_glsl[] = +static const char const img_frag_glsl[] = "#ifdef GL_ES\n" "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" @@ -216,25 +207,47 @@ static const char const img_12_frag_glsl[] = "precision mediump float;\n" "#endif\n" "#endif\n" + "varying vec4 col;\n" "uniform sampler2D tex;\n" + "varying vec2 tex_c;\n" + "void main()\n" + "{\n" + " vec4 c;\n" + " c = texture2D(tex, tex_c).bgra;\n" + " gl_FragColor =\n" + " c\n" + " * col\n" + " ;\n" + "}\n"; +Evas_GL_Program_Source shader_img_frag_src = +{ + img_frag_glsl, + NULL, 0 +}; + +static const char const img_vert_glsl[] = + "#ifdef GL_ES\n" + "precision highp float;\n" + "#endif\n" + "attribute vec4 vertex;\n" + "uniform mat4 mvp;\n" + "attribute vec4 color;\n" "varying vec4 col;\n" + "attribute vec2 tex_coord;\n" "varying vec2 tex_c;\n" - "varying vec2 tex_s[2];\n" - "varying vec4 div_s;\n" "void main()\n" "{\n" - " vec4 col00 = texture2D(tex, tex_c + tex_s[0]).bgra;\n" - " vec4 col01 = texture2D(tex, tex_c + tex_s[1]).bgra;\n" - " gl_FragColor = ((col00 + col01) / div_s) * col;\n" + " gl_Position = mvp * vertex;\n" + " col = color;\n" + " tex_c = tex_coord;\n" "}\n"; -Evas_GL_Program_Source shader_img_12_frag_src = +Evas_GL_Program_Source shader_img_vert_src = { - img_12_frag_glsl, + img_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/img_12_nomul_frag.shd */ -static const char const img_12_nomul_frag_glsl[] = +static const char const img_bgra_frag_glsl[] = "#ifdef GL_ES\n" "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" @@ -242,105 +255,105 @@ static const char const img_12_nomul_frag_glsl[] = "precision mediump float;\n" "#endif\n" "#endif\n" + "varying vec4 col;\n" "uniform sampler2D tex;\n" "varying vec2 tex_c;\n" - "varying vec2 tex_s[2];\n" - "varying vec4 div_s;\n" "void main()\n" "{\n" - " vec4 col00 = texture2D(tex, tex_c + tex_s[0]).bgra;\n" - " vec4 col01 = texture2D(tex, tex_c + tex_s[1]).bgra;\n" - " gl_FragColor = (col00 + col01) / div_s;\n" + " vec4 c;\n" + " c = texture2D(tex, tex_c).rgba;\n" + " gl_FragColor =\n" + " c\n" + " * col\n" + " ;\n" "}\n"; -Evas_GL_Program_Source shader_img_12_nomul_frag_src = +Evas_GL_Program_Source shader_img_bgra_frag_src = { - img_12_nomul_frag_glsl, + img_bgra_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/img_12_nomul_vert.shd */ -static const char const img_12_nomul_vert_glsl[] = +static const char const img_bgra_vert_glsl[] = "#ifdef GL_ES\n" "precision highp float;\n" "#endif\n" "attribute vec4 vertex;\n" - "attribute vec2 tex_coord;\n" - "attribute vec2 tex_sample;\n" "uniform mat4 mvp;\n" + "attribute vec4 color;\n" + "varying vec4 col;\n" + "attribute vec2 tex_coord;\n" "varying vec2 tex_c;\n" - "varying vec2 tex_s[2];\n" - "varying vec4 div_s;\n" "void main()\n" "{\n" " gl_Position = mvp * vertex;\n" + " col = color;\n" " tex_c = tex_coord;\n" - " tex_s[0] = vec2(0, -tex_sample.y);\n" - " tex_s[1] = vec2(0, tex_sample.y);\n" - " div_s = vec4(2, 2, 2, 2);\n" "}\n"; -Evas_GL_Program_Source shader_img_12_nomul_vert_src = +Evas_GL_Program_Source shader_img_bgra_vert_src = { - img_12_nomul_vert_glsl, + img_bgra_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/img_12_vert.shd */ -static const char const img_12_vert_glsl[] = +static const char const img_12_frag_glsl[] = "#ifdef GL_ES\n" + "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" + "#else\n" + "precision mediump float;\n" + "#endif\n" "#endif\n" - "attribute vec4 vertex;\n" - "attribute vec4 color;\n" - "attribute vec2 tex_coord;\n" - "attribute vec2 tex_sample;\n" - "uniform mat4 mvp;\n" "varying vec4 col;\n" + "uniform sampler2D tex;\n" "varying vec2 tex_c;\n" - "varying vec2 tex_s[2];\n" "varying vec4 div_s;\n" + "varying vec2 tex_s[2];\n" "void main()\n" "{\n" - " gl_Position = mvp * vertex;\n" - " col = color;\n" - " tex_c = tex_coord;\n" - " tex_s[0] = vec2(0, -tex_sample.y);\n" - " tex_s[1] = vec2(0, tex_sample.y);\n" - " div_s = vec4(2, 2, 2, 2);\n" + " vec4 c;\n" + " vec4 col00 = texture2D(tex, tex_c + tex_s[0]).bgra;\n" + " vec4 col01 = texture2D(tex, tex_c + tex_s[1]).bgra;\n" + " c = (col00 + col01) / div_s;\n" + " gl_FragColor =\n" + " c\n" + " * col\n" + " ;\n" "}\n"; -Evas_GL_Program_Source shader_img_12_vert_src = +Evas_GL_Program_Source shader_img_12_frag_src = { - img_12_vert_glsl, + img_12_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/img_21_bgra_frag.shd */ -static const char const img_21_bgra_frag_glsl[] = +static const char const img_12_vert_glsl[] = "#ifdef GL_ES\n" - "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" - "#else\n" - "precision mediump float;\n" - "#endif\n" "#endif\n" - "uniform sampler2D tex;\n" + "attribute vec4 vertex;\n" + "uniform mat4 mvp;\n" + "attribute vec4 color;\n" "varying vec4 col;\n" + "attribute vec2 tex_coord;\n" "varying vec2 tex_c;\n" - "varying vec2 tex_s[2];\n" + "attribute vec2 tex_sample;\n" "varying vec4 div_s;\n" + "varying vec2 tex_s[2];\n" "void main()\n" "{\n" - " vec4 col00 = texture2D(tex, tex_c + tex_s[0]);\n" - " vec4 col01 = texture2D(tex, tex_c + tex_s[1]);\n" - " gl_FragColor = ((col00 + col01) / div_s) * col;\n" + " gl_Position = mvp * vertex;\n" + " col = color;\n" + " tex_c = tex_coord;\n" + " tex_s[0] = vec2(0, -tex_sample.y);\n" + " tex_s[1] = vec2(0, tex_sample.y);\n" + " div_s = vec4(2, 2, 2, 2);\n" "}\n"; -Evas_GL_Program_Source shader_img_21_bgra_frag_src = +Evas_GL_Program_Source shader_img_12_vert_src = { - img_21_bgra_frag_glsl, + img_12_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/img_21_bgra_nomul_frag.shd */ -static const char const img_21_bgra_nomul_frag_glsl[] = +static const char const img_21_frag_glsl[] = "#ifdef GL_ES\n" "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" @@ -348,79 +361,891 @@ static const char const img_21_bgra_nomul_frag_glsl[] = "precision mediump float;\n" "#endif\n" "#endif\n" + "varying vec4 col;\n" "uniform sampler2D tex;\n" "varying vec2 tex_c;\n" - "varying vec2 tex_s[2];\n" "varying vec4 div_s;\n" + "varying vec2 tex_s[2];\n" "void main()\n" "{\n" - " vec4 col00 = texture2D(tex, tex_c + tex_s[0]);\n" - " vec4 col01 = texture2D(tex, tex_c + tex_s[1]);\n" - " gl_FragColor = (col00 + col01) / div_s;\n" + " vec4 c;\n" + " vec4 col00 = texture2D(tex, tex_c + tex_s[0]).bgra;\n" + " vec4 col01 = texture2D(tex, tex_c + tex_s[1]).bgra;\n" + " c = (col00 + col01) / div_s;\n" + " gl_FragColor =\n" + " c\n" + " * col\n" + " ;\n" "}\n"; -Evas_GL_Program_Source shader_img_21_bgra_nomul_frag_src = +Evas_GL_Program_Source shader_img_21_frag_src = { - img_21_bgra_nomul_frag_glsl, + img_21_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/img_21_bgra_nomul_vert.shd */ -static const char const img_21_bgra_nomul_vert_glsl[] = +static const char const img_21_vert_glsl[] = "#ifdef GL_ES\n" "precision highp float;\n" "#endif\n" "attribute vec4 vertex;\n" - "attribute vec2 tex_coord;\n" - "attribute vec2 tex_sample;\n" "uniform mat4 mvp;\n" + "attribute vec4 color;\n" + "varying vec4 col;\n" + "attribute vec2 tex_coord;\n" "varying vec2 tex_c;\n" - "varying vec2 tex_s[2];\n" + "attribute vec2 tex_sample;\n" "varying vec4 div_s;\n" + "varying vec2 tex_s[2];\n" "void main()\n" "{\n" " gl_Position = mvp * vertex;\n" + " col = color;\n" " tex_c = tex_coord;\n" " tex_s[0] = vec2(-tex_sample.x, 0);\n" " tex_s[1] = vec2( tex_sample.x, 0);\n" " div_s = vec4(2, 2, 2, 2);\n" "}\n"; -Evas_GL_Program_Source shader_img_21_bgra_nomul_vert_src = +Evas_GL_Program_Source shader_img_21_vert_src = { - img_21_bgra_nomul_vert_glsl, + img_21_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/img_21_bgra_vert.shd */ -static const char const img_21_bgra_vert_glsl[] = +static const char const img_22_frag_glsl[] = "#ifdef GL_ES\n" + "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" + "#else\n" + "precision mediump float;\n" "#endif\n" - "attribute vec4 vertex;\n" - "attribute vec4 color;\n" + "#endif\n" + "varying vec4 col;\n" + "uniform sampler2D tex;\n" + "varying vec2 tex_c;\n" + "varying vec4 div_s;\n" + "varying vec2 tex_s[4];\n" + "void main()\n" + "{\n" + " vec4 c;\n" + " vec4 col00 = texture2D(tex, tex_c + tex_s[0]).bgra;\n" + " vec4 col01 = texture2D(tex, tex_c + tex_s[1]).bgra;\n" + " vec4 col10 = texture2D(tex, tex_c + tex_s[2]).bgra;\n" + " vec4 col11 = texture2D(tex, tex_c + tex_s[3]).bgra;\n" + " c = (col00 + col01 + col10 + col11) / div_s;\n" + " gl_FragColor =\n" + " c\n" + " * col\n" + " ;\n" + "}\n"; +Evas_GL_Program_Source shader_img_22_frag_src = +{ + img_22_frag_glsl, + NULL, 0 +}; + +static const char const img_22_vert_glsl[] = + "#ifdef GL_ES\n" + "precision highp float;\n" + "#endif\n" + "attribute vec4 vertex;\n" + "uniform mat4 mvp;\n" + "attribute vec4 color;\n" + "varying vec4 col;\n" + "attribute vec2 tex_coord;\n" + "varying vec2 tex_c;\n" + "attribute vec2 tex_sample;\n" + "varying vec4 div_s;\n" + "varying vec2 tex_s[4];\n" + "void main()\n" + "{\n" + " gl_Position = mvp * vertex;\n" + " col = color;\n" + " tex_c = tex_coord;\n" + " tex_s[0] = vec2(-tex_sample.x, -tex_sample.y);\n" + " tex_s[1] = vec2( tex_sample.x, -tex_sample.y);\n" + " tex_s[2] = vec2( tex_sample.x, tex_sample.y);\n" + " tex_s[3] = vec2(-tex_sample.x, tex_sample.y);\n" + " div_s = vec4(4, 4, 4, 4);\n" + "}\n"; +Evas_GL_Program_Source shader_img_22_vert_src = +{ + img_22_vert_glsl, + NULL, 0 +}; + +static const char const img_12_bgra_frag_glsl[] = + "#ifdef GL_ES\n" + "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" + "precision highp float;\n" + "#else\n" + "precision mediump float;\n" + "#endif\n" + "#endif\n" + "varying vec4 col;\n" + "uniform sampler2D tex;\n" + "varying vec2 tex_c;\n" + "varying vec4 div_s;\n" + "varying vec2 tex_s[2];\n" + "void main()\n" + "{\n" + " vec4 c;\n" + " vec4 col00 = texture2D(tex, tex_c + tex_s[0]).rgba;\n" + " vec4 col01 = texture2D(tex, tex_c + tex_s[1]).rgba;\n" + " c = (col00 + col01) / div_s;\n" + " gl_FragColor =\n" + " c\n" + " * col\n" + " ;\n" + "}\n"; +Evas_GL_Program_Source shader_img_12_bgra_frag_src = +{ + img_12_bgra_frag_glsl, + NULL, 0 +}; + +static const char const img_12_bgra_vert_glsl[] = + "#ifdef GL_ES\n" + "precision highp float;\n" + "#endif\n" + "attribute vec4 vertex;\n" + "uniform mat4 mvp;\n" + "attribute vec4 color;\n" + "varying vec4 col;\n" + "attribute vec2 tex_coord;\n" + "varying vec2 tex_c;\n" + "attribute vec2 tex_sample;\n" + "varying vec4 div_s;\n" + "varying vec2 tex_s[2];\n" + "void main()\n" + "{\n" + " gl_Position = mvp * vertex;\n" + " col = color;\n" + " tex_c = tex_coord;\n" + " tex_s[0] = vec2(0, -tex_sample.y);\n" + " tex_s[1] = vec2(0, tex_sample.y);\n" + " div_s = vec4(2, 2, 2, 2);\n" + "}\n"; +Evas_GL_Program_Source shader_img_12_bgra_vert_src = +{ + img_12_bgra_vert_glsl, + NULL, 0 +}; + +static const char const img_21_bgra_frag_glsl[] = + "#ifdef GL_ES\n" + "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" + "precision highp float;\n" + "#else\n" + "precision mediump float;\n" + "#endif\n" + "#endif\n" + "varying vec4 col;\n" + "uniform sampler2D tex;\n" + "varying vec2 tex_c;\n" + "varying vec4 div_s;\n" + "varying vec2 tex_s[2];\n" + "void main()\n" + "{\n" + " vec4 c;\n" + " vec4 col00 = texture2D(tex, tex_c + tex_s[0]).rgba;\n" + " vec4 col01 = texture2D(tex, tex_c + tex_s[1]).rgba;\n" + " c = (col00 + col01) / div_s;\n" + " gl_FragColor =\n" + " c\n" + " * col\n" + " ;\n" + "}\n"; +Evas_GL_Program_Source shader_img_21_bgra_frag_src = +{ + img_21_bgra_frag_glsl, + NULL, 0 +}; + +static const char const img_21_bgra_vert_glsl[] = + "#ifdef GL_ES\n" + "precision highp float;\n" + "#endif\n" + "attribute vec4 vertex;\n" + "uniform mat4 mvp;\n" + "attribute vec4 color;\n" + "varying vec4 col;\n" + "attribute vec2 tex_coord;\n" + "varying vec2 tex_c;\n" + "attribute vec2 tex_sample;\n" + "varying vec4 div_s;\n" + "varying vec2 tex_s[2];\n" + "void main()\n" + "{\n" + " gl_Position = mvp * vertex;\n" + " col = color;\n" + " tex_c = tex_coord;\n" + " tex_s[0] = vec2(-tex_sample.x, 0);\n" + " tex_s[1] = vec2( tex_sample.x, 0);\n" + " div_s = vec4(2, 2, 2, 2);\n" + "}\n"; +Evas_GL_Program_Source shader_img_21_bgra_vert_src = +{ + img_21_bgra_vert_glsl, + NULL, 0 +}; + +static const char const img_22_bgra_frag_glsl[] = + "#ifdef GL_ES\n" + "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" + "precision highp float;\n" + "#else\n" + "precision mediump float;\n" + "#endif\n" + "#endif\n" + "varying vec4 col;\n" + "uniform sampler2D tex;\n" + "varying vec2 tex_c;\n" + "varying vec4 div_s;\n" + "varying vec2 tex_s[4];\n" + "void main()\n" + "{\n" + " vec4 c;\n" + " vec4 col00 = texture2D(tex, tex_c + tex_s[0]).rgba;\n" + " vec4 col01 = texture2D(tex, tex_c + tex_s[1]).rgba;\n" + " vec4 col10 = texture2D(tex, tex_c + tex_s[2]).rgba;\n" + " vec4 col11 = texture2D(tex, tex_c + tex_s[3]).rgba;\n" + " c = (col00 + col01 + col10 + col11) / div_s;\n" + " gl_FragColor =\n" + " c\n" + " * col\n" + " ;\n" + "}\n"; +Evas_GL_Program_Source shader_img_22_bgra_frag_src = +{ + img_22_bgra_frag_glsl, + NULL, 0 +}; + +static const char const img_22_bgra_vert_glsl[] = + "#ifdef GL_ES\n" + "precision highp float;\n" + "#endif\n" + "attribute vec4 vertex;\n" + "uniform mat4 mvp;\n" + "attribute vec4 color;\n" + "varying vec4 col;\n" + "attribute vec2 tex_coord;\n" + "varying vec2 tex_c;\n" + "attribute vec2 tex_sample;\n" + "varying vec4 div_s;\n" + "varying vec2 tex_s[4];\n" + "void main()\n" + "{\n" + " gl_Position = mvp * vertex;\n" + " col = color;\n" + " tex_c = tex_coord;\n" + " tex_s[0] = vec2(-tex_sample.x, -tex_sample.y);\n" + " tex_s[1] = vec2( tex_sample.x, -tex_sample.y);\n" + " tex_s[2] = vec2( tex_sample.x, tex_sample.y);\n" + " tex_s[3] = vec2(-tex_sample.x, tex_sample.y);\n" + " div_s = vec4(4, 4, 4, 4);\n" + "}\n"; +Evas_GL_Program_Source shader_img_22_bgra_vert_src = +{ + img_22_bgra_vert_glsl, + NULL, 0 +}; + +static const char const img_mask_frag_glsl[] = + "#ifdef GL_ES\n" + "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" + "precision highp float;\n" + "#else\n" + "precision mediump float;\n" + "#endif\n" + "#endif\n" + "varying vec4 col;\n" + "uniform sampler2D tex;\n" + "varying vec2 tex_c;\n" + "uniform sampler2D texm;\n" + "varying vec2 tex_m;\n" + "void main()\n" + "{\n" + " vec4 c;\n" + " c = texture2D(tex, tex_c).bgra;\n" + " gl_FragColor =\n" + " c\n" + " * col\n" + " * texture2D(texm, tex_m).a\n" + " ;\n" + "}\n"; +Evas_GL_Program_Source shader_img_mask_frag_src = +{ + img_mask_frag_glsl, + NULL, 0 +}; + +static const char const img_mask_vert_glsl[] = + "#ifdef GL_ES\n" + "precision highp float;\n" + "#endif\n" + "attribute vec4 vertex;\n" + "uniform mat4 mvp;\n" + "attribute vec4 color;\n" + "varying vec4 col;\n" + "attribute vec2 tex_coord;\n" + "varying vec2 tex_c;\n" + "attribute vec4 mask_coord;\n" + "varying vec2 tex_m;\n" + "void main()\n" + "{\n" + " gl_Position = mvp * vertex;\n" + " col = color;\n" + " tex_c = tex_coord;\n" + " vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 0.5, 0.5) + vec4(0.5, 0.5, 0, 0);\n" + " tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy;\n" + "}\n"; +Evas_GL_Program_Source shader_img_mask_vert_src = +{ + img_mask_vert_glsl, + NULL, 0 +}; + +static const char const img_bgra_mask_frag_glsl[] = + "#ifdef GL_ES\n" + "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" + "precision highp float;\n" + "#else\n" + "precision mediump float;\n" + "#endif\n" + "#endif\n" + "varying vec4 col;\n" + "uniform sampler2D tex;\n" + "varying vec2 tex_c;\n" + "uniform sampler2D texm;\n" + "varying vec2 tex_m;\n" + "void main()\n" + "{\n" + " vec4 c;\n" + " c = texture2D(tex, tex_c).rgba;\n" + " gl_FragColor =\n" + " c\n" + " * col\n" + " * texture2D(texm, tex_m).a\n" + " ;\n" + "}\n"; +Evas_GL_Program_Source shader_img_bgra_mask_frag_src = +{ + img_bgra_mask_frag_glsl, + NULL, 0 +}; + +static const char const img_bgra_mask_vert_glsl[] = + "#ifdef GL_ES\n" + "precision highp float;\n" + "#endif\n" + "attribute vec4 vertex;\n" + "uniform mat4 mvp;\n" + "attribute vec4 color;\n" + "varying vec4 col;\n" + "attribute vec2 tex_coord;\n" + "varying vec2 tex_c;\n" + "attribute vec4 mask_coord;\n" + "varying vec2 tex_m;\n" + "void main()\n" + "{\n" + " gl_Position = mvp * vertex;\n" + " col = color;\n" + " tex_c = tex_coord;\n" + " vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 0.5, 0.5) + vec4(0.5, 0.5, 0, 0);\n" + " tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy;\n" + "}\n"; +Evas_GL_Program_Source shader_img_bgra_mask_vert_src = +{ + img_bgra_mask_vert_glsl, + NULL, 0 +}; + +static const char const img_12_mask_frag_glsl[] = + "#ifdef GL_ES\n" + "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" + "precision highp float;\n" + "#else\n" + "precision mediump float;\n" + "#endif\n" + "#endif\n" + "varying vec4 col;\n" + "uniform sampler2D tex;\n" + "varying vec2 tex_c;\n" + "varying vec4 div_s;\n" + "varying vec2 tex_s[2];\n" + "uniform sampler2D texm;\n" + "varying vec2 tex_m;\n" + "void main()\n" + "{\n" + " vec4 c;\n" + " vec4 col00 = texture2D(tex, tex_c + tex_s[0]).bgra;\n" + " vec4 col01 = texture2D(tex, tex_c + tex_s[1]).bgra;\n" + " c = (col00 + col01) / div_s;\n" + " gl_FragColor =\n" + " c\n" + " * col\n" + " * texture2D(texm, tex_m).a\n" + " ;\n" + "}\n"; +Evas_GL_Program_Source shader_img_12_mask_frag_src = +{ + img_12_mask_frag_glsl, + NULL, 0 +}; + +static const char const img_12_mask_vert_glsl[] = + "#ifdef GL_ES\n" + "precision highp float;\n" + "#endif\n" + "attribute vec4 vertex;\n" + "uniform mat4 mvp;\n" + "attribute vec4 color;\n" + "varying vec4 col;\n" + "attribute vec2 tex_coord;\n" + "varying vec2 tex_c;\n" + "attribute vec2 tex_sample;\n" + "varying vec4 div_s;\n" + "varying vec2 tex_s[2];\n" + "attribute vec4 mask_coord;\n" + "varying vec2 tex_m;\n" + "void main()\n" + "{\n" + " gl_Position = mvp * vertex;\n" + " col = color;\n" + " tex_c = tex_coord;\n" + " tex_s[0] = vec2(0, -tex_sample.y);\n" + " tex_s[1] = vec2(0, tex_sample.y);\n" + " div_s = vec4(2, 2, 2, 2);\n" + " vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 0.5, 0.5) + vec4(0.5, 0.5, 0, 0);\n" + " tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy;\n" + "}\n"; +Evas_GL_Program_Source shader_img_12_mask_vert_src = +{ + img_12_mask_vert_glsl, + NULL, 0 +}; + +static const char const img_21_mask_frag_glsl[] = + "#ifdef GL_ES\n" + "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" + "precision highp float;\n" + "#else\n" + "precision mediump float;\n" + "#endif\n" + "#endif\n" + "varying vec4 col;\n" + "uniform sampler2D tex;\n" + "varying vec2 tex_c;\n" + "varying vec4 div_s;\n" + "varying vec2 tex_s[2];\n" + "uniform sampler2D texm;\n" + "varying vec2 tex_m;\n" + "void main()\n" + "{\n" + " vec4 c;\n" + " vec4 col00 = texture2D(tex, tex_c + tex_s[0]).bgra;\n" + " vec4 col01 = texture2D(tex, tex_c + tex_s[1]).bgra;\n" + " c = (col00 + col01) / div_s;\n" + " gl_FragColor =\n" + " c\n" + " * col\n" + " * texture2D(texm, tex_m).a\n" + " ;\n" + "}\n"; +Evas_GL_Program_Source shader_img_21_mask_frag_src = +{ + img_21_mask_frag_glsl, + NULL, 0 +}; + +static const char const img_21_mask_vert_glsl[] = + "#ifdef GL_ES\n" + "precision highp float;\n" + "#endif\n" + "attribute vec4 vertex;\n" + "uniform mat4 mvp;\n" + "attribute vec4 color;\n" + "varying vec4 col;\n" + "attribute vec2 tex_coord;\n" + "varying vec2 tex_c;\n" + "attribute vec2 tex_sample;\n" + "varying vec4 div_s;\n" + "varying vec2 tex_s[2];\n" + "attribute vec4 mask_coord;\n" + "varying vec2 tex_m;\n" + "void main()\n" + "{\n" + " gl_Position = mvp * vertex;\n" + " col = color;\n" + " tex_c = tex_coord;\n" + " tex_s[0] = vec2(-tex_sample.x, 0);\n" + " tex_s[1] = vec2( tex_sample.x, 0);\n" + " div_s = vec4(2, 2, 2, 2);\n" + " vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 0.5, 0.5) + vec4(0.5, 0.5, 0, 0);\n" + " tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy;\n" + "}\n"; +Evas_GL_Program_Source shader_img_21_mask_vert_src = +{ + img_21_mask_vert_glsl, + NULL, 0 +}; + +static const char const img_22_mask_frag_glsl[] = + "#ifdef GL_ES\n" + "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" + "precision highp float;\n" + "#else\n" + "precision mediump float;\n" + "#endif\n" + "#endif\n" + "varying vec4 col;\n" + "uniform sampler2D tex;\n" + "varying vec2 tex_c;\n" + "varying vec4 div_s;\n" + "varying vec2 tex_s[4];\n" + "uniform sampler2D texm;\n" + "varying vec2 tex_m;\n" + "void main()\n" + "{\n" + " vec4 c;\n" + " vec4 col00 = texture2D(tex, tex_c + tex_s[0]).bgra;\n" + " vec4 col01 = texture2D(tex, tex_c + tex_s[1]).bgra;\n" + " vec4 col10 = texture2D(tex, tex_c + tex_s[2]).bgra;\n" + " vec4 col11 = texture2D(tex, tex_c + tex_s[3]).bgra;\n" + " c = (col00 + col01 + col10 + col11) / div_s;\n" + " gl_FragColor =\n" + " c\n" + " * col\n" + " * texture2D(texm, tex_m).a\n" + " ;\n" + "}\n"; +Evas_GL_Program_Source shader_img_22_mask_frag_src = +{ + img_22_mask_frag_glsl, + NULL, 0 +}; + +static const char const img_22_mask_vert_glsl[] = + "#ifdef GL_ES\n" + "precision highp float;\n" + "#endif\n" + "attribute vec4 vertex;\n" + "uniform mat4 mvp;\n" + "attribute vec4 color;\n" + "varying vec4 col;\n" + "attribute vec2 tex_coord;\n" + "varying vec2 tex_c;\n" + "attribute vec2 tex_sample;\n" + "varying vec4 div_s;\n" + "varying vec2 tex_s[4];\n" + "attribute vec4 mask_coord;\n" + "varying vec2 tex_m;\n" + "void main()\n" + "{\n" + " gl_Position = mvp * vertex;\n" + " col = color;\n" + " tex_c = tex_coord;\n" + " tex_s[0] = vec2(-tex_sample.x, -tex_sample.y);\n" + " tex_s[1] = vec2( tex_sample.x, -tex_sample.y);\n" + " tex_s[2] = vec2( tex_sample.x, tex_sample.y);\n" + " tex_s[3] = vec2(-tex_sample.x, tex_sample.y);\n" + " div_s = vec4(4, 4, 4, 4);\n" + " vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 0.5, 0.5) + vec4(0.5, 0.5, 0, 0);\n" + " tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy;\n" + "}\n"; +Evas_GL_Program_Source shader_img_22_mask_vert_src = +{ + img_22_mask_vert_glsl, + NULL, 0 +}; + +static const char const img_12_bgra_mask_frag_glsl[] = + "#ifdef GL_ES\n" + "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" + "precision highp float;\n" + "#else\n" + "precision mediump float;\n" + "#endif\n" + "#endif\n" + "varying vec4 col;\n" + "uniform sampler2D tex;\n" + "varying vec2 tex_c;\n" + "varying vec4 div_s;\n" + "varying vec2 tex_s[2];\n" + "uniform sampler2D texm;\n" + "varying vec2 tex_m;\n" + "void main()\n" + "{\n" + " vec4 c;\n" + " vec4 col00 = texture2D(tex, tex_c + tex_s[0]).rgba;\n" + " vec4 col01 = texture2D(tex, tex_c + tex_s[1]).rgba;\n" + " c = (col00 + col01) / div_s;\n" + " gl_FragColor =\n" + " c\n" + " * col\n" + " * texture2D(texm, tex_m).a\n" + " ;\n" + "}\n"; +Evas_GL_Program_Source shader_img_12_bgra_mask_frag_src = +{ + img_12_bgra_mask_frag_glsl, + NULL, 0 +}; + +static const char const img_12_bgra_mask_vert_glsl[] = + "#ifdef GL_ES\n" + "precision highp float;\n" + "#endif\n" + "attribute vec4 vertex;\n" + "uniform mat4 mvp;\n" + "attribute vec4 color;\n" + "varying vec4 col;\n" + "attribute vec2 tex_coord;\n" + "varying vec2 tex_c;\n" + "attribute vec2 tex_sample;\n" + "varying vec4 div_s;\n" + "varying vec2 tex_s[2];\n" + "attribute vec4 mask_coord;\n" + "varying vec2 tex_m;\n" + "void main()\n" + "{\n" + " gl_Position = mvp * vertex;\n" + " col = color;\n" + " tex_c = tex_coord;\n" + " tex_s[0] = vec2(0, -tex_sample.y);\n" + " tex_s[1] = vec2(0, tex_sample.y);\n" + " div_s = vec4(2, 2, 2, 2);\n" + " vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 0.5, 0.5) + vec4(0.5, 0.5, 0, 0);\n" + " tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy;\n" + "}\n"; +Evas_GL_Program_Source shader_img_12_bgra_mask_vert_src = +{ + img_12_bgra_mask_vert_glsl, + NULL, 0 +}; + +static const char const img_21_bgra_mask_frag_glsl[] = + "#ifdef GL_ES\n" + "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" + "precision highp float;\n" + "#else\n" + "precision mediump float;\n" + "#endif\n" + "#endif\n" + "varying vec4 col;\n" + "uniform sampler2D tex;\n" + "varying vec2 tex_c;\n" + "varying vec4 div_s;\n" + "varying vec2 tex_s[2];\n" + "uniform sampler2D texm;\n" + "varying vec2 tex_m;\n" + "void main()\n" + "{\n" + " vec4 c;\n" + " vec4 col00 = texture2D(tex, tex_c + tex_s[0]).rgba;\n" + " vec4 col01 = texture2D(tex, tex_c + tex_s[1]).rgba;\n" + " c = (col00 + col01) / div_s;\n" + " gl_FragColor =\n" + " c\n" + " * col\n" + " * texture2D(texm, tex_m).a\n" + " ;\n" + "}\n"; +Evas_GL_Program_Source shader_img_21_bgra_mask_frag_src = +{ + img_21_bgra_mask_frag_glsl, + NULL, 0 +}; + +static const char const img_21_bgra_mask_vert_glsl[] = + "#ifdef GL_ES\n" + "precision highp float;\n" + "#endif\n" + "attribute vec4 vertex;\n" + "uniform mat4 mvp;\n" + "attribute vec4 color;\n" + "varying vec4 col;\n" + "attribute vec2 tex_coord;\n" + "varying vec2 tex_c;\n" + "attribute vec2 tex_sample;\n" + "varying vec4 div_s;\n" + "varying vec2 tex_s[2];\n" + "attribute vec4 mask_coord;\n" + "varying vec2 tex_m;\n" + "void main()\n" + "{\n" + " gl_Position = mvp * vertex;\n" + " col = color;\n" + " tex_c = tex_coord;\n" + " tex_s[0] = vec2(-tex_sample.x, 0);\n" + " tex_s[1] = vec2( tex_sample.x, 0);\n" + " div_s = vec4(2, 2, 2, 2);\n" + " vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 0.5, 0.5) + vec4(0.5, 0.5, 0, 0);\n" + " tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy;\n" + "}\n"; +Evas_GL_Program_Source shader_img_21_bgra_mask_vert_src = +{ + img_21_bgra_mask_vert_glsl, + NULL, 0 +}; + +static const char const img_22_bgra_mask_frag_glsl[] = + "#ifdef GL_ES\n" + "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" + "precision highp float;\n" + "#else\n" + "precision mediump float;\n" + "#endif\n" + "#endif\n" + "varying vec4 col;\n" + "uniform sampler2D tex;\n" + "varying vec2 tex_c;\n" + "varying vec4 div_s;\n" + "varying vec2 tex_s[4];\n" + "uniform sampler2D texm;\n" + "varying vec2 tex_m;\n" + "void main()\n" + "{\n" + " vec4 c;\n" + " vec4 col00 = texture2D(tex, tex_c + tex_s[0]).rgba;\n" + " vec4 col01 = texture2D(tex, tex_c + tex_s[1]).rgba;\n" + " vec4 col10 = texture2D(tex, tex_c + tex_s[2]).rgba;\n" + " vec4 col11 = texture2D(tex, tex_c + tex_s[3]).rgba;\n" + " c = (col00 + col01 + col10 + col11) / div_s;\n" + " gl_FragColor =\n" + " c\n" + " * col\n" + " * texture2D(texm, tex_m).a\n" + " ;\n" + "}\n"; +Evas_GL_Program_Source shader_img_22_bgra_mask_frag_src = +{ + img_22_bgra_mask_frag_glsl, + NULL, 0 +}; + +static const char const img_22_bgra_mask_vert_glsl[] = + "#ifdef GL_ES\n" + "precision highp float;\n" + "#endif\n" + "attribute vec4 vertex;\n" + "uniform mat4 mvp;\n" + "attribute vec4 color;\n" + "varying vec4 col;\n" "attribute vec2 tex_coord;\n" + "varying vec2 tex_c;\n" "attribute vec2 tex_sample;\n" + "varying vec4 div_s;\n" + "varying vec2 tex_s[4];\n" + "attribute vec4 mask_coord;\n" + "varying vec2 tex_m;\n" + "void main()\n" + "{\n" + " gl_Position = mvp * vertex;\n" + " col = color;\n" + " tex_c = tex_coord;\n" + " tex_s[0] = vec2(-tex_sample.x, -tex_sample.y);\n" + " tex_s[1] = vec2( tex_sample.x, -tex_sample.y);\n" + " tex_s[2] = vec2( tex_sample.x, tex_sample.y);\n" + " tex_s[3] = vec2(-tex_sample.x, tex_sample.y);\n" + " div_s = vec4(4, 4, 4, 4);\n" + " vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 0.5, 0.5) + vec4(0.5, 0.5, 0, 0);\n" + " tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy;\n" + "}\n"; +Evas_GL_Program_Source shader_img_22_bgra_mask_vert_src = +{ + img_22_bgra_mask_vert_glsl, + NULL, 0 +}; + +static const char const img_nomul_frag_glsl[] = + "#ifdef GL_ES\n" + "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" + "precision highp float;\n" + "#else\n" + "precision mediump float;\n" + "#endif\n" + "#endif\n" + "uniform sampler2D tex;\n" + "varying vec2 tex_c;\n" + "void main()\n" + "{\n" + " vec4 c;\n" + " c = texture2D(tex, tex_c).bgra;\n" + " gl_FragColor =\n" + " c\n" + " ;\n" + "}\n"; +Evas_GL_Program_Source shader_img_nomul_frag_src = +{ + img_nomul_frag_glsl, + NULL, 0 +}; + +static const char const img_nomul_vert_glsl[] = + "#ifdef GL_ES\n" + "precision highp float;\n" + "#endif\n" + "attribute vec4 vertex;\n" + "uniform mat4 mvp;\n" + "attribute vec2 tex_coord;\n" + "varying vec2 tex_c;\n" + "void main()\n" + "{\n" + " gl_Position = mvp * vertex;\n" + " tex_c = tex_coord;\n" + "}\n"; +Evas_GL_Program_Source shader_img_nomul_vert_src = +{ + img_nomul_vert_glsl, + NULL, 0 +}; + +static const char const img_bgra_nomul_frag_glsl[] = + "#ifdef GL_ES\n" + "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" + "precision highp float;\n" + "#else\n" + "precision mediump float;\n" + "#endif\n" + "#endif\n" + "uniform sampler2D tex;\n" + "varying vec2 tex_c;\n" + "void main()\n" + "{\n" + " vec4 c;\n" + " c = texture2D(tex, tex_c).rgba;\n" + " gl_FragColor =\n" + " c\n" + " ;\n" + "}\n"; +Evas_GL_Program_Source shader_img_bgra_nomul_frag_src = +{ + img_bgra_nomul_frag_glsl, + NULL, 0 +}; + +static const char const img_bgra_nomul_vert_glsl[] = + "#ifdef GL_ES\n" + "precision highp float;\n" + "#endif\n" + "attribute vec4 vertex;\n" "uniform mat4 mvp;\n" - "varying vec4 col;\n" + "attribute vec2 tex_coord;\n" "varying vec2 tex_c;\n" - "varying vec2 tex_s[2];\n" - "varying vec4 div_s;\n" "void main()\n" "{\n" " gl_Position = mvp * vertex;\n" - " col = color;\n" " tex_c = tex_coord;\n" - " tex_s[0] = vec2(-tex_sample.x, 0);\n" - " tex_s[1] = vec2( tex_sample.x, 0);\n" - " div_s = vec4(2, 2, 2, 2);\n" "}\n"; -Evas_GL_Program_Source shader_img_21_bgra_vert_src = +Evas_GL_Program_Source shader_img_bgra_nomul_vert_src = { - img_21_bgra_vert_glsl, + img_bgra_nomul_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/img_21_frag.shd */ -static const char const img_21_frag_glsl[] = +static const char const img_12_nomul_frag_glsl[] = "#ifdef GL_ES\n" "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" @@ -429,23 +1254,50 @@ static const char const img_21_frag_glsl[] = "#endif\n" "#endif\n" "uniform sampler2D tex;\n" - "varying vec4 col;\n" "varying vec2 tex_c;\n" - "varying vec2 tex_s[2];\n" "varying vec4 div_s;\n" + "varying vec2 tex_s[2];\n" "void main()\n" "{\n" + " vec4 c;\n" " vec4 col00 = texture2D(tex, tex_c + tex_s[0]).bgra;\n" " vec4 col01 = texture2D(tex, tex_c + tex_s[1]).bgra;\n" - " gl_FragColor = ((col00 + col01) / div_s) * col;\n" + " c = (col00 + col01) / div_s;\n" + " gl_FragColor =\n" + " c\n" + " ;\n" "}\n"; -Evas_GL_Program_Source shader_img_21_frag_src = +Evas_GL_Program_Source shader_img_12_nomul_frag_src = { - img_21_frag_glsl, + img_12_nomul_frag_glsl, + NULL, 0 +}; + +static const char const img_12_nomul_vert_glsl[] = + "#ifdef GL_ES\n" + "precision highp float;\n" + "#endif\n" + "attribute vec4 vertex;\n" + "uniform mat4 mvp;\n" + "attribute vec2 tex_coord;\n" + "varying vec2 tex_c;\n" + "attribute vec2 tex_sample;\n" + "varying vec4 div_s;\n" + "varying vec2 tex_s[2];\n" + "void main()\n" + "{\n" + " gl_Position = mvp * vertex;\n" + " tex_c = tex_coord;\n" + " tex_s[0] = vec2(0, -tex_sample.y);\n" + " tex_s[1] = vec2(0, tex_sample.y);\n" + " div_s = vec4(2, 2, 2, 2);\n" + "}\n"; +Evas_GL_Program_Source shader_img_12_nomul_vert_src = +{ + img_12_nomul_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/img_21_nomul_frag.shd */ static const char const img_21_nomul_frag_glsl[] = "#ifdef GL_ES\n" "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" @@ -456,13 +1308,17 @@ static const char const img_21_nomul_frag_glsl[] = "#endif\n" "uniform sampler2D tex;\n" "varying vec2 tex_c;\n" - "varying vec2 tex_s[2];\n" "varying vec4 div_s;\n" + "varying vec2 tex_s[2];\n" "void main()\n" "{\n" + " vec4 c;\n" " vec4 col00 = texture2D(tex, tex_c + tex_s[0]).bgra;\n" " vec4 col01 = texture2D(tex, tex_c + tex_s[1]).bgra;\n" - " gl_FragColor = (col00 + col01) / div_s;\n" + " c = (col00 + col01) / div_s;\n" + " gl_FragColor =\n" + " c\n" + " ;\n" "}\n"; Evas_GL_Program_Source shader_img_21_nomul_frag_src = { @@ -470,18 +1326,17 @@ Evas_GL_Program_Source shader_img_21_nomul_frag_src = NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/img_21_nomul_vert.shd */ static const char const img_21_nomul_vert_glsl[] = "#ifdef GL_ES\n" "precision highp float;\n" "#endif\n" "attribute vec4 vertex;\n" - "attribute vec2 tex_coord;\n" - "attribute vec2 tex_sample;\n" "uniform mat4 mvp;\n" + "attribute vec2 tex_coord;\n" "varying vec2 tex_c;\n" - "varying vec2 tex_s[2];\n" + "attribute vec2 tex_sample;\n" "varying vec4 div_s;\n" + "varying vec2 tex_s[2];\n" "void main()\n" "{\n" " gl_Position = mvp * vertex;\n" @@ -496,65 +1351,64 @@ Evas_GL_Program_Source shader_img_21_nomul_vert_src = NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/img_21_vert.shd */ -static const char const img_21_vert_glsl[] = +static const char const img_22_nomul_frag_glsl[] = "#ifdef GL_ES\n" + "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" + "#else\n" + "precision mediump float;\n" "#endif\n" - "attribute vec4 vertex;\n" - "attribute vec4 color;\n" - "attribute vec2 tex_coord;\n" - "attribute vec2 tex_sample;\n" - "uniform mat4 mvp;\n" - "varying vec4 col;\n" + "#endif\n" + "uniform sampler2D tex;\n" "varying vec2 tex_c;\n" - "varying vec2 tex_s[2];\n" "varying vec4 div_s;\n" + "varying vec2 tex_s[4];\n" "void main()\n" "{\n" - " gl_Position = mvp * vertex;\n" - " col = color;\n" - " tex_c = tex_coord;\n" - " tex_s[0] = vec2(-tex_sample.x, 0);\n" - " tex_s[1] = vec2( tex_sample.x, 0);\n" - " div_s = vec4(2, 2, 2, 2);\n" + " vec4 c;\n" + " vec4 col00 = texture2D(tex, tex_c + tex_s[0]).bgra;\n" + " vec4 col01 = texture2D(tex, tex_c + tex_s[1]).bgra;\n" + " vec4 col10 = texture2D(tex, tex_c + tex_s[2]).bgra;\n" + " vec4 col11 = texture2D(tex, tex_c + tex_s[3]).bgra;\n" + " c = (col00 + col01 + col10 + col11) / div_s;\n" + " gl_FragColor =\n" + " c\n" + " ;\n" "}\n"; -Evas_GL_Program_Source shader_img_21_vert_src = +Evas_GL_Program_Source shader_img_22_nomul_frag_src = { - img_21_vert_glsl, + img_22_nomul_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/img_22_bgra_frag.shd */ -static const char const img_22_bgra_frag_glsl[] = +static const char const img_22_nomul_vert_glsl[] = "#ifdef GL_ES\n" - "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" - "#else\n" - "precision mediump float;\n" - "#endif\n" "#endif\n" - "uniform sampler2D tex;\n" - "varying vec4 col;\n" + "attribute vec4 vertex;\n" + "uniform mat4 mvp;\n" + "attribute vec2 tex_coord;\n" "varying vec2 tex_c;\n" - "varying vec2 tex_s[4];\n" + "attribute vec2 tex_sample;\n" "varying vec4 div_s;\n" + "varying vec2 tex_s[4];\n" "void main()\n" "{\n" - " vec4 col00 = texture2D(tex, tex_c + tex_s[0]);\n" - " vec4 col01 = texture2D(tex, tex_c + tex_s[1]);\n" - " vec4 col10 = texture2D(tex, tex_c + tex_s[2]);\n" - " vec4 col11 = texture2D(tex, tex_c + tex_s[3]);\n" - " gl_FragColor = ((col00 + col01 + col10 + col11) / div_s) * col;\n" + " gl_Position = mvp * vertex;\n" + " tex_c = tex_coord;\n" + " tex_s[0] = vec2(-tex_sample.x, -tex_sample.y);\n" + " tex_s[1] = vec2( tex_sample.x, -tex_sample.y);\n" + " tex_s[2] = vec2( tex_sample.x, tex_sample.y);\n" + " tex_s[3] = vec2(-tex_sample.x, tex_sample.y);\n" + " div_s = vec4(4, 4, 4, 4);\n" "}\n"; -Evas_GL_Program_Source shader_img_22_bgra_frag_src = +Evas_GL_Program_Source shader_img_22_nomul_vert_src = { - img_22_bgra_frag_glsl, + img_22_nomul_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/img_22_bgra_nomul_frag.shd */ -static const char const img_22_bgra_nomul_frag_glsl[] = +static const char const img_12_bgra_nomul_frag_glsl[] = "#ifdef GL_ES\n" "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" @@ -564,83 +1418,50 @@ static const char const img_22_bgra_nomul_frag_glsl[] = "#endif\n" "uniform sampler2D tex;\n" "varying vec2 tex_c;\n" - "varying vec2 tex_s[4];\n" "varying vec4 div_s;\n" + "varying vec2 tex_s[2];\n" "void main()\n" "{\n" - " vec4 col00 = texture2D(tex, tex_c + tex_s[0]);\n" - " vec4 col01 = texture2D(tex, tex_c + tex_s[1]);\n" - " vec4 col10 = texture2D(tex, tex_c + tex_s[2]);\n" - " vec4 col11 = texture2D(tex, tex_c + tex_s[3]);\n" - " gl_FragColor = (col00 + col01 + col10 + col11) / div_s;\n" + " vec4 c;\n" + " vec4 col00 = texture2D(tex, tex_c + tex_s[0]).rgba;\n" + " vec4 col01 = texture2D(tex, tex_c + tex_s[1]).rgba;\n" + " c = (col00 + col01) / div_s;\n" + " gl_FragColor =\n" + " c\n" + " ;\n" "}\n"; -Evas_GL_Program_Source shader_img_22_bgra_nomul_frag_src = +Evas_GL_Program_Source shader_img_12_bgra_nomul_frag_src = { - img_22_bgra_nomul_frag_glsl, + img_12_bgra_nomul_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/img_22_bgra_nomul_vert.shd */ -static const char const img_22_bgra_nomul_vert_glsl[] = +static const char const img_12_bgra_nomul_vert_glsl[] = "#ifdef GL_ES\n" "precision highp float;\n" "#endif\n" "attribute vec4 vertex;\n" - "attribute vec2 tex_coord;\n" - "attribute vec2 tex_sample;\n" "uniform mat4 mvp;\n" - "varying vec2 tex_c;\n" - "varying vec2 tex_s[4];\n" - "varying vec4 div_s;\n" - "void main()\n" - "{\n" - " gl_Position = mvp * vertex;\n" - " tex_c = tex_coord;\n" - " tex_s[0] = vec2(-tex_sample.x, -tex_sample.y);\n" - " tex_s[1] = vec2( tex_sample.x, -tex_sample.y);\n" - " tex_s[2] = vec2( tex_sample.x, tex_sample.y);\n" - " tex_s[3] = vec2(-tex_sample.x, tex_sample.y);\n" - " div_s = vec4(4, 4, 4, 4);\n" - "}\n"; -Evas_GL_Program_Source shader_img_22_bgra_nomul_vert_src = -{ - img_22_bgra_nomul_vert_glsl, - NULL, 0 -}; - -/* Source: modules/evas/engines/gl_common/shader/img_22_bgra_vert.shd */ -static const char const img_22_bgra_vert_glsl[] = - "#ifdef GL_ES\n" - "precision highp float;\n" - "#endif\n" - "attribute vec4 vertex;\n" - "attribute vec4 color;\n" "attribute vec2 tex_coord;\n" - "attribute vec2 tex_sample;\n" - "uniform mat4 mvp;\n" - "varying vec4 col;\n" "varying vec2 tex_c;\n" - "varying vec2 tex_s[4];\n" + "attribute vec2 tex_sample;\n" "varying vec4 div_s;\n" + "varying vec2 tex_s[2];\n" "void main()\n" "{\n" " gl_Position = mvp * vertex;\n" - " col = color;\n" " tex_c = tex_coord;\n" - " tex_s[0] = vec2(-tex_sample.x, -tex_sample.y);\n" - " tex_s[1] = vec2( tex_sample.x, -tex_sample.y);\n" - " tex_s[2] = vec2( tex_sample.x, tex_sample.y);\n" - " tex_s[3] = vec2(-tex_sample.x, tex_sample.y);\n" - " div_s = vec4(4, 4, 4, 4);\n" + " tex_s[0] = vec2(0, -tex_sample.y);\n" + " tex_s[1] = vec2(0, tex_sample.y);\n" + " div_s = vec4(2, 2, 2, 2);\n" "}\n"; -Evas_GL_Program_Source shader_img_22_bgra_vert_src = +Evas_GL_Program_Source shader_img_12_bgra_nomul_vert_src = { - img_22_bgra_vert_glsl, + img_12_bgra_nomul_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/img_22_frag.shd */ -static const char const img_22_frag_glsl[] = +static const char const img_21_bgra_nomul_frag_glsl[] = "#ifdef GL_ES\n" "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" @@ -649,112 +1470,108 @@ static const char const img_22_frag_glsl[] = "#endif\n" "#endif\n" "uniform sampler2D tex;\n" - "varying vec4 col;\n" "varying vec2 tex_c;\n" - "varying vec2 tex_s[4];\n" "varying vec4 div_s;\n" + "varying vec2 tex_s[2];\n" "void main()\n" "{\n" - " vec4 col00 = texture2D(tex, tex_c + tex_s[0]).bgra;\n" - " vec4 col01 = texture2D(tex, tex_c + tex_s[1]).bgra;\n" - " vec4 col10 = texture2D(tex, tex_c + tex_s[2]).bgra;\n" - " vec4 col11 = texture2D(tex, tex_c + tex_s[3]).bgra;\n" - " gl_FragColor = ((col00 + col01 + col10 + col11) / div_s) * col;\n" + " vec4 c;\n" + " vec4 col00 = texture2D(tex, tex_c + tex_s[0]).rgba;\n" + " vec4 col01 = texture2D(tex, tex_c + tex_s[1]).rgba;\n" + " c = (col00 + col01) / div_s;\n" + " gl_FragColor =\n" + " c\n" + " ;\n" "}\n"; -Evas_GL_Program_Source shader_img_22_frag_src = +Evas_GL_Program_Source shader_img_21_bgra_nomul_frag_src = { - img_22_frag_glsl, + img_21_bgra_nomul_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/img_22_nomul_frag.shd */ -static const char const img_22_nomul_frag_glsl[] = +static const char const img_21_bgra_nomul_vert_glsl[] = "#ifdef GL_ES\n" - "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" - "#else\n" - "precision mediump float;\n" "#endif\n" - "#endif\n" - "uniform sampler2D tex;\n" + "attribute vec4 vertex;\n" + "uniform mat4 mvp;\n" + "attribute vec2 tex_coord;\n" "varying vec2 tex_c;\n" - "varying vec2 tex_s[4];\n" + "attribute vec2 tex_sample;\n" "varying vec4 div_s;\n" + "varying vec2 tex_s[2];\n" "void main()\n" "{\n" - " vec4 col00 = texture2D(tex, tex_c + tex_s[0]).bgra;\n" - " vec4 col01 = texture2D(tex, tex_c + tex_s[1]).bgra;\n" - " vec4 col10 = texture2D(tex, tex_c + tex_s[2]).bgra;\n" - " vec4 col11 = texture2D(tex, tex_c + tex_s[3]).bgra;\n" - " gl_FragColor = (col00 + col01 + col10 + col11) / div_s;\n" + " gl_Position = mvp * vertex;\n" + " tex_c = tex_coord;\n" + " tex_s[0] = vec2(-tex_sample.x, 0);\n" + " tex_s[1] = vec2( tex_sample.x, 0);\n" + " div_s = vec4(2, 2, 2, 2);\n" "}\n"; -Evas_GL_Program_Source shader_img_22_nomul_frag_src = +Evas_GL_Program_Source shader_img_21_bgra_nomul_vert_src = { - img_22_nomul_frag_glsl, + img_21_bgra_nomul_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/img_22_nomul_vert.shd */ -static const char const img_22_nomul_vert_glsl[] = +static const char const img_22_bgra_nomul_frag_glsl[] = "#ifdef GL_ES\n" + "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" + "#else\n" + "precision mediump float;\n" "#endif\n" - "attribute vec4 vertex;\n" - "attribute vec2 tex_coord;\n" - "attribute vec2 tex_sample;\n" - "uniform mat4 mvp;\n" + "#endif\n" + "uniform sampler2D tex;\n" "varying vec2 tex_c;\n" - "varying vec2 tex_s[4];\n" "varying vec4 div_s;\n" + "varying vec2 tex_s[4];\n" "void main()\n" "{\n" - " gl_Position = mvp * vertex;\n" - " tex_c = tex_coord;\n" - " tex_s[0] = vec2(-tex_sample.x, -tex_sample.y);\n" - " tex_s[1] = vec2( tex_sample.x, -tex_sample.y);\n" - " tex_s[2] = vec2( tex_sample.x, tex_sample.y);\n" - " tex_s[3] = vec2(-tex_sample.x, tex_sample.y);\n" - " div_s = vec4(4, 4, 4, 4);\n" + " vec4 c;\n" + " vec4 col00 = texture2D(tex, tex_c + tex_s[0]).rgba;\n" + " vec4 col01 = texture2D(tex, tex_c + tex_s[1]).rgba;\n" + " vec4 col10 = texture2D(tex, tex_c + tex_s[2]).rgba;\n" + " vec4 col11 = texture2D(tex, tex_c + tex_s[3]).rgba;\n" + " c = (col00 + col01 + col10 + col11) / div_s;\n" + " gl_FragColor =\n" + " c\n" + " ;\n" "}\n"; -Evas_GL_Program_Source shader_img_22_nomul_vert_src = +Evas_GL_Program_Source shader_img_22_bgra_nomul_frag_src = { - img_22_nomul_vert_glsl, + img_22_bgra_nomul_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/img_22_vert.shd */ -static const char const img_22_vert_glsl[] = +static const char const img_22_bgra_nomul_vert_glsl[] = "#ifdef GL_ES\n" "precision highp float;\n" "#endif\n" "attribute vec4 vertex;\n" - "attribute vec4 color;\n" - "attribute vec2 tex_coord;\n" - "attribute vec2 tex_sample;\n" "uniform mat4 mvp;\n" - "varying vec4 col;\n" + "attribute vec2 tex_coord;\n" "varying vec2 tex_c;\n" - "varying vec2 tex_s[4];\n" + "attribute vec2 tex_sample;\n" "varying vec4 div_s;\n" + "varying vec2 tex_s[4];\n" "void main()\n" "{\n" " gl_Position = mvp * vertex;\n" - " col = color;\n" " tex_c = tex_coord;\n" " tex_s[0] = vec2(-tex_sample.x, -tex_sample.y);\n" " tex_s[1] = vec2( tex_sample.x, -tex_sample.y);\n" - " tex_s[2] = vec2( tex_sample.x, tex_sample.y);\n" - " tex_s[3] = vec2(-tex_sample.x, tex_sample.y);\n" + " tex_s[2] = vec2( tex_sample.x, tex_sample.y);\n" + " tex_s[3] = vec2(-tex_sample.x, tex_sample.y);\n" " div_s = vec4(4, 4, 4, 4);\n" "}\n"; -Evas_GL_Program_Source shader_img_22_vert_src = +Evas_GL_Program_Source shader_img_22_bgra_nomul_vert_src = { - img_22_vert_glsl, + img_22_bgra_nomul_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/img_bgra_frag.shd */ -static const char const img_bgra_frag_glsl[] = +static const char const img_mask_nomul_frag_glsl[] = "#ifdef GL_ES\n" "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" @@ -763,84 +1580,98 @@ static const char const img_bgra_frag_glsl[] = "#endif\n" "#endif\n" "uniform sampler2D tex;\n" - "varying vec4 col;\n" "varying vec2 tex_c;\n" + "uniform sampler2D texm;\n" + "varying vec2 tex_m;\n" "void main()\n" "{\n" - " gl_FragColor = texture2D(tex, tex_c.xy) * col;\n" + " vec4 c;\n" + " c = texture2D(tex, tex_c).bgra;\n" + " gl_FragColor =\n" + " c\n" + " * texture2D(texm, tex_m).a\n" + " ;\n" "}\n"; -Evas_GL_Program_Source shader_img_bgra_frag_src = +Evas_GL_Program_Source shader_img_mask_nomul_frag_src = { - img_bgra_frag_glsl, + img_mask_nomul_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/img_bgra_nomul_frag.shd */ -static const char const img_bgra_nomul_frag_glsl[] = +static const char const img_mask_nomul_vert_glsl[] = "#ifdef GL_ES\n" - "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" - "#else\n" - "precision mediump float;\n" "#endif\n" - "#endif\n" - "uniform sampler2D tex;\n" + "attribute vec4 vertex;\n" + "uniform mat4 mvp;\n" + "attribute vec2 tex_coord;\n" "varying vec2 tex_c;\n" + "attribute vec4 mask_coord;\n" + "varying vec2 tex_m;\n" "void main()\n" "{\n" - " gl_FragColor = texture2D(tex, tex_c.xy);\n" + " gl_Position = mvp * vertex;\n" + " tex_c = tex_coord;\n" + " vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 0.5, 0.5) + vec4(0.5, 0.5, 0, 0);\n" + " tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy;\n" "}\n"; -Evas_GL_Program_Source shader_img_bgra_nomul_frag_src = +Evas_GL_Program_Source shader_img_mask_nomul_vert_src = { - img_bgra_nomul_frag_glsl, + img_mask_nomul_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/img_bgra_nomul_vert.shd */ -static const char const img_bgra_nomul_vert_glsl[] = +static const char const img_bgra_mask_nomul_frag_glsl[] = "#ifdef GL_ES\n" + "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" + "#else\n" + "precision mediump float;\n" "#endif\n" - "attribute vec4 vertex;\n" - "attribute vec2 tex_coord;\n" - "uniform mat4 mvp;\n" + "#endif\n" + "uniform sampler2D tex;\n" "varying vec2 tex_c;\n" + "uniform sampler2D texm;\n" + "varying vec2 tex_m;\n" "void main()\n" "{\n" - " gl_Position = mvp * vertex;\n" - " tex_c = tex_coord;\n" + " vec4 c;\n" + " c = texture2D(tex, tex_c).rgba;\n" + " gl_FragColor =\n" + " c\n" + " * texture2D(texm, tex_m).a\n" + " ;\n" "}\n"; -Evas_GL_Program_Source shader_img_bgra_nomul_vert_src = +Evas_GL_Program_Source shader_img_bgra_mask_nomul_frag_src = { - img_bgra_nomul_vert_glsl, + img_bgra_mask_nomul_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/img_bgra_vert.shd */ -static const char const img_bgra_vert_glsl[] = +static const char const img_bgra_mask_nomul_vert_glsl[] = "#ifdef GL_ES\n" "precision highp float;\n" "#endif\n" "attribute vec4 vertex;\n" - "attribute vec4 color;\n" - "attribute vec2 tex_coord;\n" "uniform mat4 mvp;\n" - "varying vec4 col;\n" + "attribute vec2 tex_coord;\n" "varying vec2 tex_c;\n" + "attribute vec4 mask_coord;\n" + "varying vec2 tex_m;\n" "void main()\n" "{\n" " gl_Position = mvp * vertex;\n" - " col = color;\n" " tex_c = tex_coord;\n" + " vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 0.5, 0.5) + vec4(0.5, 0.5, 0, 0);\n" + " tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy;\n" "}\n"; -Evas_GL_Program_Source shader_img_bgra_vert_src = +Evas_GL_Program_Source shader_img_bgra_mask_nomul_vert_src = { - img_bgra_vert_glsl, + img_bgra_mask_nomul_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/img_frag.shd */ -static const char const img_frag_glsl[] = +static const char const img_12_mask_nomul_frag_glsl[] = "#ifdef GL_ES\n" "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" @@ -849,84 +1680,118 @@ static const char const img_frag_glsl[] = "#endif\n" "#endif\n" "uniform sampler2D tex;\n" - "varying vec4 col;\n" "varying vec2 tex_c;\n" + "varying vec4 div_s;\n" + "varying vec2 tex_s[2];\n" + "uniform sampler2D texm;\n" + "varying vec2 tex_m;\n" "void main()\n" "{\n" - " gl_FragColor = texture2D(tex, tex_c.xy).bgra * col;\n" + " vec4 c;\n" + " vec4 col00 = texture2D(tex, tex_c + tex_s[0]).bgra;\n" + " vec4 col01 = texture2D(tex, tex_c + tex_s[1]).bgra;\n" + " c = (col00 + col01) / div_s;\n" + " gl_FragColor =\n" + " c\n" + " * texture2D(texm, tex_m).a\n" + " ;\n" "}\n"; -Evas_GL_Program_Source shader_img_frag_src = +Evas_GL_Program_Source shader_img_12_mask_nomul_frag_src = { - img_frag_glsl, + img_12_mask_nomul_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/img_nomul_frag.shd */ -static const char const img_nomul_frag_glsl[] = +static const char const img_12_mask_nomul_vert_glsl[] = "#ifdef GL_ES\n" - "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" - "#else\n" - "precision mediump float;\n" "#endif\n" - "#endif\n" - "uniform sampler2D tex;\n" + "attribute vec4 vertex;\n" + "uniform mat4 mvp;\n" + "attribute vec2 tex_coord;\n" "varying vec2 tex_c;\n" + "attribute vec2 tex_sample;\n" + "varying vec4 div_s;\n" + "varying vec2 tex_s[2];\n" + "attribute vec4 mask_coord;\n" + "varying vec2 tex_m;\n" "void main()\n" "{\n" - " gl_FragColor = texture2D(tex, tex_c.xy).bgra;\n" + " gl_Position = mvp * vertex;\n" + " tex_c = tex_coord;\n" + " tex_s[0] = vec2(0, -tex_sample.y);\n" + " tex_s[1] = vec2(0, tex_sample.y);\n" + " div_s = vec4(2, 2, 2, 2);\n" + " vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 0.5, 0.5) + vec4(0.5, 0.5, 0, 0);\n" + " tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy;\n" "}\n"; -Evas_GL_Program_Source shader_img_nomul_frag_src = +Evas_GL_Program_Source shader_img_12_mask_nomul_vert_src = { - img_nomul_frag_glsl, + img_12_mask_nomul_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/img_nomul_vert.shd */ -static const char const img_nomul_vert_glsl[] = +static const char const img_21_mask_nomul_frag_glsl[] = "#ifdef GL_ES\n" + "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" + "#else\n" + "precision mediump float;\n" "#endif\n" - "attribute vec4 vertex;\n" - "attribute vec2 tex_coord;\n" - "uniform mat4 mvp;\n" + "#endif\n" + "uniform sampler2D tex;\n" "varying vec2 tex_c;\n" + "varying vec4 div_s;\n" + "varying vec2 tex_s[2];\n" + "uniform sampler2D texm;\n" + "varying vec2 tex_m;\n" "void main()\n" "{\n" - " gl_Position = mvp * vertex;\n" - " tex_c = tex_coord;\n" + " vec4 c;\n" + " vec4 col00 = texture2D(tex, tex_c + tex_s[0]).bgra;\n" + " vec4 col01 = texture2D(tex, tex_c + tex_s[1]).bgra;\n" + " c = (col00 + col01) / div_s;\n" + " gl_FragColor =\n" + " c\n" + " * texture2D(texm, tex_m).a\n" + " ;\n" "}\n"; -Evas_GL_Program_Source shader_img_nomul_vert_src = +Evas_GL_Program_Source shader_img_21_mask_nomul_frag_src = { - img_nomul_vert_glsl, + img_21_mask_nomul_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/img_vert.shd */ -static const char const img_vert_glsl[] = +static const char const img_21_mask_nomul_vert_glsl[] = "#ifdef GL_ES\n" "precision highp float;\n" "#endif\n" "attribute vec4 vertex;\n" - "attribute vec4 color;\n" - "attribute vec2 tex_coord;\n" "uniform mat4 mvp;\n" - "varying vec4 col;\n" + "attribute vec2 tex_coord;\n" "varying vec2 tex_c;\n" + "attribute vec2 tex_sample;\n" + "varying vec4 div_s;\n" + "varying vec2 tex_s[2];\n" + "attribute vec4 mask_coord;\n" + "varying vec2 tex_m;\n" "void main()\n" "{\n" " gl_Position = mvp * vertex;\n" - " col = color;\n" " tex_c = tex_coord;\n" + " tex_s[0] = vec2(-tex_sample.x, 0);\n" + " tex_s[1] = vec2( tex_sample.x, 0);\n" + " div_s = vec4(2, 2, 2, 2);\n" + " vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 0.5, 0.5) + vec4(0.5, 0.5, 0, 0);\n" + " tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy;\n" "}\n"; -Evas_GL_Program_Source shader_img_vert_src = +Evas_GL_Program_Source shader_img_21_mask_nomul_vert_src = { - img_vert_glsl, + img_21_mask_nomul_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/nv12_frag.shd */ -static const char const nv12_frag_glsl[] = +static const char const img_22_mask_nomul_frag_glsl[] = "#ifdef GL_ES\n" "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" @@ -934,114 +1799,123 @@ static const char const nv12_frag_glsl[] = "precision mediump float;\n" "#endif\n" "#endif\n" - "uniform sampler2D tex, texuv;\n" - "varying vec4 col;\n" - "varying vec2 tex_c, tex_cuv;\n" + "uniform sampler2D tex;\n" + "varying vec2 tex_c;\n" + "varying vec4 div_s;\n" + "varying vec2 tex_s[4];\n" + "uniform sampler2D texm;\n" + "varying vec2 tex_m;\n" "void main()\n" "{\n" - " float y,u,v,vmu,r,g,b;\n" - " y=texture2D(tex,tex_c).g;\n" - " u=texture2D(texuv,tex_cuv).g;\n" - " v=texture2D(texuv,tex_cuv).a;\n" - " u=u-0.5;\n" - " v=v-0.5;\n" - " vmu=v*0.813+u*0.391;\n" - " u=u*2.018;\n" - " v=v*1.596;\n" - " y=(y-0.062)*1.164;\n" - " r=y+v;\n" - " g=y-vmu;\n" - " b=y+u;\n" - " gl_FragColor=vec4(r,g,b,1.0) * col;\n" + " vec4 c;\n" + " vec4 col00 = texture2D(tex, tex_c + tex_s[0]).bgra;\n" + " vec4 col01 = texture2D(tex, tex_c + tex_s[1]).bgra;\n" + " vec4 col10 = texture2D(tex, tex_c + tex_s[2]).bgra;\n" + " vec4 col11 = texture2D(tex, tex_c + tex_s[3]).bgra;\n" + " c = (col00 + col01 + col10 + col11) / div_s;\n" + " gl_FragColor =\n" + " c\n" + " * texture2D(texm, tex_m).a\n" + " ;\n" "}\n"; -Evas_GL_Program_Source shader_nv12_frag_src = +Evas_GL_Program_Source shader_img_22_mask_nomul_frag_src = { - nv12_frag_glsl, + img_22_mask_nomul_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/nv12_nomul_frag.shd */ -static const char const nv12_nomul_frag_glsl[] = +static const char const img_22_mask_nomul_vert_glsl[] = "#ifdef GL_ES\n" - "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" - "#else\n" - "precision mediump float;\n" - "#endif\n" "#endif\n" - "uniform sampler2D tex, texuv;\n" - "varying vec2 tex_c, tex_cuv;\n" + "attribute vec4 vertex;\n" + "uniform mat4 mvp;\n" + "attribute vec2 tex_coord;\n" + "varying vec2 tex_c;\n" + "attribute vec2 tex_sample;\n" + "varying vec4 div_s;\n" + "varying vec2 tex_s[4];\n" + "attribute vec4 mask_coord;\n" + "varying vec2 tex_m;\n" "void main()\n" "{\n" - " float y,u,v,vmu,r,g,b;\n" - " y=texture2D(tex,tex_c).g;\n" - " u=texture2D(texuv,tex_cuv).g;\n" - " v=texture2D(texuv,tex_cuv).a;\n" - " u=u-0.5;\n" - " v=v-0.5;\n" - " vmu=v*0.813+u*0.391;\n" - " u=u*2.018;\n" - " v=v*1.596;\n" - " y=(y-0.062)*1.164;\n" - " r=y+v;\n" - " g=y-vmu;\n" - " b=y+u;\n" - " gl_FragColor=vec4(r,g,b,1.0);\n" + " gl_Position = mvp * vertex;\n" + " tex_c = tex_coord;\n" + " tex_s[0] = vec2(-tex_sample.x, -tex_sample.y);\n" + " tex_s[1] = vec2( tex_sample.x, -tex_sample.y);\n" + " tex_s[2] = vec2( tex_sample.x, tex_sample.y);\n" + " tex_s[3] = vec2(-tex_sample.x, tex_sample.y);\n" + " div_s = vec4(4, 4, 4, 4);\n" + " vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 0.5, 0.5) + vec4(0.5, 0.5, 0, 0);\n" + " tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy;\n" "}\n"; -Evas_GL_Program_Source shader_nv12_nomul_frag_src = +Evas_GL_Program_Source shader_img_22_mask_nomul_vert_src = { - nv12_nomul_frag_glsl, + img_22_mask_nomul_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/nv12_nomul_vert.shd */ -static const char const nv12_nomul_vert_glsl[] = +static const char const img_12_bgra_mask_nomul_frag_glsl[] = "#ifdef GL_ES\n" + "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" + "#else\n" + "precision mediump float;\n" "#endif\n" - "attribute vec4 vertex;\n" - "attribute vec4 color;\n" - "attribute vec2 tex_coord, tex_coord2;\n" - "uniform mat4 mvp;\n" - "varying vec2 tex_c, tex_cuv;\n" + "#endif\n" + "uniform sampler2D tex;\n" + "varying vec2 tex_c;\n" + "varying vec4 div_s;\n" + "varying vec2 tex_s[2];\n" + "uniform sampler2D texm;\n" + "varying vec2 tex_m;\n" "void main()\n" "{\n" - " gl_Position = mvp * vertex;\n" - " tex_c = tex_coord;\n" - " tex_cuv = tex_coord2 * 0.5;\n" + " vec4 c;\n" + " vec4 col00 = texture2D(tex, tex_c + tex_s[0]).rgba;\n" + " vec4 col01 = texture2D(tex, tex_c + tex_s[1]).rgba;\n" + " c = (col00 + col01) / div_s;\n" + " gl_FragColor =\n" + " c\n" + " * texture2D(texm, tex_m).a\n" + " ;\n" "}\n"; -Evas_GL_Program_Source shader_nv12_nomul_vert_src = +Evas_GL_Program_Source shader_img_12_bgra_mask_nomul_frag_src = { - nv12_nomul_vert_glsl, + img_12_bgra_mask_nomul_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/nv12_vert.shd */ -static const char const nv12_vert_glsl[] = +static const char const img_12_bgra_mask_nomul_vert_glsl[] = "#ifdef GL_ES\n" "precision highp float;\n" "#endif\n" "attribute vec4 vertex;\n" - "attribute vec4 color;\n" - "attribute vec2 tex_coord, tex_coord2;\n" "uniform mat4 mvp;\n" - "varying vec4 col;\n" - "varying vec2 tex_c, tex_cuv;\n" + "attribute vec2 tex_coord;\n" + "varying vec2 tex_c;\n" + "attribute vec2 tex_sample;\n" + "varying vec4 div_s;\n" + "varying vec2 tex_s[2];\n" + "attribute vec4 mask_coord;\n" + "varying vec2 tex_m;\n" "void main()\n" "{\n" " gl_Position = mvp * vertex;\n" - " col = color;\n" " tex_c = tex_coord;\n" - " tex_cuv = tex_coord2 * 0.5;\n" + " tex_s[0] = vec2(0, -tex_sample.y);\n" + " tex_s[1] = vec2(0, tex_sample.y);\n" + " div_s = vec4(2, 2, 2, 2);\n" + " vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 0.5, 0.5) + vec4(0.5, 0.5, 0, 0);\n" + " tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy;\n" "}\n"; -Evas_GL_Program_Source shader_nv12_vert_src = +Evas_GL_Program_Source shader_img_12_bgra_mask_nomul_vert_src = { - nv12_vert_glsl, + img_12_bgra_mask_nomul_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/rect_frag.shd */ -static const char const rect_frag_glsl[] = +static const char const img_21_bgra_mask_nomul_frag_glsl[] = "#ifdef GL_ES\n" "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" @@ -1050,39 +1924,58 @@ static const char const rect_frag_glsl[] = "#endif\n" "#endif\n" "uniform sampler2D tex;\n" - "varying vec4 col;\n" + "varying vec2 tex_c;\n" + "varying vec4 div_s;\n" + "varying vec2 tex_s[2];\n" + "uniform sampler2D texm;\n" + "varying vec2 tex_m;\n" "void main()\n" "{\n" - " gl_FragColor = col;\n" + " vec4 c;\n" + " vec4 col00 = texture2D(tex, tex_c + tex_s[0]).rgba;\n" + " vec4 col01 = texture2D(tex, tex_c + tex_s[1]).rgba;\n" + " c = (col00 + col01) / div_s;\n" + " gl_FragColor =\n" + " c\n" + " * texture2D(texm, tex_m).a\n" + " ;\n" "}\n"; -Evas_GL_Program_Source shader_rect_frag_src = +Evas_GL_Program_Source shader_img_21_bgra_mask_nomul_frag_src = { - rect_frag_glsl, + img_21_bgra_mask_nomul_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/rect_vert.shd */ -static const char const rect_vert_glsl[] = +static const char const img_21_bgra_mask_nomul_vert_glsl[] = "#ifdef GL_ES\n" "precision highp float;\n" "#endif\n" "attribute vec4 vertex;\n" - "attribute vec4 color;\n" "uniform mat4 mvp;\n" - "varying vec4 col;\n" + "attribute vec2 tex_coord;\n" + "varying vec2 tex_c;\n" + "attribute vec2 tex_sample;\n" + "varying vec4 div_s;\n" + "varying vec2 tex_s[2];\n" + "attribute vec4 mask_coord;\n" + "varying vec2 tex_m;\n" "void main()\n" "{\n" " gl_Position = mvp * vertex;\n" - " col = color;\n" + " tex_c = tex_coord;\n" + " tex_s[0] = vec2(-tex_sample.x, 0);\n" + " tex_s[1] = vec2( tex_sample.x, 0);\n" + " div_s = vec4(2, 2, 2, 2);\n" + " vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 0.5, 0.5) + vec4(0.5, 0.5, 0, 0);\n" + " tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy;\n" "}\n"; -Evas_GL_Program_Source shader_rect_vert_src = +Evas_GL_Program_Source shader_img_21_bgra_mask_nomul_vert_src = { - rect_vert_glsl, + img_21_bgra_mask_nomul_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/rgb_a_pair_frag.shd */ -static const char const rgb_a_pair_frag_glsl[] = +static const char const img_22_bgra_mask_nomul_frag_glsl[] = "#ifdef GL_ES\n" "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" @@ -1091,96 +1984,111 @@ static const char const rgb_a_pair_frag_glsl[] = "#endif\n" "#endif\n" "uniform sampler2D tex;\n" - "uniform sampler2D texa;\n" - "varying vec4 col;\n" - "varying vec2 coord_c;\n" - "varying vec2 coord_a;\n" + "varying vec2 tex_c;\n" + "varying vec4 div_s;\n" + "varying vec2 tex_s[4];\n" + "uniform sampler2D texm;\n" + "varying vec2 tex_m;\n" "void main()\n" "{\n" - " gl_FragColor.rgb = texture2D(tex, coord_c.xy).rgb * col.rgb * texture2D(texa, coord_a).g;\n" - " gl_FragColor.a = col.a * texture2D(texa, coord_a).g;\n" + " vec4 c;\n" + " vec4 col00 = texture2D(tex, tex_c + tex_s[0]).rgba;\n" + " vec4 col01 = texture2D(tex, tex_c + tex_s[1]).rgba;\n" + " vec4 col10 = texture2D(tex, tex_c + tex_s[2]).rgba;\n" + " vec4 col11 = texture2D(tex, tex_c + tex_s[3]).rgba;\n" + " c = (col00 + col01 + col10 + col11) / div_s;\n" + " gl_FragColor =\n" + " c\n" + " * texture2D(texm, tex_m).a\n" + " ;\n" "}\n"; -Evas_GL_Program_Source shader_rgb_a_pair_frag_src = +Evas_GL_Program_Source shader_img_22_bgra_mask_nomul_frag_src = { - rgb_a_pair_frag_glsl, + img_22_bgra_mask_nomul_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/rgb_a_pair_nomul_frag.shd */ -static const char const rgb_a_pair_nomul_frag_glsl[] = +static const char const img_22_bgra_mask_nomul_vert_glsl[] = "#ifdef GL_ES\n" - "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" - "#else\n" - "precision mediump float;\n" - "#endif\n" "#endif\n" - "uniform sampler2D tex;\n" - "uniform sampler2D texa;\n" - "varying vec2 coord_c;\n" - "varying vec2 coord_a;\n" + "attribute vec4 vertex;\n" + "uniform mat4 mvp;\n" + "attribute vec2 tex_coord;\n" + "varying vec2 tex_c;\n" + "attribute vec2 tex_sample;\n" + "varying vec4 div_s;\n" + "varying vec2 tex_s[4];\n" + "attribute vec4 mask_coord;\n" + "varying vec2 tex_m;\n" "void main()\n" "{\n" - " gl_FragColor.rgb = texture2D(tex, coord_c.xy).rgb * texture2D(texa, coord_a).g;\n" - " gl_FragColor.a = texture2D(texa, coord_a).g;\n" + " gl_Position = mvp * vertex;\n" + " tex_c = tex_coord;\n" + " tex_s[0] = vec2(-tex_sample.x, -tex_sample.y);\n" + " tex_s[1] = vec2( tex_sample.x, -tex_sample.y);\n" + " tex_s[2] = vec2( tex_sample.x, tex_sample.y);\n" + " tex_s[3] = vec2(-tex_sample.x, tex_sample.y);\n" + " div_s = vec4(4, 4, 4, 4);\n" + " vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 0.5, 0.5) + vec4(0.5, 0.5, 0, 0);\n" + " tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy;\n" "}\n"; -Evas_GL_Program_Source shader_rgb_a_pair_nomul_frag_src = +Evas_GL_Program_Source shader_img_22_bgra_mask_nomul_vert_src = { - rgb_a_pair_nomul_frag_glsl, + img_22_bgra_mask_nomul_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/rgb_a_pair_nomul_vert.shd */ -static const char const rgb_a_pair_nomul_vert_glsl[] = +static const char const img_afill_frag_glsl[] = "#ifdef GL_ES\n" + "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" + "#else\n" + "precision mediump float;\n" "#endif\n" - "attribute vec4 vertex;\n" - "attribute vec2 tex_coord;\n" - "attribute vec2 tex_coorda;\n" - "uniform mat4 mvp;\n" - "varying vec2 coord_c;\n" - "varying vec2 coord_a;\n" + "#endif\n" + "varying vec4 col;\n" + "uniform sampler2D tex;\n" + "varying vec2 tex_c;\n" "void main()\n" "{\n" - " gl_Position = mvp * vertex;\n" - " coord_c = tex_coord;\n" - " coord_a = tex_coorda;\n" + " vec4 c;\n" + " c = texture2D(tex, tex_c).bgra;\n" + " gl_FragColor =\n" + " c\n" + " * col\n" + " ;\n" + " gl_FragColor.a = 1.0;\n" "}\n"; -Evas_GL_Program_Source shader_rgb_a_pair_nomul_vert_src = +Evas_GL_Program_Source shader_img_afill_frag_src = { - rgb_a_pair_nomul_vert_glsl, + img_afill_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/rgb_a_pair_vert.shd */ -static const char const rgb_a_pair_vert_glsl[] = +static const char const img_afill_vert_glsl[] = "#ifdef GL_ES\n" "precision highp float;\n" "#endif\n" - "attribute vec4 vertex;\n" - "attribute vec4 color;\n" - "attribute vec2 tex_coord;\n" - "attribute vec2 tex_coorda;\n" + "attribute vec4 vertex;\n" "uniform mat4 mvp;\n" + "attribute vec4 color;\n" "varying vec4 col;\n" - "varying vec2 coord_c;\n" - "varying vec2 coord_a;\n" + "attribute vec2 tex_coord;\n" + "varying vec2 tex_c;\n" "void main()\n" "{\n" " gl_Position = mvp * vertex;\n" " col = color;\n" - " coord_c = tex_coord;\n" - " coord_a = tex_coorda;\n" + " tex_c = tex_coord;\n" "}\n"; -Evas_GL_Program_Source shader_rgb_a_pair_vert_src = +Evas_GL_Program_Source shader_img_afill_vert_src = { - rgb_a_pair_vert_glsl, + img_afill_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/tex_12_frag.shd */ -static const char const tex_12_frag_glsl[] = +static const char const img_bgra_afill_frag_glsl[] = "#ifdef GL_ES\n" "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" @@ -1188,54 +2096,48 @@ static const char const tex_12_frag_glsl[] = "precision mediump float;\n" "#endif\n" "#endif\n" - "uniform sampler2D tex;\n" "varying vec4 col;\n" + "uniform sampler2D tex;\n" "varying vec2 tex_c;\n" - "varying vec2 tex_s[2];\n" - "varying vec4 div_s;\n" "void main()\n" "{\n" - " vec4 col00 = texture2D(tex, tex_c + tex_s[0]);\n" - " vec4 col01 = texture2D(tex, tex_c + tex_s[1]);\n" - " gl_FragColor = ((col00 + col01) / div_s) * col;\n" + " vec4 c;\n" + " c = texture2D(tex, tex_c).rgba;\n" + " gl_FragColor =\n" + " c\n" + " * col\n" + " ;\n" + " gl_FragColor.a = 1.0;\n" "}\n"; -Evas_GL_Program_Source shader_tex_12_frag_src = +Evas_GL_Program_Source shader_img_bgra_afill_frag_src = { - tex_12_frag_glsl, + img_bgra_afill_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/tex_12_vert.shd */ -static const char const tex_12_vert_glsl[] = +static const char const img_bgra_afill_vert_glsl[] = "#ifdef GL_ES\n" "precision highp float;\n" "#endif\n" "attribute vec4 vertex;\n" - "attribute vec4 color;\n" - "attribute vec2 tex_coord;\n" - "attribute vec2 tex_sample;\n" "uniform mat4 mvp;\n" + "attribute vec4 color;\n" "varying vec4 col;\n" + "attribute vec2 tex_coord;\n" "varying vec2 tex_c;\n" - "varying vec2 tex_s[2];\n" - "varying vec4 div_s;\n" "void main()\n" "{\n" " gl_Position = mvp * vertex;\n" " col = color;\n" " tex_c = tex_coord;\n" - " tex_s[0] = vec2(0, -tex_sample.y);\n" - " tex_s[1] = vec2(0, tex_sample.y);\n" - " div_s = vec4(2, 2, 2, 2);\n" "}\n"; -Evas_GL_Program_Source shader_tex_12_vert_src = +Evas_GL_Program_Source shader_img_bgra_afill_vert_src = { - tex_12_vert_glsl, + img_bgra_afill_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/tex_12_nomul_frag.shd */ -static const char const tex_12_nomul_frag_glsl[] = +static const char const img_nomul_afill_frag_glsl[] = "#ifdef GL_ES\n" "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" @@ -1245,48 +2147,41 @@ static const char const tex_12_nomul_frag_glsl[] = "#endif\n" "uniform sampler2D tex;\n" "varying vec2 tex_c;\n" - "varying vec2 tex_s[2];\n" - "varying vec4 div_s;\n" "void main()\n" "{\n" - " vec4 col00 = texture2D(tex, tex_c + tex_s[0]);\n" - " vec4 col01 = texture2D(tex, tex_c + tex_s[1]);\n" - " gl_FragColor = (col00 + col01) / div_s;\n" + " vec4 c;\n" + " c = texture2D(tex, tex_c).bgra;\n" + " gl_FragColor =\n" + " c\n" + " ;\n" + " gl_FragColor.a = 1.0;\n" "}\n"; -Evas_GL_Program_Source shader_tex_12_nomul_frag_src = +Evas_GL_Program_Source shader_img_nomul_afill_frag_src = { - tex_12_nomul_frag_glsl, + img_nomul_afill_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/tex_12_nomul_vert.shd */ -static const char const tex_12_nomul_vert_glsl[] = +static const char const img_nomul_afill_vert_glsl[] = "#ifdef GL_ES\n" "precision highp float;\n" "#endif\n" "attribute vec4 vertex;\n" - "attribute vec2 tex_coord;\n" - "attribute vec2 tex_sample;\n" "uniform mat4 mvp;\n" + "attribute vec2 tex_coord;\n" "varying vec2 tex_c;\n" - "varying vec2 tex_s[2];\n" - "varying vec4 div_s;\n" "void main()\n" "{\n" " gl_Position = mvp * vertex;\n" " tex_c = tex_coord;\n" - " tex_s[0] = vec2(0, -tex_sample.y);\n" - " tex_s[1] = vec2(0, tex_sample.y);\n" - " div_s = vec4(2, 2, 2, 2);\n" "}\n"; -Evas_GL_Program_Source shader_tex_12_nomul_vert_src = +Evas_GL_Program_Source shader_img_nomul_afill_vert_src = { - tex_12_nomul_vert_glsl, + img_nomul_afill_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/tex_21_frag.shd */ -static const char const tex_21_frag_glsl[] = +static const char const img_bgra_nomul_afill_frag_glsl[] = "#ifdef GL_ES\n" "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" @@ -1295,53 +2190,42 @@ static const char const tex_21_frag_glsl[] = "#endif\n" "#endif\n" "uniform sampler2D tex;\n" - "varying vec4 col;\n" "varying vec2 tex_c;\n" - "varying vec2 tex_s[2];\n" - "varying vec4 div_s;\n" "void main()\n" "{\n" - " vec4 col00 = texture2D(tex, tex_c + tex_s[0]);\n" - " vec4 col01 = texture2D(tex, tex_c + tex_s[1]);\n" - " gl_FragColor = ((col00 + col01) / div_s) * col;\n" + " vec4 c;\n" + " c = texture2D(tex, tex_c).rgba;\n" + " gl_FragColor =\n" + " c\n" + " ;\n" + " gl_FragColor.a = 1.0;\n" "}\n"; -Evas_GL_Program_Source shader_tex_21_frag_src = +Evas_GL_Program_Source shader_img_bgra_nomul_afill_frag_src = { - tex_21_frag_glsl, + img_bgra_nomul_afill_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/tex_21_vert.shd */ -static const char const tex_21_vert_glsl[] = +static const char const img_bgra_nomul_afill_vert_glsl[] = "#ifdef GL_ES\n" "precision highp float;\n" "#endif\n" "attribute vec4 vertex;\n" - "attribute vec4 color;\n" - "attribute vec2 tex_coord;\n" - "attribute vec2 tex_sample;\n" "uniform mat4 mvp;\n" - "varying vec4 col;\n" + "attribute vec2 tex_coord;\n" "varying vec2 tex_c;\n" - "varying vec2 tex_s[2];\n" - "varying vec4 div_s;\n" "void main()\n" "{\n" " gl_Position = mvp * vertex;\n" - " col = color;\n" " tex_c = tex_coord;\n" - " tex_s[0] = vec2(-tex_sample.x, 0);\n" - " tex_s[1] = vec2( tex_sample.x, 0);\n" - " div_s = vec4(2, 2, 2, 2);\n" "}\n"; -Evas_GL_Program_Source shader_tex_21_vert_src = +Evas_GL_Program_Source shader_img_bgra_nomul_afill_vert_src = { - tex_21_vert_glsl, + img_bgra_nomul_afill_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/tex_21_nomul_frag.shd */ -static const char const tex_21_nomul_frag_glsl[] = +static const char const img_12_afill_frag_glsl[] = "#ifdef GL_ES\n" "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" @@ -1349,50 +2233,58 @@ static const char const tex_21_nomul_frag_glsl[] = "precision mediump float;\n" "#endif\n" "#endif\n" + "varying vec4 col;\n" "uniform sampler2D tex;\n" "varying vec2 tex_c;\n" - "varying vec2 tex_s[2];\n" "varying vec4 div_s;\n" + "varying vec2 tex_s[2];\n" "void main()\n" "{\n" - " vec4 col00 = texture2D(tex, tex_c + tex_s[0]);\n" - " vec4 col01 = texture2D(tex, tex_c + tex_s[1]);\n" - " gl_FragColor = (col00 + col01) / div_s;\n" + " vec4 c;\n" + " vec4 col00 = texture2D(tex, tex_c + tex_s[0]).bgra;\n" + " vec4 col01 = texture2D(tex, tex_c + tex_s[1]).bgra;\n" + " c = (col00 + col01) / div_s;\n" + " gl_FragColor =\n" + " c\n" + " * col\n" + " ;\n" + " gl_FragColor.a = 1.0;\n" "}\n"; -Evas_GL_Program_Source shader_tex_21_nomul_frag_src = +Evas_GL_Program_Source shader_img_12_afill_frag_src = { - tex_21_nomul_frag_glsl, + img_12_afill_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/tex_21_nomul_vert.shd */ -static const char const tex_21_nomul_vert_glsl[] = +static const char const img_12_afill_vert_glsl[] = "#ifdef GL_ES\n" "precision highp float;\n" "#endif\n" "attribute vec4 vertex;\n" - "attribute vec2 tex_coord;\n" - "attribute vec2 tex_sample;\n" "uniform mat4 mvp;\n" + "attribute vec4 color;\n" + "varying vec4 col;\n" + "attribute vec2 tex_coord;\n" "varying vec2 tex_c;\n" - "varying vec2 tex_s[2];\n" + "attribute vec2 tex_sample;\n" "varying vec4 div_s;\n" + "varying vec2 tex_s[2];\n" "void main()\n" "{\n" " gl_Position = mvp * vertex;\n" + " col = color;\n" " tex_c = tex_coord;\n" - " tex_s[0] = vec2(-tex_sample.x, 0);\n" - " tex_s[1] = vec2( tex_sample.x, 0);\n" + " tex_s[0] = vec2(0, -tex_sample.y);\n" + " tex_s[1] = vec2(0, tex_sample.y);\n" " div_s = vec4(2, 2, 2, 2);\n" "}\n"; -Evas_GL_Program_Source shader_tex_21_nomul_vert_src = +Evas_GL_Program_Source shader_img_12_afill_vert_src = { - tex_21_nomul_vert_glsl, + img_12_afill_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/tex_22_frag.shd */ -static const char const tex_22_frag_glsl[] = +static const char const img_21_afill_frag_glsl[] = "#ifdef GL_ES\n" "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" @@ -1400,58 +2292,58 @@ static const char const tex_22_frag_glsl[] = "precision mediump float;\n" "#endif\n" "#endif\n" - "uniform sampler2D tex;\n" "varying vec4 col;\n" + "uniform sampler2D tex;\n" "varying vec2 tex_c;\n" - "varying vec2 tex_s[4];\n" "varying vec4 div_s;\n" + "varying vec2 tex_s[2];\n" "void main()\n" "{\n" - " vec4 col00 = texture2D(tex, tex_c + tex_s[0]);\n" - " vec4 col01 = texture2D(tex, tex_c + tex_s[1]);\n" - " vec4 col10 = texture2D(tex, tex_c + tex_s[2]);\n" - " vec4 col11 = texture2D(tex, tex_c + tex_s[3]);\n" - " gl_FragColor = ((col00 + col01 + col10 + col11) / div_s) * col;\n" + " vec4 c;\n" + " vec4 col00 = texture2D(tex, tex_c + tex_s[0]).bgra;\n" + " vec4 col01 = texture2D(tex, tex_c + tex_s[1]).bgra;\n" + " c = (col00 + col01) / div_s;\n" + " gl_FragColor =\n" + " c\n" + " * col\n" + " ;\n" + " gl_FragColor.a = 1.0;\n" "}\n"; -Evas_GL_Program_Source shader_tex_22_frag_src = +Evas_GL_Program_Source shader_img_21_afill_frag_src = { - tex_22_frag_glsl, + img_21_afill_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/tex_22_vert.shd */ -static const char const tex_22_vert_glsl[] = +static const char const img_21_afill_vert_glsl[] = "#ifdef GL_ES\n" "precision highp float;\n" "#endif\n" "attribute vec4 vertex;\n" - "attribute vec4 color;\n" - "attribute vec2 tex_coord;\n" - "attribute vec2 tex_sample;\n" "uniform mat4 mvp;\n" + "attribute vec4 color;\n" "varying vec4 col;\n" + "attribute vec2 tex_coord;\n" "varying vec2 tex_c;\n" - "varying vec2 tex_s[4];\n" + "attribute vec2 tex_sample;\n" "varying vec4 div_s;\n" + "varying vec2 tex_s[2];\n" "void main()\n" "{\n" " gl_Position = mvp * vertex;\n" " col = color;\n" " tex_c = tex_coord;\n" - " tex_s[0] = vec2(-tex_sample.x, -tex_sample.y);\n" - " tex_s[1] = vec2( tex_sample.x, -tex_sample.y);\n" - " tex_s[2] = vec2( tex_sample.x, tex_sample.y);\n" - " tex_s[3] = vec2(-tex_sample.x, tex_sample.y);\n" - " div_s = vec4(4, 4, 4, 4);\n" + " tex_s[0] = vec2(-tex_sample.x, 0);\n" + " tex_s[1] = vec2( tex_sample.x, 0);\n" + " div_s = vec4(2, 2, 2, 2);\n" "}\n"; -Evas_GL_Program_Source shader_tex_22_vert_src = +Evas_GL_Program_Source shader_img_21_afill_vert_src = { - tex_22_vert_glsl, + img_21_afill_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/tex_22_nomul_frag.shd */ -static const char const tex_22_nomul_frag_glsl[] = +static const char const img_22_afill_frag_glsl[] = "#ifdef GL_ES\n" "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" @@ -1459,54 +2351,62 @@ static const char const tex_22_nomul_frag_glsl[] = "precision mediump float;\n" "#endif\n" "#endif\n" + "varying vec4 col;\n" "uniform sampler2D tex;\n" "varying vec2 tex_c;\n" - "varying vec2 tex_s[4];\n" "varying vec4 div_s;\n" + "varying vec2 tex_s[4];\n" "void main()\n" "{\n" - " vec4 col00 = texture2D(tex, tex_c + tex_s[0]);\n" - " vec4 col01 = texture2D(tex, tex_c + tex_s[1]);\n" - " vec4 col10 = texture2D(tex, tex_c + tex_s[2]);\n" - " vec4 col11 = texture2D(tex, tex_c + tex_s[3]);\n" - " gl_FragColor = (col00 + col01 + col10 + col11) / div_s;\n" + " vec4 c;\n" + " vec4 col00 = texture2D(tex, tex_c + tex_s[0]).bgra;\n" + " vec4 col01 = texture2D(tex, tex_c + tex_s[1]).bgra;\n" + " vec4 col10 = texture2D(tex, tex_c + tex_s[2]).bgra;\n" + " vec4 col11 = texture2D(tex, tex_c + tex_s[3]).bgra;\n" + " c = (col00 + col01 + col10 + col11) / div_s;\n" + " gl_FragColor =\n" + " c\n" + " * col\n" + " ;\n" + " gl_FragColor.a = 1.0;\n" "}\n"; -Evas_GL_Program_Source shader_tex_22_nomul_frag_src = +Evas_GL_Program_Source shader_img_22_afill_frag_src = { - tex_22_nomul_frag_glsl, + img_22_afill_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/tex_22_nomul_vert.shd */ -static const char const tex_22_nomul_vert_glsl[] = +static const char const img_22_afill_vert_glsl[] = "#ifdef GL_ES\n" "precision highp float;\n" "#endif\n" "attribute vec4 vertex;\n" - "attribute vec2 tex_coord;\n" - "attribute vec2 tex_sample;\n" "uniform mat4 mvp;\n" + "attribute vec4 color;\n" + "varying vec4 col;\n" + "attribute vec2 tex_coord;\n" "varying vec2 tex_c;\n" - "varying vec2 tex_s[4];\n" + "attribute vec2 tex_sample;\n" "varying vec4 div_s;\n" + "varying vec2 tex_s[4];\n" "void main()\n" "{\n" " gl_Position = mvp * vertex;\n" + " col = color;\n" " tex_c = tex_coord;\n" " tex_s[0] = vec2(-tex_sample.x, -tex_sample.y);\n" " tex_s[1] = vec2( tex_sample.x, -tex_sample.y);\n" - " tex_s[2] = vec2( tex_sample.x, tex_sample.y);\n" - " tex_s[3] = vec2(-tex_sample.x, tex_sample.y);\n" + " tex_s[2] = vec2( tex_sample.x, tex_sample.y);\n" + " tex_s[3] = vec2(-tex_sample.x, tex_sample.y);\n" " div_s = vec4(4, 4, 4, 4);\n" "}\n"; -Evas_GL_Program_Source shader_tex_22_nomul_vert_src = +Evas_GL_Program_Source shader_img_22_afill_vert_src = { - tex_22_nomul_vert_glsl, + img_22_afill_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/tex_frag.shd */ -static const char const tex_frag_glsl[] = +static const char const img_12_bgra_afill_frag_glsl[] = "#ifdef GL_ES\n" "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" @@ -1514,44 +2414,58 @@ static const char const tex_frag_glsl[] = "precision mediump float;\n" "#endif\n" "#endif\n" - "uniform sampler2D tex;\n" "varying vec4 col;\n" + "uniform sampler2D tex;\n" "varying vec2 tex_c;\n" + "varying vec4 div_s;\n" + "varying vec2 tex_s[2];\n" "void main()\n" "{\n" - " gl_FragColor = texture2D(tex, tex_c.xy) * col;\n" + " vec4 c;\n" + " vec4 col00 = texture2D(tex, tex_c + tex_s[0]).rgba;\n" + " vec4 col01 = texture2D(tex, tex_c + tex_s[1]).rgba;\n" + " c = (col00 + col01) / div_s;\n" + " gl_FragColor =\n" + " c\n" + " * col\n" + " ;\n" + " gl_FragColor.a = 1.0;\n" "}\n"; -Evas_GL_Program_Source shader_tex_frag_src = +Evas_GL_Program_Source shader_img_12_bgra_afill_frag_src = { - tex_frag_glsl, + img_12_bgra_afill_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/tex_vert.shd */ -static const char const tex_vert_glsl[] = +static const char const img_12_bgra_afill_vert_glsl[] = "#ifdef GL_ES\n" "precision highp float;\n" "#endif\n" "attribute vec4 vertex;\n" - "attribute vec4 color;\n" - "attribute vec2 tex_coord;\n" "uniform mat4 mvp;\n" + "attribute vec4 color;\n" "varying vec4 col;\n" + "attribute vec2 tex_coord;\n" "varying vec2 tex_c;\n" + "attribute vec2 tex_sample;\n" + "varying vec4 div_s;\n" + "varying vec2 tex_s[2];\n" "void main()\n" "{\n" " gl_Position = mvp * vertex;\n" " col = color;\n" " tex_c = tex_coord;\n" + " tex_s[0] = vec2(0, -tex_sample.y);\n" + " tex_s[1] = vec2(0, tex_sample.y);\n" + " div_s = vec4(2, 2, 2, 2);\n" "}\n"; -Evas_GL_Program_Source shader_tex_vert_src = +Evas_GL_Program_Source shader_img_12_bgra_afill_vert_src = { - tex_vert_glsl, + img_12_bgra_afill_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/tex_nomul_frag.shd */ -static const char const tex_nomul_frag_glsl[] = +static const char const img_21_bgra_afill_frag_glsl[] = "#ifdef GL_ES\n" "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" @@ -1559,40 +2473,58 @@ static const char const tex_nomul_frag_glsl[] = "precision mediump float;\n" "#endif\n" "#endif\n" + "varying vec4 col;\n" "uniform sampler2D tex;\n" "varying vec2 tex_c;\n" + "varying vec4 div_s;\n" + "varying vec2 tex_s[2];\n" "void main()\n" "{\n" - " gl_FragColor = texture2D(tex, tex_c.xy);\n" + " vec4 c;\n" + " vec4 col00 = texture2D(tex, tex_c + tex_s[0]).rgba;\n" + " vec4 col01 = texture2D(tex, tex_c + tex_s[1]).rgba;\n" + " c = (col00 + col01) / div_s;\n" + " gl_FragColor =\n" + " c\n" + " * col\n" + " ;\n" + " gl_FragColor.a = 1.0;\n" "}\n"; -Evas_GL_Program_Source shader_tex_nomul_frag_src = +Evas_GL_Program_Source shader_img_21_bgra_afill_frag_src = { - tex_nomul_frag_glsl, + img_21_bgra_afill_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/tex_nomul_vert.shd */ -static const char const tex_nomul_vert_glsl[] = +static const char const img_21_bgra_afill_vert_glsl[] = "#ifdef GL_ES\n" "precision highp float;\n" "#endif\n" "attribute vec4 vertex;\n" - "attribute vec2 tex_coord;\n" "uniform mat4 mvp;\n" + "attribute vec4 color;\n" + "varying vec4 col;\n" + "attribute vec2 tex_coord;\n" "varying vec2 tex_c;\n" + "attribute vec2 tex_sample;\n" + "varying vec4 div_s;\n" + "varying vec2 tex_s[2];\n" "void main()\n" "{\n" " gl_Position = mvp * vertex;\n" + " col = color;\n" " tex_c = tex_coord;\n" + " tex_s[0] = vec2(-tex_sample.x, 0);\n" + " tex_s[1] = vec2( tex_sample.x, 0);\n" + " div_s = vec4(2, 2, 2, 2);\n" "}\n"; -Evas_GL_Program_Source shader_tex_nomul_vert_src = +Evas_GL_Program_Source shader_img_21_bgra_afill_vert_src = { - tex_nomul_vert_glsl, + img_21_bgra_afill_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/tex_afill_frag.shd */ -static const char const tex_afill_frag_glsl[] = +static const char const img_22_bgra_afill_frag_glsl[] = "#ifdef GL_ES\n" "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" @@ -1600,45 +2532,62 @@ static const char const tex_afill_frag_glsl[] = "precision mediump float;\n" "#endif\n" "#endif\n" - "uniform sampler2D tex;\n" "varying vec4 col;\n" + "uniform sampler2D tex;\n" "varying vec2 tex_c;\n" + "varying vec4 div_s;\n" + "varying vec2 tex_s[4];\n" "void main()\n" "{\n" - " vec4 c = texture2D(tex, tex_c.xy);\n" - " gl_FragColor = vec4(c.r, c.g, c.b, 1) * col;\n" + " vec4 c;\n" + " vec4 col00 = texture2D(tex, tex_c + tex_s[0]).rgba;\n" + " vec4 col01 = texture2D(tex, tex_c + tex_s[1]).rgba;\n" + " vec4 col10 = texture2D(tex, tex_c + tex_s[2]).rgba;\n" + " vec4 col11 = texture2D(tex, tex_c + tex_s[3]).rgba;\n" + " c = (col00 + col01 + col10 + col11) / div_s;\n" + " gl_FragColor =\n" + " c\n" + " * col\n" + " ;\n" + " gl_FragColor.a = 1.0;\n" "}\n"; -Evas_GL_Program_Source shader_tex_afill_frag_src = +Evas_GL_Program_Source shader_img_22_bgra_afill_frag_src = { - tex_afill_frag_glsl, + img_22_bgra_afill_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/tex_afill_vert.shd */ -static const char const tex_afill_vert_glsl[] = +static const char const img_22_bgra_afill_vert_glsl[] = "#ifdef GL_ES\n" "precision highp float;\n" "#endif\n" "attribute vec4 vertex;\n" - "attribute vec4 color;\n" - "attribute vec2 tex_coord;\n" "uniform mat4 mvp;\n" + "attribute vec4 color;\n" "varying vec4 col;\n" + "attribute vec2 tex_coord;\n" "varying vec2 tex_c;\n" + "attribute vec2 tex_sample;\n" + "varying vec4 div_s;\n" + "varying vec2 tex_s[4];\n" "void main()\n" "{\n" " gl_Position = mvp * vertex;\n" " col = color;\n" " tex_c = tex_coord;\n" + " tex_s[0] = vec2(-tex_sample.x, -tex_sample.y);\n" + " tex_s[1] = vec2( tex_sample.x, -tex_sample.y);\n" + " tex_s[2] = vec2( tex_sample.x, tex_sample.y);\n" + " tex_s[3] = vec2(-tex_sample.x, tex_sample.y);\n" + " div_s = vec4(4, 4, 4, 4);\n" "}\n"; -Evas_GL_Program_Source shader_tex_afill_vert_src = +Evas_GL_Program_Source shader_img_22_bgra_afill_vert_src = { - tex_afill_vert_glsl, + img_22_bgra_afill_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/tex_22_afill_frag.shd */ -static const char const tex_22_afill_frag_glsl[] = +static const char const img_12_nomul_afill_frag_glsl[] = "#ifdef GL_ES\n" "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" @@ -1647,58 +2596,52 @@ static const char const tex_22_afill_frag_glsl[] = "#endif\n" "#endif\n" "uniform sampler2D tex;\n" - "varying vec4 col;\n" "varying vec2 tex_c;\n" - "varying vec2 tex_s[4];\n" "varying vec4 div_s;\n" + "varying vec2 tex_s[2];\n" "void main()\n" "{\n" - " vec4 col00 = texture2D(tex, tex_c + tex_s[0]);\n" - " vec4 col01 = texture2D(tex, tex_c + tex_s[1]);\n" - " vec4 col10 = texture2D(tex, tex_c + tex_s[2]);\n" - " vec4 col11 = texture2D(tex, tex_c + tex_s[3]);\n" - " vec4 c = (col00 + col01 + col10 + col11) / div_s;\n" - " gl_FragColor = vec4(c.r, c.g, c.b, 1) * col;\n" + " vec4 c;\n" + " vec4 col00 = texture2D(tex, tex_c + tex_s[0]).bgra;\n" + " vec4 col01 = texture2D(tex, tex_c + tex_s[1]).bgra;\n" + " c = (col00 + col01) / div_s;\n" + " gl_FragColor =\n" + " c\n" + " ;\n" + " gl_FragColor.a = 1.0;\n" "}\n"; -Evas_GL_Program_Source shader_tex_22_afill_frag_src = +Evas_GL_Program_Source shader_img_12_nomul_afill_frag_src = { - tex_22_afill_frag_glsl, + img_12_nomul_afill_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/tex_22_afill_vert.shd */ -static const char const tex_22_afill_vert_glsl[] = +static const char const img_12_nomul_afill_vert_glsl[] = "#ifdef GL_ES\n" "precision highp float;\n" "#endif\n" "attribute vec4 vertex;\n" - "attribute vec4 color;\n" - "attribute vec2 tex_coord;\n" - "attribute vec2 tex_sample;\n" "uniform mat4 mvp;\n" - "varying vec4 col;\n" + "attribute vec2 tex_coord;\n" "varying vec2 tex_c;\n" - "varying vec2 tex_s[4];\n" + "attribute vec2 tex_sample;\n" "varying vec4 div_s;\n" + "varying vec2 tex_s[2];\n" "void main()\n" "{\n" " gl_Position = mvp * vertex;\n" - " col = color;\n" " tex_c = tex_coord;\n" - " tex_s[0] = vec2(-tex_sample.x, -tex_sample.y);\n" - " tex_s[1] = vec2( tex_sample.x, -tex_sample.y);\n" - " tex_s[2] = vec2( tex_sample.x, tex_sample.y);\n" - " tex_s[3] = vec2(-tex_sample.x, tex_sample.y);\n" - " div_s = vec4(4, 4, 4, 4);\n" + " tex_s[0] = vec2(0, -tex_sample.y);\n" + " tex_s[1] = vec2(0, tex_sample.y);\n" + " div_s = vec4(2, 2, 2, 2);\n" "}\n"; -Evas_GL_Program_Source shader_tex_22_afill_vert_src = +Evas_GL_Program_Source shader_img_12_nomul_afill_vert_src = { - tex_22_afill_vert_glsl, + img_12_nomul_afill_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/tex_21_afill_frag.shd */ -static const char const tex_21_afill_frag_glsl[] = +static const char const img_21_nomul_afill_frag_glsl[] = "#ifdef GL_ES\n" "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" @@ -1707,54 +2650,52 @@ static const char const tex_21_afill_frag_glsl[] = "#endif\n" "#endif\n" "uniform sampler2D tex;\n" - "varying vec4 col;\n" "varying vec2 tex_c;\n" - "varying vec2 tex_s[2];\n" "varying vec4 div_s;\n" + "varying vec2 tex_s[2];\n" "void main()\n" "{\n" - " vec4 col00 = texture2D(tex, tex_c + tex_s[0]);\n" - " vec4 col01 = texture2D(tex, tex_c + tex_s[1]);\n" - " vec4 c = (col00 + col01) / div_s;\n" - " gl_FragColor = vec4(c.r, c.g, c.b, 1) * col;\n" + " vec4 c;\n" + " vec4 col00 = texture2D(tex, tex_c + tex_s[0]).bgra;\n" + " vec4 col01 = texture2D(tex, tex_c + tex_s[1]).bgra;\n" + " c = (col00 + col01) / div_s;\n" + " gl_FragColor =\n" + " c\n" + " ;\n" + " gl_FragColor.a = 1.0;\n" "}\n"; -Evas_GL_Program_Source shader_tex_21_afill_frag_src = +Evas_GL_Program_Source shader_img_21_nomul_afill_frag_src = { - tex_21_afill_frag_glsl, + img_21_nomul_afill_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/tex_21_afill_vert.shd */ -static const char const tex_21_afill_vert_glsl[] = +static const char const img_21_nomul_afill_vert_glsl[] = "#ifdef GL_ES\n" "precision highp float;\n" "#endif\n" "attribute vec4 vertex;\n" - "attribute vec4 color;\n" - "attribute vec2 tex_coord;\n" - "attribute vec2 tex_sample;\n" "uniform mat4 mvp;\n" - "varying vec4 col;\n" + "attribute vec2 tex_coord;\n" "varying vec2 tex_c;\n" - "varying vec2 tex_s[2];\n" + "attribute vec2 tex_sample;\n" "varying vec4 div_s;\n" + "varying vec2 tex_s[2];\n" "void main()\n" "{\n" " gl_Position = mvp * vertex;\n" - " col = color;\n" " tex_c = tex_coord;\n" " tex_s[0] = vec2(-tex_sample.x, 0);\n" " tex_s[1] = vec2( tex_sample.x, 0);\n" " div_s = vec4(2, 2, 2, 2);\n" "}\n"; -Evas_GL_Program_Source shader_tex_21_afill_vert_src = +Evas_GL_Program_Source shader_img_21_nomul_afill_vert_src = { - tex_21_afill_vert_glsl, + img_21_nomul_afill_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/tex_12_afill_frag.shd */ -static const char const tex_12_afill_frag_glsl[] = +static const char const img_22_nomul_afill_frag_glsl[] = "#ifdef GL_ES\n" "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" @@ -1763,54 +2704,56 @@ static const char const tex_12_afill_frag_glsl[] = "#endif\n" "#endif\n" "uniform sampler2D tex;\n" - "varying vec4 col;\n" "varying vec2 tex_c;\n" - "varying vec2 tex_s[2];\n" "varying vec4 div_s;\n" + "varying vec2 tex_s[4];\n" "void main()\n" "{\n" - " vec4 col00 = texture2D(tex, tex_c + tex_s[0]);\n" - " vec4 col01 = texture2D(tex, tex_c + tex_s[1]);\n" - " vec4 c = (col00 + col01) / div_s;\n" - " gl_FragColor = vec4(c.r, c.g, c.b, 1) * col;\n" + " vec4 c;\n" + " vec4 col00 = texture2D(tex, tex_c + tex_s[0]).bgra;\n" + " vec4 col01 = texture2D(tex, tex_c + tex_s[1]).bgra;\n" + " vec4 col10 = texture2D(tex, tex_c + tex_s[2]).bgra;\n" + " vec4 col11 = texture2D(tex, tex_c + tex_s[3]).bgra;\n" + " c = (col00 + col01 + col10 + col11) / div_s;\n" + " gl_FragColor =\n" + " c\n" + " ;\n" + " gl_FragColor.a = 1.0;\n" "}\n"; -Evas_GL_Program_Source shader_tex_12_afill_frag_src = +Evas_GL_Program_Source shader_img_22_nomul_afill_frag_src = { - tex_12_afill_frag_glsl, + img_22_nomul_afill_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/tex_12_afill_vert.shd */ -static const char const tex_12_afill_vert_glsl[] = +static const char const img_22_nomul_afill_vert_glsl[] = "#ifdef GL_ES\n" "precision highp float;\n" "#endif\n" "attribute vec4 vertex;\n" - "attribute vec4 color;\n" - "attribute vec2 tex_coord;\n" - "attribute vec2 tex_sample;\n" "uniform mat4 mvp;\n" - "varying vec4 col;\n" + "attribute vec2 tex_coord;\n" "varying vec2 tex_c;\n" - "varying vec2 tex_s[2];\n" + "attribute vec2 tex_sample;\n" "varying vec4 div_s;\n" + "varying vec2 tex_s[4];\n" "void main()\n" "{\n" " gl_Position = mvp * vertex;\n" - " col = color;\n" " tex_c = tex_coord;\n" - " tex_s[0] = vec2(0, -tex_sample.y);\n" - " tex_s[1] = vec2(0, tex_sample.y);\n" - " div_s = vec4(2, 2, 2, 2);\n" + " tex_s[0] = vec2(-tex_sample.x, -tex_sample.y);\n" + " tex_s[1] = vec2( tex_sample.x, -tex_sample.y);\n" + " tex_s[2] = vec2( tex_sample.x, tex_sample.y);\n" + " tex_s[3] = vec2(-tex_sample.x, tex_sample.y);\n" + " div_s = vec4(4, 4, 4, 4);\n" "}\n"; -Evas_GL_Program_Source shader_tex_12_afill_vert_src = +Evas_GL_Program_Source shader_img_22_nomul_afill_vert_src = { - tex_12_afill_vert_glsl, + img_22_nomul_afill_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/tex_22_nomul_afill_frag.shd */ -static const char const tex_22_nomul_afill_frag_glsl[] = +static const char const img_12_bgra_nomul_afill_frag_glsl[] = "#ifdef GL_ES\n" "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" @@ -1820,53 +2763,51 @@ static const char const tex_22_nomul_afill_frag_glsl[] = "#endif\n" "uniform sampler2D tex;\n" "varying vec2 tex_c;\n" - "varying vec2 tex_s[4];\n" "varying vec4 div_s;\n" + "varying vec2 tex_s[2];\n" "void main()\n" "{\n" - " vec4 col00 = texture2D(tex, tex_c + tex_s[0]);\n" - " vec4 col01 = texture2D(tex, tex_c + tex_s[1]);\n" - " vec4 col10 = texture2D(tex, tex_c + tex_s[2]);\n" - " vec4 col11 = texture2D(tex, tex_c + tex_s[3]);\n" - " vec4 c = (col00 + col01 + col10 + col11) / div_s;\n" - " gl_FragColor = vec4(c.r, c.g, c.b, 1);\n" + " vec4 c;\n" + " vec4 col00 = texture2D(tex, tex_c + tex_s[0]).rgba;\n" + " vec4 col01 = texture2D(tex, tex_c + tex_s[1]).rgba;\n" + " c = (col00 + col01) / div_s;\n" + " gl_FragColor =\n" + " c\n" + " ;\n" + " gl_FragColor.a = 1.0;\n" "}\n"; -Evas_GL_Program_Source shader_tex_22_nomul_afill_frag_src = +Evas_GL_Program_Source shader_img_12_bgra_nomul_afill_frag_src = { - tex_22_nomul_afill_frag_glsl, + img_12_bgra_nomul_afill_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/tex_22_nomul_afill_vert.shd */ -static const char const tex_22_nomul_afill_vert_glsl[] = +static const char const img_12_bgra_nomul_afill_vert_glsl[] = "#ifdef GL_ES\n" "precision highp float;\n" "#endif\n" "attribute vec4 vertex;\n" - "attribute vec2 tex_coord;\n" - "attribute vec2 tex_sample;\n" "uniform mat4 mvp;\n" + "attribute vec2 tex_coord;\n" "varying vec2 tex_c;\n" - "varying vec2 tex_s[4];\n" + "attribute vec2 tex_sample;\n" "varying vec4 div_s;\n" + "varying vec2 tex_s[2];\n" "void main()\n" "{\n" " gl_Position = mvp * vertex;\n" " tex_c = tex_coord;\n" - " tex_s[0] = vec2(-tex_sample.x, -tex_sample.y);\n" - " tex_s[1] = vec2( tex_sample.x, -tex_sample.y);\n" - " tex_s[2] = vec2( tex_sample.x, tex_sample.y);\n" - " tex_s[3] = vec2(-tex_sample.x, tex_sample.y);\n" - " div_s = vec4(4, 4, 4, 4);\n" + " tex_s[0] = vec2(0, -tex_sample.y);\n" + " tex_s[1] = vec2(0, tex_sample.y);\n" + " div_s = vec4(2, 2, 2, 2);\n" "}\n"; -Evas_GL_Program_Source shader_tex_22_nomul_afill_vert_src = +Evas_GL_Program_Source shader_img_12_bgra_nomul_afill_vert_src = { - tex_22_nomul_afill_vert_glsl, + img_12_bgra_nomul_afill_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/tex_21_nomul_afill_frag.shd */ -static const char const tex_21_nomul_afill_frag_glsl[] = +static const char const img_21_bgra_nomul_afill_frag_glsl[] = "#ifdef GL_ES\n" "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" @@ -1876,33 +2817,36 @@ static const char const tex_21_nomul_afill_frag_glsl[] = "#endif\n" "uniform sampler2D tex;\n" "varying vec2 tex_c;\n" - "varying vec2 tex_s[2];\n" "varying vec4 div_s;\n" + "varying vec2 tex_s[2];\n" "void main()\n" "{\n" - " vec4 col00 = texture2D(tex, tex_c + tex_s[0]);\n" - " vec4 col01 = texture2D(tex, tex_c + tex_s[1]);\n" - " vec4 c = (col00 + col01) / div_s;\n" - " gl_FragColor = vec4(c.r, c.g, c.b, 1);\n" + " vec4 c;\n" + " vec4 col00 = texture2D(tex, tex_c + tex_s[0]).rgba;\n" + " vec4 col01 = texture2D(tex, tex_c + tex_s[1]).rgba;\n" + " c = (col00 + col01) / div_s;\n" + " gl_FragColor =\n" + " c\n" + " ;\n" + " gl_FragColor.a = 1.0;\n" "}\n"; -Evas_GL_Program_Source shader_tex_21_nomul_afill_frag_src = +Evas_GL_Program_Source shader_img_21_bgra_nomul_afill_frag_src = { - tex_21_nomul_afill_frag_glsl, + img_21_bgra_nomul_afill_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/tex_21_nomul_afill_vert.shd */ -static const char const tex_21_nomul_afill_vert_glsl[] = +static const char const img_21_bgra_nomul_afill_vert_glsl[] = "#ifdef GL_ES\n" "precision highp float;\n" "#endif\n" "attribute vec4 vertex;\n" - "attribute vec2 tex_coord;\n" - "attribute vec2 tex_sample;\n" "uniform mat4 mvp;\n" + "attribute vec2 tex_coord;\n" "varying vec2 tex_c;\n" - "varying vec2 tex_s[2];\n" + "attribute vec2 tex_sample;\n" "varying vec4 div_s;\n" + "varying vec2 tex_s[2];\n" "void main()\n" "{\n" " gl_Position = mvp * vertex;\n" @@ -1911,14 +2855,13 @@ static const char const tex_21_nomul_afill_vert_glsl[] = " tex_s[1] = vec2( tex_sample.x, 0);\n" " div_s = vec4(2, 2, 2, 2);\n" "}\n"; -Evas_GL_Program_Source shader_tex_21_nomul_afill_vert_src = +Evas_GL_Program_Source shader_img_21_bgra_nomul_afill_vert_src = { - tex_21_nomul_afill_vert_glsl, + img_21_bgra_nomul_afill_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/tex_12_nomul_afill_frag.shd */ -static const char const tex_12_nomul_afill_frag_glsl[] = +static const char const img_22_bgra_nomul_afill_frag_glsl[] = "#ifdef GL_ES\n" "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" @@ -1928,49 +2871,55 @@ static const char const tex_12_nomul_afill_frag_glsl[] = "#endif\n" "uniform sampler2D tex;\n" "varying vec2 tex_c;\n" - "varying vec2 tex_s[2];\n" "varying vec4 div_s;\n" + "varying vec2 tex_s[4];\n" "void main()\n" "{\n" - " vec4 col00 = texture2D(tex, tex_c + tex_s[0]);\n" - " vec4 col01 = texture2D(tex, tex_c + tex_s[1]);\n" - " vec4 c = (col00 + col01) / div_s;\n" - " gl_FragColor = vec4(c.r, c.g, c.b, 1);\n" + " vec4 c;\n" + " vec4 col00 = texture2D(tex, tex_c + tex_s[0]).rgba;\n" + " vec4 col01 = texture2D(tex, tex_c + tex_s[1]).rgba;\n" + " vec4 col10 = texture2D(tex, tex_c + tex_s[2]).rgba;\n" + " vec4 col11 = texture2D(tex, tex_c + tex_s[3]).rgba;\n" + " c = (col00 + col01 + col10 + col11) / div_s;\n" + " gl_FragColor =\n" + " c\n" + " ;\n" + " gl_FragColor.a = 1.0;\n" "}\n"; -Evas_GL_Program_Source shader_tex_12_nomul_afill_frag_src = +Evas_GL_Program_Source shader_img_22_bgra_nomul_afill_frag_src = { - tex_12_nomul_afill_frag_glsl, + img_22_bgra_nomul_afill_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/tex_12_nomul_afill_vert.shd */ -static const char const tex_12_nomul_afill_vert_glsl[] = +static const char const img_22_bgra_nomul_afill_vert_glsl[] = "#ifdef GL_ES\n" "precision highp float;\n" "#endif\n" "attribute vec4 vertex;\n" - "attribute vec2 tex_coord;\n" - "attribute vec2 tex_sample;\n" "uniform mat4 mvp;\n" + "attribute vec2 tex_coord;\n" "varying vec2 tex_c;\n" - "varying vec2 tex_s[2];\n" + "attribute vec2 tex_sample;\n" "varying vec4 div_s;\n" + "varying vec2 tex_s[4];\n" "void main()\n" "{\n" " gl_Position = mvp * vertex;\n" " tex_c = tex_coord;\n" - " tex_s[0] = vec2(0, -tex_sample.y);\n" - " tex_s[1] = vec2(0, tex_sample.y);\n" - " div_s = vec4(2, 2, 2, 2);\n" + " tex_s[0] = vec2(-tex_sample.x, -tex_sample.y);\n" + " tex_s[1] = vec2( tex_sample.x, -tex_sample.y);\n" + " tex_s[2] = vec2( tex_sample.x, tex_sample.y);\n" + " tex_s[3] = vec2(-tex_sample.x, tex_sample.y);\n" + " div_s = vec4(4, 4, 4, 4);\n" "}\n"; -Evas_GL_Program_Source shader_tex_12_nomul_afill_vert_src = +Evas_GL_Program_Source shader_img_22_bgra_nomul_afill_vert_src = { - tex_12_nomul_afill_vert_glsl, + img_22_bgra_nomul_afill_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/tex_nomul_afill_frag.shd */ -static const char const tex_nomul_afill_frag_glsl[] = +static const char const rgb_a_pair_frag_glsl[] = "#ifdef GL_ES\n" "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" @@ -1978,41 +2927,48 @@ static const char const tex_nomul_afill_frag_glsl[] = "precision mediump float;\n" "#endif\n" "#endif\n" - "uniform sampler2D tex;\n" - "varying vec2 tex_c;\n" + "varying vec4 col;\n" + "uniform sampler2D texa;\n" + "varying vec2 tex_a;\n" "void main()\n" "{\n" - " vec4 c = texture2D(tex, tex_c.xy);\n" - " gl_FragColor = vec4(c.r, c.g, c.b, 1);\n" + " vec4 c;\n" + " c = vec4(1, 1, 1, 1);\n" + " gl_FragColor =\n" + " c\n" + " * col\n" + " * texture2D(texa, tex_a).r\n" + " ;\n" "}\n"; -Evas_GL_Program_Source shader_tex_nomul_afill_frag_src = +Evas_GL_Program_Source shader_rgb_a_pair_frag_src = { - tex_nomul_afill_frag_glsl, + rgb_a_pair_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/tex_nomul_afill_vert.shd */ -static const char const tex_nomul_afill_vert_glsl[] = +static const char const rgb_a_pair_vert_glsl[] = "#ifdef GL_ES\n" "precision highp float;\n" "#endif\n" "attribute vec4 vertex;\n" - "attribute vec2 tex_coord;\n" "uniform mat4 mvp;\n" - "varying vec2 tex_c;\n" + "attribute vec4 color;\n" + "varying vec4 col;\n" + "attribute vec2 tex_coorda;\n" + "varying vec2 tex_a;\n" "void main()\n" "{\n" " gl_Position = mvp * vertex;\n" - " tex_c = tex_coord;\n" + " col = color;\n" + " tex_a = tex_coorda;\n" "}\n"; -Evas_GL_Program_Source shader_tex_nomul_afill_vert_src = +Evas_GL_Program_Source shader_rgb_a_pair_vert_src = { - tex_nomul_afill_vert_glsl, + rgb_a_pair_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/yuv_frag.shd */ -static const char const yuv_frag_glsl[] = +static const char const rgb_a_pair_mask_frag_glsl[] = "#ifdef GL_ES\n" "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" @@ -2020,109 +2976,99 @@ static const char const yuv_frag_glsl[] = "precision mediump float;\n" "#endif\n" "#endif\n" - "uniform sampler2D tex, texu, texv;\n" "varying vec4 col;\n" - "varying vec2 tex_c, tex_c2, tex_c3;\n" + "uniform sampler2D texa;\n" + "varying vec2 tex_a;\n" + "uniform sampler2D texm;\n" + "varying vec2 tex_m;\n" "void main()\n" "{\n" - " float r, g, b, y, u, v;\n" - " y = texture2D(tex, tex_c.xy).r;\n" - " u = texture2D(texu, tex_c2.xy).r;\n" - " v = texture2D(texv, tex_c3.xy).r;\n" - " y = (y - 0.0625) * 1.164;\n" - " u = u - 0.5;\n" - " v = v - 0.5;\n" - " r = y + (1.402 * v);\n" - " g = y - (0.34414 * u) - (0.71414 * v);\n" - " b = y + (1.772 * u);\n" - " gl_FragColor = vec4(r, g, b, 1.0) * col;\n" + " vec4 c;\n" + " c = vec4(1, 1, 1, 1);\n" + " gl_FragColor =\n" + " c\n" + " * col\n" + " * texture2D(texm, tex_m).a\n" + " * texture2D(texa, tex_a).r\n" + " ;\n" "}\n"; -Evas_GL_Program_Source shader_yuv_frag_src = +Evas_GL_Program_Source shader_rgb_a_pair_mask_frag_src = { - yuv_frag_glsl, + rgb_a_pair_mask_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/yuv_nomul_frag.shd */ -static const char const yuv_nomul_frag_glsl[] = +static const char const rgb_a_pair_mask_vert_glsl[] = "#ifdef GL_ES\n" - "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" - "#else\n" - "precision mediump float;\n" - "#endif\n" "#endif\n" - "uniform sampler2D tex, texu, texv;\n" - "varying vec2 tex_c, tex_c2, tex_c3;\n" + "attribute vec4 vertex;\n" + "uniform mat4 mvp;\n" + "attribute vec4 color;\n" + "varying vec4 col;\n" + "attribute vec2 tex_coorda;\n" + "varying vec2 tex_a;\n" + "attribute vec4 mask_coord;\n" + "varying vec2 tex_m;\n" "void main()\n" "{\n" - " float r, g, b, y, u, v;\n" - " y = texture2D(tex, tex_c.xy).r;\n" - " u = texture2D(texu, tex_c2.xy).r;\n" - " v = texture2D(texv, tex_c3.xy).r;\n" - " y = (y - 0.0625) * 1.164;\n" - " u = u - 0.5;\n" - " v = v - 0.5;\n" - " r = y + (1.402 * v);\n" - " g = y - (0.34414 * u) - (0.71414 * v);\n" - " b = y + (1.772 * u);\n" - " gl_FragColor = vec4(r, g, b, 1.0);\n" + " gl_Position = mvp * vertex;\n" + " col = color;\n" + " tex_a = tex_coorda;\n" + " vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 0.5, 0.5) + vec4(0.5, 0.5, 0, 0);\n" + " tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy;\n" "}\n"; -Evas_GL_Program_Source shader_yuv_nomul_frag_src = +Evas_GL_Program_Source shader_rgb_a_pair_mask_vert_src = { - yuv_nomul_frag_glsl, + rgb_a_pair_mask_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/yuv_nomul_vert.shd */ -static const char const yuv_nomul_vert_glsl[] = +static const char const rgb_a_pair_nomul_frag_glsl[] = "#ifdef GL_ES\n" + "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" + "#else\n" + "precision mediump float;\n" "#endif\n" - "attribute vec4 vertex;\n" - "attribute vec2 tex_coord, tex_coord2, tex_coord3;\n" - "uniform mat4 mvp;\n" - "varying vec2 tex_c, tex_c2, tex_c3;\n" + "#endif\n" + "uniform sampler2D texa;\n" + "varying vec2 tex_a;\n" "void main()\n" "{\n" - " gl_Position = mvp * vertex;\n" - " tex_c = tex_coord;\n" - " tex_c2 = tex_coord2;\n" - " tex_c3 = tex_coord3;\n" + " vec4 c;\n" + " c = vec4(1, 1, 1, 1);\n" + " gl_FragColor =\n" + " c\n" + " * texture2D(texa, tex_a).r\n" + " ;\n" "}\n"; -Evas_GL_Program_Source shader_yuv_nomul_vert_src = +Evas_GL_Program_Source shader_rgb_a_pair_nomul_frag_src = { - yuv_nomul_vert_glsl, + rgb_a_pair_nomul_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/yuv_vert.shd */ -static const char const yuv_vert_glsl[] = +static const char const rgb_a_pair_nomul_vert_glsl[] = "#ifdef GL_ES\n" "precision highp float;\n" "#endif\n" "attribute vec4 vertex;\n" - "attribute vec4 color;\n" - "attribute vec2 tex_coord, tex_coord2, tex_coord3;\n" "uniform mat4 mvp;\n" - "varying vec4 col;\n" - "varying vec2 tex_c, tex_c2, tex_c3;\n" + "attribute vec2 tex_coorda;\n" + "varying vec2 tex_a;\n" "void main()\n" "{\n" " gl_Position = mvp * vertex;\n" - " col = color;\n" - " tex_c = tex_coord;\n" - " tex_c2 = tex_coord2;\n" - " tex_c3 = tex_coord3;\n" + " tex_a = tex_coorda;\n" "}\n"; -Evas_GL_Program_Source shader_yuv_vert_src = +Evas_GL_Program_Source shader_rgb_a_pair_nomul_vert_src = { - yuv_vert_glsl, + rgb_a_pair_nomul_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/yuy2_frag.shd */ -static const char const yuy2_frag_glsl[] = +static const char const rgb_a_pair_mask_nomul_frag_glsl[] = "#ifdef GL_ES\n" "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" @@ -2130,378 +3076,351 @@ static const char const yuy2_frag_glsl[] = "precision mediump float;\n" "#endif\n" "#endif\n" - "uniform sampler2D tex, texuv;\n" - "varying vec4 col;\n" - "varying vec2 tex_c, tex_cuv;\n" + "uniform sampler2D texa;\n" + "varying vec2 tex_a;\n" + "uniform sampler2D texm;\n" + "varying vec2 tex_m;\n" "void main()\n" "{\n" - " float y,u,v,vmu,r,g,b;\n" - " y=texture2D(tex,tex_c).r;\n" - " u=texture2D(texuv,tex_cuv).g;\n" - " v=texture2D(texuv,tex_cuv).a;\n" - " u=u-0.5;\n" - " v=v-0.5;\n" - " vmu=v*0.813+u*0.391;\n" - " u=u*2.018;\n" - " v=v*1.596;\n" - " r=y+v;\n" - " g=y-vmu;\n" - " b=y+u;\n" - " gl_FragColor=vec4(r,g,b,1.0) * col;\n" + " vec4 c;\n" + " c = vec4(1, 1, 1, 1);\n" + " gl_FragColor =\n" + " c\n" + " * texture2D(texm, tex_m).a\n" + " * texture2D(texa, tex_a).r\n" + " ;\n" "}\n"; -Evas_GL_Program_Source shader_yuy2_frag_src = +Evas_GL_Program_Source shader_rgb_a_pair_mask_nomul_frag_src = { - yuy2_frag_glsl, + rgb_a_pair_mask_nomul_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/yuy2_nomul_frag.shd */ -static const char const yuy2_nomul_frag_glsl[] = +static const char const rgb_a_pair_mask_nomul_vert_glsl[] = "#ifdef GL_ES\n" - "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" - "#else\n" - "precision mediump float;\n" - "#endif\n" "#endif\n" - "uniform sampler2D tex, texuv;\n" - "varying vec2 tex_c, tex_cuv;\n" + "attribute vec4 vertex;\n" + "uniform mat4 mvp;\n" + "attribute vec2 tex_coorda;\n" + "varying vec2 tex_a;\n" + "attribute vec4 mask_coord;\n" + "varying vec2 tex_m;\n" "void main()\n" "{\n" - " float y,u,v,vmu,r,g,b;\n" - " y=texture2D(tex,tex_c).r;\n" - " u=texture2D(texuv,tex_cuv).g;\n" - " v=texture2D(texuv,tex_cuv).a;\n" - " u=u-0.5;\n" - " v=v-0.5;\n" - " vmu=v*0.813+u*0.391;\n" - " u=u*2.018;\n" - " v=v*1.596;\n" - " y=(y-0.062)*1.164;\n" - " r=y+v;\n" - " g=y-vmu;\n" - " b=y+u;\n" - " gl_FragColor=vec4(r,g,b,1.0);\n" + " gl_Position = mvp * vertex;\n" + " tex_a = tex_coorda;\n" + " vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 0.5, 0.5) + vec4(0.5, 0.5, 0, 0);\n" + " tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy;\n" "}\n"; -Evas_GL_Program_Source shader_yuy2_nomul_frag_src = +Evas_GL_Program_Source shader_rgb_a_pair_mask_nomul_vert_src = { - yuy2_nomul_frag_glsl, + rgb_a_pair_mask_nomul_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/yuy2_nomul_vert.shd */ -static const char const yuy2_nomul_vert_glsl[] = +static const char const tex_external_frag_glsl[] = "#ifdef GL_ES\n" + "# extension GL_OES_EGL_image_external : require\n" + "# ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" + "# else\n" + "precision mediump float;\n" + "# endif\n" + "uniform samplerExternalOES tex;\n" + "#else\n" + "uniform sampler2D tex;\n" "#endif\n" - "attribute vec4 vertex;\n" - "attribute vec2 tex_coord, tex_coord2;\n" - "uniform mat4 mvp;\n" - "varying vec2 tex_c, tex_cuv;\n" + "varying vec4 col;\n" + "varying vec2 tex_c;\n" "void main()\n" "{\n" - " gl_Position = mvp * vertex;\n" - " tex_c = tex_coord;\n" - " tex_cuv = vec2(tex_coord2.x * 0.5, tex_coord2.y);\n" + " vec4 c;\n" + " c = texture2D(tex, tex_c).bgra;\n" + " gl_FragColor =\n" + " c\n" + " * col\n" + " ;\n" "}\n"; -Evas_GL_Program_Source shader_yuy2_nomul_vert_src = +Evas_GL_Program_Source shader_tex_external_frag_src = { - yuy2_nomul_vert_glsl, + tex_external_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/yuy2_vert.shd */ -static const char const yuy2_vert_glsl[] = +static const char const tex_external_vert_glsl[] = "#ifdef GL_ES\n" "precision highp float;\n" "#endif\n" "attribute vec4 vertex;\n" - "attribute vec4 color;\n" - "attribute vec2 tex_coord, tex_coord2;\n" "uniform mat4 mvp;\n" + "attribute vec4 color;\n" "varying vec4 col;\n" - "varying vec2 tex_c, tex_cuv;\n" + "attribute vec2 tex_coord;\n" + "varying vec2 tex_c;\n" "void main()\n" "{\n" " gl_Position = mvp * vertex;\n" " col = color;\n" - " tex_c = tex_coord;\n" - " tex_cuv = vec2(tex_coord2.x * 0.5, tex_coord2.y);\n" "}\n"; -Evas_GL_Program_Source shader_yuy2_vert_src = +Evas_GL_Program_Source shader_tex_external_vert_src = { - yuy2_vert_glsl, + tex_external_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/img_mask_frag.shd */ -static const char const img_mask_frag_glsl[] = +static const char const tex_external_afill_frag_glsl[] = "#ifdef GL_ES\n" - "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" + "# extension GL_OES_EGL_image_external : require\n" + "# ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" - "#else\n" + "# else\n" "precision mediump float;\n" - "#endif\n" - "#endif\n" + "# endif\n" + "uniform samplerExternalOES tex;\n" + "#else\n" "uniform sampler2D tex;\n" - "uniform sampler2D texm;\n" + "#endif\n" "varying vec4 col;\n" - "varying vec2 coord_c;\n" - "varying vec2 tex_m;\n" + "varying vec2 tex_c;\n" "void main()\n" "{\n" - " gl_FragColor = texture2D(texm, tex_m.xy).a * texture2D(tex, coord_c.xy).bgra * col;\n" + " vec4 c;\n" + " c = texture2D(tex, tex_c).bgra;\n" + " gl_FragColor =\n" + " c\n" + " * col\n" + " ;\n" + " gl_FragColor.a = 1.0;\n" "}\n"; -Evas_GL_Program_Source shader_img_mask_frag_src = +Evas_GL_Program_Source shader_tex_external_afill_frag_src = { - img_mask_frag_glsl, + tex_external_afill_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/img_mask_vert.shd */ -static const char const img_mask_vert_glsl[] = +static const char const tex_external_afill_vert_glsl[] = "#ifdef GL_ES\n" "precision highp float;\n" "#endif\n" "attribute vec4 vertex;\n" - "attribute vec4 color;\n" - "attribute vec2 tex_coord;\n" - "attribute vec4 mask_coord;\n" "uniform mat4 mvp;\n" + "attribute vec4 color;\n" "varying vec4 col;\n" - "varying vec2 coord_c;\n" - "varying vec2 tex_m;\n" + "attribute vec2 tex_coord;\n" + "varying vec2 tex_c;\n" "void main()\n" "{\n" " gl_Position = mvp * vertex;\n" " col = color;\n" - " coord_c = tex_coord;\n" - " // mask_coord.w contains the Y-invert flag\n" - " // position on screen in [0..1] range of current pixel\n" - " vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 0.5, 0.5) + vec4(0.5, 0.5, 0, 0);\n" - " tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy;\n" "}\n"; -Evas_GL_Program_Source shader_img_mask_vert_src = +Evas_GL_Program_Source shader_tex_external_afill_vert_src = { - img_mask_vert_glsl, + tex_external_afill_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/img_mask_nomul_frag.shd */ -static const char const img_mask_nomul_frag_glsl[] = +static const char const tex_external_nomul_frag_glsl[] = "#ifdef GL_ES\n" - "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" + "# extension GL_OES_EGL_image_external : require\n" + "# ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" - "#else\n" + "# else\n" "precision mediump float;\n" - "#endif\n" - "#endif\n" + "# endif\n" + "uniform samplerExternalOES tex;\n" + "#else\n" "uniform sampler2D tex;\n" - "uniform sampler2D texm;\n" - "varying vec2 coord_c;\n" - "varying vec2 tex_m;\n" + "#endif\n" + "varying vec2 tex_c;\n" "void main()\n" "{\n" - " gl_FragColor = texture2D(tex, coord_c.xy) * texture2D(texm, tex_m).a;\n" + " vec4 c;\n" + " c = texture2D(tex, tex_c).bgra;\n" + " gl_FragColor =\n" + " c\n" + " ;\n" "}\n"; -Evas_GL_Program_Source shader_img_mask_nomul_frag_src = +Evas_GL_Program_Source shader_tex_external_nomul_frag_src = { - img_mask_nomul_frag_glsl, + tex_external_nomul_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/img_mask_nomul_vert.shd */ -static const char const img_mask_nomul_vert_glsl[] = +static const char const tex_external_nomul_vert_glsl[] = "#ifdef GL_ES\n" "precision highp float;\n" "#endif\n" "attribute vec4 vertex;\n" - "attribute vec2 tex_coord;\n" - "attribute vec4 mask_coord;\n" "uniform mat4 mvp;\n" - "varying vec2 coord_c;\n" - "varying vec2 tex_m;\n" + "attribute vec2 tex_coord;\n" + "varying vec2 tex_c;\n" "void main()\n" "{\n" " gl_Position = mvp * vertex;\n" - " coord_c = tex_coord;\n" - " // mask_coord.w contains the Y-invert flag\n" - " // position on screen in [0..1] range of current pixel\n" - " vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 0.5, 0.5) + vec4(0.5, 0.5, 0, 0);\n" - " tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy;\n" "}\n"; -Evas_GL_Program_Source shader_img_mask_nomul_vert_src = +Evas_GL_Program_Source shader_tex_external_nomul_vert_src = { - img_mask_nomul_vert_glsl, + tex_external_nomul_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/img_mask_bgra_frag.shd */ -static const char const img_mask_bgra_frag_glsl[] = +static const char const tex_external_nomul_afill_frag_glsl[] = "#ifdef GL_ES\n" - "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" + "# extension GL_OES_EGL_image_external : require\n" + "# ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" - "#else\n" + "# else\n" "precision mediump float;\n" - "#endif\n" - "#endif\n" + "# endif\n" + "uniform samplerExternalOES tex;\n" + "#else\n" "uniform sampler2D tex;\n" - "uniform sampler2D texm;\n" - "varying vec4 col;\n" - "varying vec2 coord_c;\n" - "varying vec2 tex_m;\n" + "#endif\n" + "varying vec2 tex_c;\n" "void main()\n" "{\n" - " gl_FragColor = texture2D(texm, tex_m.xy).a * texture2D(tex, coord_c.xy) * col;\n" + " vec4 c;\n" + " c = texture2D(tex, tex_c).bgra;\n" + " gl_FragColor =\n" + " c\n" + " ;\n" + " gl_FragColor.a = 1.0;\n" "}\n"; -Evas_GL_Program_Source shader_img_mask_bgra_frag_src = +Evas_GL_Program_Source shader_tex_external_nomul_afill_frag_src = { - img_mask_bgra_frag_glsl, + tex_external_nomul_afill_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/img_mask_bgra_vert.shd */ -static const char const img_mask_bgra_vert_glsl[] = +static const char const tex_external_nomul_afill_vert_glsl[] = "#ifdef GL_ES\n" "precision highp float;\n" "#endif\n" "attribute vec4 vertex;\n" - "attribute vec4 color;\n" - "attribute vec2 tex_coord;\n" - "attribute vec4 mask_coord;\n" "uniform mat4 mvp;\n" - "varying vec4 col;\n" - "varying vec2 coord_c;\n" - "varying vec2 tex_m;\n" + "attribute vec2 tex_coord;\n" + "varying vec2 tex_c;\n" "void main()\n" "{\n" " gl_Position = mvp * vertex;\n" - " col = color;\n" - " coord_c = tex_coord;\n" - " // mask_coord.w contains the Y-invert flag\n" - " // position on screen in [0..1] range of current pixel\n" - " vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 0.5, 0.5) + vec4(0.5, 0.5, 0, 0);\n" - " tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy;\n" "}\n"; -Evas_GL_Program_Source shader_img_mask_bgra_vert_src = +Evas_GL_Program_Source shader_tex_external_nomul_afill_vert_src = { - img_mask_bgra_vert_glsl, + tex_external_nomul_afill_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/img_mask_bgra_nomul_frag.shd */ -static const char const img_mask_bgra_nomul_frag_glsl[] = +static const char const tex_external_mask_frag_glsl[] = "#ifdef GL_ES\n" - "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" + "# extension GL_OES_EGL_image_external : require\n" + "# ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" - "#else\n" + "# else\n" "precision mediump float;\n" - "#endif\n" - "#endif\n" + "# endif\n" + "uniform samplerExternalOES tex;\n" + "#else\n" "uniform sampler2D tex;\n" + "#endif\n" + "varying vec4 col;\n" "uniform sampler2D texm;\n" - "varying vec2 coord_c;\n" "varying vec2 tex_m;\n" + "varying vec2 tex_c;\n" "void main()\n" "{\n" - " gl_FragColor = texture2D(texm, tex_m.xy).a * texture2D(tex, coord_c.xy);\n" + " vec4 c;\n" + " c = texture2D(tex, tex_c).bgra;\n" + " gl_FragColor =\n" + " c\n" + " * col\n" + " * texture2D(texm, tex_m).a\n" + " ;\n" "}\n"; -Evas_GL_Program_Source shader_img_mask_bgra_nomul_frag_src = +Evas_GL_Program_Source shader_tex_external_mask_frag_src = { - img_mask_bgra_nomul_frag_glsl, + tex_external_mask_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/img_mask_bgra_nomul_vert.shd */ -static const char const img_mask_bgra_nomul_vert_glsl[] = +static const char const tex_external_mask_vert_glsl[] = "#ifdef GL_ES\n" "precision highp float;\n" "#endif\n" "attribute vec4 vertex;\n" + "uniform mat4 mvp;\n" + "attribute vec4 color;\n" + "varying vec4 col;\n" "attribute vec2 tex_coord;\n" + "varying vec2 tex_c;\n" "attribute vec4 mask_coord;\n" - "uniform mat4 mvp;\n" - "varying vec2 coord_c;\n" "varying vec2 tex_m;\n" "void main()\n" "{\n" " gl_Position = mvp * vertex;\n" - " coord_c = tex_coord;\n" - " // mask_coord.w contains the Y-invert flag\n" - " // position on screen in [0..1] range of current pixel\n" + " col = color;\n" " vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 0.5, 0.5) + vec4(0.5, 0.5, 0, 0);\n" " tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy;\n" "}\n"; -Evas_GL_Program_Source shader_img_mask_bgra_nomul_vert_src = +Evas_GL_Program_Source shader_tex_external_mask_vert_src = { - img_mask_bgra_nomul_vert_glsl, + tex_external_mask_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/yuv_mask_frag.shd */ -static const char const yuv_mask_frag_glsl[] = +static const char const tex_external_mask_nomul_frag_glsl[] = "#ifdef GL_ES\n" - "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" + "# extension GL_OES_EGL_image_external : require\n" + "# ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" - "#else\n" + "# else\n" "precision mediump float;\n" + "# endif\n" + "uniform samplerExternalOES tex;\n" + "#else\n" + "uniform sampler2D tex;\n" "#endif\n" - "#endif\n" - "uniform sampler2D tex, texu, texv, texm;\n" - "varying vec4 col;\n" - "varying vec2 tex_c, tex_c2, tex_c3, tex_m;\n" + "uniform sampler2D texm;\n" + "varying vec2 tex_m;\n" + "varying vec2 tex_c;\n" "void main()\n" "{\n" - " float r, g, b, y, u, v;\n" - " y = texture2D(tex, tex_c.xy).r;\n" - " u = texture2D(texu, tex_c2.xy).r;\n" - " v = texture2D(texv, tex_c3.xy).r;\n" - " y = (y - 0.0625) * 1.164;\n" - " u = u - 0.5;\n" - " v = v - 0.5;\n" - " r = y + (1.402 * v);\n" - " g = y - (0.34414 * u) - (0.71414 * v);\n" - " b = y + (1.772 * u);\n" - " gl_FragColor = vec4(r, g, b, 1.0) * texture2D(texm, tex_m.xy).a * col;\n" + " vec4 c;\n" + " c = texture2D(tex, tex_c).bgra;\n" + " gl_FragColor =\n" + " c\n" + " * texture2D(texm, tex_m).a\n" + " ;\n" "}\n"; -Evas_GL_Program_Source shader_yuv_mask_frag_src = +Evas_GL_Program_Source shader_tex_external_mask_nomul_frag_src = { - yuv_mask_frag_glsl, + tex_external_mask_nomul_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/yuv_mask_vert.shd */ -static const char const yuv_mask_vert_glsl[] = +static const char const tex_external_mask_nomul_vert_glsl[] = "#ifdef GL_ES\n" "precision highp float;\n" "#endif\n" "attribute vec4 vertex;\n" - "attribute vec4 color;\n" - "attribute vec4 mask_coord;\n" - "attribute vec2 tex_coord, tex_coord2, tex_coord3;\n" "uniform mat4 mvp;\n" - "varying vec4 col;\n" - "varying vec2 tex_c, tex_c2, tex_c3, tex_m;\n" + "attribute vec2 tex_coord;\n" + "varying vec2 tex_c;\n" + "attribute vec4 mask_coord;\n" + "varying vec2 tex_m;\n" "void main()\n" "{\n" " gl_Position = mvp * vertex;\n" - " col = color;\n" - " tex_c = tex_coord;\n" - " tex_c2 = tex_coord2;\n" - " tex_c3 = tex_coord3;\n" - " // mask_coord.w contains the Y-invert flag\n" - " // position on screen in [0..1] range of current pixel\n" " vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 0.5, 0.5) + vec4(0.5, 0.5, 0, 0);\n" " tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy;\n" "}\n"; -Evas_GL_Program_Source shader_yuv_mask_vert_src = +Evas_GL_Program_Source shader_tex_external_mask_nomul_vert_src = { - yuv_mask_vert_glsl, + tex_external_mask_nomul_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/nv12_mask_frag.shd */ -static const char const nv12_mask_frag_glsl[] = +static const char const yuv_frag_glsl[] = "#ifdef GL_ES\n" "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" @@ -2509,63 +3428,67 @@ static const char const nv12_mask_frag_glsl[] = "precision mediump float;\n" "#endif\n" "#endif\n" - "uniform sampler2D tex, texuv, texm;\n" "varying vec4 col;\n" - "varying vec2 tex_c, tex_cuv, tex_m;\n" + "uniform sampler2D tex;\n" + "varying vec2 tex_c;\n" + "uniform sampler2D texu;\n" + "uniform sampler2D texv;\n" + "varying vec2 tex_c2;\n" + "varying vec2 tex_c3;\n" "void main()\n" "{\n" - " float y,u,v,vmu,r,g,b;\n" - " y=texture2D(tex,tex_c).g;\n" - " u=texture2D(texuv,tex_cuv).g;\n" - " v=texture2D(texuv,tex_cuv).a;\n" - " u=u-0.5;\n" - " v=v-0.5;\n" - " vmu=v*0.813+u*0.391;\n" - " u=u*2.018;\n" - " v=v*1.596;\n" - " y=(y-0.062)*1.164;\n" - " r=y+v;\n" - " g=y-vmu;\n" - " b=y+u;\n" - " gl_FragColor = vec4(r,g,b,1.0) * texture2D(tex, tex_m.xy).a * col;\n" + " vec4 c;\n" + " float r, g, b, y, u, v;\n" + " y = texture2D(tex, tex_c).r;\n" + " u = texture2D(texu, tex_c2).r;\n" + " v = texture2D(texv, tex_c3).r;\n" + " y = (y - 0.0625) * 1.164;\n" + " u = u - 0.5;\n" + " v = v - 0.5;\n" + " r = y + (1.402 * v);\n" + " g = y - (0.34414 * u) - (0.71414 * v);\n" + " b = y + (1.772 * u);\n" + " c = vec4(r, g, b, 1.0);\n" + " gl_FragColor =\n" + " c\n" + " * col\n" + " ;\n" "}\n"; -Evas_GL_Program_Source shader_nv12_mask_frag_src = +Evas_GL_Program_Source shader_yuv_frag_src = { - nv12_mask_frag_glsl, + yuv_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/nv12_mask_vert.shd */ -static const char const nv12_mask_vert_glsl[] = +static const char const yuv_vert_glsl[] = "#ifdef GL_ES\n" "precision highp float;\n" "#endif\n" "attribute vec4 vertex;\n" - "attribute vec4 color;\n" - "attribute vec4 mask_coord;\n" - "attribute vec2 tex_coord, tex_coord2;\n" "uniform mat4 mvp;\n" + "attribute vec4 color;\n" "varying vec4 col;\n" - "varying vec2 tex_c, tex_cuv, tex_m;\n" + "attribute vec2 tex_coord;\n" + "varying vec2 tex_c;\n" + "attribute vec2 tex_coord2;\n" + "varying vec2 tex_c2;\n" + "attribute vec2 tex_coord3;\n" + "varying vec2 tex_c3;\n" "void main()\n" "{\n" " gl_Position = mvp * vertex;\n" " col = color;\n" " tex_c = tex_coord;\n" - " tex_cuv = tex_coord2 * 0.5;\n" - " // mask_coord.w contains the Y-invert flag\n" - " // position on screen in [0..1] range of current pixel\n" - " vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 0.5, 0.5) + vec4(0.5, 0.5, 0, 0);\n" - " tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy;\n" + " tex_c2 = tex_coord2;\n" + " tex_c3 = tex_coord3;\n" "}\n"; -Evas_GL_Program_Source shader_nv12_mask_vert_src = +Evas_GL_Program_Source shader_yuv_vert_src = { - nv12_mask_vert_glsl, + yuv_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/yuy2_mask_frag.shd */ -static const char const yuy2_mask_frag_glsl[] = +static const char const yuv_nomul_frag_glsl[] = "#ifdef GL_ES\n" "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" @@ -2573,62 +3496,62 @@ static const char const yuy2_mask_frag_glsl[] = "precision mediump float;\n" "#endif\n" "#endif\n" - "uniform sampler2D tex, texuv, texm;\n" - "varying vec4 col;\n" - "varying vec2 tex_c, tex_cuv, tex_m;\n" + "uniform sampler2D tex;\n" + "varying vec2 tex_c;\n" + "uniform sampler2D texu;\n" + "uniform sampler2D texv;\n" + "varying vec2 tex_c2;\n" + "varying vec2 tex_c3;\n" "void main()\n" "{\n" - " float y,u,v,vmu,r,g,b;\n" - " y=texture2D(tex,tex_c).r;\n" - " u=texture2D(texuv,tex_cuv).g;\n" - " v=texture2D(texuv,tex_cuv).a;\n" - " u=u-0.5;\n" - " v=v-0.5;\n" - " vmu=v*0.813+u*0.391;\n" - " u=u*2.018;\n" - " v=v*1.596;\n" - " r=y+v;\n" - " g=y-vmu;\n" - " b=y+u;\n" - " gl_FragColor = vec4(r,g,b,1.0) * texture2D(texm, tex_m.xy).a * col;\n" + " vec4 c;\n" + " float r, g, b, y, u, v;\n" + " y = texture2D(tex, tex_c).r;\n" + " u = texture2D(texu, tex_c2).r;\n" + " v = texture2D(texv, tex_c3).r;\n" + " y = (y - 0.0625) * 1.164;\n" + " u = u - 0.5;\n" + " v = v - 0.5;\n" + " r = y + (1.402 * v);\n" + " g = y - (0.34414 * u) - (0.71414 * v);\n" + " b = y + (1.772 * u);\n" + " c = vec4(r, g, b, 1.0);\n" + " gl_FragColor =\n" + " c\n" + " ;\n" "}\n"; -Evas_GL_Program_Source shader_yuy2_mask_frag_src = +Evas_GL_Program_Source shader_yuv_nomul_frag_src = { - yuy2_mask_frag_glsl, + yuv_nomul_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/yuy2_mask_vert.shd */ -static const char const yuy2_mask_vert_glsl[] = +static const char const yuv_nomul_vert_glsl[] = "#ifdef GL_ES\n" "precision highp float;\n" "#endif\n" "attribute vec4 vertex;\n" - "attribute vec4 color;\n" - "attribute vec4 mask_coord;\n" - "attribute vec2 tex_coord, tex_coord2;\n" "uniform mat4 mvp;\n" - "varying vec4 col;\n" - "varying vec2 tex_c, tex_cuv, tex_m;\n" + "attribute vec2 tex_coord;\n" + "varying vec2 tex_c;\n" + "attribute vec2 tex_coord2;\n" + "varying vec2 tex_c2;\n" + "attribute vec2 tex_coord3;\n" + "varying vec2 tex_c3;\n" "void main()\n" "{\n" " gl_Position = mvp * vertex;\n" - " col = color;\n" " tex_c = tex_coord;\n" - " tex_cuv = vec2(tex_coord2.x * 0.5, tex_coord2.y);\n" - " // mask_coord.w contains the Y-invert flag\n" - " // position on screen in [0..1] range of current pixel\n" - " vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 0.5, 0.5) + vec4(0.5, 0.5, 0, 0);\n" - " tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy;\n" + " tex_c2 = tex_coord2;\n" + " tex_c3 = tex_coord3;\n" "}\n"; -Evas_GL_Program_Source shader_yuy2_mask_vert_src = +Evas_GL_Program_Source shader_yuv_nomul_vert_src = { - yuy2_mask_vert_glsl, + yuv_nomul_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/rgb_a_pair_mask_frag.shd */ -static const char const rgb_a_pair_mask_frag_glsl[] = +static const char const yuv_mask_frag_glsl[] = "#ifdef GL_ES\n" "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" @@ -2636,58 +3559,74 @@ static const char const rgb_a_pair_mask_frag_glsl[] = "precision mediump float;\n" "#endif\n" "#endif\n" + "varying vec4 col;\n" "uniform sampler2D tex;\n" - "uniform sampler2D texa;\n" + "varying vec2 tex_c;\n" + "uniform sampler2D texu;\n" + "uniform sampler2D texv;\n" + "varying vec2 tex_c2;\n" + "varying vec2 tex_c3;\n" "uniform sampler2D texm;\n" - "varying vec4 col;\n" - "varying vec2 coord_c;\n" - "varying vec2 coord_a;\n" "varying vec2 tex_m;\n" "void main()\n" "{\n" - " gl_FragColor.rgb = texture2D(tex, coord_c.xy).rgb * col.rgb * texture2D(texa, coord_a).g * texture2D(texm, tex_m.xy).a;\n" - " gl_FragColor.a = col.a * texture2D(texa, coord_a).g * texture2D(texm, tex_m.xy).a;\n" + " vec4 c;\n" + " float r, g, b, y, u, v;\n" + " y = texture2D(tex, tex_c).r;\n" + " u = texture2D(texu, tex_c2).r;\n" + " v = texture2D(texv, tex_c3).r;\n" + " y = (y - 0.0625) * 1.164;\n" + " u = u - 0.5;\n" + " v = v - 0.5;\n" + " r = y + (1.402 * v);\n" + " g = y - (0.34414 * u) - (0.71414 * v);\n" + " b = y + (1.772 * u);\n" + " c = vec4(r, g, b, 1.0);\n" + " gl_FragColor =\n" + " c\n" + " * col\n" + " * texture2D(texm, tex_m).a\n" + " ;\n" "}\n"; -Evas_GL_Program_Source shader_rgb_a_pair_mask_frag_src = +Evas_GL_Program_Source shader_yuv_mask_frag_src = { - rgb_a_pair_mask_frag_glsl, + yuv_mask_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/rgb_a_pair_mask_vert.shd */ -static const char const rgb_a_pair_mask_vert_glsl[] = +static const char const yuv_mask_vert_glsl[] = "#ifdef GL_ES\n" "precision highp float;\n" "#endif\n" "attribute vec4 vertex;\n" + "uniform mat4 mvp;\n" "attribute vec4 color;\n" + "varying vec4 col;\n" "attribute vec2 tex_coord;\n" - "attribute vec2 tex_coorda;\n" + "varying vec2 tex_c;\n" + "attribute vec2 tex_coord2;\n" + "varying vec2 tex_c2;\n" + "attribute vec2 tex_coord3;\n" + "varying vec2 tex_c3;\n" "attribute vec4 mask_coord;\n" - "uniform mat4 mvp;\n" - "varying vec4 col;\n" - "varying vec2 coord_c;\n" - "varying vec2 coord_a;\n" "varying vec2 tex_m;\n" "void main()\n" "{\n" " gl_Position = mvp * vertex;\n" " col = color;\n" - " coord_c = tex_coord;\n" - " coord_a = tex_coorda;\n" - " // mask_coord.w contains the Y-invert flag\n" - " // position on screen in [0..1] range of current pixel\n" + " tex_c = tex_coord;\n" + " tex_c2 = tex_coord2;\n" + " tex_c3 = tex_coord3;\n" " vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 0.5, 0.5) + vec4(0.5, 0.5, 0, 0);\n" " tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy;\n" "}\n"; -Evas_GL_Program_Source shader_rgb_a_pair_mask_vert_src = +Evas_GL_Program_Source shader_yuv_mask_vert_src = { - rgb_a_pair_mask_vert_glsl, + yuv_mask_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/rect_mask_frag.shd */ -static const char const rect_mask_frag_glsl[] = +static const char const yuv_mask_nomul_frag_glsl[] = "#ifdef GL_ES\n" "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" @@ -2695,47 +3634,69 @@ static const char const rect_mask_frag_glsl[] = "precision mediump float;\n" "#endif\n" "#endif\n" + "uniform sampler2D tex;\n" + "varying vec2 tex_c;\n" + "uniform sampler2D texu;\n" + "uniform sampler2D texv;\n" + "varying vec2 tex_c2;\n" + "varying vec2 tex_c3;\n" "uniform sampler2D texm;\n" - "varying vec4 col;\n" "varying vec2 tex_m;\n" "void main()\n" "{\n" - " gl_FragColor = texture2D(texm, tex_m.xy).a * col;\n" + " vec4 c;\n" + " float r, g, b, y, u, v;\n" + " y = texture2D(tex, tex_c).r;\n" + " u = texture2D(texu, tex_c2).r;\n" + " v = texture2D(texv, tex_c3).r;\n" + " y = (y - 0.0625) * 1.164;\n" + " u = u - 0.5;\n" + " v = v - 0.5;\n" + " r = y + (1.402 * v);\n" + " g = y - (0.34414 * u) - (0.71414 * v);\n" + " b = y + (1.772 * u);\n" + " c = vec4(r, g, b, 1.0);\n" + " gl_FragColor =\n" + " c\n" + " * texture2D(texm, tex_m).a\n" + " ;\n" "}\n"; -Evas_GL_Program_Source shader_rect_mask_frag_src = +Evas_GL_Program_Source shader_yuv_mask_nomul_frag_src = { - rect_mask_frag_glsl, + yuv_mask_nomul_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/rect_mask_vert.shd */ -static const char const rect_mask_vert_glsl[] = +static const char const yuv_mask_nomul_vert_glsl[] = "#ifdef GL_ES\n" "precision highp float;\n" "#endif\n" "attribute vec4 vertex;\n" - "attribute vec4 color;\n" - "attribute vec4 mask_coord;\n" "uniform mat4 mvp;\n" - "varying vec4 col;\n" + "attribute vec2 tex_coord;\n" + "varying vec2 tex_c;\n" + "attribute vec2 tex_coord2;\n" + "varying vec2 tex_c2;\n" + "attribute vec2 tex_coord3;\n" + "varying vec2 tex_c3;\n" + "attribute vec4 mask_coord;\n" "varying vec2 tex_m;\n" "void main()\n" "{\n" " gl_Position = mvp * vertex;\n" - " col = color;\n" - " // mask_coord.w contains the Y-invert flag\n" - " // position on screen in [0..1] range of current pixel\n" + " tex_c = tex_coord;\n" + " tex_c2 = tex_coord2;\n" + " tex_c3 = tex_coord3;\n" " vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 0.5, 0.5) + vec4(0.5, 0.5, 0, 0);\n" " tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy;\n" "}\n"; -Evas_GL_Program_Source shader_rect_mask_vert_src = +Evas_GL_Program_Source shader_yuv_mask_nomul_vert_src = { - rect_mask_vert_glsl, + yuv_mask_nomul_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/map_mask_frag.shd */ -static const char const map_mask_frag_glsl[] = +static const char const yuy2_frag_glsl[] = "#ifdef GL_ES\n" "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" @@ -2743,48 +3704,64 @@ static const char const map_mask_frag_glsl[] = "precision mediump float;\n" "#endif\n" "#endif\n" - "uniform sampler2D tex, texm;\n" - "varying vec2 tex_c, tex_m;\n" "varying vec4 col;\n" + "uniform sampler2D tex;\n" + "varying vec2 tex_c;\n" + "uniform sampler2D texuv;\n" + "varying vec2 tex_c2;\n" "void main()\n" "{\n" - " // FIXME: Fix Mach band effect using proper 4-point color interpolation\n" - " gl_FragColor = texture2D(tex, tex_c).bgra * texture2D(texm, tex_m).a * col;\n" + " vec4 c;\n" + " float y, u, v, vmu, r, g, b;\n" + " y = texture2D(tex, tex_c).g;\n" + " u = texture2D(texuv, tex_c2).g;\n" + " v = texture2D(texuv, tex_c2).a;\n" + " u = u - 0.5;\n" + " v = v - 0.5;\n" + " vmu = v * 0.813 + u * 0.391;\n" + " u = u * 2.018;\n" + " v = v * 1.596;\n" + " r = y + v;\n" + " g = y - vmu;\n" + " b = y + u;\n" + " c = vec4(r, g, b, 1.0);\n" + " gl_FragColor =\n" + " c\n" + " * col\n" + " ;\n" "}\n"; -Evas_GL_Program_Source shader_map_mask_frag_src = +Evas_GL_Program_Source shader_yuy2_frag_src = { - map_mask_frag_glsl, + yuy2_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/map_mask_vert.shd */ -static const char const map_mask_vert_glsl[] = +static const char const yuy2_vert_glsl[] = "#ifdef GL_ES\n" "precision highp float;\n" "#endif\n" - "attribute vec4 vertex, color, mask_coord;\n" - "attribute vec2 tex_coord;\n" + "attribute vec4 vertex;\n" "uniform mat4 mvp;\n" - "varying vec2 tex_c, tex_m;\n" + "attribute vec4 color;\n" "varying vec4 col;\n" + "attribute vec2 tex_coord;\n" + "varying vec2 tex_c;\n" + "attribute vec2 tex_coord2;\n" + "varying vec2 tex_c2;\n" "void main()\n" "{\n" " gl_Position = mvp * vertex;\n" - " tex_c = tex_coord;\n" " col = color;\n" - " // mask_coord.w contains the Y-invert flag\n" - " // position on screen in [0..1] range of current pixel\n" - " vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 0.5, 0.5) + vec4(0.5, 0.5, 0, 0);\n" - " tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy;\n" + " tex_c = tex_coord;\n" + " tex_c2 = vec2(tex_coord2.x * 0.5, tex_coord2.y);\n" "}\n"; -Evas_GL_Program_Source shader_map_mask_vert_src = +Evas_GL_Program_Source shader_yuy2_vert_src = { - map_mask_vert_glsl, + yuy2_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/map_mask_nomul_frag.shd */ -static const char const map_mask_nomul_frag_glsl[] = +static const char const yuy2_nomul_frag_glsl[] = "#ifdef GL_ES\n" "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" @@ -2792,44 +3769,59 @@ static const char const map_mask_nomul_frag_glsl[] = "precision mediump float;\n" "#endif\n" "#endif\n" - "uniform sampler2D tex, texm;\n" - "varying vec2 tex_c, tex_m;\n" + "uniform sampler2D tex;\n" + "varying vec2 tex_c;\n" + "uniform sampler2D texuv;\n" + "varying vec2 tex_c2;\n" "void main()\n" "{\n" - " gl_FragColor = texture2D(tex, tex_c).bgra * texture2D(texm, tex_m).a;\n" + " vec4 c;\n" + " float y, u, v, vmu, r, g, b;\n" + " y = texture2D(tex, tex_c).g;\n" + " u = texture2D(texuv, tex_c2).g;\n" + " v = texture2D(texuv, tex_c2).a;\n" + " u = u - 0.5;\n" + " v = v - 0.5;\n" + " vmu = v * 0.813 + u * 0.391;\n" + " u = u * 2.018;\n" + " v = v * 1.596;\n" + " r = y + v;\n" + " g = y - vmu;\n" + " b = y + u;\n" + " c = vec4(r, g, b, 1.0);\n" + " gl_FragColor =\n" + " c\n" + " ;\n" "}\n"; -Evas_GL_Program_Source shader_map_mask_nomul_frag_src = +Evas_GL_Program_Source shader_yuy2_nomul_frag_src = { - map_mask_nomul_frag_glsl, + yuy2_nomul_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/map_mask_nomul_vert.shd */ -static const char const map_mask_nomul_vert_glsl[] = +static const char const yuy2_nomul_vert_glsl[] = "#ifdef GL_ES\n" "precision highp float;\n" "#endif\n" - "attribute vec4 vertex, mask_coord;\n" - "attribute vec2 tex_coord;\n" + "attribute vec4 vertex;\n" "uniform mat4 mvp;\n" - "varying vec2 tex_c, tex_m;\n" + "attribute vec2 tex_coord;\n" + "varying vec2 tex_c;\n" + "attribute vec2 tex_coord2;\n" + "varying vec2 tex_c2;\n" "void main()\n" "{\n" " gl_Position = mvp * vertex;\n" " tex_c = tex_coord;\n" - " // mask_coord.w contains the Y-invert flag\n" - " // position on screen in [0..1] range of current pixel\n" - " vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 0.5, 0.5) + vec4(0.5, 0.5, 0, 0);\n" - " tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy;\n" + " tex_c2 = vec2(tex_coord2.x * 0.5, tex_coord2.y);\n" "}\n"; -Evas_GL_Program_Source shader_map_mask_nomul_vert_src = +Evas_GL_Program_Source shader_yuy2_nomul_vert_src = { - map_mask_nomul_vert_glsl, + yuy2_nomul_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/map_mask_bgra_frag.shd */ -static const char const map_mask_bgra_frag_glsl[] = +static const char const yuy2_mask_frag_glsl[] = "#ifdef GL_ES\n" "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" @@ -2837,48 +3829,71 @@ static const char const map_mask_bgra_frag_glsl[] = "precision mediump float;\n" "#endif\n" "#endif\n" - "uniform sampler2D tex, texm;\n" - "varying vec2 tex_c, tex_m;\n" "varying vec4 col;\n" + "uniform sampler2D tex;\n" + "varying vec2 tex_c;\n" + "uniform sampler2D texuv;\n" + "varying vec2 tex_c2;\n" + "uniform sampler2D texm;\n" + "varying vec2 tex_m;\n" "void main()\n" "{\n" - " // FIXME: Fix Mach band effect using proper 4-point color interpolation\n" - " gl_FragColor = texture2D(tex, tex_c) * texture2D(texm, tex_m).a * col;\n" + " vec4 c;\n" + " float y, u, v, vmu, r, g, b;\n" + " y = texture2D(tex, tex_c).g;\n" + " u = texture2D(texuv, tex_c2).g;\n" + " v = texture2D(texuv, tex_c2).a;\n" + " u = u - 0.5;\n" + " v = v - 0.5;\n" + " vmu = v * 0.813 + u * 0.391;\n" + " u = u * 2.018;\n" + " v = v * 1.596;\n" + " r = y + v;\n" + " g = y - vmu;\n" + " b = y + u;\n" + " c = vec4(r, g, b, 1.0);\n" + " gl_FragColor =\n" + " c\n" + " * col\n" + " * texture2D(texm, tex_m).a\n" + " ;\n" "}\n"; -Evas_GL_Program_Source shader_map_mask_bgra_frag_src = +Evas_GL_Program_Source shader_yuy2_mask_frag_src = { - map_mask_bgra_frag_glsl, + yuy2_mask_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/map_mask_bgra_vert.shd */ -static const char const map_mask_bgra_vert_glsl[] = +static const char const yuy2_mask_vert_glsl[] = "#ifdef GL_ES\n" "precision highp float;\n" "#endif\n" - "attribute vec4 vertex, color, mask_coord;\n" - "attribute vec2 tex_coord;\n" + "attribute vec4 vertex;\n" "uniform mat4 mvp;\n" - "varying vec2 tex_c, tex_m;\n" + "attribute vec4 color;\n" "varying vec4 col;\n" + "attribute vec2 tex_coord;\n" + "varying vec2 tex_c;\n" + "attribute vec2 tex_coord2;\n" + "varying vec2 tex_c2;\n" + "attribute vec4 mask_coord;\n" + "varying vec2 tex_m;\n" "void main()\n" "{\n" " gl_Position = mvp * vertex;\n" - " tex_c = tex_coord;\n" " col = color;\n" - " // mask_coord.w contains the Y-invert flag\n" - " // position on screen in [0..1] range of current pixel\n" + " tex_c = tex_coord;\n" + " tex_c2 = vec2(tex_coord2.x * 0.5, tex_coord2.y);\n" " vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 0.5, 0.5) + vec4(0.5, 0.5, 0, 0);\n" " tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy;\n" "}\n"; -Evas_GL_Program_Source shader_map_mask_bgra_vert_src = +Evas_GL_Program_Source shader_yuy2_mask_vert_src = { - map_mask_bgra_vert_glsl, + yuy2_mask_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/map_mask_bgra_nomul_frag.shd */ -static const char const map_mask_bgra_nomul_frag_glsl[] = +static const char const yuy2_mask_nomul_frag_glsl[] = "#ifdef GL_ES\n" "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" @@ -2886,293 +3901,427 @@ static const char const map_mask_bgra_nomul_frag_glsl[] = "precision mediump float;\n" "#endif\n" "#endif\n" - "uniform sampler2D tex, texm;\n" - "varying vec2 tex_c, tex_m;\n" + "uniform sampler2D tex;\n" + "varying vec2 tex_c;\n" + "uniform sampler2D texuv;\n" + "varying vec2 tex_c2;\n" + "uniform sampler2D texm;\n" + "varying vec2 tex_m;\n" "void main()\n" "{\n" - " gl_FragColor = texture2D(tex, tex_c) * texture2D(texm, tex_m).a;\n" + " vec4 c;\n" + " float y, u, v, vmu, r, g, b;\n" + " y = texture2D(tex, tex_c).g;\n" + " u = texture2D(texuv, tex_c2).g;\n" + " v = texture2D(texuv, tex_c2).a;\n" + " u = u - 0.5;\n" + " v = v - 0.5;\n" + " vmu = v * 0.813 + u * 0.391;\n" + " u = u * 2.018;\n" + " v = v * 1.596;\n" + " r = y + v;\n" + " g = y - vmu;\n" + " b = y + u;\n" + " c = vec4(r, g, b, 1.0);\n" + " gl_FragColor =\n" + " c\n" + " * texture2D(texm, tex_m).a\n" + " ;\n" "}\n"; -Evas_GL_Program_Source shader_map_mask_bgra_nomul_frag_src = +Evas_GL_Program_Source shader_yuy2_mask_nomul_frag_src = { - map_mask_bgra_nomul_frag_glsl, + yuy2_mask_nomul_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/map_mask_bgra_nomul_vert.shd */ -static const char const map_mask_bgra_nomul_vert_glsl[] = +static const char const yuy2_mask_nomul_vert_glsl[] = "#ifdef GL_ES\n" "precision highp float;\n" "#endif\n" - "attribute vec4 vertex, mask_coord;\n" - "attribute vec2 tex_coord;\n" + "attribute vec4 vertex;\n" "uniform mat4 mvp;\n" - "varying vec2 tex_c, tex_m;\n" + "attribute vec2 tex_coord;\n" + "varying vec2 tex_c;\n" + "attribute vec2 tex_coord2;\n" + "varying vec2 tex_c2;\n" + "attribute vec4 mask_coord;\n" + "varying vec2 tex_m;\n" "void main()\n" "{\n" " gl_Position = mvp * vertex;\n" " tex_c = tex_coord;\n" - " // mask_coord.w contains the Y-invert flag\n" - " // position on screen in [0..1] range of current pixel\n" + " tex_c2 = vec2(tex_coord2.x * 0.5, tex_coord2.y);\n" " vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 0.5, 0.5) + vec4(0.5, 0.5, 0, 0);\n" " tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy;\n" "}\n"; -Evas_GL_Program_Source shader_map_mask_bgra_nomul_vert_src = +Evas_GL_Program_Source shader_yuy2_mask_nomul_vert_src = { - map_mask_bgra_nomul_vert_glsl, + yuy2_mask_nomul_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/tex_external_frag.shd */ -static const char const tex_external_frag_glsl[] = +static const char const nv12_frag_glsl[] = "#ifdef GL_ES\n" - "#extension GL_OES_EGL_image_external : require\n" "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" "#else\n" "precision mediump float;\n" "#endif\n" - "uniform samplerExternalOES tex;\n" - "#else\n" - "uniform sampler2D tex;\n" "#endif\n" "varying vec4 col;\n" + "uniform sampler2D tex;\n" "varying vec2 tex_c;\n" + "uniform sampler2D texuv;\n" + "varying vec2 tex_c2;\n" "void main()\n" "{\n" - " gl_FragColor = texture2D(tex, tex_c.xy) * col;\n" + " vec4 c;\n" + " float y, u, v, vmu, r, g, b;\n" + " y = texture2D(tex, tex_c).g;\n" + " u = texture2D(texuv, tex_c2).g;\n" + " v = texture2D(texuv, tex_c2).a;\n" + " u = u - 0.5;\n" + " v = v - 0.5;\n" + " vmu = v * 0.813 + u * 0.391;\n" + " u = u * 2.018;\n" + " v = v * 1.596;\n" + " y = (y - 0.062) * 1.164;\n" + " r = y + v;\n" + " g = y - vmu;\n" + " b = y + u;\n" + " c = vec4(r, g, b, 1.0);\n" + " gl_FragColor =\n" + " c\n" + " * col\n" + " ;\n" "}\n"; -Evas_GL_Program_Source shader_tex_external_frag_src = +Evas_GL_Program_Source shader_nv12_frag_src = { - tex_external_frag_glsl, + nv12_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/tex_external_vert.shd */ -static const char const tex_external_vert_glsl[] = +static const char const nv12_vert_glsl[] = "#ifdef GL_ES\n" "precision highp float;\n" "#endif\n" "attribute vec4 vertex;\n" - "attribute vec4 color;\n" - "attribute vec2 tex_coord;\n" "uniform mat4 mvp;\n" + "attribute vec4 color;\n" "varying vec4 col;\n" + "attribute vec2 tex_coord;\n" "varying vec2 tex_c;\n" + "attribute vec2 tex_coord2;\n" + "varying vec2 tex_c2;\n" "void main()\n" "{\n" " gl_Position = mvp * vertex;\n" " col = color;\n" " tex_c = tex_coord;\n" + " tex_c2 = tex_coord2 * 0.5;\n" "}\n"; -Evas_GL_Program_Source shader_tex_external_vert_src = +Evas_GL_Program_Source shader_nv12_vert_src = { - tex_external_vert_glsl, + nv12_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/tex_external_nomul_frag.shd */ -static const char const tex_external_nomul_frag_glsl[] = +static const char const nv12_nomul_frag_glsl[] = "#ifdef GL_ES\n" - "#extension GL_OES_EGL_image_external : require\n" "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" "#else\n" "precision mediump float;\n" "#endif\n" - "uniform samplerExternalOES tex;\n" - "#else\n" - "uniform sampler2D tex;\n" "#endif\n" + "uniform sampler2D tex;\n" "varying vec2 tex_c;\n" + "uniform sampler2D texuv;\n" + "varying vec2 tex_c2;\n" "void main()\n" "{\n" - " gl_FragColor = texture2D(tex, tex_c.xy);\n" + " vec4 c;\n" + " float y, u, v, vmu, r, g, b;\n" + " y = texture2D(tex, tex_c).g;\n" + " u = texture2D(texuv, tex_c2).g;\n" + " v = texture2D(texuv, tex_c2).a;\n" + " u = u - 0.5;\n" + " v = v - 0.5;\n" + " vmu = v * 0.813 + u * 0.391;\n" + " u = u * 2.018;\n" + " v = v * 1.596;\n" + " y = (y - 0.062) * 1.164;\n" + " r = y + v;\n" + " g = y - vmu;\n" + " b = y + u;\n" + " c = vec4(r, g, b, 1.0);\n" + " gl_FragColor =\n" + " c\n" + " ;\n" "}\n"; -Evas_GL_Program_Source shader_tex_external_nomul_frag_src = +Evas_GL_Program_Source shader_nv12_nomul_frag_src = { - tex_external_nomul_frag_glsl, + nv12_nomul_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/tex_external_nomul_vert.shd */ -static const char const tex_external_nomul_vert_glsl[] = +static const char const nv12_nomul_vert_glsl[] = "#ifdef GL_ES\n" "precision highp float;\n" "#endif\n" "attribute vec4 vertex;\n" - "attribute vec2 tex_coord;\n" "uniform mat4 mvp;\n" + "attribute vec2 tex_coord;\n" "varying vec2 tex_c;\n" + "attribute vec2 tex_coord2;\n" + "varying vec2 tex_c2;\n" "void main()\n" "{\n" " gl_Position = mvp * vertex;\n" " tex_c = tex_coord;\n" + " tex_c2 = tex_coord2 * 0.5;\n" "}\n"; -Evas_GL_Program_Source shader_tex_external_nomul_vert_src = +Evas_GL_Program_Source shader_nv12_nomul_vert_src = { - tex_external_nomul_vert_glsl, + nv12_nomul_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/tex_external_afill_frag.shd */ -static const char const tex_external_afill_frag_glsl[] = +static const char const nv12_mask_frag_glsl[] = "#ifdef GL_ES\n" - "#extension GL_OES_EGL_image_external : require\n" "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" "#else\n" "precision mediump float;\n" "#endif\n" - "uniform samplerExternalOES tex;\n" - "#else\n" - "uniform sampler2D tex;\n" "#endif\n" "varying vec4 col;\n" + "uniform sampler2D tex;\n" "varying vec2 tex_c;\n" + "uniform sampler2D texuv;\n" + "varying vec2 tex_c2;\n" + "uniform sampler2D texm;\n" + "varying vec2 tex_m;\n" "void main()\n" "{\n" - " vec4 c = texture2D(tex, tex_c.xy);\n" - " gl_FragColor = vec4(c.r, c.g, c.b, 1) * col;\n" + " vec4 c;\n" + " float y, u, v, vmu, r, g, b;\n" + " y = texture2D(tex, tex_c).g;\n" + " u = texture2D(texuv, tex_c2).g;\n" + " v = texture2D(texuv, tex_c2).a;\n" + " u = u - 0.5;\n" + " v = v - 0.5;\n" + " vmu = v * 0.813 + u * 0.391;\n" + " u = u * 2.018;\n" + " v = v * 1.596;\n" + " y = (y - 0.062) * 1.164;\n" + " r = y + v;\n" + " g = y - vmu;\n" + " b = y + u;\n" + " c = vec4(r, g, b, 1.0);\n" + " gl_FragColor =\n" + " c\n" + " * col\n" + " * texture2D(texm, tex_m).a\n" + " ;\n" "}\n"; -Evas_GL_Program_Source shader_tex_external_afill_frag_src = +Evas_GL_Program_Source shader_nv12_mask_frag_src = { - tex_external_afill_frag_glsl, + nv12_mask_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/tex_external_afill_vert.shd */ -static const char const tex_external_afill_vert_glsl[] = +static const char const nv12_mask_vert_glsl[] = "#ifdef GL_ES\n" "precision highp float;\n" "#endif\n" "attribute vec4 vertex;\n" - "attribute vec4 color;\n" - "attribute vec2 tex_coord;\n" "uniform mat4 mvp;\n" + "attribute vec4 color;\n" "varying vec4 col;\n" + "attribute vec2 tex_coord;\n" "varying vec2 tex_c;\n" + "attribute vec2 tex_coord2;\n" + "varying vec2 tex_c2;\n" + "attribute vec4 mask_coord;\n" + "varying vec2 tex_m;\n" "void main()\n" "{\n" " gl_Position = mvp * vertex;\n" " col = color;\n" " tex_c = tex_coord;\n" + " tex_c2 = tex_coord2 * 0.5;\n" + " vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 0.5, 0.5) + vec4(0.5, 0.5, 0, 0);\n" + " tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy;\n" "}\n"; -Evas_GL_Program_Source shader_tex_external_afill_vert_src = +Evas_GL_Program_Source shader_nv12_mask_vert_src = { - tex_external_afill_vert_glsl, + nv12_mask_vert_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/tex_external_nomul_afill_frag.shd */ -static const char const tex_external_nomul_afill_frag_glsl[] = +static const char const nv12_mask_nomul_frag_glsl[] = "#ifdef GL_ES\n" - "#extension GL_OES_EGL_image_external : require\n" "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" "precision highp float;\n" "#else\n" "precision mediump float;\n" "#endif\n" - "uniform samplerExternalOES tex;\n" - "#else\n" - "uniform sampler2D tex;\n" "#endif\n" + "uniform sampler2D tex;\n" "varying vec2 tex_c;\n" + "uniform sampler2D texuv;\n" + "varying vec2 tex_c2;\n" + "uniform sampler2D texm;\n" + "varying vec2 tex_m;\n" "void main()\n" "{\n" - " vec4 c = texture2D(tex, tex_c.xy);\n" - " gl_FragColor = vec4(c.r, c.g, c.b, 1);\n" + " vec4 c;\n" + " float y, u, v, vmu, r, g, b;\n" + " y = texture2D(tex, tex_c).g;\n" + " u = texture2D(texuv, tex_c2).g;\n" + " v = texture2D(texuv, tex_c2).a;\n" + " u = u - 0.5;\n" + " v = v - 0.5;\n" + " vmu = v * 0.813 + u * 0.391;\n" + " u = u * 2.018;\n" + " v = v * 1.596;\n" + " y = (y - 0.062) * 1.164;\n" + " r = y + v;\n" + " g = y - vmu;\n" + " b = y + u;\n" + " c = vec4(r, g, b, 1.0);\n" + " gl_FragColor =\n" + " c\n" + " * texture2D(texm, tex_m).a\n" + " ;\n" "}\n"; -Evas_GL_Program_Source shader_tex_external_nomul_afill_frag_src = +Evas_GL_Program_Source shader_nv12_mask_nomul_frag_src = { - tex_external_nomul_afill_frag_glsl, + nv12_mask_nomul_frag_glsl, NULL, 0 }; -/* Source: modules/evas/engines/gl_common/shader/tex_external_nomul_afill_vert.shd */ -static const char const tex_external_nomul_afill_vert_glsl[] = +static const char const nv12_mask_nomul_vert_glsl[] = "#ifdef GL_ES\n" "precision highp float;\n" "#endif\n" "attribute vec4 vertex;\n" - "attribute vec2 tex_coord;\n" "uniform mat4 mvp;\n" + "attribute vec2 tex_coord;\n" "varying vec2 tex_c;\n" + "attribute vec2 tex_coord2;\n" + "varying vec2 tex_c2;\n" + "attribute vec4 mask_coord;\n" + "varying vec2 tex_m;\n" "void main()\n" "{\n" " gl_Position = mvp * vertex;\n" " tex_c = tex_coord;\n" + " tex_c2 = tex_coord2 * 0.5;\n" + " vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 0.5, 0.5) + vec4(0.5, 0.5, 0, 0);\n" + " tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy;\n" "}\n"; -Evas_GL_Program_Source shader_tex_external_nomul_afill_vert_src = +Evas_GL_Program_Source shader_nv12_mask_nomul_vert_src = { - tex_external_nomul_afill_vert_glsl, + nv12_mask_nomul_vert_glsl, NULL, 0 }; + +typedef enum _Shader_Sampling Shader_Sampling; +enum _Shader_Sampling { + SHADER_SAM11, + SHADER_SAM12, + SHADER_SAM21, + SHADER_SAM22 +}; + static const struct { Evas_GL_Shader id; Evas_GL_Program_Source *vert; Evas_GL_Program_Source *frag; const char *name; + unsigned char type; // RTYPE + Shader_Sampling sam; + Eina_Bool bgra : 1; + Eina_Bool mask : 1; + Eina_Bool nomul : 1; + Eina_Bool afill : 1; } _shaders_source[] = { - { SHADER_FONT, &(shader_font_vert_src), &(shader_font_frag_src), "font" }, - { SHADER_FONT_MASK, &(shader_font_mask_vert_src), &(shader_font_mask_frag_src), "font_mask" }, - { SHADER_IMG_12_BGRA_NOMUL, &(shader_img_12_bgra_nomul_vert_src), &(shader_img_12_bgra_nomul_frag_src), "img_12_bgra_nomul" }, - { SHADER_IMG_12_BGRA, &(shader_img_12_bgra_vert_src), &(shader_img_12_bgra_frag_src), "img_12_bgra" }, - { SHADER_IMG_12_NOMUL, &(shader_img_12_nomul_vert_src), &(shader_img_12_nomul_frag_src), "img_12_nomul" }, - { SHADER_IMG_12, &(shader_img_12_vert_src), &(shader_img_12_frag_src), "img_12" }, - { SHADER_IMG_21_BGRA_NOMUL, &(shader_img_21_bgra_nomul_vert_src), &(shader_img_21_bgra_nomul_frag_src), "img_21_bgra_nomul" }, - { SHADER_IMG_21_BGRA, &(shader_img_21_bgra_vert_src), &(shader_img_21_bgra_frag_src), "img_21_bgra" }, - { SHADER_IMG_21_NOMUL, &(shader_img_21_nomul_vert_src), &(shader_img_21_nomul_frag_src), "img_21_nomul" }, - { SHADER_IMG_21, &(shader_img_21_vert_src), &(shader_img_21_frag_src), "img_21" }, - { SHADER_IMG_22_BGRA_NOMUL, &(shader_img_22_bgra_nomul_vert_src), &(shader_img_22_bgra_nomul_frag_src), "img_22_bgra_nomul" }, - { SHADER_IMG_22_BGRA, &(shader_img_22_bgra_vert_src), &(shader_img_22_bgra_frag_src), "img_22_bgra" }, - { SHADER_IMG_22_NOMUL, &(shader_img_22_nomul_vert_src), &(shader_img_22_nomul_frag_src), "img_22_nomul" }, - { SHADER_IMG_22, &(shader_img_22_vert_src), &(shader_img_22_frag_src), "img_22" }, - { SHADER_IMG_BGRA_NOMUL, &(shader_img_bgra_nomul_vert_src), &(shader_img_bgra_nomul_frag_src), "img_bgra_nomul" }, - { SHADER_IMG_BGRA, &(shader_img_bgra_vert_src), &(shader_img_bgra_frag_src), "img_bgra" }, - { SHADER_IMG_NOMUL, &(shader_img_nomul_vert_src), &(shader_img_nomul_frag_src), "img_nomul" }, - { SHADER_IMG, &(shader_img_vert_src), &(shader_img_frag_src), "img" }, - { SHADER_NV12_NOMUL, &(shader_nv12_nomul_vert_src), &(shader_nv12_nomul_frag_src), "nv12_nomul" }, - { SHADER_NV12, &(shader_nv12_vert_src), &(shader_nv12_frag_src), "nv12" }, - { SHADER_RECT, &(shader_rect_vert_src), &(shader_rect_frag_src), "rect" }, - { SHADER_RGB_A_PAIR_NOMUL, &(shader_rgb_a_pair_nomul_vert_src), &(shader_rgb_a_pair_nomul_frag_src), "rgb_a_pair_nomul" }, - { SHADER_RGB_A_PAIR, &(shader_rgb_a_pair_vert_src), &(shader_rgb_a_pair_frag_src), "rgb_a_pair" }, - { SHADER_TEX_12, &(shader_tex_12_vert_src), &(shader_tex_12_frag_src), "tex_12" }, - { SHADER_TEX_12_NOMUL, &(shader_tex_12_nomul_vert_src), &(shader_tex_12_nomul_frag_src), "tex_12_nomul" }, - { SHADER_TEX_21, &(shader_tex_21_vert_src), &(shader_tex_21_frag_src), "tex_21" }, - { SHADER_TEX_21_NOMUL, &(shader_tex_21_nomul_vert_src), &(shader_tex_21_nomul_frag_src), "tex_21_nomul" }, - { SHADER_TEX_22, &(shader_tex_22_vert_src), &(shader_tex_22_frag_src), "tex_22" }, - { SHADER_TEX_22_NOMUL, &(shader_tex_22_nomul_vert_src), &(shader_tex_22_nomul_frag_src), "tex_22_nomul" }, - { SHADER_TEX, &(shader_tex_vert_src), &(shader_tex_frag_src), "tex" }, - { SHADER_TEX_NOMUL, &(shader_tex_nomul_vert_src), &(shader_tex_nomul_frag_src), "tex_nomul" }, - { SHADER_TEX_AFILL, &(shader_tex_afill_vert_src), &(shader_tex_afill_frag_src), "tex_afill" }, - { SHADER_TEX_22_AFILL, &(shader_tex_22_afill_vert_src), &(shader_tex_22_afill_frag_src), "tex_22_afill" }, - { SHADER_TEX_21_AFILL, &(shader_tex_21_afill_vert_src), &(shader_tex_21_afill_frag_src), "tex_21_afill" }, - { SHADER_TEX_12_AFILL, &(shader_tex_12_afill_vert_src), &(shader_tex_12_afill_frag_src), "tex_12_afill" }, - { SHADER_TEX_22_NOMUL_AFILL, &(shader_tex_22_nomul_afill_vert_src), &(shader_tex_22_nomul_afill_frag_src), "tex_22_nomul_afill" }, - { SHADER_TEX_21_NOMUL_AFILL, &(shader_tex_21_nomul_afill_vert_src), &(shader_tex_21_nomul_afill_frag_src), "tex_21_nomul_afill" }, - { SHADER_TEX_12_NOMUL_AFILL, &(shader_tex_12_nomul_afill_vert_src), &(shader_tex_12_nomul_afill_frag_src), "tex_12_nomul_afill" }, - { SHADER_TEX_NOMUL_AFILL, &(shader_tex_nomul_afill_vert_src), &(shader_tex_nomul_afill_frag_src), "tex_nomul_afill" }, - { SHADER_YUV_NOMUL, &(shader_yuv_nomul_vert_src), &(shader_yuv_nomul_frag_src), "yuv_nomul" }, - { SHADER_YUV, &(shader_yuv_vert_src), &(shader_yuv_frag_src), "yuv" }, - { SHADER_YUY2_NOMUL, &(shader_yuy2_nomul_vert_src), &(shader_yuy2_nomul_frag_src), "yuy2_nomul" }, - { SHADER_YUY2, &(shader_yuy2_vert_src), &(shader_yuy2_frag_src), "yuy2" }, - { SHADER_IMG_MASK, &(shader_img_mask_vert_src), &(shader_img_mask_frag_src), "img_mask" }, - { SHADER_IMG_MASK_NOMUL, &(shader_img_mask_nomul_vert_src), &(shader_img_mask_nomul_frag_src), "img_mask_nomul" }, - { SHADER_IMG_MASK_BGRA, &(shader_img_mask_bgra_vert_src), &(shader_img_mask_bgra_frag_src), "img_mask_bgra" }, - { SHADER_IMG_MASK_BGRA_NOMUL, &(shader_img_mask_bgra_nomul_vert_src), &(shader_img_mask_bgra_nomul_frag_src), "img_mask_bgra_nomul" }, - { SHADER_YUV_MASK, &(shader_yuv_mask_vert_src), &(shader_yuv_mask_frag_src), "yuv_mask" }, - { SHADER_NV12_MASK, &(shader_nv12_mask_vert_src), &(shader_nv12_mask_frag_src), "nv12_mask" }, - { SHADER_YUY2_MASK, &(shader_yuy2_mask_vert_src), &(shader_yuy2_mask_frag_src), "yuy2_mask" }, - { SHADER_RGB_A_PAIR_MASK, &(shader_rgb_a_pair_mask_vert_src), &(shader_rgb_a_pair_mask_frag_src), "rgb_a_pair_mask" }, - { SHADER_RECT_MASK, &(shader_rect_mask_vert_src), &(shader_rect_mask_frag_src), "rect_mask" }, - { SHADER_MAP_MASK, &(shader_map_mask_vert_src), &(shader_map_mask_frag_src), "map_mask" }, - { SHADER_MAP_MASK_NOMUL, &(shader_map_mask_nomul_vert_src), &(shader_map_mask_nomul_frag_src), "map_mask_nomul" }, - { SHADER_MAP_MASK_BGRA, &(shader_map_mask_bgra_vert_src), &(shader_map_mask_bgra_frag_src), "map_mask_bgra" }, - { SHADER_MAP_MASK_BGRA_NOMUL, &(shader_map_mask_bgra_nomul_vert_src), &(shader_map_mask_bgra_nomul_frag_src), "map_mask_bgra_nomul" }, - { SHADER_TEX_EXTERNAL, &(shader_tex_external_vert_src), &(shader_tex_external_frag_src), "tex_external" }, - { SHADER_TEX_EXTERNAL_NOMUL, &(shader_tex_external_nomul_vert_src), &(shader_tex_external_nomul_frag_src), "tex_external_nomul" }, - { SHADER_TEX_EXTERNAL_AFILL, &(shader_tex_external_afill_vert_src), &(shader_tex_external_afill_frag_src), "tex_external_afill" }, - { SHADER_TEX_EXTERNAL_NOMUL_AFILL, &(shader_tex_external_nomul_afill_vert_src), &(shader_tex_external_nomul_afill_frag_src), "tex_external_nomul_afill" }, + { SHADER_RECT, &(shader_rect_vert_src), &(shader_rect_frag_src), "rect", RTYPE_RECT, SHADER_SAM11, 0, 0, 0, 0 }, + { SHADER_RECT_MASK, &(shader_rect_mask_vert_src), &(shader_rect_mask_frag_src), "rect_mask", RTYPE_RECT, SHADER_SAM11, 0, 1, 0, 0 }, + { SHADER_FONT, &(shader_font_vert_src), &(shader_font_frag_src), "font", RTYPE_FONT, SHADER_SAM11, 0, 0, 0, 0 }, + { SHADER_FONT_MASK, &(shader_font_mask_vert_src), &(shader_font_mask_frag_src), "font_mask", RTYPE_FONT, SHADER_SAM11, 0, 1, 0, 0 }, + { SHADER_IMG, &(shader_img_vert_src), &(shader_img_frag_src), "img", RTYPE_IMAGE, SHADER_SAM11, 0, 0, 0, 0 }, + { SHADER_IMG_BGRA, &(shader_img_bgra_vert_src), &(shader_img_bgra_frag_src), "img_bgra", RTYPE_IMAGE, SHADER_SAM11, 1, 0, 0, 0 }, + { SHADER_IMG_12, &(shader_img_12_vert_src), &(shader_img_12_frag_src), "img_12", RTYPE_IMAGE, SHADER_SAM12, 0, 0, 0, 0 }, + { SHADER_IMG_21, &(shader_img_21_vert_src), &(shader_img_21_frag_src), "img_21", RTYPE_IMAGE, SHADER_SAM21, 0, 0, 0, 0 }, + { SHADER_IMG_22, &(shader_img_22_vert_src), &(shader_img_22_frag_src), "img_22", RTYPE_IMAGE, SHADER_SAM22, 0, 0, 0, 0 }, + { SHADER_IMG_12_BGRA, &(shader_img_12_bgra_vert_src), &(shader_img_12_bgra_frag_src), "img_12_bgra", RTYPE_IMAGE, SHADER_SAM12, 1, 0, 0, 0 }, + { SHADER_IMG_21_BGRA, &(shader_img_21_bgra_vert_src), &(shader_img_21_bgra_frag_src), "img_21_bgra", RTYPE_IMAGE, SHADER_SAM21, 1, 0, 0, 0 }, + { SHADER_IMG_22_BGRA, &(shader_img_22_bgra_vert_src), &(shader_img_22_bgra_frag_src), "img_22_bgra", RTYPE_IMAGE, SHADER_SAM22, 1, 0, 0, 0 }, + { SHADER_IMG_MASK, &(shader_img_mask_vert_src), &(shader_img_mask_frag_src), "img_mask", RTYPE_IMAGE, SHADER_SAM11, 0, 1, 0, 0 }, + { SHADER_IMG_BGRA_MASK, &(shader_img_bgra_mask_vert_src), &(shader_img_bgra_mask_frag_src), "img_bgra_mask", RTYPE_IMAGE, SHADER_SAM11, 1, 1, 0, 0 }, + { SHADER_IMG_12_MASK, &(shader_img_12_mask_vert_src), &(shader_img_12_mask_frag_src), "img_12_mask", RTYPE_IMAGE, SHADER_SAM12, 0, 1, 0, 0 }, + { SHADER_IMG_21_MASK, &(shader_img_21_mask_vert_src), &(shader_img_21_mask_frag_src), "img_21_mask", RTYPE_IMAGE, SHADER_SAM21, 0, 1, 0, 0 }, + { SHADER_IMG_22_MASK, &(shader_img_22_mask_vert_src), &(shader_img_22_mask_frag_src), "img_22_mask", RTYPE_IMAGE, SHADER_SAM22, 0, 1, 0, 0 }, + { SHADER_IMG_12_BGRA_MASK, &(shader_img_12_bgra_mask_vert_src), &(shader_img_12_bgra_mask_frag_src), "img_12_bgra_mask", RTYPE_IMAGE, SHADER_SAM12, 1, 1, 0, 0 }, + { SHADER_IMG_21_BGRA_MASK, &(shader_img_21_bgra_mask_vert_src), &(shader_img_21_bgra_mask_frag_src), "img_21_bgra_mask", RTYPE_IMAGE, SHADER_SAM21, 1, 1, 0, 0 }, + { SHADER_IMG_22_BGRA_MASK, &(shader_img_22_bgra_mask_vert_src), &(shader_img_22_bgra_mask_frag_src), "img_22_bgra_mask", RTYPE_IMAGE, SHADER_SAM22, 1, 1, 0, 0 }, + { SHADER_IMG_NOMUL, &(shader_img_nomul_vert_src), &(shader_img_nomul_frag_src), "img_nomul", RTYPE_IMAGE, SHADER_SAM11, 0, 0, 1, 0 }, + { SHADER_IMG_BGRA_NOMUL, &(shader_img_bgra_nomul_vert_src), &(shader_img_bgra_nomul_frag_src), "img_bgra_nomul", RTYPE_IMAGE, SHADER_SAM11, 1, 0, 1, 0 }, + { SHADER_IMG_12_NOMUL, &(shader_img_12_nomul_vert_src), &(shader_img_12_nomul_frag_src), "img_12_nomul", RTYPE_IMAGE, SHADER_SAM12, 0, 0, 1, 0 }, + { SHADER_IMG_21_NOMUL, &(shader_img_21_nomul_vert_src), &(shader_img_21_nomul_frag_src), "img_21_nomul", RTYPE_IMAGE, SHADER_SAM21, 0, 0, 1, 0 }, + { SHADER_IMG_22_NOMUL, &(shader_img_22_nomul_vert_src), &(shader_img_22_nomul_frag_src), "img_22_nomul", RTYPE_IMAGE, SHADER_SAM22, 0, 0, 1, 0 }, + { SHADER_IMG_12_BGRA_NOMUL, &(shader_img_12_bgra_nomul_vert_src), &(shader_img_12_bgra_nomul_frag_src), "img_12_bgra_nomul", RTYPE_IMAGE, SHADER_SAM12, 1, 0, 1, 0 }, + { SHADER_IMG_21_BGRA_NOMUL, &(shader_img_21_bgra_nomul_vert_src), &(shader_img_21_bgra_nomul_frag_src), "img_21_bgra_nomul", RTYPE_IMAGE, SHADER_SAM21, 1, 0, 1, 0 }, + { SHADER_IMG_22_BGRA_NOMUL, &(shader_img_22_bgra_nomul_vert_src), &(shader_img_22_bgra_nomul_frag_src), "img_22_bgra_nomul", RTYPE_IMAGE, SHADER_SAM22, 1, 0, 1, 0 }, + { SHADER_IMG_MASK_NOMUL, &(shader_img_mask_nomul_vert_src), &(shader_img_mask_nomul_frag_src), "img_mask_nomul", RTYPE_IMAGE, SHADER_SAM11, 0, 1, 1, 0 }, + { SHADER_IMG_BGRA_MASK_NOMUL, &(shader_img_bgra_mask_nomul_vert_src), &(shader_img_bgra_mask_nomul_frag_src), "img_bgra_mask_nomul", RTYPE_IMAGE, SHADER_SAM11, 1, 1, 1, 0 }, + { SHADER_IMG_12_MASK_NOMUL, &(shader_img_12_mask_nomul_vert_src), &(shader_img_12_mask_nomul_frag_src), "img_12_mask_nomul", RTYPE_IMAGE, SHADER_SAM12, 0, 1, 1, 0 }, + { SHADER_IMG_21_MASK_NOMUL, &(shader_img_21_mask_nomul_vert_src), &(shader_img_21_mask_nomul_frag_src), "img_21_mask_nomul", RTYPE_IMAGE, SHADER_SAM21, 0, 1, 1, 0 }, + { SHADER_IMG_22_MASK_NOMUL, &(shader_img_22_mask_nomul_vert_src), &(shader_img_22_mask_nomul_frag_src), "img_22_mask_nomul", RTYPE_IMAGE, SHADER_SAM22, 0, 1, 1, 0 }, + { SHADER_IMG_12_BGRA_MASK_NOMUL, &(shader_img_12_bgra_mask_nomul_vert_src), &(shader_img_12_bgra_mask_nomul_frag_src), "img_12_bgra_mask_nomul", RTYPE_IMAGE, SHADER_SAM12, 1, 1, 1, 0 }, + { SHADER_IMG_21_BGRA_MASK_NOMUL, &(shader_img_21_bgra_mask_nomul_vert_src), &(shader_img_21_bgra_mask_nomul_frag_src), "img_21_bgra_mask_nomul", RTYPE_IMAGE, SHADER_SAM21, 1, 1, 1, 0 }, + { SHADER_IMG_22_BGRA_MASK_NOMUL, &(shader_img_22_bgra_mask_nomul_vert_src), &(shader_img_22_bgra_mask_nomul_frag_src), "img_22_bgra_mask_nomul", RTYPE_IMAGE, SHADER_SAM22, 1, 1, 1, 0 }, + { SHADER_IMG_AFILL, &(shader_img_afill_vert_src), &(shader_img_afill_frag_src), "img_afill", RTYPE_IMAGE, SHADER_SAM11, 0, 0, 0, 1 }, + { SHADER_IMG_BGRA_AFILL, &(shader_img_bgra_afill_vert_src), &(shader_img_bgra_afill_frag_src), "img_bgra_afill", RTYPE_IMAGE, SHADER_SAM11, 1, 0, 0, 1 }, + { SHADER_IMG_NOMUL_AFILL, &(shader_img_nomul_afill_vert_src), &(shader_img_nomul_afill_frag_src), "img_nomul_afill", RTYPE_IMAGE, SHADER_SAM11, 0, 0, 1, 1 }, + { SHADER_IMG_BGRA_NOMUL_AFILL, &(shader_img_bgra_nomul_afill_vert_src), &(shader_img_bgra_nomul_afill_frag_src), "img_bgra_nomul_afill", RTYPE_IMAGE, SHADER_SAM11, 1, 0, 1, 1 }, + { SHADER_IMG_12_AFILL, &(shader_img_12_afill_vert_src), &(shader_img_12_afill_frag_src), "img_12_afill", RTYPE_IMAGE, SHADER_SAM12, 0, 0, 0, 1 }, + { SHADER_IMG_21_AFILL, &(shader_img_21_afill_vert_src), &(shader_img_21_afill_frag_src), "img_21_afill", RTYPE_IMAGE, SHADER_SAM21, 0, 0, 0, 1 }, + { SHADER_IMG_22_AFILL, &(shader_img_22_afill_vert_src), &(shader_img_22_afill_frag_src), "img_22_afill", RTYPE_IMAGE, SHADER_SAM22, 0, 0, 0, 1 }, + { SHADER_IMG_12_BGRA_AFILL, &(shader_img_12_bgra_afill_vert_src), &(shader_img_12_bgra_afill_frag_src), "img_12_bgra_afill", RTYPE_IMAGE, SHADER_SAM12, 1, 0, 0, 1 }, + { SHADER_IMG_21_BGRA_AFILL, &(shader_img_21_bgra_afill_vert_src), &(shader_img_21_bgra_afill_frag_src), "img_21_bgra_afill", RTYPE_IMAGE, SHADER_SAM21, 1, 0, 0, 1 }, + { SHADER_IMG_22_BGRA_AFILL, &(shader_img_22_bgra_afill_vert_src), &(shader_img_22_bgra_afill_frag_src), "img_22_bgra_afill", RTYPE_IMAGE, SHADER_SAM22, 1, 0, 0, 1 }, + { SHADER_IMG_12_NOMUL_AFILL, &(shader_img_12_nomul_afill_vert_src), &(shader_img_12_nomul_afill_frag_src), "img_12_nomul_afill", RTYPE_IMAGE, SHADER_SAM12, 0, 0, 1, 1 }, + { SHADER_IMG_21_NOMUL_AFILL, &(shader_img_21_nomul_afill_vert_src), &(shader_img_21_nomul_afill_frag_src), "img_21_nomul_afill", RTYPE_IMAGE, SHADER_SAM21, 0, 0, 1, 1 }, + { SHADER_IMG_22_NOMUL_AFILL, &(shader_img_22_nomul_afill_vert_src), &(shader_img_22_nomul_afill_frag_src), "img_22_nomul_afill", RTYPE_IMAGE, SHADER_SAM22, 0, 0, 1, 1 }, + { SHADER_IMG_12_BGRA_NOMUL_AFILL, &(shader_img_12_bgra_nomul_afill_vert_src), &(shader_img_12_bgra_nomul_afill_frag_src), "img_12_bgra_nomul_afill", RTYPE_IMAGE, SHADER_SAM12, 1, 0, 1, 1 }, + { SHADER_IMG_21_BGRA_NOMUL_AFILL, &(shader_img_21_bgra_nomul_afill_vert_src), &(shader_img_21_bgra_nomul_afill_frag_src), "img_21_bgra_nomul_afill", RTYPE_IMAGE, SHADER_SAM21, 1, 0, 1, 1 }, + { SHADER_IMG_22_BGRA_NOMUL_AFILL, &(shader_img_22_bgra_nomul_afill_vert_src), &(shader_img_22_bgra_nomul_afill_frag_src), "img_22_bgra_nomul_afill", RTYPE_IMAGE, SHADER_SAM22, 1, 0, 1, 1 }, + { SHADER_RGB_A_PAIR, &(shader_rgb_a_pair_vert_src), &(shader_rgb_a_pair_frag_src), "rgb_a_pair", RTYPE_RGB_A_PAIR, SHADER_SAM11, 0, 0, 0, 0 }, + { SHADER_RGB_A_PAIR_MASK, &(shader_rgb_a_pair_mask_vert_src), &(shader_rgb_a_pair_mask_frag_src), "rgb_a_pair_mask", RTYPE_RGB_A_PAIR, SHADER_SAM11, 0, 1, 0, 0 }, + { SHADER_RGB_A_PAIR_NOMUL, &(shader_rgb_a_pair_nomul_vert_src), &(shader_rgb_a_pair_nomul_frag_src), "rgb_a_pair_nomul", RTYPE_RGB_A_PAIR, SHADER_SAM11, 0, 0, 1, 0 }, + { SHADER_RGB_A_PAIR_MASK_NOMUL, &(shader_rgb_a_pair_mask_nomul_vert_src), &(shader_rgb_a_pair_mask_nomul_frag_src), "rgb_a_pair_mask_nomul", RTYPE_RGB_A_PAIR, SHADER_SAM11, 0, 1, 1, 0 }, + { SHADER_TEX_EXTERNAL, &(shader_tex_external_vert_src), &(shader_tex_external_frag_src), "tex_external", RTYPE_TEX_EXTERNAL, SHADER_SAM11, 0, 0, 0, 0 }, + { SHADER_TEX_EXTERNAL_AFILL, &(shader_tex_external_afill_vert_src), &(shader_tex_external_afill_frag_src), "tex_external_afill", RTYPE_TEX_EXTERNAL, SHADER_SAM11, 0, 0, 0, 1 }, + { SHADER_TEX_EXTERNAL_NOMUL, &(shader_tex_external_nomul_vert_src), &(shader_tex_external_nomul_frag_src), "tex_external_nomul", RTYPE_TEX_EXTERNAL, SHADER_SAM11, 0, 0, 1, 0 }, + { SHADER_TEX_EXTERNAL_NOMUL_AFILL, &(shader_tex_external_nomul_afill_vert_src), &(shader_tex_external_nomul_afill_frag_src), "tex_external_nomul_afill", RTYPE_TEX_EXTERNAL, SHADER_SAM11, 0, 0, 1, 1 }, + { SHADER_TEX_EXTERNAL_MASK, &(shader_tex_external_mask_vert_src), &(shader_tex_external_mask_frag_src), "tex_external_mask", RTYPE_TEX_EXTERNAL, SHADER_SAM11, 0, 1, 0, 0 }, + { SHADER_TEX_EXTERNAL_MASK_NOMUL, &(shader_tex_external_mask_nomul_vert_src), &(shader_tex_external_mask_nomul_frag_src), "tex_external_mask_nomul", RTYPE_TEX_EXTERNAL, SHADER_SAM11, 0, 1, 1, 0 }, + { SHADER_YUV, &(shader_yuv_vert_src), &(shader_yuv_frag_src), "yuv", RTYPE_YUV, SHADER_SAM11, 0, 0, 0, 0 }, + { SHADER_YUV_NOMUL, &(shader_yuv_nomul_vert_src), &(shader_yuv_nomul_frag_src), "yuv_nomul", RTYPE_YUV, SHADER_SAM11, 0, 0, 1, 0 }, + { SHADER_YUV_MASK, &(shader_yuv_mask_vert_src), &(shader_yuv_mask_frag_src), "yuv_mask", RTYPE_YUV, SHADER_SAM11, 0, 1, 0, 0 }, + { SHADER_YUV_MASK_NOMUL, &(shader_yuv_mask_nomul_vert_src), &(shader_yuv_mask_nomul_frag_src), "yuv_mask_nomul", RTYPE_YUV, SHADER_SAM11, 0, 1, 1, 0 }, + { SHADER_YUY2, &(shader_yuy2_vert_src), &(shader_yuy2_frag_src), "yuy2", RTYPE_YUY2, SHADER_SAM11, 0, 0, 0, 0 }, + { SHADER_YUY2_NOMUL, &(shader_yuy2_nomul_vert_src), &(shader_yuy2_nomul_frag_src), "yuy2_nomul", RTYPE_YUY2, SHADER_SAM11, 0, 0, 1, 0 }, + { SHADER_YUY2_MASK, &(shader_yuy2_mask_vert_src), &(shader_yuy2_mask_frag_src), "yuy2_mask", RTYPE_YUY2, SHADER_SAM11, 0, 1, 0, 0 }, + { SHADER_YUY2_MASK_NOMUL, &(shader_yuy2_mask_nomul_vert_src), &(shader_yuy2_mask_nomul_frag_src), "yuy2_mask_nomul", RTYPE_YUY2, SHADER_SAM11, 0, 1, 1, 0 }, + { SHADER_NV12, &(shader_nv12_vert_src), &(shader_nv12_frag_src), "nv12", RTYPE_NV12, SHADER_SAM11, 0, 0, 0, 0 }, + { SHADER_NV12_NOMUL, &(shader_nv12_nomul_vert_src), &(shader_nv12_nomul_frag_src), "nv12_nomul", RTYPE_NV12, SHADER_SAM11, 0, 0, 1, 0 }, + { SHADER_NV12_MASK, &(shader_nv12_mask_vert_src), &(shader_nv12_mask_frag_src), "nv12_mask", RTYPE_NV12, SHADER_SAM11, 0, 1, 0, 0 }, + { SHADER_NV12_MASK_NOMUL, &(shader_nv12_mask_nomul_vert_src), &(shader_nv12_mask_nomul_frag_src), "nv12_mask_nomul", RTYPE_NV12, SHADER_SAM11, 0, 1, 1, 0 }, }; diff --git a/src/modules/evas/engines/gl_common/shader/font_frag.shd b/src/modules/evas/engines/gl_common/shader/font_frag.shd deleted file mode 100644 index a8eb9b7..0000000 --- a/src/modules/evas/engines/gl_common/shader/font_frag.shd +++ /dev/null @@ -1,14 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#endif -uniform sampler2D tex; -varying vec4 col; -varying vec2 tex_c; -void main() -{ - gl_FragColor = texture2D(tex, tex_c.xy).aaaa * col; -} diff --git a/src/modules/evas/engines/gl_common/shader/font_mask_frag.shd b/src/modules/evas/engines/gl_common/shader/font_mask_frag.shd deleted file mode 100644 index 48c926c..0000000 --- a/src/modules/evas/engines/gl_common/shader/font_mask_frag.shd +++ /dev/null @@ -1,17 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#endif -uniform sampler2D tex; -uniform sampler2D texm; -varying vec4 col; -varying vec2 tex_c; -varying vec2 tex_m; -void main() -{ - gl_FragColor = texture2D(tex, tex_c.xy).aaaa * texture2D(texm, tex_m.xy).aaaa * col; -} - diff --git a/src/modules/evas/engines/gl_common/shader/font_mask_vert.shd b/src/modules/evas/engines/gl_common/shader/font_mask_vert.shd deleted file mode 100644 index f1c9c7b..0000000 --- a/src/modules/evas/engines/gl_common/shader/font_mask_vert.shd +++ /dev/null @@ -1,23 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec4 color; -attribute vec2 tex_coord; -attribute vec4 mask_coord; -uniform mat4 mvp; -varying vec4 col; -varying vec2 tex_c; -varying vec2 tex_m; -void main() -{ - gl_Position = mvp * vertex; - col = color; - tex_c = tex_coord; - - // mask_coord.w contains the Y-invert flag - // position on screen in [0..1] range of current pixel - vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 0.5, 0.5) + vec4(0.5, 0.5, 0, 0); - tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy; -} - diff --git a/src/modules/evas/engines/gl_common/shader/font_vert.shd b/src/modules/evas/engines/gl_common/shader/font_vert.shd deleted file mode 100644 index 606c297..0000000 --- a/src/modules/evas/engines/gl_common/shader/font_vert.shd +++ /dev/null @@ -1,15 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec4 color; -attribute vec2 tex_coord; -uniform mat4 mvp; -varying vec4 col; -varying vec2 tex_c; -void main() -{ - gl_Position = mvp * vertex; - col = color; - tex_c = tex_coord; -} diff --git a/src/modules/evas/engines/gl_common/shader/fragment.glsl b/src/modules/evas/engines/gl_common/shader/fragment.glsl new file mode 100644 index 0000000..1ebecbb --- /dev/null +++ b/src/modules/evas/engines/gl_common/shader/fragment.glsl @@ -0,0 +1,142 @@ +/* General-purpose fragment shader for all operations in Evas. + * This file can either be used directly by evas at runtime to + * generate its shaders with the appropriate #defines, or passed + * through cpp first (in which case the precision must be manually added). + */ + +#ifdef GL_ES +#ifdef GL_FRAGMENT_PRECISION_HIGH +precision highp float; +#else +precision mediump float; +#endif +#endif + +#ifndef SHD_NOMUL +varying vec4 col; +#endif + +#ifdef SHD_TEX +uniform sampler2D tex; +varying vec2 tex_c; +#endif + +#if defined(SHD_NV12) || defined(SHD_YUY2) +uniform sampler2D texuv; +varying vec2 tex_c2; +#endif + +#if defined(SHD_YUV) +uniform sampler2D texu; +uniform sampler2D texv; +varying vec2 tex_c2; +varying vec2 tex_c3; +#endif + +#ifdef SHD_TEXA +uniform sampler2D texa; +varying vec2 tex_a; +#endif + +#if defined(SHD_SAM12) || defined(SHD_SAM21) || defined(SHD_SAM22) +varying vec4 div_s; +# if defined(SHD_SAM12) || defined(SHD_SAM21) +varying vec2 tex_s[2]; +# else +varying vec2 tex_s[4]; +# endif +#endif + +#ifdef SHD_MASK +uniform sampler2D texm; +varying vec2 tex_m; +#endif + +#ifdef SHD_EXTERNAL +# define SHD_TEX +// uniform samplerExternalOES tex; +varying vec2 tex_c; +#endif + +#ifdef SHD_ALPHA +# define SWZ aaaa +#else +# ifndef SHD_BGRA +# define SWZ bgra +# else +# define SWZ rgba +# endif +#endif + +void main() +{ + vec4 c; + +#if defined(SHD_YUV) + float r, g, b, y, u, v; + y = texture2D(tex, tex_c).r; + u = texture2D(texu, tex_c2).r; + v = texture2D(texv, tex_c3).r; + y = (y - 0.0625) * 1.164; + u = u - 0.5; + v = v - 0.5; + r = y + (1.402 * v); + g = y - (0.34414 * u) - (0.71414 * v); + b = y + (1.772 * u); + c = vec4(r, g, b, 1.0); + +#elif defined(SHD_NV12) || defined(SHD_YUY2) + float y, u, v, vmu, r, g, b; + y = texture2D(tex, tex_c).g; + u = texture2D(texuv, tex_c2).g; + v = texture2D(texuv, tex_c2).a; + u = u - 0.5; + v = v - 0.5; + vmu = v * 0.813 + u * 0.391; + u = u * 2.018; + v = v * 1.596; +# ifdef SHD_NV12 + y = (y - 0.062) * 1.164; +# endif + r = y + v; + g = y - vmu; + b = y + u; + c = vec4(r, g, b, 1.0); + +#elif defined(SHD_SAM12) || defined(SHD_SAM21) + vec4 col00 = texture2D(tex, tex_c + tex_s[0]).SWZ; + vec4 col01 = texture2D(tex, tex_c + tex_s[1]).SWZ; + c = (col00 + col01) / div_s; + +#elif defined(SHD_SAM22) + vec4 col00 = texture2D(tex, tex_c + tex_s[0]).SWZ; + vec4 col01 = texture2D(tex, tex_c + tex_s[1]).SWZ; + vec4 col10 = texture2D(tex, tex_c + tex_s[2]).SWZ; + vec4 col11 = texture2D(tex, tex_c + tex_s[3]).SWZ; + c = (col00 + col01 + col10 + col11) / div_s; + +#elif defined(SHD_TEX) + c = texture2D(tex, tex_c).SWZ; + +#else + c = vec4(1, 1, 1, 1); +#endif + + gl_FragColor = + c +#ifndef SHD_NOMUL + * col +#endif +#ifdef SHD_MASK + * texture2D(texm, tex_m).a +#endif +#ifdef SHD_TEXA + * texture2D(texa, tex_a).r +#endif + ; + +#ifdef SHD_AFILL + gl_FragColor.a = 1.0; +#endif +} + diff --git a/src/modules/evas/engines/gl_common/shader/gen_shaders.sh b/src/modules/evas/engines/gl_common/shader/gen_shaders.sh index fa0bd40..92be634 100755 --- a/src/modules/evas/engines/gl_common/shader/gen_shaders.sh +++ b/src/modules/evas/engines/gl_common/shader/gen_shaders.sh @@ -1,68 +1,161 @@ #!/bin/bash -# This script will generate a C file containing all the shaders used by Evas. -# This C file should be checked-in Git and not modified. +set -e DIR=`dirname $0` - OUTPUT=${DIR}/evas_gl_shaders.x OUTPUT_ENUM=${DIR}/evas_gl_enum.x - -#SHADERS=${DIR}/*.shd -SHADERS="$@" - -# Redirect output to ${OUTPUT} -exec 1<&- -exec 1>${OUTPUT} +CPP="cpp -P" + +VTX_HEADER="#ifdef GL_ES +precision highp float; +#endif +" + +FGM_HEADER="#ifdef GL_ES +#ifdef GL_FRAGMENT_PRECISION_HIGH +precision highp float; +#else +precision mediump float; +#endif +#endif +" + +# Hack +FGM_HEADER_OES="#ifdef GL_ES +# extension GL_OES_EGL_image_external : require +# ifdef GL_FRAGMENT_PRECISION_HIGH +precision highp float; +# else +precision mediump float; +# endif +uniform samplerExternalOES tex; +#else +uniform sampler2D tex; +#endif +" + +function upper() { + echo $@ |tr '[:lower:]' '[:upper:]' +} + +function run() { + [ "$V" = "1" ] && echo "$@" + "$@" +} + +# Urgh +OIFS=$IFS +IFS=$'\n' SHADERS=(`cat ${DIR}/shaders.txt`) +IFS=$OIFS # Write header -printf "/* DO NOT MODIFY THIS FILE AS IT IS AUTO-GENERATED\n * See: $0 */\n\n" +printf "/* DO NOT MODIFY THIS FILE AS IT IS AUTO-GENERATED\n * See: $0 */\n\n" > ${OUTPUT} # Including private for hilights and stuff :) -printf "#include \"../evas_gl_private.h\"\n\n" +printf "#include \"../evas_gl_private.h\"\n\n" >> ${OUTPUT} # Prepare list of shaders: shaders_source="" shaders_enum="" - -# Reading with the following code breaks indents: -# while read -r line ; do -# done < ${shd} -# So we use some cat & IFS hack instead. - -for shd in ${SHADERS} ; do - lname=`basename ${shd} .shd` - UNAME=`echo ${lname} |tr "[:lower:]" "[:upper:]"` - - printf "/* Source: $shd */\n" - - OIFS=$IFS - IFS=$'\n' - printf "static const char const ${lname}_glsl[] =" - for line in `cat ${shd}` ; do - printf "\n \"${line}\\\n\"" +shaders_type=(frag vert) + +# Generate SHD files +LIST="" +for (( i = 0; i < ${#SHADERS[@]} ; i++ )) ; do + s=${SHADERS[$i]} + if [[ $s == \#* ]] ; then continue ; fi + + name=`echo $s |cut -d ':' -f 1` + opts=`echo $s |cut -d ':' -f 2 |tr ',' '\n'` + + echo " SHADER $name" + UNAME=`echo ${name} |tr "[:lower:]" "[:upper:]"` + OPTS="" + FGM=${FGM_HEADER} + TYPE=`echo ${name} |cut -d '_' -f 1 |tr '[:lower:]' '[:upper:]'` + bgra=0 + mask=0 + nomul=0 + afill=0 + sam="SAM11" + + # Urgh. Some fixups + case $TYPE in + IMG) TYPE="IMAGE";; + RGB) TYPE="RGB_A_PAIR";; + TEX) TYPE="TEX_EXTERNAL";; + esac + + for opt in $opts ; do + UP=`upper $opt` + OPTS="$OPTS -DSHD_${UP}" + case $opt in + bgra) bgra=1;; + mask) mask=1;; + nomul) nomul=1;; + afill) afill=1;; + external) FGM=${FGM_HEADER_OES};; + sam12) sam="SAM12";; + sam21) sam="SAM21";; + sam22) sam="SAM22";; + esac done - printf ";\n" - IFS=${OIFS} - printf "Evas_GL_Program_Source shader_${lname}_src =\n{\n ${lname}_glsl,\n NULL, 0\n};\n\n" + # vertex shader + filev=${DIR}/${name}_vert.shd + printf "${VTX_HEADER}" >| ${filev} + run $CPP $OPTS ${DIR}/vertex.glsl >> ${filev} + + # fragment shader + filef=${DIR}/${name}_frag.shd + printf "${FGM}" >| ${filef} + run $CPP $OPTS ${DIR}/fragment.glsl >> ${filef} + + k=0 + for shd in ${filef} ${filev} ; do + shdname=${name}_${shaders_type[$k]} + k=$(($k + 1)) + + OIFS=$IFS + IFS=$'\n' + printf "static const char const ${shdname}_glsl[] =" >> ${OUTPUT} + for line in `cat ${shd}` ; do + printf "\n \"${line}\\\n\"" >> ${OUTPUT} + done + printf ";\n" >> ${OUTPUT} + IFS=${OIFS} + + printf "Evas_GL_Program_Source shader_${shdname}_src =\n{\n ${shdname}_glsl,\n NULL, 0\n};\n\n" >> ${OUTPUT} + done - if echo ${lname} |grep vert 2>&1 >> /dev/null ; then - name=`echo ${lname} |sed -e 's/_vert//'` - SHADER=`echo ${UNAME} |sed -e 's/_VERT//'` - shaders_source="${shaders_source} { SHADER_${SHADER}, &(shader_${name}_vert_src), &(shader_${name}_frag_src), \"${name}\" },\n" - shaders_enum="${shaders_enum} SHADER_${SHADER},\n" - fi + shaders_source="${shaders_source} { SHADER_${UNAME}, &(shader_${name}_vert_src), &(shader_${name}_frag_src), \"${name}\", RTYPE_${TYPE}, SHADER_${sam}, ${bgra}, ${mask}, ${nomul}, ${afill} },\n" + shaders_enum="${shaders_enum} SHADER_${UNAME},\n" done -printf "static const struct { +printf " +typedef enum _Shader_Sampling Shader_Sampling; +enum _Shader_Sampling { + SHADER_SAM11, + SHADER_SAM12, + SHADER_SAM21, + SHADER_SAM22 +}; + +static const struct { Evas_GL_Shader id; Evas_GL_Program_Source *vert; Evas_GL_Program_Source *frag; const char *name; -} _shaders_source[] = {\n" + unsigned char type; // RTYPE + Shader_Sampling sam; + Eina_Bool bgra : 1; + Eina_Bool mask : 1; + Eina_Bool nomul : 1; + Eina_Bool afill : 1; +} _shaders_source[] = {\n" >> ${OUTPUT} -printf "${shaders_source}};\n\n" +printf "${shaders_source}};\n\n" >> ${OUTPUT} printf "/* DO NOT MODIFY THIS FILE AS IT IS AUTO-GENERATED\n * See: $0 */ @@ -71,3 +164,6 @@ ${shaders_enum} SHADER_LAST } Evas_GL_Shader; " >| ${OUTPUT_ENUM} +# You can remove the files now +#rm -f ${LIST} + diff --git a/src/modules/evas/engines/gl_common/shader/img_12_bgra_frag.shd b/src/modules/evas/engines/gl_common/shader/img_12_bgra_frag.shd deleted file mode 100644 index d23e17b..0000000 --- a/src/modules/evas/engines/gl_common/shader/img_12_bgra_frag.shd +++ /dev/null @@ -1,18 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#endif -uniform sampler2D tex; -varying vec4 col; -varying vec2 tex_c; -varying vec2 tex_s[2]; -varying vec4 div_s; -void main() -{ - vec4 col00 = texture2D(tex, tex_c + tex_s[0]); - vec4 col01 = texture2D(tex, tex_c + tex_s[1]); - gl_FragColor = ((col00 + col01) / div_s) * col; -} diff --git a/src/modules/evas/engines/gl_common/shader/img_12_bgra_nomul_frag.shd b/src/modules/evas/engines/gl_common/shader/img_12_bgra_nomul_frag.shd deleted file mode 100644 index 4d29510..0000000 --- a/src/modules/evas/engines/gl_common/shader/img_12_bgra_nomul_frag.shd +++ /dev/null @@ -1,17 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#endif -uniform sampler2D tex; -varying vec2 tex_c; -varying vec2 tex_s[2]; -varying vec4 div_s; -void main() -{ - vec4 col00 = texture2D(tex, tex_c + tex_s[0]); - vec4 col01 = texture2D(tex, tex_c + tex_s[1]); - gl_FragColor = (col00 + col01) / div_s; -} diff --git a/src/modules/evas/engines/gl_common/shader/img_12_bgra_nomul_vert.shd b/src/modules/evas/engines/gl_common/shader/img_12_bgra_nomul_vert.shd deleted file mode 100644 index 40144aa..0000000 --- a/src/modules/evas/engines/gl_common/shader/img_12_bgra_nomul_vert.shd +++ /dev/null @@ -1,18 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec2 tex_coord; -attribute vec2 tex_sample; -uniform mat4 mvp; -varying vec2 tex_c; -varying vec2 tex_s[2]; -varying vec4 div_s; -void main() -{ - gl_Position = mvp * vertex; - tex_c = tex_coord; - tex_s[0] = vec2(0, -tex_sample.y); - tex_s[1] = vec2(0, tex_sample.y); - div_s = vec4(2, 2, 2, 2); -} diff --git a/src/modules/evas/engines/gl_common/shader/img_12_bgra_vert.shd b/src/modules/evas/engines/gl_common/shader/img_12_bgra_vert.shd deleted file mode 100644 index 810d73a..0000000 --- a/src/modules/evas/engines/gl_common/shader/img_12_bgra_vert.shd +++ /dev/null @@ -1,21 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec4 color; -attribute vec2 tex_coord; -attribute vec2 tex_sample; -uniform mat4 mvp; -varying vec4 col; -varying vec2 tex_c; -varying vec2 tex_s[2]; -varying vec4 div_s; -void main() -{ - gl_Position = mvp * vertex; - col = color; - tex_c = tex_coord; - tex_s[0] = vec2(0, -tex_sample.y); - tex_s[1] = vec2(0, tex_sample.y); - div_s = vec4(2, 2, 2, 2); -} diff --git a/src/modules/evas/engines/gl_common/shader/img_12_frag.shd b/src/modules/evas/engines/gl_common/shader/img_12_frag.shd deleted file mode 100644 index 2647ab2..0000000 --- a/src/modules/evas/engines/gl_common/shader/img_12_frag.shd +++ /dev/null @@ -1,18 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#endif -uniform sampler2D tex; -varying vec4 col; -varying vec2 tex_c; -varying vec2 tex_s[2]; -varying vec4 div_s; -void main() -{ - vec4 col00 = texture2D(tex, tex_c + tex_s[0]).bgra; - vec4 col01 = texture2D(tex, tex_c + tex_s[1]).bgra; - gl_FragColor = ((col00 + col01) / div_s) * col; -} diff --git a/src/modules/evas/engines/gl_common/shader/img_12_nomul_frag.shd b/src/modules/evas/engines/gl_common/shader/img_12_nomul_frag.shd deleted file mode 100644 index 49872cf..0000000 --- a/src/modules/evas/engines/gl_common/shader/img_12_nomul_frag.shd +++ /dev/null @@ -1,17 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#endif -uniform sampler2D tex; -varying vec2 tex_c; -varying vec2 tex_s[2]; -varying vec4 div_s; -void main() -{ - vec4 col00 = texture2D(tex, tex_c + tex_s[0]).bgra; - vec4 col01 = texture2D(tex, tex_c + tex_s[1]).bgra; - gl_FragColor = (col00 + col01) / div_s; -} diff --git a/src/modules/evas/engines/gl_common/shader/img_12_nomul_vert.shd b/src/modules/evas/engines/gl_common/shader/img_12_nomul_vert.shd deleted file mode 100644 index 40144aa..0000000 --- a/src/modules/evas/engines/gl_common/shader/img_12_nomul_vert.shd +++ /dev/null @@ -1,18 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec2 tex_coord; -attribute vec2 tex_sample; -uniform mat4 mvp; -varying vec2 tex_c; -varying vec2 tex_s[2]; -varying vec4 div_s; -void main() -{ - gl_Position = mvp * vertex; - tex_c = tex_coord; - tex_s[0] = vec2(0, -tex_sample.y); - tex_s[1] = vec2(0, tex_sample.y); - div_s = vec4(2, 2, 2, 2); -} diff --git a/src/modules/evas/engines/gl_common/shader/img_12_vert.shd b/src/modules/evas/engines/gl_common/shader/img_12_vert.shd deleted file mode 100644 index 810d73a..0000000 --- a/src/modules/evas/engines/gl_common/shader/img_12_vert.shd +++ /dev/null @@ -1,21 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec4 color; -attribute vec2 tex_coord; -attribute vec2 tex_sample; -uniform mat4 mvp; -varying vec4 col; -varying vec2 tex_c; -varying vec2 tex_s[2]; -varying vec4 div_s; -void main() -{ - gl_Position = mvp * vertex; - col = color; - tex_c = tex_coord; - tex_s[0] = vec2(0, -tex_sample.y); - tex_s[1] = vec2(0, tex_sample.y); - div_s = vec4(2, 2, 2, 2); -} diff --git a/src/modules/evas/engines/gl_common/shader/img_21_bgra_frag.shd b/src/modules/evas/engines/gl_common/shader/img_21_bgra_frag.shd deleted file mode 100644 index d23e17b..0000000 --- a/src/modules/evas/engines/gl_common/shader/img_21_bgra_frag.shd +++ /dev/null @@ -1,18 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#endif -uniform sampler2D tex; -varying vec4 col; -varying vec2 tex_c; -varying vec2 tex_s[2]; -varying vec4 div_s; -void main() -{ - vec4 col00 = texture2D(tex, tex_c + tex_s[0]); - vec4 col01 = texture2D(tex, tex_c + tex_s[1]); - gl_FragColor = ((col00 + col01) / div_s) * col; -} diff --git a/src/modules/evas/engines/gl_common/shader/img_21_bgra_nomul_frag.shd b/src/modules/evas/engines/gl_common/shader/img_21_bgra_nomul_frag.shd deleted file mode 100644 index 4d29510..0000000 --- a/src/modules/evas/engines/gl_common/shader/img_21_bgra_nomul_frag.shd +++ /dev/null @@ -1,17 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#endif -uniform sampler2D tex; -varying vec2 tex_c; -varying vec2 tex_s[2]; -varying vec4 div_s; -void main() -{ - vec4 col00 = texture2D(tex, tex_c + tex_s[0]); - vec4 col01 = texture2D(tex, tex_c + tex_s[1]); - gl_FragColor = (col00 + col01) / div_s; -} diff --git a/src/modules/evas/engines/gl_common/shader/img_21_bgra_nomul_vert.shd b/src/modules/evas/engines/gl_common/shader/img_21_bgra_nomul_vert.shd deleted file mode 100644 index a6b149f..0000000 --- a/src/modules/evas/engines/gl_common/shader/img_21_bgra_nomul_vert.shd +++ /dev/null @@ -1,18 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec2 tex_coord; -attribute vec2 tex_sample; -uniform mat4 mvp; -varying vec2 tex_c; -varying vec2 tex_s[2]; -varying vec4 div_s; -void main() -{ - gl_Position = mvp * vertex; - tex_c = tex_coord; - tex_s[0] = vec2(-tex_sample.x, 0); - tex_s[1] = vec2( tex_sample.x, 0); - div_s = vec4(2, 2, 2, 2); -} diff --git a/src/modules/evas/engines/gl_common/shader/img_21_bgra_vert.shd b/src/modules/evas/engines/gl_common/shader/img_21_bgra_vert.shd deleted file mode 100644 index 98d9154..0000000 --- a/src/modules/evas/engines/gl_common/shader/img_21_bgra_vert.shd +++ /dev/null @@ -1,21 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec4 color; -attribute vec2 tex_coord; -attribute vec2 tex_sample; -uniform mat4 mvp; -varying vec4 col; -varying vec2 tex_c; -varying vec2 tex_s[2]; -varying vec4 div_s; -void main() -{ - gl_Position = mvp * vertex; - col = color; - tex_c = tex_coord; - tex_s[0] = vec2(-tex_sample.x, 0); - tex_s[1] = vec2( tex_sample.x, 0); - div_s = vec4(2, 2, 2, 2); -} diff --git a/src/modules/evas/engines/gl_common/shader/img_21_frag.shd b/src/modules/evas/engines/gl_common/shader/img_21_frag.shd deleted file mode 100644 index 2647ab2..0000000 --- a/src/modules/evas/engines/gl_common/shader/img_21_frag.shd +++ /dev/null @@ -1,18 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#endif -uniform sampler2D tex; -varying vec4 col; -varying vec2 tex_c; -varying vec2 tex_s[2]; -varying vec4 div_s; -void main() -{ - vec4 col00 = texture2D(tex, tex_c + tex_s[0]).bgra; - vec4 col01 = texture2D(tex, tex_c + tex_s[1]).bgra; - gl_FragColor = ((col00 + col01) / div_s) * col; -} diff --git a/src/modules/evas/engines/gl_common/shader/img_21_nomul_frag.shd b/src/modules/evas/engines/gl_common/shader/img_21_nomul_frag.shd deleted file mode 100644 index 49872cf..0000000 --- a/src/modules/evas/engines/gl_common/shader/img_21_nomul_frag.shd +++ /dev/null @@ -1,17 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#endif -uniform sampler2D tex; -varying vec2 tex_c; -varying vec2 tex_s[2]; -varying vec4 div_s; -void main() -{ - vec4 col00 = texture2D(tex, tex_c + tex_s[0]).bgra; - vec4 col01 = texture2D(tex, tex_c + tex_s[1]).bgra; - gl_FragColor = (col00 + col01) / div_s; -} diff --git a/src/modules/evas/engines/gl_common/shader/img_21_nomul_vert.shd b/src/modules/evas/engines/gl_common/shader/img_21_nomul_vert.shd deleted file mode 100644 index a6b149f..0000000 --- a/src/modules/evas/engines/gl_common/shader/img_21_nomul_vert.shd +++ /dev/null @@ -1,18 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec2 tex_coord; -attribute vec2 tex_sample; -uniform mat4 mvp; -varying vec2 tex_c; -varying vec2 tex_s[2]; -varying vec4 div_s; -void main() -{ - gl_Position = mvp * vertex; - tex_c = tex_coord; - tex_s[0] = vec2(-tex_sample.x, 0); - tex_s[1] = vec2( tex_sample.x, 0); - div_s = vec4(2, 2, 2, 2); -} diff --git a/src/modules/evas/engines/gl_common/shader/img_21_vert.shd b/src/modules/evas/engines/gl_common/shader/img_21_vert.shd deleted file mode 100644 index 98d9154..0000000 --- a/src/modules/evas/engines/gl_common/shader/img_21_vert.shd +++ /dev/null @@ -1,21 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec4 color; -attribute vec2 tex_coord; -attribute vec2 tex_sample; -uniform mat4 mvp; -varying vec4 col; -varying vec2 tex_c; -varying vec2 tex_s[2]; -varying vec4 div_s; -void main() -{ - gl_Position = mvp * vertex; - col = color; - tex_c = tex_coord; - tex_s[0] = vec2(-tex_sample.x, 0); - tex_s[1] = vec2( tex_sample.x, 0); - div_s = vec4(2, 2, 2, 2); -} diff --git a/src/modules/evas/engines/gl_common/shader/img_22_bgra_frag.shd b/src/modules/evas/engines/gl_common/shader/img_22_bgra_frag.shd deleted file mode 100644 index ab1b121..0000000 --- a/src/modules/evas/engines/gl_common/shader/img_22_bgra_frag.shd +++ /dev/null @@ -1,20 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#endif -uniform sampler2D tex; -varying vec4 col; -varying vec2 tex_c; -varying vec2 tex_s[4]; -varying vec4 div_s; -void main() -{ - vec4 col00 = texture2D(tex, tex_c + tex_s[0]); - vec4 col01 = texture2D(tex, tex_c + tex_s[1]); - vec4 col10 = texture2D(tex, tex_c + tex_s[2]); - vec4 col11 = texture2D(tex, tex_c + tex_s[3]); - gl_FragColor = ((col00 + col01 + col10 + col11) / div_s) * col; -} diff --git a/src/modules/evas/engines/gl_common/shader/img_22_bgra_nomul_frag.shd b/src/modules/evas/engines/gl_common/shader/img_22_bgra_nomul_frag.shd deleted file mode 100644 index 3f380ea..0000000 --- a/src/modules/evas/engines/gl_common/shader/img_22_bgra_nomul_frag.shd +++ /dev/null @@ -1,19 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#endif -uniform sampler2D tex; -varying vec2 tex_c; -varying vec2 tex_s[4]; -varying vec4 div_s; -void main() -{ - vec4 col00 = texture2D(tex, tex_c + tex_s[0]); - vec4 col01 = texture2D(tex, tex_c + tex_s[1]); - vec4 col10 = texture2D(tex, tex_c + tex_s[2]); - vec4 col11 = texture2D(tex, tex_c + tex_s[3]); - gl_FragColor = (col00 + col01 + col10 + col11) / div_s; -} diff --git a/src/modules/evas/engines/gl_common/shader/img_22_bgra_nomul_vert.shd b/src/modules/evas/engines/gl_common/shader/img_22_bgra_nomul_vert.shd deleted file mode 100644 index e6303d7..0000000 --- a/src/modules/evas/engines/gl_common/shader/img_22_bgra_nomul_vert.shd +++ /dev/null @@ -1,20 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec2 tex_coord; -attribute vec2 tex_sample; -uniform mat4 mvp; -varying vec2 tex_c; -varying vec2 tex_s[4]; -varying vec4 div_s; -void main() -{ - gl_Position = mvp * vertex; - tex_c = tex_coord; - tex_s[0] = vec2(-tex_sample.x, -tex_sample.y); - tex_s[1] = vec2( tex_sample.x, -tex_sample.y); - tex_s[2] = vec2( tex_sample.x, tex_sample.y); - tex_s[3] = vec2(-tex_sample.x, tex_sample.y); - div_s = vec4(4, 4, 4, 4); -} diff --git a/src/modules/evas/engines/gl_common/shader/img_22_bgra_vert.shd b/src/modules/evas/engines/gl_common/shader/img_22_bgra_vert.shd deleted file mode 100644 index e964ea1..0000000 --- a/src/modules/evas/engines/gl_common/shader/img_22_bgra_vert.shd +++ /dev/null @@ -1,23 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec4 color; -attribute vec2 tex_coord; -attribute vec2 tex_sample; -uniform mat4 mvp; -varying vec4 col; -varying vec2 tex_c; -varying vec2 tex_s[4]; -varying vec4 div_s; -void main() -{ - gl_Position = mvp * vertex; - col = color; - tex_c = tex_coord; - tex_s[0] = vec2(-tex_sample.x, -tex_sample.y); - tex_s[1] = vec2( tex_sample.x, -tex_sample.y); - tex_s[2] = vec2( tex_sample.x, tex_sample.y); - tex_s[3] = vec2(-tex_sample.x, tex_sample.y); - div_s = vec4(4, 4, 4, 4); -} diff --git a/src/modules/evas/engines/gl_common/shader/img_22_frag.shd b/src/modules/evas/engines/gl_common/shader/img_22_frag.shd deleted file mode 100644 index 1ff5ccc..0000000 --- a/src/modules/evas/engines/gl_common/shader/img_22_frag.shd +++ /dev/null @@ -1,20 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#endif -uniform sampler2D tex; -varying vec4 col; -varying vec2 tex_c; -varying vec2 tex_s[4]; -varying vec4 div_s; -void main() -{ - vec4 col00 = texture2D(tex, tex_c + tex_s[0]).bgra; - vec4 col01 = texture2D(tex, tex_c + tex_s[1]).bgra; - vec4 col10 = texture2D(tex, tex_c + tex_s[2]).bgra; - vec4 col11 = texture2D(tex, tex_c + tex_s[3]).bgra; - gl_FragColor = ((col00 + col01 + col10 + col11) / div_s) * col; -} diff --git a/src/modules/evas/engines/gl_common/shader/img_22_nomul_frag.shd b/src/modules/evas/engines/gl_common/shader/img_22_nomul_frag.shd deleted file mode 100644 index 3b87c09..0000000 --- a/src/modules/evas/engines/gl_common/shader/img_22_nomul_frag.shd +++ /dev/null @@ -1,19 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#endif -uniform sampler2D tex; -varying vec2 tex_c; -varying vec2 tex_s[4]; -varying vec4 div_s; -void main() -{ - vec4 col00 = texture2D(tex, tex_c + tex_s[0]).bgra; - vec4 col01 = texture2D(tex, tex_c + tex_s[1]).bgra; - vec4 col10 = texture2D(tex, tex_c + tex_s[2]).bgra; - vec4 col11 = texture2D(tex, tex_c + tex_s[3]).bgra; - gl_FragColor = (col00 + col01 + col10 + col11) / div_s; -} diff --git a/src/modules/evas/engines/gl_common/shader/img_22_nomul_vert.shd b/src/modules/evas/engines/gl_common/shader/img_22_nomul_vert.shd deleted file mode 100644 index e6303d7..0000000 --- a/src/modules/evas/engines/gl_common/shader/img_22_nomul_vert.shd +++ /dev/null @@ -1,20 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec2 tex_coord; -attribute vec2 tex_sample; -uniform mat4 mvp; -varying vec2 tex_c; -varying vec2 tex_s[4]; -varying vec4 div_s; -void main() -{ - gl_Position = mvp * vertex; - tex_c = tex_coord; - tex_s[0] = vec2(-tex_sample.x, -tex_sample.y); - tex_s[1] = vec2( tex_sample.x, -tex_sample.y); - tex_s[2] = vec2( tex_sample.x, tex_sample.y); - tex_s[3] = vec2(-tex_sample.x, tex_sample.y); - div_s = vec4(4, 4, 4, 4); -} diff --git a/src/modules/evas/engines/gl_common/shader/img_22_vert.shd b/src/modules/evas/engines/gl_common/shader/img_22_vert.shd deleted file mode 100644 index e964ea1..0000000 --- a/src/modules/evas/engines/gl_common/shader/img_22_vert.shd +++ /dev/null @@ -1,23 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec4 color; -attribute vec2 tex_coord; -attribute vec2 tex_sample; -uniform mat4 mvp; -varying vec4 col; -varying vec2 tex_c; -varying vec2 tex_s[4]; -varying vec4 div_s; -void main() -{ - gl_Position = mvp * vertex; - col = color; - tex_c = tex_coord; - tex_s[0] = vec2(-tex_sample.x, -tex_sample.y); - tex_s[1] = vec2( tex_sample.x, -tex_sample.y); - tex_s[2] = vec2( tex_sample.x, tex_sample.y); - tex_s[3] = vec2(-tex_sample.x, tex_sample.y); - div_s = vec4(4, 4, 4, 4); -} diff --git a/src/modules/evas/engines/gl_common/shader/img_bgra_frag.shd b/src/modules/evas/engines/gl_common/shader/img_bgra_frag.shd deleted file mode 100644 index 2bc8d79..0000000 --- a/src/modules/evas/engines/gl_common/shader/img_bgra_frag.shd +++ /dev/null @@ -1,14 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#endif -uniform sampler2D tex; -varying vec4 col; -varying vec2 tex_c; -void main() -{ - gl_FragColor = texture2D(tex, tex_c.xy) * col; -} diff --git a/src/modules/evas/engines/gl_common/shader/img_bgra_nomul_frag.shd b/src/modules/evas/engines/gl_common/shader/img_bgra_nomul_frag.shd deleted file mode 100644 index 877df62..0000000 --- a/src/modules/evas/engines/gl_common/shader/img_bgra_nomul_frag.shd +++ /dev/null @@ -1,13 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#endif -uniform sampler2D tex; -varying vec2 tex_c; -void main() -{ - gl_FragColor = texture2D(tex, tex_c.xy); -} diff --git a/src/modules/evas/engines/gl_common/shader/img_bgra_nomul_vert.shd b/src/modules/evas/engines/gl_common/shader/img_bgra_nomul_vert.shd deleted file mode 100644 index 74f3207..0000000 --- a/src/modules/evas/engines/gl_common/shader/img_bgra_nomul_vert.shd +++ /dev/null @@ -1,12 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec2 tex_coord; -uniform mat4 mvp; -varying vec2 tex_c; -void main() -{ - gl_Position = mvp * vertex; - tex_c = tex_coord; -} diff --git a/src/modules/evas/engines/gl_common/shader/img_bgra_vert.shd b/src/modules/evas/engines/gl_common/shader/img_bgra_vert.shd deleted file mode 100644 index 606c297..0000000 --- a/src/modules/evas/engines/gl_common/shader/img_bgra_vert.shd +++ /dev/null @@ -1,15 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec4 color; -attribute vec2 tex_coord; -uniform mat4 mvp; -varying vec4 col; -varying vec2 tex_c; -void main() -{ - gl_Position = mvp * vertex; - col = color; - tex_c = tex_coord; -} diff --git a/src/modules/evas/engines/gl_common/shader/img_frag.shd b/src/modules/evas/engines/gl_common/shader/img_frag.shd deleted file mode 100644 index 9faa414..0000000 --- a/src/modules/evas/engines/gl_common/shader/img_frag.shd +++ /dev/null @@ -1,14 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#endif -uniform sampler2D tex; -varying vec4 col; -varying vec2 tex_c; -void main() -{ - gl_FragColor = texture2D(tex, tex_c.xy).bgra * col; -} diff --git a/src/modules/evas/engines/gl_common/shader/img_mask_bgra_frag.shd b/src/modules/evas/engines/gl_common/shader/img_mask_bgra_frag.shd deleted file mode 100644 index 5412d69..0000000 --- a/src/modules/evas/engines/gl_common/shader/img_mask_bgra_frag.shd +++ /dev/null @@ -1,17 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#endif -uniform sampler2D tex; -uniform sampler2D texm; -varying vec4 col; -varying vec2 coord_c; -varying vec2 tex_m; -void main() -{ - gl_FragColor = texture2D(texm, tex_m.xy).a * texture2D(tex, coord_c.xy) * col; -} - diff --git a/src/modules/evas/engines/gl_common/shader/img_mask_bgra_nomul_frag.shd b/src/modules/evas/engines/gl_common/shader/img_mask_bgra_nomul_frag.shd deleted file mode 100644 index f2f3ff1..0000000 --- a/src/modules/evas/engines/gl_common/shader/img_mask_bgra_nomul_frag.shd +++ /dev/null @@ -1,16 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#endif -uniform sampler2D tex; -uniform sampler2D texm; -varying vec2 coord_c; -varying vec2 tex_m; -void main() -{ - gl_FragColor = texture2D(texm, tex_m.xy).a * texture2D(tex, coord_c.xy); -} - diff --git a/src/modules/evas/engines/gl_common/shader/img_mask_bgra_nomul_vert.shd b/src/modules/evas/engines/gl_common/shader/img_mask_bgra_nomul_vert.shd deleted file mode 100644 index 0804133..0000000 --- a/src/modules/evas/engines/gl_common/shader/img_mask_bgra_nomul_vert.shd +++ /dev/null @@ -1,20 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec2 tex_coord; -attribute vec4 mask_coord; -uniform mat4 mvp; -varying vec2 coord_c; -varying vec2 tex_m; -void main() -{ - gl_Position = mvp * vertex; - coord_c = tex_coord; - - // mask_coord.w contains the Y-invert flag - // position on screen in [0..1] range of current pixel - vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 0.5, 0.5) + vec4(0.5, 0.5, 0, 0); - tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy; -} - diff --git a/src/modules/evas/engines/gl_common/shader/img_mask_bgra_vert.shd b/src/modules/evas/engines/gl_common/shader/img_mask_bgra_vert.shd deleted file mode 100644 index 456e01f..0000000 --- a/src/modules/evas/engines/gl_common/shader/img_mask_bgra_vert.shd +++ /dev/null @@ -1,23 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec4 color; -attribute vec2 tex_coord; -attribute vec4 mask_coord; -uniform mat4 mvp; -varying vec4 col; -varying vec2 coord_c; -varying vec2 tex_m; -void main() -{ - gl_Position = mvp * vertex; - col = color; - coord_c = tex_coord; - - // mask_coord.w contains the Y-invert flag - // position on screen in [0..1] range of current pixel - vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 0.5, 0.5) + vec4(0.5, 0.5, 0, 0); - tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy; -} - diff --git a/src/modules/evas/engines/gl_common/shader/img_mask_frag.shd b/src/modules/evas/engines/gl_common/shader/img_mask_frag.shd deleted file mode 100644 index d0c9f0a..0000000 --- a/src/modules/evas/engines/gl_common/shader/img_mask_frag.shd +++ /dev/null @@ -1,17 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#endif -uniform sampler2D tex; -uniform sampler2D texm; -varying vec4 col; -varying vec2 coord_c; -varying vec2 tex_m; -void main() -{ - gl_FragColor = texture2D(texm, tex_m.xy).a * texture2D(tex, coord_c.xy).bgra * col; -} - diff --git a/src/modules/evas/engines/gl_common/shader/img_mask_nomul_frag.shd b/src/modules/evas/engines/gl_common/shader/img_mask_nomul_frag.shd deleted file mode 100644 index cb309ad..0000000 --- a/src/modules/evas/engines/gl_common/shader/img_mask_nomul_frag.shd +++ /dev/null @@ -1,16 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#endif -uniform sampler2D tex; -uniform sampler2D texm; -varying vec2 coord_c; -varying vec2 tex_m; -void main() -{ - gl_FragColor = texture2D(tex, coord_c.xy) * texture2D(texm, tex_m).a; -} - diff --git a/src/modules/evas/engines/gl_common/shader/img_mask_nomul_vert.shd b/src/modules/evas/engines/gl_common/shader/img_mask_nomul_vert.shd deleted file mode 100644 index 0804133..0000000 --- a/src/modules/evas/engines/gl_common/shader/img_mask_nomul_vert.shd +++ /dev/null @@ -1,20 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec2 tex_coord; -attribute vec4 mask_coord; -uniform mat4 mvp; -varying vec2 coord_c; -varying vec2 tex_m; -void main() -{ - gl_Position = mvp * vertex; - coord_c = tex_coord; - - // mask_coord.w contains the Y-invert flag - // position on screen in [0..1] range of current pixel - vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 0.5, 0.5) + vec4(0.5, 0.5, 0, 0); - tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy; -} - diff --git a/src/modules/evas/engines/gl_common/shader/img_mask_vert.shd b/src/modules/evas/engines/gl_common/shader/img_mask_vert.shd deleted file mode 100644 index 456e01f..0000000 --- a/src/modules/evas/engines/gl_common/shader/img_mask_vert.shd +++ /dev/null @@ -1,23 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec4 color; -attribute vec2 tex_coord; -attribute vec4 mask_coord; -uniform mat4 mvp; -varying vec4 col; -varying vec2 coord_c; -varying vec2 tex_m; -void main() -{ - gl_Position = mvp * vertex; - col = color; - coord_c = tex_coord; - - // mask_coord.w contains the Y-invert flag - // position on screen in [0..1] range of current pixel - vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 0.5, 0.5) + vec4(0.5, 0.5, 0, 0); - tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy; -} - diff --git a/src/modules/evas/engines/gl_common/shader/img_nomul_frag.shd b/src/modules/evas/engines/gl_common/shader/img_nomul_frag.shd deleted file mode 100644 index 222d635..0000000 --- a/src/modules/evas/engines/gl_common/shader/img_nomul_frag.shd +++ /dev/null @@ -1,13 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#endif -uniform sampler2D tex; -varying vec2 tex_c; -void main() -{ - gl_FragColor = texture2D(tex, tex_c.xy).bgra; -} diff --git a/src/modules/evas/engines/gl_common/shader/img_nomul_vert.shd b/src/modules/evas/engines/gl_common/shader/img_nomul_vert.shd deleted file mode 100644 index 74f3207..0000000 --- a/src/modules/evas/engines/gl_common/shader/img_nomul_vert.shd +++ /dev/null @@ -1,12 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec2 tex_coord; -uniform mat4 mvp; -varying vec2 tex_c; -void main() -{ - gl_Position = mvp * vertex; - tex_c = tex_coord; -} diff --git a/src/modules/evas/engines/gl_common/shader/img_vert.shd b/src/modules/evas/engines/gl_common/shader/img_vert.shd deleted file mode 100644 index 606c297..0000000 --- a/src/modules/evas/engines/gl_common/shader/img_vert.shd +++ /dev/null @@ -1,15 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec4 color; -attribute vec2 tex_coord; -uniform mat4 mvp; -varying vec4 col; -varying vec2 tex_c; -void main() -{ - gl_Position = mvp * vertex; - col = color; - tex_c = tex_coord; -} diff --git a/src/modules/evas/engines/gl_common/shader/map_mask_bgra_frag.shd b/src/modules/evas/engines/gl_common/shader/map_mask_bgra_frag.shd deleted file mode 100644 index be952b7..0000000 --- a/src/modules/evas/engines/gl_common/shader/map_mask_bgra_frag.shd +++ /dev/null @@ -1,15 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#endif -uniform sampler2D tex, texm; -varying vec2 tex_c, tex_m; -varying vec4 col; -void main() -{ - // FIXME: Fix Mach band effect using proper 4-point color interpolation - gl_FragColor = texture2D(tex, tex_c) * texture2D(texm, tex_m).a * col; -} diff --git a/src/modules/evas/engines/gl_common/shader/map_mask_bgra_nomul_frag.shd b/src/modules/evas/engines/gl_common/shader/map_mask_bgra_nomul_frag.shd deleted file mode 100644 index a1ce622..0000000 --- a/src/modules/evas/engines/gl_common/shader/map_mask_bgra_nomul_frag.shd +++ /dev/null @@ -1,13 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#endif -uniform sampler2D tex, texm; -varying vec2 tex_c, tex_m; -void main() -{ - gl_FragColor = texture2D(tex, tex_c) * texture2D(texm, tex_m).a; -} diff --git a/src/modules/evas/engines/gl_common/shader/map_mask_bgra_nomul_vert.shd b/src/modules/evas/engines/gl_common/shader/map_mask_bgra_nomul_vert.shd deleted file mode 100644 index c04a5a4..0000000 --- a/src/modules/evas/engines/gl_common/shader/map_mask_bgra_nomul_vert.shd +++ /dev/null @@ -1,17 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex, mask_coord; -attribute vec2 tex_coord; -uniform mat4 mvp; -varying vec2 tex_c, tex_m; -void main() -{ - gl_Position = mvp * vertex; - tex_c = tex_coord; - - // mask_coord.w contains the Y-invert flag - // position on screen in [0..1] range of current pixel - vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 0.5, 0.5) + vec4(0.5, 0.5, 0, 0); - tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy; -} diff --git a/src/modules/evas/engines/gl_common/shader/map_mask_bgra_vert.shd b/src/modules/evas/engines/gl_common/shader/map_mask_bgra_vert.shd deleted file mode 100644 index 6bc3697..0000000 --- a/src/modules/evas/engines/gl_common/shader/map_mask_bgra_vert.shd +++ /dev/null @@ -1,19 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex, color, mask_coord; -attribute vec2 tex_coord; -uniform mat4 mvp; -varying vec2 tex_c, tex_m; -varying vec4 col; -void main() -{ - gl_Position = mvp * vertex; - tex_c = tex_coord; - col = color; - - // mask_coord.w contains the Y-invert flag - // position on screen in [0..1] range of current pixel - vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 0.5, 0.5) + vec4(0.5, 0.5, 0, 0); - tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy; -} diff --git a/src/modules/evas/engines/gl_common/shader/map_mask_frag.shd b/src/modules/evas/engines/gl_common/shader/map_mask_frag.shd deleted file mode 100644 index 17e91f4..0000000 --- a/src/modules/evas/engines/gl_common/shader/map_mask_frag.shd +++ /dev/null @@ -1,15 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#endif -uniform sampler2D tex, texm; -varying vec2 tex_c, tex_m; -varying vec4 col; -void main() -{ - // FIXME: Fix Mach band effect using proper 4-point color interpolation - gl_FragColor = texture2D(tex, tex_c).bgra * texture2D(texm, tex_m).a * col; -} diff --git a/src/modules/evas/engines/gl_common/shader/map_mask_nomul_frag.shd b/src/modules/evas/engines/gl_common/shader/map_mask_nomul_frag.shd deleted file mode 100644 index 0720d58..0000000 --- a/src/modules/evas/engines/gl_common/shader/map_mask_nomul_frag.shd +++ /dev/null @@ -1,13 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#endif -uniform sampler2D tex, texm; -varying vec2 tex_c, tex_m; -void main() -{ - gl_FragColor = texture2D(tex, tex_c).bgra * texture2D(texm, tex_m).a; -} diff --git a/src/modules/evas/engines/gl_common/shader/map_mask_nomul_vert.shd b/src/modules/evas/engines/gl_common/shader/map_mask_nomul_vert.shd deleted file mode 100644 index c04a5a4..0000000 --- a/src/modules/evas/engines/gl_common/shader/map_mask_nomul_vert.shd +++ /dev/null @@ -1,17 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex, mask_coord; -attribute vec2 tex_coord; -uniform mat4 mvp; -varying vec2 tex_c, tex_m; -void main() -{ - gl_Position = mvp * vertex; - tex_c = tex_coord; - - // mask_coord.w contains the Y-invert flag - // position on screen in [0..1] range of current pixel - vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 0.5, 0.5) + vec4(0.5, 0.5, 0, 0); - tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy; -} diff --git a/src/modules/evas/engines/gl_common/shader/map_mask_vert.shd b/src/modules/evas/engines/gl_common/shader/map_mask_vert.shd deleted file mode 100644 index 6bc3697..0000000 --- a/src/modules/evas/engines/gl_common/shader/map_mask_vert.shd +++ /dev/null @@ -1,19 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex, color, mask_coord; -attribute vec2 tex_coord; -uniform mat4 mvp; -varying vec2 tex_c, tex_m; -varying vec4 col; -void main() -{ - gl_Position = mvp * vertex; - tex_c = tex_coord; - col = color; - - // mask_coord.w contains the Y-invert flag - // position on screen in [0..1] range of current pixel - vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 0.5, 0.5) + vec4(0.5, 0.5, 0, 0); - tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy; -} diff --git a/src/modules/evas/engines/gl_common/shader/nv12_frag.shd b/src/modules/evas/engines/gl_common/shader/nv12_frag.shd deleted file mode 100644 index 34748fc..0000000 --- a/src/modules/evas/engines/gl_common/shader/nv12_frag.shd +++ /dev/null @@ -1,31 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#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; -} - diff --git a/src/modules/evas/engines/gl_common/shader/nv12_mask_frag.shd b/src/modules/evas/engines/gl_common/shader/nv12_mask_frag.shd deleted file mode 100644 index aa221d1..0000000 --- a/src/modules/evas/engines/gl_common/shader/nv12_mask_frag.shd +++ /dev/null @@ -1,31 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#endif -uniform sampler2D tex, texuv, texm; -varying vec4 col; -varying vec2 tex_c, tex_cuv, tex_m; -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) * texture2D(tex, tex_m.xy).a * col; -} - diff --git a/src/modules/evas/engines/gl_common/shader/nv12_mask_vert.shd b/src/modules/evas/engines/gl_common/shader/nv12_mask_vert.shd deleted file mode 100644 index d17555a..0000000 --- a/src/modules/evas/engines/gl_common/shader/nv12_mask_vert.shd +++ /dev/null @@ -1,22 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec4 color; -attribute vec4 mask_coord; -attribute vec2 tex_coord, tex_coord2; -uniform mat4 mvp; -varying vec4 col; -varying vec2 tex_c, tex_cuv, tex_m; -void main() -{ - gl_Position = mvp * vertex; - col = color; - tex_c = tex_coord; - tex_cuv = tex_coord2 * 0.5; - - // mask_coord.w contains the Y-invert flag - // position on screen in [0..1] range of current pixel - vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 0.5, 0.5) + vec4(0.5, 0.5, 0, 0); - tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy; -} diff --git a/src/modules/evas/engines/gl_common/shader/nv12_nomul_frag.shd b/src/modules/evas/engines/gl_common/shader/nv12_nomul_frag.shd deleted file mode 100644 index 6910933..0000000 --- a/src/modules/evas/engines/gl_common/shader/nv12_nomul_frag.shd +++ /dev/null @@ -1,31 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#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); -} - - diff --git a/src/modules/evas/engines/gl_common/shader/nv12_nomul_vert.shd b/src/modules/evas/engines/gl_common/shader/nv12_nomul_vert.shd deleted file mode 100644 index ddd0d6e..0000000 --- a/src/modules/evas/engines/gl_common/shader/nv12_nomul_vert.shd +++ /dev/null @@ -1,14 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec4 color; -attribute vec2 tex_coord, tex_coord2; -uniform mat4 mvp; -varying vec2 tex_c, tex_cuv; -void main() -{ - gl_Position = mvp * vertex; - tex_c = tex_coord; - tex_cuv = tex_coord2 * 0.5; -} diff --git a/src/modules/evas/engines/gl_common/shader/nv12_vert.shd b/src/modules/evas/engines/gl_common/shader/nv12_vert.shd deleted file mode 100644 index ee9238c..0000000 --- a/src/modules/evas/engines/gl_common/shader/nv12_vert.shd +++ /dev/null @@ -1,16 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec4 color; -attribute vec2 tex_coord, tex_coord2; -uniform mat4 mvp; -varying vec4 col; -varying vec2 tex_c, tex_cuv; -void main() -{ - gl_Position = mvp * vertex; - col = color; - tex_c = tex_coord; - tex_cuv = tex_coord2 * 0.5; -} diff --git a/src/modules/evas/engines/gl_common/shader/rect_frag.shd b/src/modules/evas/engines/gl_common/shader/rect_frag.shd deleted file mode 100644 index 02251ee..0000000 --- a/src/modules/evas/engines/gl_common/shader/rect_frag.shd +++ /dev/null @@ -1,13 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#endif -uniform sampler2D tex; -varying vec4 col; -void main() -{ - gl_FragColor = col; -} diff --git a/src/modules/evas/engines/gl_common/shader/rect_mask_frag.shd b/src/modules/evas/engines/gl_common/shader/rect_mask_frag.shd deleted file mode 100644 index 9af029d..0000000 --- a/src/modules/evas/engines/gl_common/shader/rect_mask_frag.shd +++ /dev/null @@ -1,14 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#endif -uniform sampler2D texm; -varying vec4 col; -varying vec2 tex_m; -void main() -{ - gl_FragColor = texture2D(texm, tex_m.xy).a * col; -} diff --git a/src/modules/evas/engines/gl_common/shader/rect_mask_vert.shd b/src/modules/evas/engines/gl_common/shader/rect_mask_vert.shd deleted file mode 100644 index 5065209..0000000 --- a/src/modules/evas/engines/gl_common/shader/rect_mask_vert.shd +++ /dev/null @@ -1,19 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec4 color; -attribute vec4 mask_coord; -uniform mat4 mvp; -varying vec4 col; -varying vec2 tex_m; -void main() -{ - gl_Position = mvp * vertex; - col = color; - - // mask_coord.w contains the Y-invert flag - // position on screen in [0..1] range of current pixel - vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 0.5, 0.5) + vec4(0.5, 0.5, 0, 0); - tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy; -} diff --git a/src/modules/evas/engines/gl_common/shader/rect_vert.shd b/src/modules/evas/engines/gl_common/shader/rect_vert.shd deleted file mode 100644 index 63fea5d..0000000 --- a/src/modules/evas/engines/gl_common/shader/rect_vert.shd +++ /dev/null @@ -1,12 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec4 color; -uniform mat4 mvp; -varying vec4 col; -void main() -{ - gl_Position = mvp * vertex; - col = color; -} diff --git a/src/modules/evas/engines/gl_common/shader/rgb_a_pair_frag.shd b/src/modules/evas/engines/gl_common/shader/rgb_a_pair_frag.shd deleted file mode 100644 index 5a352e8..0000000 --- a/src/modules/evas/engines/gl_common/shader/rgb_a_pair_frag.shd +++ /dev/null @@ -1,17 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#endif -uniform sampler2D tex; -uniform sampler2D texa; -varying vec4 col; -varying vec2 coord_c; -varying vec2 coord_a; -void main() -{ - gl_FragColor.rgb = texture2D(tex, coord_c.xy).rgb * col.rgb * texture2D(texa, coord_a).g; - gl_FragColor.a = col.a * texture2D(texa, coord_a).g; -} diff --git a/src/modules/evas/engines/gl_common/shader/rgb_a_pair_mask_frag.shd b/src/modules/evas/engines/gl_common/shader/rgb_a_pair_mask_frag.shd deleted file mode 100644 index daa185a..0000000 --- a/src/modules/evas/engines/gl_common/shader/rgb_a_pair_mask_frag.shd +++ /dev/null @@ -1,19 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#endif -uniform sampler2D tex; -uniform sampler2D texa; -uniform sampler2D texm; -varying vec4 col; -varying vec2 coord_c; -varying vec2 coord_a; -varying vec2 tex_m; -void main() -{ - gl_FragColor.rgb = texture2D(tex, coord_c.xy).rgb * col.rgb * texture2D(texa, coord_a).g * texture2D(texm, tex_m.xy).a; - gl_FragColor.a = col.a * texture2D(texa, coord_a).g * texture2D(texm, tex_m.xy).a; -} diff --git a/src/modules/evas/engines/gl_common/shader/rgb_a_pair_mask_vert.shd b/src/modules/evas/engines/gl_common/shader/rgb_a_pair_mask_vert.shd deleted file mode 100644 index ba575d6..0000000 --- a/src/modules/evas/engines/gl_common/shader/rgb_a_pair_mask_vert.shd +++ /dev/null @@ -1,25 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec4 color; -attribute vec2 tex_coord; -attribute vec2 tex_coorda; -attribute vec4 mask_coord; -uniform mat4 mvp; -varying vec4 col; -varying vec2 coord_c; -varying vec2 coord_a; -varying vec2 tex_m; -void main() -{ - gl_Position = mvp * vertex; - col = color; - coord_c = tex_coord; - coord_a = tex_coorda; - - // mask_coord.w contains the Y-invert flag - // position on screen in [0..1] range of current pixel - vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 0.5, 0.5) + vec4(0.5, 0.5, 0, 0); - tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy; -} diff --git a/src/modules/evas/engines/gl_common/shader/rgb_a_pair_nomul_frag.shd b/src/modules/evas/engines/gl_common/shader/rgb_a_pair_nomul_frag.shd deleted file mode 100644 index 68be9d4..0000000 --- a/src/modules/evas/engines/gl_common/shader/rgb_a_pair_nomul_frag.shd +++ /dev/null @@ -1,16 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#endif -uniform sampler2D tex; -uniform sampler2D texa; -varying vec2 coord_c; -varying vec2 coord_a; -void main() -{ - gl_FragColor.rgb = texture2D(tex, coord_c.xy).rgb * texture2D(texa, coord_a).g; - gl_FragColor.a = texture2D(texa, coord_a).g; -} diff --git a/src/modules/evas/engines/gl_common/shader/rgb_a_pair_nomul_vert.shd b/src/modules/evas/engines/gl_common/shader/rgb_a_pair_nomul_vert.shd deleted file mode 100644 index 1c0af0a..0000000 --- a/src/modules/evas/engines/gl_common/shader/rgb_a_pair_nomul_vert.shd +++ /dev/null @@ -1,15 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec2 tex_coord; -attribute vec2 tex_coorda; -uniform mat4 mvp; -varying vec2 coord_c; -varying vec2 coord_a; -void main() -{ - gl_Position = mvp * vertex; - coord_c = tex_coord; - coord_a = tex_coorda; -} diff --git a/src/modules/evas/engines/gl_common/shader/rgb_a_pair_vert.shd b/src/modules/evas/engines/gl_common/shader/rgb_a_pair_vert.shd deleted file mode 100644 index 06ab513..0000000 --- a/src/modules/evas/engines/gl_common/shader/rgb_a_pair_vert.shd +++ /dev/null @@ -1,18 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec4 color; -attribute vec2 tex_coord; -attribute vec2 tex_coorda; -uniform mat4 mvp; -varying vec4 col; -varying vec2 coord_c; -varying vec2 coord_a; -void main() -{ - gl_Position = mvp * vertex; - col = color; - coord_c = tex_coord; - coord_a = tex_coorda; -} diff --git a/src/modules/evas/engines/gl_common/shader/shaders.txt b/src/modules/evas/engines/gl_common/shader/shaders.txt new file mode 100644 index 0000000..6dd7f12 --- /dev/null +++ b/src/modules/evas/engines/gl_common/shader/shaders.txt @@ -0,0 +1,113 @@ +# All supported shaders, format is (no spaces allowed): +# name:opt1,opt2,opt3 + +# Convention for names: +# type[_SAM[_bgra[_mask[_nomul[_afill]]]]] + + +# Rectangles, lines & polygons +rect: +rect_mask:mask + + +# Fonts (alpha only) +font:tex,alpha +font_mask:tex,mask,alpha + + +# Images: color version +img:tex +img_bgra:tex,bgra +img_12:tex,sam12 +img_21:tex,sam21 +img_22:tex,sam22 +img_12_bgra:tex,sam12,bgra +img_21_bgra:tex,sam21,bgra +img_22_bgra:tex,sam22,bgra + +img_mask:tex,mask +img_bgra_mask:tex,mask,bgra +img_12_mask:tex,mask,sam12 +img_21_mask:tex,mask,sam21 +img_22_mask:tex,mask,sam22 +img_12_bgra_mask:tex,mask,sam12,bgra +img_21_bgra_mask:tex,mask,sam21,bgra +img_22_bgra_mask:tex,mask,sam22,bgra + + +# Images: nomul version (copy above with extra nomul flag) +img_nomul:tex,nomul +img_bgra_nomul:tex,nomul,bgra +img_12_nomul:tex,sam12,nomul +img_21_nomul:tex,sam21,nomul +img_22_nomul:tex,sam22,nomul +img_12_bgra_nomul:tex,sam12,bgra,nomul +img_21_bgra_nomul:tex,sam21,bgra,nomul +img_22_bgra_nomul:tex,sam22,bgra,nomul + +img_mask_nomul:tex,mask,nomul +img_bgra_mask_nomul:tex,mask,nomul,bgra +img_12_mask_nomul:tex,mask,sam12,nomul +img_21_mask_nomul:tex,mask,sam21,nomul +img_22_mask_nomul:tex,mask,sam22,nomul +img_12_bgra_mask_nomul:tex,mask,sam12,bgra,nomul +img_21_bgra_mask_nomul:tex,mask,sam21,bgra,nomul +img_22_bgra_mask_nomul:tex,mask,sam22,bgra,nomul + + + +# Some AFILL versions +img_afill:tex,afill +img_bgra_afill:tex,afill,bgra +img_nomul_afill:tex,nomul,afill +img_bgra_nomul_afill:tex,nomul,afill,bgra +img_12_afill:tex,sam12,afill +img_21_afill:tex,sam21,afill +img_22_afill:tex,sam22,afill +img_12_bgra_afill:tex,sam12,bgra,afill +img_21_bgra_afill:tex,sam21,bgra,afill +img_22_bgra_afill:tex,sam22,bgra,afill +img_12_nomul_afill:tex,sam12,nomul,afill +img_21_nomul_afill:tex,sam21,nomul,afill +img_22_nomul_afill:tex,sam22,nomul,afill +img_12_bgra_nomul_afill:tex,sam12,bgra,nomul,afill +img_21_bgra_nomul_afill:tex,sam21,bgra,nomul,afill +img_22_bgra_nomul_afill:tex,sam22,bgra,nomul,afill + + + +# RGB+A. We can add more! +rgb_a_pair:texa +rgb_a_pair_mask:texa,mask +rgb_a_pair_nomul:texa,nomul +rgb_a_pair_mask_nomul:texa,mask,nomul +#rgb_a_pair_afill:texa,afill +#rgb_a_pair_nomul_afill:texa,nomul,afill + + + +# External texture (GLES, OES) +tex_external:external +tex_external_afill:external,afill +tex_external_nomul:external,nomul +tex_external_nomul_afill:external,nomul,afill +tex_external_mask:external,mask +tex_external_mask_nomul:external,mask,nomul + + +# YUV stuff (no need for AFILL) +yuv:tex,yuv +yuv_nomul:tex,yuv,nomul +yuv_mask:tex,yuv,mask +yuv_mask_nomul:tex,yuv,mask,nomul + +yuy2:tex,yuy2 +yuy2_nomul:tex,yuy2,nomul +yuy2_mask:tex,yuy2,mask +yuy2_mask_nomul:tex,yuy2,mask,nomul + +nv12:tex,nv12 +nv12_nomul:tex,nv12,nomul +nv12_mask:tex,nv12,mask +nv12_mask_nomul:tex,nv12,mask,nomul + diff --git a/src/modules/evas/engines/gl_common/shader/tex_12_afill_frag.shd b/src/modules/evas/engines/gl_common/shader/tex_12_afill_frag.shd deleted file mode 100644 index ee15fdd..0000000 --- a/src/modules/evas/engines/gl_common/shader/tex_12_afill_frag.shd +++ /dev/null @@ -1,19 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#endif -uniform sampler2D tex; -varying vec4 col; -varying vec2 tex_c; -varying vec2 tex_s[2]; -varying vec4 div_s; -void main() -{ - vec4 col00 = texture2D(tex, tex_c + tex_s[0]); - vec4 col01 = texture2D(tex, tex_c + tex_s[1]); - vec4 c = (col00 + col01) / div_s; - gl_FragColor = vec4(c.r, c.g, c.b, 1) * col; -} diff --git a/src/modules/evas/engines/gl_common/shader/tex_12_afill_vert.shd b/src/modules/evas/engines/gl_common/shader/tex_12_afill_vert.shd deleted file mode 100644 index 810d73a..0000000 --- a/src/modules/evas/engines/gl_common/shader/tex_12_afill_vert.shd +++ /dev/null @@ -1,21 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec4 color; -attribute vec2 tex_coord; -attribute vec2 tex_sample; -uniform mat4 mvp; -varying vec4 col; -varying vec2 tex_c; -varying vec2 tex_s[2]; -varying vec4 div_s; -void main() -{ - gl_Position = mvp * vertex; - col = color; - tex_c = tex_coord; - tex_s[0] = vec2(0, -tex_sample.y); - tex_s[1] = vec2(0, tex_sample.y); - div_s = vec4(2, 2, 2, 2); -} diff --git a/src/modules/evas/engines/gl_common/shader/tex_12_frag.shd b/src/modules/evas/engines/gl_common/shader/tex_12_frag.shd deleted file mode 100644 index d23e17b..0000000 --- a/src/modules/evas/engines/gl_common/shader/tex_12_frag.shd +++ /dev/null @@ -1,18 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#endif -uniform sampler2D tex; -varying vec4 col; -varying vec2 tex_c; -varying vec2 tex_s[2]; -varying vec4 div_s; -void main() -{ - vec4 col00 = texture2D(tex, tex_c + tex_s[0]); - vec4 col01 = texture2D(tex, tex_c + tex_s[1]); - gl_FragColor = ((col00 + col01) / div_s) * col; -} diff --git a/src/modules/evas/engines/gl_common/shader/tex_12_nomul_afill_frag.shd b/src/modules/evas/engines/gl_common/shader/tex_12_nomul_afill_frag.shd deleted file mode 100644 index a7bff98..0000000 --- a/src/modules/evas/engines/gl_common/shader/tex_12_nomul_afill_frag.shd +++ /dev/null @@ -1,18 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#endif -uniform sampler2D tex; -varying vec2 tex_c; -varying vec2 tex_s[2]; -varying vec4 div_s; -void main() -{ - vec4 col00 = texture2D(tex, tex_c + tex_s[0]); - vec4 col01 = texture2D(tex, tex_c + tex_s[1]); - vec4 c = (col00 + col01) / div_s; - gl_FragColor = vec4(c.r, c.g, c.b, 1); -} diff --git a/src/modules/evas/engines/gl_common/shader/tex_12_nomul_afill_vert.shd b/src/modules/evas/engines/gl_common/shader/tex_12_nomul_afill_vert.shd deleted file mode 100644 index 40144aa..0000000 --- a/src/modules/evas/engines/gl_common/shader/tex_12_nomul_afill_vert.shd +++ /dev/null @@ -1,18 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec2 tex_coord; -attribute vec2 tex_sample; -uniform mat4 mvp; -varying vec2 tex_c; -varying vec2 tex_s[2]; -varying vec4 div_s; -void main() -{ - gl_Position = mvp * vertex; - tex_c = tex_coord; - tex_s[0] = vec2(0, -tex_sample.y); - tex_s[1] = vec2(0, tex_sample.y); - div_s = vec4(2, 2, 2, 2); -} diff --git a/src/modules/evas/engines/gl_common/shader/tex_12_nomul_frag.shd b/src/modules/evas/engines/gl_common/shader/tex_12_nomul_frag.shd deleted file mode 100644 index 4d29510..0000000 --- a/src/modules/evas/engines/gl_common/shader/tex_12_nomul_frag.shd +++ /dev/null @@ -1,17 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#endif -uniform sampler2D tex; -varying vec2 tex_c; -varying vec2 tex_s[2]; -varying vec4 div_s; -void main() -{ - vec4 col00 = texture2D(tex, tex_c + tex_s[0]); - vec4 col01 = texture2D(tex, tex_c + tex_s[1]); - gl_FragColor = (col00 + col01) / div_s; -} diff --git a/src/modules/evas/engines/gl_common/shader/tex_12_nomul_vert.shd b/src/modules/evas/engines/gl_common/shader/tex_12_nomul_vert.shd deleted file mode 100644 index 40144aa..0000000 --- a/src/modules/evas/engines/gl_common/shader/tex_12_nomul_vert.shd +++ /dev/null @@ -1,18 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec2 tex_coord; -attribute vec2 tex_sample; -uniform mat4 mvp; -varying vec2 tex_c; -varying vec2 tex_s[2]; -varying vec4 div_s; -void main() -{ - gl_Position = mvp * vertex; - tex_c = tex_coord; - tex_s[0] = vec2(0, -tex_sample.y); - tex_s[1] = vec2(0, tex_sample.y); - div_s = vec4(2, 2, 2, 2); -} diff --git a/src/modules/evas/engines/gl_common/shader/tex_12_vert.shd b/src/modules/evas/engines/gl_common/shader/tex_12_vert.shd deleted file mode 100644 index 810d73a..0000000 --- a/src/modules/evas/engines/gl_common/shader/tex_12_vert.shd +++ /dev/null @@ -1,21 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec4 color; -attribute vec2 tex_coord; -attribute vec2 tex_sample; -uniform mat4 mvp; -varying vec4 col; -varying vec2 tex_c; -varying vec2 tex_s[2]; -varying vec4 div_s; -void main() -{ - gl_Position = mvp * vertex; - col = color; - tex_c = tex_coord; - tex_s[0] = vec2(0, -tex_sample.y); - tex_s[1] = vec2(0, tex_sample.y); - div_s = vec4(2, 2, 2, 2); -} diff --git a/src/modules/evas/engines/gl_common/shader/tex_21_afill_frag.shd b/src/modules/evas/engines/gl_common/shader/tex_21_afill_frag.shd deleted file mode 100644 index ee15fdd..0000000 --- a/src/modules/evas/engines/gl_common/shader/tex_21_afill_frag.shd +++ /dev/null @@ -1,19 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#endif -uniform sampler2D tex; -varying vec4 col; -varying vec2 tex_c; -varying vec2 tex_s[2]; -varying vec4 div_s; -void main() -{ - vec4 col00 = texture2D(tex, tex_c + tex_s[0]); - vec4 col01 = texture2D(tex, tex_c + tex_s[1]); - vec4 c = (col00 + col01) / div_s; - gl_FragColor = vec4(c.r, c.g, c.b, 1) * col; -} diff --git a/src/modules/evas/engines/gl_common/shader/tex_21_afill_vert.shd b/src/modules/evas/engines/gl_common/shader/tex_21_afill_vert.shd deleted file mode 100644 index 98d9154..0000000 --- a/src/modules/evas/engines/gl_common/shader/tex_21_afill_vert.shd +++ /dev/null @@ -1,21 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec4 color; -attribute vec2 tex_coord; -attribute vec2 tex_sample; -uniform mat4 mvp; -varying vec4 col; -varying vec2 tex_c; -varying vec2 tex_s[2]; -varying vec4 div_s; -void main() -{ - gl_Position = mvp * vertex; - col = color; - tex_c = tex_coord; - tex_s[0] = vec2(-tex_sample.x, 0); - tex_s[1] = vec2( tex_sample.x, 0); - div_s = vec4(2, 2, 2, 2); -} diff --git a/src/modules/evas/engines/gl_common/shader/tex_21_frag.shd b/src/modules/evas/engines/gl_common/shader/tex_21_frag.shd deleted file mode 100644 index d23e17b..0000000 --- a/src/modules/evas/engines/gl_common/shader/tex_21_frag.shd +++ /dev/null @@ -1,18 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#endif -uniform sampler2D tex; -varying vec4 col; -varying vec2 tex_c; -varying vec2 tex_s[2]; -varying vec4 div_s; -void main() -{ - vec4 col00 = texture2D(tex, tex_c + tex_s[0]); - vec4 col01 = texture2D(tex, tex_c + tex_s[1]); - gl_FragColor = ((col00 + col01) / div_s) * col; -} diff --git a/src/modules/evas/engines/gl_common/shader/tex_21_nomul_afill_frag.shd b/src/modules/evas/engines/gl_common/shader/tex_21_nomul_afill_frag.shd deleted file mode 100644 index a7bff98..0000000 --- a/src/modules/evas/engines/gl_common/shader/tex_21_nomul_afill_frag.shd +++ /dev/null @@ -1,18 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#endif -uniform sampler2D tex; -varying vec2 tex_c; -varying vec2 tex_s[2]; -varying vec4 div_s; -void main() -{ - vec4 col00 = texture2D(tex, tex_c + tex_s[0]); - vec4 col01 = texture2D(tex, tex_c + tex_s[1]); - vec4 c = (col00 + col01) / div_s; - gl_FragColor = vec4(c.r, c.g, c.b, 1); -} diff --git a/src/modules/evas/engines/gl_common/shader/tex_21_nomul_afill_vert.shd b/src/modules/evas/engines/gl_common/shader/tex_21_nomul_afill_vert.shd deleted file mode 100644 index a6b149f..0000000 --- a/src/modules/evas/engines/gl_common/shader/tex_21_nomul_afill_vert.shd +++ /dev/null @@ -1,18 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec2 tex_coord; -attribute vec2 tex_sample; -uniform mat4 mvp; -varying vec2 tex_c; -varying vec2 tex_s[2]; -varying vec4 div_s; -void main() -{ - gl_Position = mvp * vertex; - tex_c = tex_coord; - tex_s[0] = vec2(-tex_sample.x, 0); - tex_s[1] = vec2( tex_sample.x, 0); - div_s = vec4(2, 2, 2, 2); -} diff --git a/src/modules/evas/engines/gl_common/shader/tex_21_nomul_frag.shd b/src/modules/evas/engines/gl_common/shader/tex_21_nomul_frag.shd deleted file mode 100644 index 4d29510..0000000 --- a/src/modules/evas/engines/gl_common/shader/tex_21_nomul_frag.shd +++ /dev/null @@ -1,17 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#endif -uniform sampler2D tex; -varying vec2 tex_c; -varying vec2 tex_s[2]; -varying vec4 div_s; -void main() -{ - vec4 col00 = texture2D(tex, tex_c + tex_s[0]); - vec4 col01 = texture2D(tex, tex_c + tex_s[1]); - gl_FragColor = (col00 + col01) / div_s; -} diff --git a/src/modules/evas/engines/gl_common/shader/tex_21_nomul_vert.shd b/src/modules/evas/engines/gl_common/shader/tex_21_nomul_vert.shd deleted file mode 100644 index a6b149f..0000000 --- a/src/modules/evas/engines/gl_common/shader/tex_21_nomul_vert.shd +++ /dev/null @@ -1,18 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec2 tex_coord; -attribute vec2 tex_sample; -uniform mat4 mvp; -varying vec2 tex_c; -varying vec2 tex_s[2]; -varying vec4 div_s; -void main() -{ - gl_Position = mvp * vertex; - tex_c = tex_coord; - tex_s[0] = vec2(-tex_sample.x, 0); - tex_s[1] = vec2( tex_sample.x, 0); - div_s = vec4(2, 2, 2, 2); -} diff --git a/src/modules/evas/engines/gl_common/shader/tex_21_vert.shd b/src/modules/evas/engines/gl_common/shader/tex_21_vert.shd deleted file mode 100644 index 98d9154..0000000 --- a/src/modules/evas/engines/gl_common/shader/tex_21_vert.shd +++ /dev/null @@ -1,21 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec4 color; -attribute vec2 tex_coord; -attribute vec2 tex_sample; -uniform mat4 mvp; -varying vec4 col; -varying vec2 tex_c; -varying vec2 tex_s[2]; -varying vec4 div_s; -void main() -{ - gl_Position = mvp * vertex; - col = color; - tex_c = tex_coord; - tex_s[0] = vec2(-tex_sample.x, 0); - tex_s[1] = vec2( tex_sample.x, 0); - div_s = vec4(2, 2, 2, 2); -} diff --git a/src/modules/evas/engines/gl_common/shader/tex_22_afill_frag.shd b/src/modules/evas/engines/gl_common/shader/tex_22_afill_frag.shd deleted file mode 100644 index cb2dd2b..0000000 --- a/src/modules/evas/engines/gl_common/shader/tex_22_afill_frag.shd +++ /dev/null @@ -1,21 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#endif -uniform sampler2D tex; -varying vec4 col; -varying vec2 tex_c; -varying vec2 tex_s[4]; -varying vec4 div_s; -void main() -{ - vec4 col00 = texture2D(tex, tex_c + tex_s[0]); - vec4 col01 = texture2D(tex, tex_c + tex_s[1]); - vec4 col10 = texture2D(tex, tex_c + tex_s[2]); - vec4 col11 = texture2D(tex, tex_c + tex_s[3]); - vec4 c = (col00 + col01 + col10 + col11) / div_s; - gl_FragColor = vec4(c.r, c.g, c.b, 1) * col; -} diff --git a/src/modules/evas/engines/gl_common/shader/tex_22_afill_vert.shd b/src/modules/evas/engines/gl_common/shader/tex_22_afill_vert.shd deleted file mode 100644 index e964ea1..0000000 --- a/src/modules/evas/engines/gl_common/shader/tex_22_afill_vert.shd +++ /dev/null @@ -1,23 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec4 color; -attribute vec2 tex_coord; -attribute vec2 tex_sample; -uniform mat4 mvp; -varying vec4 col; -varying vec2 tex_c; -varying vec2 tex_s[4]; -varying vec4 div_s; -void main() -{ - gl_Position = mvp * vertex; - col = color; - tex_c = tex_coord; - tex_s[0] = vec2(-tex_sample.x, -tex_sample.y); - tex_s[1] = vec2( tex_sample.x, -tex_sample.y); - tex_s[2] = vec2( tex_sample.x, tex_sample.y); - tex_s[3] = vec2(-tex_sample.x, tex_sample.y); - div_s = vec4(4, 4, 4, 4); -} diff --git a/src/modules/evas/engines/gl_common/shader/tex_22_frag.shd b/src/modules/evas/engines/gl_common/shader/tex_22_frag.shd deleted file mode 100644 index ab1b121..0000000 --- a/src/modules/evas/engines/gl_common/shader/tex_22_frag.shd +++ /dev/null @@ -1,20 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#endif -uniform sampler2D tex; -varying vec4 col; -varying vec2 tex_c; -varying vec2 tex_s[4]; -varying vec4 div_s; -void main() -{ - vec4 col00 = texture2D(tex, tex_c + tex_s[0]); - vec4 col01 = texture2D(tex, tex_c + tex_s[1]); - vec4 col10 = texture2D(tex, tex_c + tex_s[2]); - vec4 col11 = texture2D(tex, tex_c + tex_s[3]); - gl_FragColor = ((col00 + col01 + col10 + col11) / div_s) * col; -} diff --git a/src/modules/evas/engines/gl_common/shader/tex_22_nomul_afill_frag.shd b/src/modules/evas/engines/gl_common/shader/tex_22_nomul_afill_frag.shd deleted file mode 100644 index c017c31..0000000 --- a/src/modules/evas/engines/gl_common/shader/tex_22_nomul_afill_frag.shd +++ /dev/null @@ -1,20 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#endif -uniform sampler2D tex; -varying vec2 tex_c; -varying vec2 tex_s[4]; -varying vec4 div_s; -void main() -{ - vec4 col00 = texture2D(tex, tex_c + tex_s[0]); - vec4 col01 = texture2D(tex, tex_c + tex_s[1]); - vec4 col10 = texture2D(tex, tex_c + tex_s[2]); - vec4 col11 = texture2D(tex, tex_c + tex_s[3]); - vec4 c = (col00 + col01 + col10 + col11) / div_s; - gl_FragColor = vec4(c.r, c.g, c.b, 1); -} diff --git a/src/modules/evas/engines/gl_common/shader/tex_22_nomul_afill_vert.shd b/src/modules/evas/engines/gl_common/shader/tex_22_nomul_afill_vert.shd deleted file mode 100644 index e6303d7..0000000 --- a/src/modules/evas/engines/gl_common/shader/tex_22_nomul_afill_vert.shd +++ /dev/null @@ -1,20 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec2 tex_coord; -attribute vec2 tex_sample; -uniform mat4 mvp; -varying vec2 tex_c; -varying vec2 tex_s[4]; -varying vec4 div_s; -void main() -{ - gl_Position = mvp * vertex; - tex_c = tex_coord; - tex_s[0] = vec2(-tex_sample.x, -tex_sample.y); - tex_s[1] = vec2( tex_sample.x, -tex_sample.y); - tex_s[2] = vec2( tex_sample.x, tex_sample.y); - tex_s[3] = vec2(-tex_sample.x, tex_sample.y); - div_s = vec4(4, 4, 4, 4); -} diff --git a/src/modules/evas/engines/gl_common/shader/tex_22_nomul_frag.shd b/src/modules/evas/engines/gl_common/shader/tex_22_nomul_frag.shd deleted file mode 100644 index 3f380ea..0000000 --- a/src/modules/evas/engines/gl_common/shader/tex_22_nomul_frag.shd +++ /dev/null @@ -1,19 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#endif -uniform sampler2D tex; -varying vec2 tex_c; -varying vec2 tex_s[4]; -varying vec4 div_s; -void main() -{ - vec4 col00 = texture2D(tex, tex_c + tex_s[0]); - vec4 col01 = texture2D(tex, tex_c + tex_s[1]); - vec4 col10 = texture2D(tex, tex_c + tex_s[2]); - vec4 col11 = texture2D(tex, tex_c + tex_s[3]); - gl_FragColor = (col00 + col01 + col10 + col11) / div_s; -} diff --git a/src/modules/evas/engines/gl_common/shader/tex_22_nomul_vert.shd b/src/modules/evas/engines/gl_common/shader/tex_22_nomul_vert.shd deleted file mode 100644 index e6303d7..0000000 --- a/src/modules/evas/engines/gl_common/shader/tex_22_nomul_vert.shd +++ /dev/null @@ -1,20 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec2 tex_coord; -attribute vec2 tex_sample; -uniform mat4 mvp; -varying vec2 tex_c; -varying vec2 tex_s[4]; -varying vec4 div_s; -void main() -{ - gl_Position = mvp * vertex; - tex_c = tex_coord; - tex_s[0] = vec2(-tex_sample.x, -tex_sample.y); - tex_s[1] = vec2( tex_sample.x, -tex_sample.y); - tex_s[2] = vec2( tex_sample.x, tex_sample.y); - tex_s[3] = vec2(-tex_sample.x, tex_sample.y); - div_s = vec4(4, 4, 4, 4); -} diff --git a/src/modules/evas/engines/gl_common/shader/tex_22_vert.shd b/src/modules/evas/engines/gl_common/shader/tex_22_vert.shd deleted file mode 100644 index e964ea1..0000000 --- a/src/modules/evas/engines/gl_common/shader/tex_22_vert.shd +++ /dev/null @@ -1,23 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec4 color; -attribute vec2 tex_coord; -attribute vec2 tex_sample; -uniform mat4 mvp; -varying vec4 col; -varying vec2 tex_c; -varying vec2 tex_s[4]; -varying vec4 div_s; -void main() -{ - gl_Position = mvp * vertex; - col = color; - tex_c = tex_coord; - tex_s[0] = vec2(-tex_sample.x, -tex_sample.y); - tex_s[1] = vec2( tex_sample.x, -tex_sample.y); - tex_s[2] = vec2( tex_sample.x, tex_sample.y); - tex_s[3] = vec2(-tex_sample.x, tex_sample.y); - div_s = vec4(4, 4, 4, 4); -} diff --git a/src/modules/evas/engines/gl_common/shader/tex_afill_frag.shd b/src/modules/evas/engines/gl_common/shader/tex_afill_frag.shd deleted file mode 100644 index 9ee0c37..0000000 --- a/src/modules/evas/engines/gl_common/shader/tex_afill_frag.shd +++ /dev/null @@ -1,15 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#endif -uniform sampler2D tex; -varying vec4 col; -varying vec2 tex_c; -void main() -{ - vec4 c = texture2D(tex, tex_c.xy); - gl_FragColor = vec4(c.r, c.g, c.b, 1) * col; -} diff --git a/src/modules/evas/engines/gl_common/shader/tex_afill_vert.shd b/src/modules/evas/engines/gl_common/shader/tex_afill_vert.shd deleted file mode 100644 index 606c297..0000000 --- a/src/modules/evas/engines/gl_common/shader/tex_afill_vert.shd +++ /dev/null @@ -1,15 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec4 color; -attribute vec2 tex_coord; -uniform mat4 mvp; -varying vec4 col; -varying vec2 tex_c; -void main() -{ - gl_Position = mvp * vertex; - col = color; - tex_c = tex_coord; -} diff --git a/src/modules/evas/engines/gl_common/shader/tex_external_afill_frag.shd b/src/modules/evas/engines/gl_common/shader/tex_external_afill_frag.shd deleted file mode 100644 index 790911e..0000000 --- a/src/modules/evas/engines/gl_common/shader/tex_external_afill_frag.shd +++ /dev/null @@ -1,18 +0,0 @@ -#ifdef GL_ES -#extension GL_OES_EGL_image_external : require -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -uniform samplerExternalOES tex; -#else -uniform sampler2D tex; -#endif -varying vec4 col; -varying vec2 tex_c; -void main() -{ - vec4 c = texture2D(tex, tex_c.xy); - gl_FragColor = vec4(c.r, c.g, c.b, 1) * col; -} diff --git a/src/modules/evas/engines/gl_common/shader/tex_external_afill_vert.shd b/src/modules/evas/engines/gl_common/shader/tex_external_afill_vert.shd deleted file mode 100644 index 606c297..0000000 --- a/src/modules/evas/engines/gl_common/shader/tex_external_afill_vert.shd +++ /dev/null @@ -1,15 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec4 color; -attribute vec2 tex_coord; -uniform mat4 mvp; -varying vec4 col; -varying vec2 tex_c; -void main() -{ - gl_Position = mvp * vertex; - col = color; - tex_c = tex_coord; -} diff --git a/src/modules/evas/engines/gl_common/shader/tex_external_frag.shd b/src/modules/evas/engines/gl_common/shader/tex_external_frag.shd deleted file mode 100644 index 48a6626..0000000 --- a/src/modules/evas/engines/gl_common/shader/tex_external_frag.shd +++ /dev/null @@ -1,17 +0,0 @@ -#ifdef GL_ES -#extension GL_OES_EGL_image_external : require -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -uniform samplerExternalOES tex; -#else -uniform sampler2D tex; -#endif -varying vec4 col; -varying vec2 tex_c; -void main() -{ - gl_FragColor = texture2D(tex, tex_c.xy) * col; -} diff --git a/src/modules/evas/engines/gl_common/shader/tex_external_nomul_afill_frag.shd b/src/modules/evas/engines/gl_common/shader/tex_external_nomul_afill_frag.shd deleted file mode 100644 index 93e8aa0..0000000 --- a/src/modules/evas/engines/gl_common/shader/tex_external_nomul_afill_frag.shd +++ /dev/null @@ -1,17 +0,0 @@ -#ifdef GL_ES -#extension GL_OES_EGL_image_external : require -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -uniform samplerExternalOES tex; -#else -uniform sampler2D tex; -#endif -varying vec2 tex_c; -void main() -{ - vec4 c = texture2D(tex, tex_c.xy); - gl_FragColor = vec4(c.r, c.g, c.b, 1); -} diff --git a/src/modules/evas/engines/gl_common/shader/tex_external_nomul_afill_vert.shd b/src/modules/evas/engines/gl_common/shader/tex_external_nomul_afill_vert.shd deleted file mode 100644 index 74f3207..0000000 --- a/src/modules/evas/engines/gl_common/shader/tex_external_nomul_afill_vert.shd +++ /dev/null @@ -1,12 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec2 tex_coord; -uniform mat4 mvp; -varying vec2 tex_c; -void main() -{ - gl_Position = mvp * vertex; - tex_c = tex_coord; -} diff --git a/src/modules/evas/engines/gl_common/shader/tex_external_nomul_frag.shd b/src/modules/evas/engines/gl_common/shader/tex_external_nomul_frag.shd deleted file mode 100644 index f852d17..0000000 --- a/src/modules/evas/engines/gl_common/shader/tex_external_nomul_frag.shd +++ /dev/null @@ -1,16 +0,0 @@ -#ifdef GL_ES -#extension GL_OES_EGL_image_external : require -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -uniform samplerExternalOES tex; -#else -uniform sampler2D tex; -#endif -varying vec2 tex_c; -void main() -{ - gl_FragColor = texture2D(tex, tex_c.xy); -} diff --git a/src/modules/evas/engines/gl_common/shader/tex_external_nomul_vert.shd b/src/modules/evas/engines/gl_common/shader/tex_external_nomul_vert.shd deleted file mode 100644 index 74f3207..0000000 --- a/src/modules/evas/engines/gl_common/shader/tex_external_nomul_vert.shd +++ /dev/null @@ -1,12 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec2 tex_coord; -uniform mat4 mvp; -varying vec2 tex_c; -void main() -{ - gl_Position = mvp * vertex; - tex_c = tex_coord; -} diff --git a/src/modules/evas/engines/gl_common/shader/tex_external_vert.shd b/src/modules/evas/engines/gl_common/shader/tex_external_vert.shd deleted file mode 100644 index 606c297..0000000 --- a/src/modules/evas/engines/gl_common/shader/tex_external_vert.shd +++ /dev/null @@ -1,15 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec4 color; -attribute vec2 tex_coord; -uniform mat4 mvp; -varying vec4 col; -varying vec2 tex_c; -void main() -{ - gl_Position = mvp * vertex; - col = color; - tex_c = tex_coord; -} diff --git a/src/modules/evas/engines/gl_common/shader/tex_frag.shd b/src/modules/evas/engines/gl_common/shader/tex_frag.shd deleted file mode 100644 index 2bc8d79..0000000 --- a/src/modules/evas/engines/gl_common/shader/tex_frag.shd +++ /dev/null @@ -1,14 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#endif -uniform sampler2D tex; -varying vec4 col; -varying vec2 tex_c; -void main() -{ - gl_FragColor = texture2D(tex, tex_c.xy) * col; -} diff --git a/src/modules/evas/engines/gl_common/shader/tex_nomul_afill_frag.shd b/src/modules/evas/engines/gl_common/shader/tex_nomul_afill_frag.shd deleted file mode 100644 index 569c32e..0000000 --- a/src/modules/evas/engines/gl_common/shader/tex_nomul_afill_frag.shd +++ /dev/null @@ -1,14 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#endif -uniform sampler2D tex; -varying vec2 tex_c; -void main() -{ - vec4 c = texture2D(tex, tex_c.xy); - gl_FragColor = vec4(c.r, c.g, c.b, 1); -} diff --git a/src/modules/evas/engines/gl_common/shader/tex_nomul_afill_vert.shd b/src/modules/evas/engines/gl_common/shader/tex_nomul_afill_vert.shd deleted file mode 100644 index 74f3207..0000000 --- a/src/modules/evas/engines/gl_common/shader/tex_nomul_afill_vert.shd +++ /dev/null @@ -1,12 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec2 tex_coord; -uniform mat4 mvp; -varying vec2 tex_c; -void main() -{ - gl_Position = mvp * vertex; - tex_c = tex_coord; -} diff --git a/src/modules/evas/engines/gl_common/shader/tex_nomul_frag.shd b/src/modules/evas/engines/gl_common/shader/tex_nomul_frag.shd deleted file mode 100644 index 877df62..0000000 --- a/src/modules/evas/engines/gl_common/shader/tex_nomul_frag.shd +++ /dev/null @@ -1,13 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#endif -uniform sampler2D tex; -varying vec2 tex_c; -void main() -{ - gl_FragColor = texture2D(tex, tex_c.xy); -} diff --git a/src/modules/evas/engines/gl_common/shader/tex_nomul_vert.shd b/src/modules/evas/engines/gl_common/shader/tex_nomul_vert.shd deleted file mode 100644 index 74f3207..0000000 --- a/src/modules/evas/engines/gl_common/shader/tex_nomul_vert.shd +++ /dev/null @@ -1,12 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec2 tex_coord; -uniform mat4 mvp; -varying vec2 tex_c; -void main() -{ - gl_Position = mvp * vertex; - tex_c = tex_coord; -} diff --git a/src/modules/evas/engines/gl_common/shader/tex_vert.shd b/src/modules/evas/engines/gl_common/shader/tex_vert.shd deleted file mode 100644 index 606c297..0000000 --- a/src/modules/evas/engines/gl_common/shader/tex_vert.shd +++ /dev/null @@ -1,15 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec4 color; -attribute vec2 tex_coord; -uniform mat4 mvp; -varying vec4 col; -varying vec2 tex_c; -void main() -{ - gl_Position = mvp * vertex; - col = color; - tex_c = tex_coord; -} diff --git a/src/modules/evas/engines/gl_common/shader/vertex.glsl b/src/modules/evas/engines/gl_common/shader/vertex.glsl new file mode 100644 index 0000000..fda6a00 --- /dev/null +++ b/src/modules/evas/engines/gl_common/shader/vertex.glsl @@ -0,0 +1,117 @@ +/* General-purpose vertex shader for all operations in Evas. + * This file can either be used directly by evas at runtime to + * generate its shaders with the appropriate #defines, or passed + * through cpp first (in which case the precision must be manually added). + */ + +#ifdef GL_ES +precision highp float; +#endif + +attribute vec4 vertex; +uniform mat4 mvp; + + +/* All except nomul */ +#ifndef SHD_NOMUL +attribute vec4 color; +varying vec4 col; +#endif + +/* All images & fonts */ +#if defined(SHD_TEX) || defined(SHD_EXTERNAL) +attribute vec2 tex_coord; +varying vec2 tex_c; +#endif + +/* NV12, YUY2 */ +#if defined(SHD_NV12) || defined(SHD_YUY2) || defined(SHD_YUV) +attribute vec2 tex_coord2; +varying vec2 tex_c2; +#endif + +/* YUV */ +#ifdef SHD_YUV +attribute vec2 tex_coord3; +varying vec2 tex_c3; +#endif + +/* RGB+A */ +#ifdef SHD_TEXA +attribute vec2 tex_coorda; +varying vec2 tex_a; +#endif + +/* Sampling */ +#if defined(SHD_SAM12) || defined(SHD_SAM21) || defined(SHD_SAM22) +attribute vec2 tex_sample; +varying vec4 div_s; +# if defined(SHD_SAM12) || defined(SHD_SAM21) +varying vec2 tex_s[2]; +# else +varying vec2 tex_s[4]; +# endif +#endif + +/* Masking */ +#ifdef SHD_MASK +attribute vec4 mask_coord; +varying vec2 tex_m; +#endif + + +void main() +{ + gl_Position = mvp * vertex; + +#ifndef SHD_NOMUL + col = color; +#endif + +#ifdef SHD_TEX + tex_c = tex_coord; +#endif + +#ifdef SHD_NV12 + tex_c2 = tex_coord2 * 0.5; +#endif + +#ifdef SHD_YUY2 + tex_c2 = vec2(tex_coord2.x * 0.5, tex_coord2.y); +#endif + +#ifdef SHD_YUV + tex_c2 = tex_coord2; + tex_c3 = tex_coord3; +#endif + +#ifdef SHD_TEXA + tex_a = tex_coorda; +#endif + +#if defined(SHD_SAM12) || defined(SHD_SAM21) || defined(SHD_SAM22) +# if defined(SHD_SAM12) + tex_s[0] = vec2(0, -tex_sample.y); + tex_s[1] = vec2(0, tex_sample.y); + div_s = vec4(2, 2, 2, 2); +# elif defined(SHD_SAM21) + tex_s[0] = vec2(-tex_sample.x, 0); + tex_s[1] = vec2( tex_sample.x, 0); + div_s = vec4(2, 2, 2, 2); +# else + tex_s[0] = vec2(-tex_sample.x, -tex_sample.y); + tex_s[1] = vec2( tex_sample.x, -tex_sample.y); + tex_s[2] = vec2( tex_sample.x, tex_sample.y); + tex_s[3] = vec2(-tex_sample.x, tex_sample.y); + div_s = vec4(4, 4, 4, 4); +# endif +#endif + +#ifdef SHD_MASK + // mask_coord.w contains the Y-invert flag + // position on screen in [0..1] range of current pixel + vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 0.5, 0.5) + vec4(0.5, 0.5, 0, 0); + tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy; +#endif +} + diff --git a/src/modules/evas/engines/gl_common/shader/yuv_frag.shd b/src/modules/evas/engines/gl_common/shader/yuv_frag.shd deleted file mode 100644 index 367fb55..0000000 --- a/src/modules/evas/engines/gl_common/shader/yuv_frag.shd +++ /dev/null @@ -1,24 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#endif -uniform sampler2D tex, texu, texv; -varying vec4 col; -varying vec2 tex_c, tex_c2, tex_c3; -void main() -{ - float r, g, b, y, u, v; - y = texture2D(tex, tex_c.xy).r; - u = texture2D(texu, tex_c2.xy).r; - v = texture2D(texv, tex_c3.xy).r; - y = (y - 0.0625) * 1.164; - u = u - 0.5; - v = v - 0.5; - r = y + (1.402 * v); - g = y - (0.34414 * u) - (0.71414 * v); - b = y + (1.772 * u); - gl_FragColor = vec4(r, g, b, 1.0) * col; -} diff --git a/src/modules/evas/engines/gl_common/shader/yuv_mask_frag.shd b/src/modules/evas/engines/gl_common/shader/yuv_mask_frag.shd deleted file mode 100644 index 3f2185a..0000000 --- a/src/modules/evas/engines/gl_common/shader/yuv_mask_frag.shd +++ /dev/null @@ -1,25 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#endif -uniform sampler2D tex, texu, texv, texm; -varying vec4 col; -varying vec2 tex_c, tex_c2, tex_c3, tex_m; -void main() -{ - float r, g, b, y, u, v; - y = texture2D(tex, tex_c.xy).r; - u = texture2D(texu, tex_c2.xy).r; - v = texture2D(texv, tex_c3.xy).r; - y = (y - 0.0625) * 1.164; - u = u - 0.5; - v = v - 0.5; - r = y + (1.402 * v); - g = y - (0.34414 * u) - (0.71414 * v); - b = y + (1.772 * u); - gl_FragColor = vec4(r, g, b, 1.0) * texture2D(texm, tex_m.xy).a * col; -} - diff --git a/src/modules/evas/engines/gl_common/shader/yuv_mask_vert.shd b/src/modules/evas/engines/gl_common/shader/yuv_mask_vert.shd deleted file mode 100644 index 8962d9b..0000000 --- a/src/modules/evas/engines/gl_common/shader/yuv_mask_vert.shd +++ /dev/null @@ -1,23 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec4 color; -attribute vec4 mask_coord; -attribute vec2 tex_coord, tex_coord2, tex_coord3; -uniform mat4 mvp; -varying vec4 col; -varying vec2 tex_c, tex_c2, tex_c3, tex_m; -void main() -{ - gl_Position = mvp * vertex; - col = color; - tex_c = tex_coord; - tex_c2 = tex_coord2; - tex_c3 = tex_coord3; - - // mask_coord.w contains the Y-invert flag - // position on screen in [0..1] range of current pixel - vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 0.5, 0.5) + vec4(0.5, 0.5, 0, 0); - tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy; -} diff --git a/src/modules/evas/engines/gl_common/shader/yuv_nomul_frag.shd b/src/modules/evas/engines/gl_common/shader/yuv_nomul_frag.shd deleted file mode 100644 index ce24622..0000000 --- a/src/modules/evas/engines/gl_common/shader/yuv_nomul_frag.shd +++ /dev/null @@ -1,23 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#endif -uniform sampler2D tex, texu, texv; -varying vec2 tex_c, tex_c2, tex_c3; -void main() -{ - float r, g, b, y, u, v; - y = texture2D(tex, tex_c.xy).r; - u = texture2D(texu, tex_c2.xy).r; - v = texture2D(texv, tex_c3.xy).r; - y = (y - 0.0625) * 1.164; - u = u - 0.5; - v = v - 0.5; - r = y + (1.402 * v); - g = y - (0.34414 * u) - (0.71414 * v); - b = y + (1.772 * u); - gl_FragColor = vec4(r, g, b, 1.0); -} diff --git a/src/modules/evas/engines/gl_common/shader/yuv_nomul_vert.shd b/src/modules/evas/engines/gl_common/shader/yuv_nomul_vert.shd deleted file mode 100644 index a83d505..0000000 --- a/src/modules/evas/engines/gl_common/shader/yuv_nomul_vert.shd +++ /dev/null @@ -1,14 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec2 tex_coord, tex_coord2, tex_coord3; -uniform mat4 mvp; -varying vec2 tex_c, tex_c2, tex_c3; -void main() -{ - gl_Position = mvp * vertex; - tex_c = tex_coord; - tex_c2 = tex_coord2; - tex_c3 = tex_coord3; -} diff --git a/src/modules/evas/engines/gl_common/shader/yuv_vert.shd b/src/modules/evas/engines/gl_common/shader/yuv_vert.shd deleted file mode 100644 index 0ea0b2f..0000000 --- a/src/modules/evas/engines/gl_common/shader/yuv_vert.shd +++ /dev/null @@ -1,17 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec4 color; -attribute vec2 tex_coord, tex_coord2, tex_coord3; -uniform mat4 mvp; -varying vec4 col; -varying vec2 tex_c, tex_c2, tex_c3; -void main() -{ - gl_Position = mvp * vertex; - col = color; - tex_c = tex_coord; - tex_c2 = tex_coord2; - tex_c3 = tex_coord3; -} diff --git a/src/modules/evas/engines/gl_common/shader/yuy2_frag.shd b/src/modules/evas/engines/gl_common/shader/yuy2_frag.shd deleted file mode 100644 index 98dd91b..0000000 --- a/src/modules/evas/engines/gl_common/shader/yuy2_frag.shd +++ /dev/null @@ -1,30 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#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).r; - 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; - - r=y+v; - g=y-vmu; - b=y+u; - - gl_FragColor=vec4(r,g,b,1.0) * col; -} - diff --git a/src/modules/evas/engines/gl_common/shader/yuy2_mask_frag.shd b/src/modules/evas/engines/gl_common/shader/yuy2_mask_frag.shd deleted file mode 100644 index 899ac1e..0000000 --- a/src/modules/evas/engines/gl_common/shader/yuy2_mask_frag.shd +++ /dev/null @@ -1,30 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#endif -uniform sampler2D tex, texuv, texm; -varying vec4 col; -varying vec2 tex_c, tex_cuv, tex_m; -void main() -{ - float y,u,v,vmu,r,g,b; - y=texture2D(tex,tex_c).r; - 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; - - r=y+v; - g=y-vmu; - b=y+u; - - gl_FragColor = vec4(r,g,b,1.0) * texture2D(texm, tex_m.xy).a * col; -} - diff --git a/src/modules/evas/engines/gl_common/shader/yuy2_mask_vert.shd b/src/modules/evas/engines/gl_common/shader/yuy2_mask_vert.shd deleted file mode 100644 index a4c5cb6..0000000 --- a/src/modules/evas/engines/gl_common/shader/yuy2_mask_vert.shd +++ /dev/null @@ -1,22 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec4 color; -attribute vec4 mask_coord; -attribute vec2 tex_coord, tex_coord2; -uniform mat4 mvp; -varying vec4 col; -varying vec2 tex_c, tex_cuv, tex_m; -void main() -{ - gl_Position = mvp * vertex; - col = color; - tex_c = tex_coord; - tex_cuv = vec2(tex_coord2.x * 0.5, tex_coord2.y); - - // mask_coord.w contains the Y-invert flag - // position on screen in [0..1] range of current pixel - vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 0.5, 0.5) + vec4(0.5, 0.5, 0, 0); - tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy; -} diff --git a/src/modules/evas/engines/gl_common/shader/yuy2_nomul_frag.shd b/src/modules/evas/engines/gl_common/shader/yuy2_nomul_frag.shd deleted file mode 100644 index fd82e2a..0000000 --- a/src/modules/evas/engines/gl_common/shader/yuy2_nomul_frag.shd +++ /dev/null @@ -1,30 +0,0 @@ -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#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).r; - 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); -} - diff --git a/src/modules/evas/engines/gl_common/shader/yuy2_nomul_vert.shd b/src/modules/evas/engines/gl_common/shader/yuy2_nomul_vert.shd deleted file mode 100644 index 05acc9c..0000000 --- a/src/modules/evas/engines/gl_common/shader/yuy2_nomul_vert.shd +++ /dev/null @@ -1,13 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec2 tex_coord, tex_coord2; -uniform mat4 mvp; -varying vec2 tex_c, tex_cuv; -void main() -{ - gl_Position = mvp * vertex; - tex_c = tex_coord; - tex_cuv = vec2(tex_coord2.x * 0.5, tex_coord2.y); -} diff --git a/src/modules/evas/engines/gl_common/shader/yuy2_vert.shd b/src/modules/evas/engines/gl_common/shader/yuy2_vert.shd deleted file mode 100644 index 54efb1e..0000000 --- a/src/modules/evas/engines/gl_common/shader/yuy2_vert.shd +++ /dev/null @@ -1,16 +0,0 @@ -#ifdef GL_ES -precision highp float; -#endif -attribute vec4 vertex; -attribute vec4 color; -attribute vec2 tex_coord, tex_coord2; -uniform mat4 mvp; -varying vec4 col; -varying vec2 tex_c, tex_cuv; -void main() -{ - gl_Position = mvp * vertex; - col = color; - tex_c = tex_coord; - tex_cuv = vec2(tex_coord2.x * 0.5, tex_coord2.y); -} -- 2.7.4