aboutsummaryrefslogtreecommitdiffstats
path: root/src/modules
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules')
-rw-r--r--src/modules/evas/engines/gl_common/evas_gl_common.h3
-rw-r--r--src/modules/evas/engines/gl_common/evas_gl_context.c14
-rw-r--r--src/modules/evas/engines/gl_common/evas_gl_shader.c36
-rw-r--r--src/modules/evas/engines/gl_common/shader/evas_gl_enum.x224
-rw-r--r--src/modules/evas/engines/gl_common/shader/evas_gl_shaders.x6416
-rw-r--r--src/modules/evas/engines/gl_common/shader/evas_gl_shaders_bigendian.x6418
-rwxr-xr-xsrc/modules/evas/engines/gl_common/shader/gen_shaders.sh1
-rw-r--r--src/modules/evas/engines/gl_common/shader/shaders.txt118
8 files changed, 13210 insertions, 20 deletions
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 fbce014fb6..592f975365 100644
--- a/src/modules/evas/engines/gl_common/evas_gl_common.h
+++ b/src/modules/evas/engines/gl_common/evas_gl_common.h
@@ -222,6 +222,7 @@ enum _Shader_Type {
SHD_RECT,
SHD_FONT,
SHD_IMAGE,
+ SHD_IMAGENATIVE,
SHD_YUV,
SHD_YUY2,
SHD_NV12,
@@ -603,7 +604,7 @@ void evas_gl_common_context_image_map_push(Evas_Engine_GL_Context *g
int evas_gl_common_shader_program_init(Evas_GL_Shared *shared);
void evas_gl_common_shader_program_init_done(void);
void evas_gl_common_shader_program_shutdown(Evas_GL_Program *p);
-Evas_GL_Shader evas_gl_common_img_shader_select(Shader_Sampling sam, int nomul, int afill, int bgra, int mask, int masksam);
+Evas_GL_Shader evas_gl_common_img_shader_select(Shader_Type type, Shader_Sampling sam, int nomul, int afill, int bgra, int mask, int masksam);
const char *evas_gl_common_shader_name_get(Evas_GL_Shader shd);
Eina_Bool evas_gl_common_file_cache_is_dir(const char *file);
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 17becda7d5..5e33fbe6e7 100644
--- a/src/modules/evas/engines/gl_common/evas_gl_context.c
+++ b/src/modules/evas/engines/gl_common/evas_gl_context.c
@@ -1541,7 +1541,7 @@ evas_gl_common_shader_select(Evas_Engine_GL_Context *gc,
}
// image downscale sampling
- if (smooth && (type == SHD_IMAGE))
+ if (smooth && ((type == SHD_IMAGE) || (type == SHD_IMAGENATIVE)))
{
if ((sw >= (w * 2)) && (sh >= (h * 2)))
sam = SHD_SAM22;
@@ -1605,13 +1605,11 @@ evas_gl_common_shader_select(Evas_Engine_GL_Context *gc,
{
if (tex->pt->dyn.img)
{
- printf("a... %i\n", (int)tex->alpha);
afill = !tex->alpha;
bgra = 1;
}
else if (tex->im && tex->im->native.target == GL_TEXTURE_EXTERNAL_OES)
{
- printf("b... %i\n", (int)tex->alpha);
type = SHD_TEX_EXTERNAL;
afill = !tex->alpha;
}
@@ -1621,8 +1619,8 @@ evas_gl_common_shader_select(Evas_Engine_GL_Context *gc,
else
bgra = gc_bgra;
- if ((type == SHD_IMAGE) || (type == SHD_MAP))
- shader = evas_gl_common_img_shader_select(sam, nomul, afill, bgra, mask, masksam);
+ if ((type == SHD_IMAGE) || (type == SHD_IMAGENATIVE) || (type == SHD_MAP))
+ shader = evas_gl_common_img_shader_select(type, sam, nomul, afill, bgra, mask, masksam);
else
{
#define SHADERS(name, ...) \
@@ -2090,6 +2088,10 @@ evas_gl_common_context_image_push(Evas_Engine_GL_Context *gc,
int pn = 0, render_op = gc->dc->render_op, nomul = 0;
Shader_Sampling sam = 0, masksam = 0;
int yinvert = 0;
+ Shader_Type shd_in = SHD_IMAGE;
+
+ if ((tex->im) && (tex->im->native.data))
+ shd_in = SHD_IMAGENATIVE;
if (!!mtex)
{
@@ -2100,7 +2102,7 @@ evas_gl_common_context_image_push(Evas_Engine_GL_Context *gc,
else if (!(render_op == EVAS_RENDER_COPY) && ((a < 255) || (tex->alpha)))
blend = EINA_TRUE;
- shader = evas_gl_common_shader_select(gc, SHD_IMAGE, NULL, 0, r, g, b, a,
+ shader = evas_gl_common_shader_select(gc, shd_in, NULL, 0, r, g, b, a,
sw, sh, w, h, smooth, tex, tex_only,
mtex, mask_smooth, mw, mh,
&sam, &nomul, &masksam);
diff --git a/src/modules/evas/engines/gl_common/evas_gl_shader.c b/src/modules/evas/engines/gl_common/evas_gl_shader.c
index bbff64ba98..07bf314770 100644
--- a/src/modules/evas/engines/gl_common/evas_gl_shader.c
+++ b/src/modules/evas/engines/gl_common/evas_gl_shader.c
@@ -357,16 +357,16 @@ evas_gl_common_shader_program_shutdown(Evas_GL_Program *p)
}
Evas_GL_Shader
-evas_gl_common_img_shader_select(Shader_Sampling sam, int nomul, int afill, int bgra, int mask, int masksam)
+evas_gl_common_img_shader_select(Shader_Type type, Shader_Sampling sam, int nomul, int afill, int bgra, int mask, int masksam)
{
// 256 combinaisons including many impossible
- static Evas_GL_Shader _shaders[4 * 2 * 2 * 2 * 2 * 4];
+ static Evas_GL_Shader _shaders[4 * 2 * 2 * 2 * 2 * 4 * 2];
static Eina_Bool init = EINA_FALSE;
int idx;
if (EINA_UNLIKELY(!init))
{
- unsigned k;
+ unsigned int k;
init = EINA_TRUE;
for (k = 0; k < (sizeof(_shaders) / sizeof(_shaders[0])); k++)
@@ -374,14 +374,27 @@ evas_gl_common_img_shader_select(Shader_Sampling sam, int nomul, int afill, int
for (k = 0; k < (sizeof(_shaders_source) / sizeof(_shaders_source[0])); k++)
{
- if (_shaders_source[k].type != SHD_IMAGE) continue;
- idx = _shaders_source[k].sam << 6; // 2 bits
- idx |= _shaders_source[k].masksam << 4; // 2 bits
- idx |= _shaders_source[k].bgra << 3; // bool
- idx |= _shaders_source[k].mask << 2; // bool
- idx |= _shaders_source[k].nomul << 1; // bool
- idx |= _shaders_source[k].afill; // bool
- _shaders[idx] = _shaders_source[k].id;
+ if (_shaders_source[k].type == SHD_IMAGE)
+ {
+ idx = _shaders_source[k].sam << 6; // 2 bits
+ idx |= _shaders_source[k].masksam << 4; // 2 bits
+ idx |= _shaders_source[k].bgra << 3; // bool
+ idx |= _shaders_source[k].mask << 2; // bool
+ idx |= _shaders_source[k].nomul << 1; // bool
+ idx |= _shaders_source[k].afill; // bool
+ _shaders[idx] = _shaders_source[k].id;
+ }
+ else if (_shaders_source[k].type == SHD_IMAGENATIVE)
+ {
+ idx = _shaders_source[k].sam << 6; // 2 bits
+ idx |= _shaders_source[k].masksam << 4; // 2 bits
+ idx |= _shaders_source[k].bgra << 3; // bool
+ idx |= _shaders_source[k].mask << 2; // bool
+ idx |= _shaders_source[k].nomul << 1; // bool
+ idx |= _shaders_source[k].afill; // bool
+ idx += (4 * 2 * 2 * 2 * 2 * 4);
+ _shaders[idx] = _shaders_source[k].id;
+ }
}
}
@@ -391,6 +404,7 @@ evas_gl_common_img_shader_select(Shader_Sampling sam, int nomul, int afill, int
idx |= mask << 2;
idx |= nomul << 1;
idx |= afill;
+ if (type == SHD_IMAGENATIVE) idx += (4 * 2 * 2 * 2 * 2 * 4);
return _shaders[idx];
}
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 e747d00007..41d372ac74 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
@@ -108,6 +108,102 @@ typedef enum {
SHADER_IMG_12_BGRA_NOMUL_AFILL,
SHADER_IMG_21_BGRA_NOMUL_AFILL,
SHADER_IMG_22_BGRA_NOMUL_AFILL,
+ SHADER_IMGNAT,
+ SHADER_IMGNAT_BGRA,
+ SHADER_IMGNAT_12,
+ SHADER_IMGNAT_21,
+ SHADER_IMGNAT_22,
+ SHADER_IMGNAT_12_BGRA,
+ SHADER_IMGNAT_21_BGRA,
+ SHADER_IMGNAT_22_BGRA,
+ SHADER_IMGNAT_MASK,
+ SHADER_IMGNAT_BGRA_MASK,
+ SHADER_IMGNAT_12_MASK,
+ SHADER_IMGNAT_21_MASK,
+ SHADER_IMGNAT_22_MASK,
+ SHADER_IMGNAT_12_BGRA_MASK,
+ SHADER_IMGNAT_21_BGRA_MASK,
+ SHADER_IMGNAT_22_BGRA_MASK,
+ SHADER_IMGNAT_NOMUL,
+ SHADER_IMGNAT_BGRA_NOMUL,
+ SHADER_IMGNAT_12_NOMUL,
+ SHADER_IMGNAT_21_NOMUL,
+ SHADER_IMGNAT_22_NOMUL,
+ SHADER_IMGNAT_12_BGRA_NOMUL,
+ SHADER_IMGNAT_21_BGRA_NOMUL,
+ SHADER_IMGNAT_22_BGRA_NOMUL,
+ SHADER_IMGNAT_MASK_NOMUL,
+ SHADER_IMGNAT_BGRA_MASK_NOMUL,
+ SHADER_IMGNAT_12_MASK_NOMUL,
+ SHADER_IMGNAT_21_MASK_NOMUL,
+ SHADER_IMGNAT_22_MASK_NOMUL,
+ SHADER_IMGNAT_12_BGRA_MASK_NOMUL,
+ SHADER_IMGNAT_21_BGRA_MASK_NOMUL,
+ SHADER_IMGNAT_22_BGRA_MASK_NOMUL,
+ SHADER_IMGNAT_MASK12,
+ SHADER_IMGNAT_BGRA_MASK12,
+ SHADER_IMGNAT_12_MASK12,
+ SHADER_IMGNAT_21_MASK12,
+ SHADER_IMGNAT_22_MASK12,
+ SHADER_IMGNAT_12_BGRA_MASK12,
+ SHADER_IMGNAT_21_BGRA_MASK12,
+ SHADER_IMGNAT_22_BGRA_MASK12,
+ SHADER_IMGNAT_MASK12_NOMUL,
+ SHADER_IMGNAT_BGRA_MASK12_NOMUL,
+ SHADER_IMGNAT_12_MASK12_NOMUL,
+ SHADER_IMGNAT_21_MASK12_NOMUL,
+ SHADER_IMGNAT_22_MASK12_NOMUL,
+ SHADER_IMGNAT_12_BGRA_MASK12_NOMUL,
+ SHADER_IMGNAT_21_BGRA_MASK12_NOMUL,
+ SHADER_IMGNAT_22_BGRA_MASK12_NOMUL,
+ SHADER_IMGNAT_MASK21,
+ SHADER_IMGNAT_BGRA_MASK21,
+ SHADER_IMGNAT_12_MASK21,
+ SHADER_IMGNAT_21_MASK21,
+ SHADER_IMGNAT_22_MASK21,
+ SHADER_IMGNAT_12_BGRA_MASK21,
+ SHADER_IMGNAT_21_BGRA_MASK21,
+ SHADER_IMGNAT_22_BGRA_MASK21,
+ SHADER_IMGNAT_MASK21_NOMUL,
+ SHADER_IMGNAT_BGRA_MASK21_NOMUL,
+ SHADER_IMGNAT_12_MASK21_NOMUL,
+ SHADER_IMGNAT_21_MASK21_NOMUL,
+ SHADER_IMGNAT_22_MASK21_NOMUL,
+ SHADER_IMGNAT_12_BGRA_MASK21_NOMUL,
+ SHADER_IMGNAT_21_BGRA_MASK21_NOMUL,
+ SHADER_IMGNAT_22_BGRA_MASK21_NOMUL,
+ SHADER_IMGNAT_MASK22,
+ SHADER_IMGNAT_BGRA_MASK22,
+ SHADER_IMGNAT_12_MASK22,
+ SHADER_IMGNAT_21_MASK22,
+ SHADER_IMGNAT_22_MASK22,
+ SHADER_IMGNAT_12_BGRA_MASK22,
+ SHADER_IMGNAT_21_BGRA_MASK22,
+ SHADER_IMGNAT_22_BGRA_MASK22,
+ SHADER_IMGNAT_MASK22_NOMUL,
+ SHADER_IMGNAT_BGRA_MASK22_NOMUL,
+ SHADER_IMGNAT_12_MASK22_NOMUL,
+ SHADER_IMGNAT_21_MASK22_NOMUL,
+ SHADER_IMGNAT_22_MASK22_NOMUL,
+ SHADER_IMGNAT_12_BGRA_MASK22_NOMUL,
+ SHADER_IMGNAT_21_BGRA_MASK22_NOMUL,
+ SHADER_IMGNAT_22_BGRA_MASK22_NOMUL,
+ SHADER_IMGNAT_AFILL,
+ SHADER_IMGNAT_BGRA_AFILL,
+ SHADER_IMGNAT_NOMUL_AFILL,
+ SHADER_IMGNAT_BGRA_NOMUL_AFILL,
+ SHADER_IMGNAT_12_AFILL,
+ SHADER_IMGNAT_21_AFILL,
+ SHADER_IMGNAT_22_AFILL,
+ SHADER_IMGNAT_12_BGRA_AFILL,
+ SHADER_IMGNAT_21_BGRA_AFILL,
+ SHADER_IMGNAT_22_BGRA_AFILL,
+ SHADER_IMGNAT_12_NOMUL_AFILL,
+ SHADER_IMGNAT_21_NOMUL_AFILL,
+ SHADER_IMGNAT_22_NOMUL_AFILL,
+ SHADER_IMGNAT_12_BGRA_NOMUL_AFILL,
+ SHADER_IMGNAT_21_BGRA_NOMUL_AFILL,
+ SHADER_IMGNAT_22_BGRA_NOMUL_AFILL,
SHADER_RGB_A_PAIR,
SHADER_RGB_A_PAIR_MASK,
SHADER_RGB_A_PAIR_NOMUL,
@@ -287,6 +383,134 @@ static struct {
{ SHADER_IMG_21_BGRA_MASK22_NOMUL, "texm" },
{ SHADER_IMG_22_BGRA_MASK22_NOMUL, "tex" },
{ SHADER_IMG_22_BGRA_MASK22_NOMUL, "texm" },
+ { SHADER_IMGNAT_MASK, "tex" },
+ { SHADER_IMGNAT_MASK, "texm" },
+ { SHADER_IMGNAT_BGRA_MASK, "tex" },
+ { SHADER_IMGNAT_BGRA_MASK, "texm" },
+ { SHADER_IMGNAT_12_MASK, "tex" },
+ { SHADER_IMGNAT_12_MASK, "texm" },
+ { SHADER_IMGNAT_21_MASK, "tex" },
+ { SHADER_IMGNAT_21_MASK, "texm" },
+ { SHADER_IMGNAT_22_MASK, "tex" },
+ { SHADER_IMGNAT_22_MASK, "texm" },
+ { SHADER_IMGNAT_12_BGRA_MASK, "tex" },
+ { SHADER_IMGNAT_12_BGRA_MASK, "texm" },
+ { SHADER_IMGNAT_21_BGRA_MASK, "tex" },
+ { SHADER_IMGNAT_21_BGRA_MASK, "texm" },
+ { SHADER_IMGNAT_22_BGRA_MASK, "tex" },
+ { SHADER_IMGNAT_22_BGRA_MASK, "texm" },
+ { SHADER_IMGNAT_MASK_NOMUL, "tex" },
+ { SHADER_IMGNAT_MASK_NOMUL, "texm" },
+ { SHADER_IMGNAT_BGRA_MASK_NOMUL, "tex" },
+ { SHADER_IMGNAT_BGRA_MASK_NOMUL, "texm" },
+ { SHADER_IMGNAT_12_MASK_NOMUL, "tex" },
+ { SHADER_IMGNAT_12_MASK_NOMUL, "texm" },
+ { SHADER_IMGNAT_21_MASK_NOMUL, "tex" },
+ { SHADER_IMGNAT_21_MASK_NOMUL, "texm" },
+ { SHADER_IMGNAT_22_MASK_NOMUL, "tex" },
+ { SHADER_IMGNAT_22_MASK_NOMUL, "texm" },
+ { SHADER_IMGNAT_12_BGRA_MASK_NOMUL, "tex" },
+ { SHADER_IMGNAT_12_BGRA_MASK_NOMUL, "texm" },
+ { SHADER_IMGNAT_21_BGRA_MASK_NOMUL, "tex" },
+ { SHADER_IMGNAT_21_BGRA_MASK_NOMUL, "texm" },
+ { SHADER_IMGNAT_22_BGRA_MASK_NOMUL, "tex" },
+ { SHADER_IMGNAT_22_BGRA_MASK_NOMUL, "texm" },
+ { SHADER_IMGNAT_MASK12, "tex" },
+ { SHADER_IMGNAT_MASK12, "texm" },
+ { SHADER_IMGNAT_BGRA_MASK12, "tex" },
+ { SHADER_IMGNAT_BGRA_MASK12, "texm" },
+ { SHADER_IMGNAT_12_MASK12, "tex" },
+ { SHADER_IMGNAT_12_MASK12, "texm" },
+ { SHADER_IMGNAT_21_MASK12, "tex" },
+ { SHADER_IMGNAT_21_MASK12, "texm" },
+ { SHADER_IMGNAT_22_MASK12, "tex" },
+ { SHADER_IMGNAT_22_MASK12, "texm" },
+ { SHADER_IMGNAT_12_BGRA_MASK12, "tex" },
+ { SHADER_IMGNAT_12_BGRA_MASK12, "texm" },
+ { SHADER_IMGNAT_21_BGRA_MASK12, "tex" },
+ { SHADER_IMGNAT_21_BGRA_MASK12, "texm" },
+ { SHADER_IMGNAT_22_BGRA_MASK12, "tex" },
+ { SHADER_IMGNAT_22_BGRA_MASK12, "texm" },
+ { SHADER_IMGNAT_MASK12_NOMUL, "tex" },
+ { SHADER_IMGNAT_MASK12_NOMUL, "texm" },
+ { SHADER_IMGNAT_BGRA_MASK12_NOMUL, "tex" },
+ { SHADER_IMGNAT_BGRA_MASK12_NOMUL, "texm" },
+ { SHADER_IMGNAT_12_MASK12_NOMUL, "tex" },
+ { SHADER_IMGNAT_12_MASK12_NOMUL, "texm" },
+ { SHADER_IMGNAT_21_MASK12_NOMUL, "tex" },
+ { SHADER_IMGNAT_21_MASK12_NOMUL, "texm" },
+ { SHADER_IMGNAT_22_MASK12_NOMUL, "tex" },
+ { SHADER_IMGNAT_22_MASK12_NOMUL, "texm" },
+ { SHADER_IMGNAT_12_BGRA_MASK12_NOMUL, "tex" },
+ { SHADER_IMGNAT_12_BGRA_MASK12_NOMUL, "texm" },
+ { SHADER_IMGNAT_21_BGRA_MASK12_NOMUL, "tex" },
+ { SHADER_IMGNAT_21_BGRA_MASK12_NOMUL, "texm" },
+ { SHADER_IMGNAT_22_BGRA_MASK12_NOMUL, "tex" },
+ { SHADER_IMGNAT_22_BGRA_MASK12_NOMUL, "texm" },
+ { SHADER_IMGNAT_MASK21, "tex" },
+ { SHADER_IMGNAT_MASK21, "texm" },
+ { SHADER_IMGNAT_BGRA_MASK21, "tex" },
+ { SHADER_IMGNAT_BGRA_MASK21, "texm" },
+ { SHADER_IMGNAT_12_MASK21, "tex" },
+ { SHADER_IMGNAT_12_MASK21, "texm" },
+ { SHADER_IMGNAT_21_MASK21, "tex" },
+ { SHADER_IMGNAT_21_MASK21, "texm" },
+ { SHADER_IMGNAT_22_MASK21, "tex" },
+ { SHADER_IMGNAT_22_MASK21, "texm" },
+ { SHADER_IMGNAT_12_BGRA_MASK21, "tex" },
+ { SHADER_IMGNAT_12_BGRA_MASK21, "texm" },
+ { SHADER_IMGNAT_21_BGRA_MASK21, "tex" },
+ { SHADER_IMGNAT_21_BGRA_MASK21, "texm" },
+ { SHADER_IMGNAT_22_BGRA_MASK21, "tex" },
+ { SHADER_IMGNAT_22_BGRA_MASK21, "texm" },
+ { SHADER_IMGNAT_MASK21_NOMUL, "tex" },
+ { SHADER_IMGNAT_MASK21_NOMUL, "texm" },
+ { SHADER_IMGNAT_BGRA_MASK21_NOMUL, "tex" },
+ { SHADER_IMGNAT_BGRA_MASK21_NOMUL, "texm" },
+ { SHADER_IMGNAT_12_MASK21_NOMUL, "tex" },
+ { SHADER_IMGNAT_12_MASK21_NOMUL, "texm" },
+ { SHADER_IMGNAT_21_MASK21_NOMUL, "tex" },
+ { SHADER_IMGNAT_21_MASK21_NOMUL, "texm" },
+ { SHADER_IMGNAT_22_MASK21_NOMUL, "tex" },
+ { SHADER_IMGNAT_22_MASK21_NOMUL, "texm" },
+ { SHADER_IMGNAT_12_BGRA_MASK21_NOMUL, "tex" },
+ { SHADER_IMGNAT_12_BGRA_MASK21_NOMUL, "texm" },
+ { SHADER_IMGNAT_21_BGRA_MASK21_NOMUL, "tex" },
+ { SHADER_IMGNAT_21_BGRA_MASK21_NOMUL, "texm" },
+ { SHADER_IMGNAT_22_BGRA_MASK21_NOMUL, "tex" },
+ { SHADER_IMGNAT_22_BGRA_MASK21_NOMUL, "texm" },
+ { SHADER_IMGNAT_MASK22, "tex" },
+ { SHADER_IMGNAT_MASK22, "texm" },
+ { SHADER_IMGNAT_BGRA_MASK22, "tex" },
+ { SHADER_IMGNAT_BGRA_MASK22, "texm" },
+ { SHADER_IMGNAT_12_MASK22, "tex" },
+ { SHADER_IMGNAT_12_MASK22, "texm" },
+ { SHADER_IMGNAT_21_MASK22, "tex" },
+ { SHADER_IMGNAT_21_MASK22, "texm" },
+ { SHADER_IMGNAT_22_MASK22, "tex" },
+ { SHADER_IMGNAT_22_MASK22, "texm" },
+ { SHADER_IMGNAT_12_BGRA_MASK22, "tex" },
+ { SHADER_IMGNAT_12_BGRA_MASK22, "texm" },
+ { SHADER_IMGNAT_21_BGRA_MASK22, "tex" },
+ { SHADER_IMGNAT_21_BGRA_MASK22, "texm" },
+ { SHADER_IMGNAT_22_BGRA_MASK22, "tex" },
+ { SHADER_IMGNAT_22_BGRA_MASK22, "texm" },
+ { SHADER_IMGNAT_MASK22_NOMUL, "tex" },
+ { SHADER_IMGNAT_MASK22_NOMUL, "texm" },
+ { SHADER_IMGNAT_BGRA_MASK22_NOMUL, "tex" },
+ { SHADER_IMGNAT_BGRA_MASK22_NOMUL, "texm" },
+ { SHADER_IMGNAT_12_MASK22_NOMUL, "tex" },
+ { SHADER_IMGNAT_12_MASK22_NOMUL, "texm" },
+ { SHADER_IMGNAT_21_MASK22_NOMUL, "tex" },
+ { SHADER_IMGNAT_21_MASK22_NOMUL, "texm" },
+ { SHADER_IMGNAT_22_MASK22_NOMUL, "tex" },
+ { SHADER_IMGNAT_22_MASK22_NOMUL, "texm" },
+ { SHADER_IMGNAT_12_BGRA_MASK22_NOMUL, "tex" },
+ { SHADER_IMGNAT_12_BGRA_MASK22_NOMUL, "texm" },
+ { SHADER_IMGNAT_21_BGRA_MASK22_NOMUL, "tex" },
+ { SHADER_IMGNAT_21_BGRA_MASK22_NOMUL, "texm" },
+ { SHADER_IMGNAT_22_BGRA_MASK22_NOMUL, "tex" },
+ { SHADER_IMGNAT_22_BGRA_MASK22_NOMUL, "texm" },
{ SHADER_RGB_A_PAIR, "tex" },
{ SHADER_RGB_A_PAIR, "texa" },
{ SHADER_RGB_A_PAIR_MASK, "tex" },
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 871cca649d..ae846895d0 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
@@ -6918,6 +6918,6326 @@ Evas_GL_Program_Source shader_img_22_bgra_nomul_afill_vert_src =
NULL, 0
};
+static const char imgnat_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"
+ "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_imgnat_frag_src =
+{
+ imgnat_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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"
+ "void main()\n"
+ "{\n"
+ " gl_Position = mvp * vertex;\n"
+ " col = color;\n"
+ " tex_c = tex_coord;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_vert_src =
+{
+ imgnat_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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"
+ "void main()\n"
+ "{\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_imgnat_bgra_frag_src =
+{
+ imgnat_bgra_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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"
+ "void main()\n"
+ "{\n"
+ " gl_Position = mvp * vertex;\n"
+ " col = color;\n"
+ " tex_c = tex_coord;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_bgra_vert_src =
+{
+ imgnat_bgra_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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"
+ "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]).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_imgnat_12_frag_src =
+{
+ imgnat_12_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_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_imgnat_12_vert_src =
+{
+ imgnat_12_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_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]).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_imgnat_21_frag_src =
+{
+ imgnat_21_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_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_imgnat_21_vert_src =
+{
+ imgnat_21_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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"
+ "#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_imgnat_22_frag_src =
+{
+ imgnat_22_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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_imgnat_22_vert_src =
+{
+ imgnat_22_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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_imgnat_12_bgra_frag_src =
+{
+ imgnat_12_bgra_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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_imgnat_12_bgra_vert_src =
+{
+ imgnat_12_bgra_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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_imgnat_21_bgra_frag_src =
+{
+ imgnat_21_bgra_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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_imgnat_21_bgra_vert_src =
+{
+ imgnat_21_bgra_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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_imgnat_22_bgra_frag_src =
+{
+ imgnat_22_bgra_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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_imgnat_22_bgra_vert_src =
+{
+ imgnat_22_bgra_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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"
+ " float ma;\n"
+ " ma = texture2D(texm, tex_m).a;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_mask_frag_src =
+{
+ imgnat_mask_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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_imgnat_mask_vert_src =
+{
+ imgnat_mask_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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"
+ " float ma;\n"
+ " ma = texture2D(texm, tex_m).a;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_bgra_mask_frag_src =
+{
+ imgnat_bgra_mask_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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_imgnat_bgra_mask_vert_src =
+{
+ imgnat_bgra_mask_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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"
+ " float ma;\n"
+ " ma = texture2D(texm, tex_m).a;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_12_mask_frag_src =
+{
+ imgnat_12_mask_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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_imgnat_12_mask_vert_src =
+{
+ imgnat_12_mask_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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"
+ " float ma;\n"
+ " ma = texture2D(texm, tex_m).a;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_21_mask_frag_src =
+{
+ imgnat_21_mask_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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_imgnat_21_mask_vert_src =
+{
+ imgnat_21_mask_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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"
+ " float ma;\n"
+ " ma = texture2D(texm, tex_m).a;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_22_mask_frag_src =
+{
+ imgnat_22_mask_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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_imgnat_22_mask_vert_src =
+{
+ imgnat_22_mask_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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"
+ " float ma;\n"
+ " ma = texture2D(texm, tex_m).a;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_12_bgra_mask_frag_src =
+{
+ imgnat_12_bgra_mask_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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_imgnat_12_bgra_mask_vert_src =
+{
+ imgnat_12_bgra_mask_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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"
+ " float ma;\n"
+ " ma = texture2D(texm, tex_m).a;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_21_bgra_mask_frag_src =
+{
+ imgnat_21_bgra_mask_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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_imgnat_21_bgra_mask_vert_src =
+{
+ imgnat_21_bgra_mask_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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"
+ " float ma;\n"
+ " ma = texture2D(texm, tex_m).a;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_22_bgra_mask_frag_src =
+{
+ imgnat_22_bgra_mask_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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_imgnat_22_bgra_mask_vert_src =
+{
+ imgnat_22_bgra_mask_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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_imgnat_nomul_frag_src =
+{
+ imgnat_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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_imgnat_nomul_vert_src =
+{
+ imgnat_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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_imgnat_bgra_nomul_frag_src =
+{
+ imgnat_bgra_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_bgra_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_imgnat_bgra_nomul_vert_src =
+{
+ imgnat_bgra_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_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"
+ "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"
+ " c = (col00 + col01) / div_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_12_nomul_frag_src =
+{
+ imgnat_12_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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_imgnat_12_nomul_vert_src =
+{
+ imgnat_12_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_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"
+ "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"
+ " c = (col00 + col01) / div_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_21_nomul_frag_src =
+{
+ imgnat_21_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_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(-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_imgnat_21_nomul_vert_src =
+{
+ imgnat_21_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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"
+ "#endif\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"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_22_nomul_frag_src =
+{
+ imgnat_22_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_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[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"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_22_nomul_vert_src =
+{
+ imgnat_22_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_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"
+ "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"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_12_bgra_nomul_frag_src =
+{
+ imgnat_12_bgra_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_bgra_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_imgnat_12_bgra_nomul_vert_src =
+{
+ imgnat_12_bgra_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_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"
+ "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"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_21_bgra_nomul_frag_src =
+{
+ imgnat_21_bgra_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_bgra_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(-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_imgnat_21_bgra_nomul_vert_src =
+{
+ imgnat_21_bgra_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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"
+ "#endif\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"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_22_bgra_nomul_frag_src =
+{
+ imgnat_22_bgra_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_bgra_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[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"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_22_bgra_nomul_vert_src =
+{
+ imgnat_22_bgra_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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"
+ "#endif\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"
+ " float ma;\n"
+ " ma = texture2D(texm, tex_m).a;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_mask_nomul_frag_src =
+{
+ imgnat_mask_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_mask_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 vec4 mask_coord;\n"
+ "varying vec2 tex_m;\n"
+ "void main()\n"
+ "{\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_imgnat_mask_nomul_vert_src =
+{
+ imgnat_mask_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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"
+ "#endif\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"
+ " float ma;\n"
+ " ma = texture2D(texm, tex_m).a;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_bgra_mask_nomul_frag_src =
+{
+ imgnat_bgra_mask_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_bgra_mask_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 vec4 mask_coord;\n"
+ "varying vec2 tex_m;\n"
+ "void main()\n"
+ "{\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_imgnat_bgra_mask_nomul_vert_src =
+{
+ imgnat_bgra_mask_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_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"
+ "#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"
+ " 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"
+ " float ma;\n"
+ " ma = texture2D(texm, tex_m).a;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_12_mask_nomul_frag_src =
+{
+ imgnat_12_mask_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_mask_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"
+ "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_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_imgnat_12_mask_nomul_vert_src =
+{
+ imgnat_12_mask_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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"
+ "#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"
+ " 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"
+ " float ma;\n"
+ " ma = texture2D(texm, tex_m).a;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_21_mask_nomul_frag_src =
+{
+ imgnat_21_mask_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_mask_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"
+ "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_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_imgnat_21_mask_nomul_vert_src =
+{
+ imgnat_21_mask_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_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"
+ "#endif\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"
+ " float ma;\n"
+ " ma = texture2D(texm, tex_m).a;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_22_mask_nomul_frag_src =
+{
+ imgnat_22_mask_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_mask_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[4];\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_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_imgnat_22_mask_nomul_vert_src =
+{
+ imgnat_22_mask_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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"
+ "#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"
+ " 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"
+ " float ma;\n"
+ " ma = texture2D(texm, tex_m).a;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_12_bgra_mask_nomul_frag_src =
+{
+ imgnat_12_bgra_mask_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_bgra_mask_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"
+ "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_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_imgnat_12_bgra_mask_nomul_vert_src =
+{
+ imgnat_12_bgra_mask_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_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"
+ "#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"
+ " 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"
+ " float ma;\n"
+ " ma = texture2D(texm, tex_m).a;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_21_bgra_mask_nomul_frag_src =
+{
+ imgnat_21_bgra_mask_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_bgra_mask_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"
+ "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_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_imgnat_21_bgra_mask_nomul_vert_src =
+{
+ imgnat_21_bgra_mask_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_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"
+ "#endif\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"
+ " float ma;\n"
+ " ma = texture2D(texm, tex_m).a;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_22_bgra_mask_nomul_frag_src =
+{
+ imgnat_22_bgra_mask_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_bgra_mask_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[4];\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_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_imgnat_22_bgra_mask_nomul_vert_src =
+{
+ imgnat_22_bgra_mask_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_mask12_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"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[2];\n"
+ "void main()\n"
+ "{\n"
+ " vec4 c;\n"
+ " c = texture2D(tex, tex_c).bgra;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_mask12_frag_src =
+{
+ imgnat_mask12_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_mask12_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"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[2];\n"
+ "void main()\n"
+ "{\n"
+ " gl_Position = mvp * vertex;\n"
+ " col = color;\n"
+ " tex_c = tex_coord;\n"
+ " masktex_s[0] = vec2(0, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2(0, tex_masksample.y);\n"
+ " maskdiv_s = 2.0;\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_imgnat_mask12_vert_src =
+{
+ imgnat_mask12_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_bgra_mask12_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"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[2];\n"
+ "void main()\n"
+ "{\n"
+ " vec4 c;\n"
+ " c = texture2D(tex, tex_c).rgba;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_bgra_mask12_frag_src =
+{
+ imgnat_bgra_mask12_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_bgra_mask12_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"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[2];\n"
+ "void main()\n"
+ "{\n"
+ " gl_Position = mvp * vertex;\n"
+ " col = color;\n"
+ " tex_c = tex_coord;\n"
+ " masktex_s[0] = vec2(0, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2(0, tex_masksample.y);\n"
+ " maskdiv_s = 2.0;\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_imgnat_bgra_mask12_vert_src =
+{
+ imgnat_bgra_mask12_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_mask12_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"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " c = (col00 + col01) / div_s;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_12_mask12_frag_src =
+{
+ imgnat_12_mask12_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_mask12_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"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(0, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2(0, tex_masksample.y);\n"
+ " maskdiv_s = 2.0;\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_imgnat_12_mask12_vert_src =
+{
+ imgnat_12_mask12_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_mask12_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"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " c = (col00 + col01) / div_s;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_21_mask12_frag_src =
+{
+ imgnat_21_mask12_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_mask12_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"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(0, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2(0, tex_masksample.y);\n"
+ " maskdiv_s = 2.0;\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_imgnat_21_mask12_vert_src =
+{
+ imgnat_21_mask12_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_mask12_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"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " 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"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_22_mask12_frag_src =
+{
+ imgnat_22_mask12_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_mask12_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"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(0, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2(0, tex_masksample.y);\n"
+ " maskdiv_s = 2.0;\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_imgnat_22_mask12_vert_src =
+{
+ imgnat_22_mask12_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_bgra_mask12_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"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_12_bgra_mask12_frag_src =
+{
+ imgnat_12_bgra_mask12_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_bgra_mask12_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"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(0, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2(0, tex_masksample.y);\n"
+ " maskdiv_s = 2.0;\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_imgnat_12_bgra_mask12_vert_src =
+{
+ imgnat_12_bgra_mask12_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_bgra_mask12_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"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_21_bgra_mask12_frag_src =
+{
+ imgnat_21_bgra_mask12_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_bgra_mask12_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"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(0, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2(0, tex_masksample.y);\n"
+ " maskdiv_s = 2.0;\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_imgnat_21_bgra_mask12_vert_src =
+{
+ imgnat_21_bgra_mask12_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_bgra_mask12_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"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " 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"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_22_bgra_mask12_frag_src =
+{
+ imgnat_22_bgra_mask12_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_bgra_mask12_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"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(0, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2(0, tex_masksample.y);\n"
+ " maskdiv_s = 2.0;\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_imgnat_22_bgra_mask12_vert_src =
+{
+ imgnat_22_bgra_mask12_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_mask12_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"
+ "uniform sampler2D texm;\n"
+ "varying vec2 tex_m;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[2];\n"
+ "void main()\n"
+ "{\n"
+ " vec4 c;\n"
+ " c = texture2D(tex, tex_c).bgra;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_mask12_nomul_frag_src =
+{
+ imgnat_mask12_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_mask12_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 vec4 mask_coord;\n"
+ "varying vec2 tex_m;\n"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[2];\n"
+ "void main()\n"
+ "{\n"
+ " gl_Position = mvp * vertex;\n"
+ " tex_c = tex_coord;\n"
+ " masktex_s[0] = vec2(0, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2(0, tex_masksample.y);\n"
+ " maskdiv_s = 2.0;\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_imgnat_mask12_nomul_vert_src =
+{
+ imgnat_mask12_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_bgra_mask12_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"
+ "uniform sampler2D texm;\n"
+ "varying vec2 tex_m;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[2];\n"
+ "void main()\n"
+ "{\n"
+ " vec4 c;\n"
+ " c = texture2D(tex, tex_c).rgba;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_bgra_mask12_nomul_frag_src =
+{
+ imgnat_bgra_mask12_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_bgra_mask12_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 vec4 mask_coord;\n"
+ "varying vec2 tex_m;\n"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[2];\n"
+ "void main()\n"
+ "{\n"
+ " gl_Position = mvp * vertex;\n"
+ " tex_c = tex_coord;\n"
+ " masktex_s[0] = vec2(0, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2(0, tex_masksample.y);\n"
+ " maskdiv_s = 2.0;\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_imgnat_bgra_mask12_nomul_vert_src =
+{
+ imgnat_bgra_mask12_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_mask12_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"
+ "varying vec4 div_s;\n"
+ "varying vec2 tex_s[2];\n"
+ "uniform sampler2D texm;\n"
+ "varying vec2 tex_m;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " c = (col00 + col01) / div_s;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_12_mask12_nomul_frag_src =
+{
+ imgnat_12_mask12_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_mask12_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"
+ "attribute vec4 mask_coord;\n"
+ "varying vec2 tex_m;\n"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(0, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2(0, tex_masksample.y);\n"
+ " maskdiv_s = 2.0;\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_imgnat_12_mask12_nomul_vert_src =
+{
+ imgnat_12_mask12_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_mask12_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"
+ "varying vec4 div_s;\n"
+ "varying vec2 tex_s[2];\n"
+ "uniform sampler2D texm;\n"
+ "varying vec2 tex_m;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " c = (col00 + col01) / div_s;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_21_mask12_nomul_frag_src =
+{
+ imgnat_21_mask12_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_mask12_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"
+ "attribute vec4 mask_coord;\n"
+ "varying vec2 tex_m;\n"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[2];\n"
+ "void main()\n"
+ "{\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"
+ " masktex_s[0] = vec2(0, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2(0, tex_masksample.y);\n"
+ " maskdiv_s = 2.0;\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_imgnat_21_mask12_nomul_vert_src =
+{
+ imgnat_21_mask12_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_mask12_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"
+ "varying vec4 div_s;\n"
+ "varying vec2 tex_s[4];\n"
+ "uniform sampler2D texm;\n"
+ "varying vec2 tex_m;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " 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"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_22_mask12_nomul_frag_src =
+{
+ imgnat_22_mask12_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_mask12_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[4];\n"
+ "attribute vec4 mask_coord;\n"
+ "varying vec2 tex_m;\n"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(0, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2(0, tex_masksample.y);\n"
+ " maskdiv_s = 2.0;\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_imgnat_22_mask12_nomul_vert_src =
+{
+ imgnat_22_mask12_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_bgra_mask12_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"
+ "varying vec4 div_s;\n"
+ "varying vec2 tex_s[2];\n"
+ "uniform sampler2D texm;\n"
+ "varying vec2 tex_m;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_12_bgra_mask12_nomul_frag_src =
+{
+ imgnat_12_bgra_mask12_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_bgra_mask12_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"
+ "attribute vec4 mask_coord;\n"
+ "varying vec2 tex_m;\n"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(0, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2(0, tex_masksample.y);\n"
+ " maskdiv_s = 2.0;\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_imgnat_12_bgra_mask12_nomul_vert_src =
+{
+ imgnat_12_bgra_mask12_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_bgra_mask12_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"
+ "varying vec4 div_s;\n"
+ "varying vec2 tex_s[2];\n"
+ "uniform sampler2D texm;\n"
+ "varying vec2 tex_m;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_21_bgra_mask12_nomul_frag_src =
+{
+ imgnat_21_bgra_mask12_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_bgra_mask12_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"
+ "attribute vec4 mask_coord;\n"
+ "varying vec2 tex_m;\n"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[2];\n"
+ "void main()\n"
+ "{\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"
+ " masktex_s[0] = vec2(0, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2(0, tex_masksample.y);\n"
+ " maskdiv_s = 2.0;\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_imgnat_21_bgra_mask12_nomul_vert_src =
+{
+ imgnat_21_bgra_mask12_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_bgra_mask12_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"
+ "varying vec4 div_s;\n"
+ "varying vec2 tex_s[4];\n"
+ "uniform sampler2D texm;\n"
+ "varying vec2 tex_m;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " 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"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_22_bgra_mask12_nomul_frag_src =
+{
+ imgnat_22_bgra_mask12_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_bgra_mask12_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[4];\n"
+ "attribute vec4 mask_coord;\n"
+ "varying vec2 tex_m;\n"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(0, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2(0, tex_masksample.y);\n"
+ " maskdiv_s = 2.0;\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_imgnat_22_bgra_mask12_nomul_vert_src =
+{
+ imgnat_22_bgra_mask12_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_mask21_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"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[2];\n"
+ "void main()\n"
+ "{\n"
+ " vec4 c;\n"
+ " c = texture2D(tex, tex_c).bgra;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_mask21_frag_src =
+{
+ imgnat_mask21_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_mask21_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"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[2];\n"
+ "void main()\n"
+ "{\n"
+ " gl_Position = mvp * vertex;\n"
+ " col = color;\n"
+ " tex_c = tex_coord;\n"
+ " masktex_s[0] = vec2(-tex_masksample.x, 0);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, 0);\n"
+ " maskdiv_s = 2.0;\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_imgnat_mask21_vert_src =
+{
+ imgnat_mask21_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_bgra_mask21_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"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[2];\n"
+ "void main()\n"
+ "{\n"
+ " vec4 c;\n"
+ " c = texture2D(tex, tex_c).rgba;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_bgra_mask21_frag_src =
+{
+ imgnat_bgra_mask21_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_bgra_mask21_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"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[2];\n"
+ "void main()\n"
+ "{\n"
+ " gl_Position = mvp * vertex;\n"
+ " col = color;\n"
+ " tex_c = tex_coord;\n"
+ " masktex_s[0] = vec2(-tex_masksample.x, 0);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, 0);\n"
+ " maskdiv_s = 2.0;\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_imgnat_bgra_mask21_vert_src =
+{
+ imgnat_bgra_mask21_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_mask21_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"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " c = (col00 + col01) / div_s;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_12_mask21_frag_src =
+{
+ imgnat_12_mask21_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_mask21_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"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(-tex_masksample.x, 0);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, 0);\n"
+ " maskdiv_s = 2.0;\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_imgnat_12_mask21_vert_src =
+{
+ imgnat_12_mask21_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_mask21_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"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " c = (col00 + col01) / div_s;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_21_mask21_frag_src =
+{
+ imgnat_21_mask21_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_mask21_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"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(-tex_masksample.x, 0);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, 0);\n"
+ " maskdiv_s = 2.0;\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_imgnat_21_mask21_vert_src =
+{
+ imgnat_21_mask21_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_mask21_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"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " 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"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_22_mask21_frag_src =
+{
+ imgnat_22_mask21_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_mask21_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"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(-tex_masksample.x, 0);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, 0);\n"
+ " maskdiv_s = 2.0;\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_imgnat_22_mask21_vert_src =
+{
+ imgnat_22_mask21_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_bgra_mask21_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"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_12_bgra_mask21_frag_src =
+{
+ imgnat_12_bgra_mask21_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_bgra_mask21_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"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(-tex_masksample.x, 0);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, 0);\n"
+ " maskdiv_s = 2.0;\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_imgnat_12_bgra_mask21_vert_src =
+{
+ imgnat_12_bgra_mask21_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_bgra_mask21_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"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_21_bgra_mask21_frag_src =
+{
+ imgnat_21_bgra_mask21_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_bgra_mask21_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"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(-tex_masksample.x, 0);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, 0);\n"
+ " maskdiv_s = 2.0;\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_imgnat_21_bgra_mask21_vert_src =
+{
+ imgnat_21_bgra_mask21_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_bgra_mask21_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"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " 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"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_22_bgra_mask21_frag_src =
+{
+ imgnat_22_bgra_mask21_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_bgra_mask21_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"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(-tex_masksample.x, 0);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, 0);\n"
+ " maskdiv_s = 2.0;\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_imgnat_22_bgra_mask21_vert_src =
+{
+ imgnat_22_bgra_mask21_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_mask21_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"
+ "uniform sampler2D texm;\n"
+ "varying vec2 tex_m;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[2];\n"
+ "void main()\n"
+ "{\n"
+ " vec4 c;\n"
+ " c = texture2D(tex, tex_c).bgra;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_mask21_nomul_frag_src =
+{
+ imgnat_mask21_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_mask21_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 vec4 mask_coord;\n"
+ "varying vec2 tex_m;\n"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[2];\n"
+ "void main()\n"
+ "{\n"
+ " gl_Position = mvp * vertex;\n"
+ " tex_c = tex_coord;\n"
+ " masktex_s[0] = vec2(-tex_masksample.x, 0);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, 0);\n"
+ " maskdiv_s = 2.0;\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_imgnat_mask21_nomul_vert_src =
+{
+ imgnat_mask21_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_bgra_mask21_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"
+ "uniform sampler2D texm;\n"
+ "varying vec2 tex_m;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[2];\n"
+ "void main()\n"
+ "{\n"
+ " vec4 c;\n"
+ " c = texture2D(tex, tex_c).rgba;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_bgra_mask21_nomul_frag_src =
+{
+ imgnat_bgra_mask21_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_bgra_mask21_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 vec4 mask_coord;\n"
+ "varying vec2 tex_m;\n"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[2];\n"
+ "void main()\n"
+ "{\n"
+ " gl_Position = mvp * vertex;\n"
+ " tex_c = tex_coord;\n"
+ " masktex_s[0] = vec2(-tex_masksample.x, 0);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, 0);\n"
+ " maskdiv_s = 2.0;\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_imgnat_bgra_mask21_nomul_vert_src =
+{
+ imgnat_bgra_mask21_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_mask21_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"
+ "varying vec4 div_s;\n"
+ "varying vec2 tex_s[2];\n"
+ "uniform sampler2D texm;\n"
+ "varying vec2 tex_m;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " c = (col00 + col01) / div_s;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_12_mask21_nomul_frag_src =
+{
+ imgnat_12_mask21_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_mask21_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"
+ "attribute vec4 mask_coord;\n"
+ "varying vec2 tex_m;\n"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(-tex_masksample.x, 0);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, 0);\n"
+ " maskdiv_s = 2.0;\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_imgnat_12_mask21_nomul_vert_src =
+{
+ imgnat_12_mask21_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_mask21_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"
+ "varying vec4 div_s;\n"
+ "varying vec2 tex_s[2];\n"
+ "uniform sampler2D texm;\n"
+ "varying vec2 tex_m;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " c = (col00 + col01) / div_s;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_21_mask21_nomul_frag_src =
+{
+ imgnat_21_mask21_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_mask21_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"
+ "attribute vec4 mask_coord;\n"
+ "varying vec2 tex_m;\n"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[2];\n"
+ "void main()\n"
+ "{\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"
+ " masktex_s[0] = vec2(-tex_masksample.x, 0);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, 0);\n"
+ " maskdiv_s = 2.0;\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_imgnat_21_mask21_nomul_vert_src =
+{
+ imgnat_21_mask21_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_mask21_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"
+ "varying vec4 div_s;\n"
+ "varying vec2 tex_s[4];\n"
+ "uniform sampler2D texm;\n"
+ "varying vec2 tex_m;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " 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"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_22_mask21_nomul_frag_src =
+{
+ imgnat_22_mask21_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_mask21_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[4];\n"
+ "attribute vec4 mask_coord;\n"
+ "varying vec2 tex_m;\n"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(-tex_masksample.x, 0);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, 0);\n"
+ " maskdiv_s = 2.0;\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_imgnat_22_mask21_nomul_vert_src =
+{
+ imgnat_22_mask21_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_bgra_mask21_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"
+ "varying vec4 div_s;\n"
+ "varying vec2 tex_s[2];\n"
+ "uniform sampler2D texm;\n"
+ "varying vec2 tex_m;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_12_bgra_mask21_nomul_frag_src =
+{
+ imgnat_12_bgra_mask21_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_bgra_mask21_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"
+ "attribute vec4 mask_coord;\n"
+ "varying vec2 tex_m;\n"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(-tex_masksample.x, 0);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, 0);\n"
+ " maskdiv_s = 2.0;\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_imgnat_12_bgra_mask21_nomul_vert_src =
+{
+ imgnat_12_bgra_mask21_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_bgra_mask21_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"
+ "varying vec4 div_s;\n"
+ "varying vec2 tex_s[2];\n"
+ "uniform sampler2D texm;\n"
+ "varying vec2 tex_m;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_21_bgra_mask21_nomul_frag_src =
+{
+ imgnat_21_bgra_mask21_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_bgra_mask21_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"
+ "attribute vec4 mask_coord;\n"
+ "varying vec2 tex_m;\n"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[2];\n"
+ "void main()\n"
+ "{\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"
+ " masktex_s[0] = vec2(-tex_masksample.x, 0);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, 0);\n"
+ " maskdiv_s = 2.0;\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_imgnat_21_bgra_mask21_nomul_vert_src =
+{
+ imgnat_21_bgra_mask21_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_bgra_mask21_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"
+ "varying vec4 div_s;\n"
+ "varying vec2 tex_s[4];\n"
+ "uniform sampler2D texm;\n"
+ "varying vec2 tex_m;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " 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"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_22_bgra_mask21_nomul_frag_src =
+{
+ imgnat_22_bgra_mask21_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_bgra_mask21_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[4];\n"
+ "attribute vec4 mask_coord;\n"
+ "varying vec2 tex_m;\n"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(-tex_masksample.x, 0);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, 0);\n"
+ " maskdiv_s = 2.0;\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_imgnat_22_bgra_mask21_nomul_vert_src =
+{
+ imgnat_22_bgra_mask21_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_mask22_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"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[4];\n"
+ "void main()\n"
+ "{\n"
+ " vec4 c;\n"
+ " c = texture2D(tex, tex_c).bgra;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " float ma10 = texture2D(texm, tex_m + masktex_s[2]).a;\n"
+ " float ma11 = texture2D(texm, tex_m + masktex_s[3]).a;\n"
+ " ma = (ma00 + ma01 + ma10 + ma11) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_mask22_frag_src =
+{
+ imgnat_mask22_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_mask22_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"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[4];\n"
+ "void main()\n"
+ "{\n"
+ " gl_Position = mvp * vertex;\n"
+ " col = color;\n"
+ " tex_c = tex_coord;\n"
+ " masktex_s[0] = vec2(-tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[2] = vec2( tex_masksample.x, tex_masksample.y);\n"
+ " masktex_s[3] = vec2(-tex_masksample.x, tex_masksample.y);\n"
+ " maskdiv_s = 4.0;\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_imgnat_mask22_vert_src =
+{
+ imgnat_mask22_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_bgra_mask22_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"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[4];\n"
+ "void main()\n"
+ "{\n"
+ " vec4 c;\n"
+ " c = texture2D(tex, tex_c).rgba;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " float ma10 = texture2D(texm, tex_m + masktex_s[2]).a;\n"
+ " float ma11 = texture2D(texm, tex_m + masktex_s[3]).a;\n"
+ " ma = (ma00 + ma01 + ma10 + ma11) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_bgra_mask22_frag_src =
+{
+ imgnat_bgra_mask22_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_bgra_mask22_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"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[4];\n"
+ "void main()\n"
+ "{\n"
+ " gl_Position = mvp * vertex;\n"
+ " col = color;\n"
+ " tex_c = tex_coord;\n"
+ " masktex_s[0] = vec2(-tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[2] = vec2( tex_masksample.x, tex_masksample.y);\n"
+ " masktex_s[3] = vec2(-tex_masksample.x, tex_masksample.y);\n"
+ " maskdiv_s = 4.0;\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_imgnat_bgra_mask22_vert_src =
+{
+ imgnat_bgra_mask22_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_mask22_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"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " c = (col00 + col01) / div_s;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " float ma10 = texture2D(texm, tex_m + masktex_s[2]).a;\n"
+ " float ma11 = texture2D(texm, tex_m + masktex_s[3]).a;\n"
+ " ma = (ma00 + ma01 + ma10 + ma11) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_12_mask22_frag_src =
+{
+ imgnat_12_mask22_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_mask22_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"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(-tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[2] = vec2( tex_masksample.x, tex_masksample.y);\n"
+ " masktex_s[3] = vec2(-tex_masksample.x, tex_masksample.y);\n"
+ " maskdiv_s = 4.0;\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_imgnat_12_mask22_vert_src =
+{
+ imgnat_12_mask22_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_mask22_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"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " c = (col00 + col01) / div_s;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " float ma10 = texture2D(texm, tex_m + masktex_s[2]).a;\n"
+ " float ma11 = texture2D(texm, tex_m + masktex_s[3]).a;\n"
+ " ma = (ma00 + ma01 + ma10 + ma11) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_21_mask22_frag_src =
+{
+ imgnat_21_mask22_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_mask22_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"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(-tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[2] = vec2( tex_masksample.x, tex_masksample.y);\n"
+ " masktex_s[3] = vec2(-tex_masksample.x, tex_masksample.y);\n"
+ " maskdiv_s = 4.0;\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_imgnat_21_mask22_vert_src =
+{
+ imgnat_21_mask22_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_mask22_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"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " float ma10 = texture2D(texm, tex_m + masktex_s[2]).a;\n"
+ " float ma11 = texture2D(texm, tex_m + masktex_s[3]).a;\n"
+ " ma = (ma00 + ma01 + ma10 + ma11) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_22_mask22_frag_src =
+{
+ imgnat_22_mask22_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_mask22_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"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(-tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[2] = vec2( tex_masksample.x, tex_masksample.y);\n"
+ " masktex_s[3] = vec2(-tex_masksample.x, tex_masksample.y);\n"
+ " maskdiv_s = 4.0;\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_imgnat_22_mask22_vert_src =
+{
+ imgnat_22_mask22_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_bgra_mask22_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"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " c = (col00 + col01) / div_s;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " float ma10 = texture2D(texm, tex_m + masktex_s[2]).a;\n"
+ " float ma11 = texture2D(texm, tex_m + masktex_s[3]).a;\n"
+ " ma = (ma00 + ma01 + ma10 + ma11) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_12_bgra_mask22_frag_src =
+{
+ imgnat_12_bgra_mask22_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_bgra_mask22_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"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(-tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[2] = vec2( tex_masksample.x, tex_masksample.y);\n"
+ " masktex_s[3] = vec2(-tex_masksample.x, tex_masksample.y);\n"
+ " maskdiv_s = 4.0;\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_imgnat_12_bgra_mask22_vert_src =
+{
+ imgnat_12_bgra_mask22_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_bgra_mask22_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"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " c = (col00 + col01) / div_s;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " float ma10 = texture2D(texm, tex_m + masktex_s[2]).a;\n"
+ " float ma11 = texture2D(texm, tex_m + masktex_s[3]).a;\n"
+ " ma = (ma00 + ma01 + ma10 + ma11) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_21_bgra_mask22_frag_src =
+{
+ imgnat_21_bgra_mask22_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_bgra_mask22_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"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(-tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[2] = vec2( tex_masksample.x, tex_masksample.y);\n"
+ " masktex_s[3] = vec2(-tex_masksample.x, tex_masksample.y);\n"
+ " maskdiv_s = 4.0;\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_imgnat_21_bgra_mask22_vert_src =
+{
+ imgnat_21_bgra_mask22_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_bgra_mask22_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"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " float ma10 = texture2D(texm, tex_m + masktex_s[2]).a;\n"
+ " float ma11 = texture2D(texm, tex_m + masktex_s[3]).a;\n"
+ " ma = (ma00 + ma01 + ma10 + ma11) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_22_bgra_mask22_frag_src =
+{
+ imgnat_22_bgra_mask22_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_bgra_mask22_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"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(-tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[2] = vec2( tex_masksample.x, tex_masksample.y);\n"
+ " masktex_s[3] = vec2(-tex_masksample.x, tex_masksample.y);\n"
+ " maskdiv_s = 4.0;\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_imgnat_22_bgra_mask22_vert_src =
+{
+ imgnat_22_bgra_mask22_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_mask22_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"
+ "uniform sampler2D texm;\n"
+ "varying vec2 tex_m;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[4];\n"
+ "void main()\n"
+ "{\n"
+ " vec4 c;\n"
+ " c = texture2D(tex, tex_c).bgra;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " float ma10 = texture2D(texm, tex_m + masktex_s[2]).a;\n"
+ " float ma11 = texture2D(texm, tex_m + masktex_s[3]).a;\n"
+ " ma = (ma00 + ma01 + ma10 + ma11) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_mask22_nomul_frag_src =
+{
+ imgnat_mask22_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_mask22_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 vec4 mask_coord;\n"
+ "varying vec2 tex_m;\n"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[4];\n"
+ "void main()\n"
+ "{\n"
+ " gl_Position = mvp * vertex;\n"
+ " tex_c = tex_coord;\n"
+ " masktex_s[0] = vec2(-tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[2] = vec2( tex_masksample.x, tex_masksample.y);\n"
+ " masktex_s[3] = vec2(-tex_masksample.x, tex_masksample.y);\n"
+ " maskdiv_s = 4.0;\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_imgnat_mask22_nomul_vert_src =
+{
+ imgnat_mask22_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_bgra_mask22_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"
+ "uniform sampler2D texm;\n"
+ "varying vec2 tex_m;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[4];\n"
+ "void main()\n"
+ "{\n"
+ " vec4 c;\n"
+ " c = texture2D(tex, tex_c).rgba;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " float ma10 = texture2D(texm, tex_m + masktex_s[2]).a;\n"
+ " float ma11 = texture2D(texm, tex_m + masktex_s[3]).a;\n"
+ " ma = (ma00 + ma01 + ma10 + ma11) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_bgra_mask22_nomul_frag_src =
+{
+ imgnat_bgra_mask22_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_bgra_mask22_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 vec4 mask_coord;\n"
+ "varying vec2 tex_m;\n"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[4];\n"
+ "void main()\n"
+ "{\n"
+ " gl_Position = mvp * vertex;\n"
+ " tex_c = tex_coord;\n"
+ " masktex_s[0] = vec2(-tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[2] = vec2( tex_masksample.x, tex_masksample.y);\n"
+ " masktex_s[3] = vec2(-tex_masksample.x, tex_masksample.y);\n"
+ " maskdiv_s = 4.0;\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_imgnat_bgra_mask22_nomul_vert_src =
+{
+ imgnat_bgra_mask22_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_mask22_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"
+ "varying vec4 div_s;\n"
+ "varying vec2 tex_s[2];\n"
+ "uniform sampler2D texm;\n"
+ "varying vec2 tex_m;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " c = (col00 + col01) / div_s;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " float ma10 = texture2D(texm, tex_m + masktex_s[2]).a;\n"
+ " float ma11 = texture2D(texm, tex_m + masktex_s[3]).a;\n"
+ " ma = (ma00 + ma01 + ma10 + ma11) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_12_mask22_nomul_frag_src =
+{
+ imgnat_12_mask22_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_mask22_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"
+ "attribute vec4 mask_coord;\n"
+ "varying vec2 tex_m;\n"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(-tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[2] = vec2( tex_masksample.x, tex_masksample.y);\n"
+ " masktex_s[3] = vec2(-tex_masksample.x, tex_masksample.y);\n"
+ " maskdiv_s = 4.0;\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_imgnat_12_mask22_nomul_vert_src =
+{
+ imgnat_12_mask22_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_mask22_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"
+ "varying vec4 div_s;\n"
+ "varying vec2 tex_s[2];\n"
+ "uniform sampler2D texm;\n"
+ "varying vec2 tex_m;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " c = (col00 + col01) / div_s;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " float ma10 = texture2D(texm, tex_m + masktex_s[2]).a;\n"
+ " float ma11 = texture2D(texm, tex_m + masktex_s[3]).a;\n"
+ " ma = (ma00 + ma01 + ma10 + ma11) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_21_mask22_nomul_frag_src =
+{
+ imgnat_21_mask22_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_mask22_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"
+ "attribute vec4 mask_coord;\n"
+ "varying vec2 tex_m;\n"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[4];\n"
+ "void main()\n"
+ "{\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"
+ " masktex_s[0] = vec2(-tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[2] = vec2( tex_masksample.x, tex_masksample.y);\n"
+ " masktex_s[3] = vec2(-tex_masksample.x, tex_masksample.y);\n"
+ " maskdiv_s = 4.0;\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_imgnat_21_mask22_nomul_vert_src =
+{
+ imgnat_21_mask22_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_mask22_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"
+ "varying vec4 div_s;\n"
+ "varying vec2 tex_s[4];\n"
+ "uniform sampler2D texm;\n"
+ "varying vec2 tex_m;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " float ma10 = texture2D(texm, tex_m + masktex_s[2]).a;\n"
+ " float ma11 = texture2D(texm, tex_m + masktex_s[3]).a;\n"
+ " ma = (ma00 + ma01 + ma10 + ma11) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_22_mask22_nomul_frag_src =
+{
+ imgnat_22_mask22_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_mask22_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[4];\n"
+ "attribute vec4 mask_coord;\n"
+ "varying vec2 tex_m;\n"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(-tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[2] = vec2( tex_masksample.x, tex_masksample.y);\n"
+ " masktex_s[3] = vec2(-tex_masksample.x, tex_masksample.y);\n"
+ " maskdiv_s = 4.0;\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_imgnat_22_mask22_nomul_vert_src =
+{
+ imgnat_22_mask22_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_bgra_mask22_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"
+ "varying vec4 div_s;\n"
+ "varying vec2 tex_s[2];\n"
+ "uniform sampler2D texm;\n"
+ "varying vec2 tex_m;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " c = (col00 + col01) / div_s;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " float ma10 = texture2D(texm, tex_m + masktex_s[2]).a;\n"
+ " float ma11 = texture2D(texm, tex_m + masktex_s[3]).a;\n"
+ " ma = (ma00 + ma01 + ma10 + ma11) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_12_bgra_mask22_nomul_frag_src =
+{
+ imgnat_12_bgra_mask22_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_bgra_mask22_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"
+ "attribute vec4 mask_coord;\n"
+ "varying vec2 tex_m;\n"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(-tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[2] = vec2( tex_masksample.x, tex_masksample.y);\n"
+ " masktex_s[3] = vec2(-tex_masksample.x, tex_masksample.y);\n"
+ " maskdiv_s = 4.0;\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_imgnat_12_bgra_mask22_nomul_vert_src =
+{
+ imgnat_12_bgra_mask22_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_bgra_mask22_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"
+ "varying vec4 div_s;\n"
+ "varying vec2 tex_s[2];\n"
+ "uniform sampler2D texm;\n"
+ "varying vec2 tex_m;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " c = (col00 + col01) / div_s;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " float ma10 = texture2D(texm, tex_m + masktex_s[2]).a;\n"
+ " float ma11 = texture2D(texm, tex_m + masktex_s[3]).a;\n"
+ " ma = (ma00 + ma01 + ma10 + ma11) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_21_bgra_mask22_nomul_frag_src =
+{
+ imgnat_21_bgra_mask22_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_bgra_mask22_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"
+ "attribute vec4 mask_coord;\n"
+ "varying vec2 tex_m;\n"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[4];\n"
+ "void main()\n"
+ "{\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"
+ " masktex_s[0] = vec2(-tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[2] = vec2( tex_masksample.x, tex_masksample.y);\n"
+ " masktex_s[3] = vec2(-tex_masksample.x, tex_masksample.y);\n"
+ " maskdiv_s = 4.0;\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_imgnat_21_bgra_mask22_nomul_vert_src =
+{
+ imgnat_21_bgra_mask22_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_bgra_mask22_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"
+ "varying vec4 div_s;\n"
+ "varying vec2 tex_s[4];\n"
+ "uniform sampler2D texm;\n"
+ "varying vec2 tex_m;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " float ma10 = texture2D(texm, tex_m + masktex_s[2]).a;\n"
+ " float ma11 = texture2D(texm, tex_m + masktex_s[3]).a;\n"
+ " ma = (ma00 + ma01 + ma10 + ma11) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_22_bgra_mask22_nomul_frag_src =
+{
+ imgnat_22_bgra_mask22_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_bgra_mask22_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[4];\n"
+ "attribute vec4 mask_coord;\n"
+ "varying vec2 tex_m;\n"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(-tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[2] = vec2( tex_masksample.x, tex_masksample.y);\n"
+ " masktex_s[3] = vec2(-tex_masksample.x, tex_masksample.y);\n"
+ " maskdiv_s = 4.0;\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_imgnat_22_bgra_mask22_nomul_vert_src =
+{
+ imgnat_22_bgra_mask22_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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"
+ "#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"
+ " gl_FragColor.a = 1.0;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_afill_frag_src =
+{
+ imgnat_afill_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_afill_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"
+ "void main()\n"
+ "{\n"
+ " gl_Position = mvp * vertex;\n"
+ " col = color;\n"
+ " tex_c = tex_coord;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_afill_vert_src =
+{
+ imgnat_afill_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_bgra_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"
+ "#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).rgba;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " ;\n"
+ " gl_FragColor.a = 1.0;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_bgra_afill_frag_src =
+{
+ imgnat_bgra_afill_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_bgra_afill_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"
+ "void main()\n"
+ "{\n"
+ " gl_Position = mvp * vertex;\n"
+ " col = color;\n"
+ " tex_c = tex_coord;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_bgra_afill_vert_src =
+{
+ imgnat_bgra_afill_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_nomul_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"
+ "#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"
+ " gl_FragColor.a = 1.0;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_nomul_afill_frag_src =
+{
+ imgnat_nomul_afill_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_nomul_afill_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_imgnat_nomul_afill_vert_src =
+{
+ imgnat_nomul_afill_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_bgra_nomul_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"
+ "#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"
+ " gl_FragColor.a = 1.0;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_bgra_nomul_afill_frag_src =
+{
+ imgnat_bgra_nomul_afill_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_bgra_nomul_afill_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_imgnat_bgra_nomul_afill_vert_src =
+{
+ imgnat_bgra_nomul_afill_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_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"
+ "#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]).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_imgnat_12_afill_frag_src =
+{
+ imgnat_12_afill_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_afill_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_imgnat_12_afill_vert_src =
+{
+ imgnat_12_afill_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_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"
+ "#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]).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_imgnat_21_afill_frag_src =
+{
+ imgnat_21_afill_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_afill_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_imgnat_21_afill_vert_src =
+{
+ imgnat_21_afill_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_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"
+ "#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"
+ " gl_FragColor.a = 1.0;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_22_afill_frag_src =
+{
+ imgnat_22_afill_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_afill_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_imgnat_22_afill_vert_src =
+{
+ imgnat_22_afill_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_bgra_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"
+ "#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"
+ " gl_FragColor.a = 1.0;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_12_bgra_afill_frag_src =
+{
+ imgnat_12_bgra_afill_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_bgra_afill_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_imgnat_12_bgra_afill_vert_src =
+{
+ imgnat_12_bgra_afill_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_bgra_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"
+ "#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"
+ " gl_FragColor.a = 1.0;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_21_bgra_afill_frag_src =
+{
+ imgnat_21_bgra_afill_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_bgra_afill_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_imgnat_21_bgra_afill_vert_src =
+{
+ imgnat_21_bgra_afill_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_bgra_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"
+ "#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"
+ " gl_FragColor.a = 1.0;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_22_bgra_afill_frag_src =
+{
+ imgnat_22_bgra_afill_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_bgra_afill_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_imgnat_22_bgra_afill_vert_src =
+{
+ imgnat_22_bgra_afill_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_nomul_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"
+ "#endif\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]).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_imgnat_12_nomul_afill_frag_src =
+{
+ imgnat_12_nomul_afill_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_nomul_afill_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_imgnat_12_nomul_afill_vert_src =
+{
+ imgnat_12_nomul_afill_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_nomul_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"
+ "#endif\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]).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_imgnat_21_nomul_afill_frag_src =
+{
+ imgnat_21_nomul_afill_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_nomul_afill_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(-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_imgnat_21_nomul_afill_vert_src =
+{
+ imgnat_21_nomul_afill_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_nomul_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"
+ "#endif\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"
+ " ;\n"
+ " gl_FragColor.a = 1.0;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_22_nomul_afill_frag_src =
+{
+ imgnat_22_nomul_afill_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_nomul_afill_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[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"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_22_nomul_afill_vert_src =
+{
+ imgnat_22_nomul_afill_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_bgra_nomul_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"
+ "#endif\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"
+ " ;\n"
+ " gl_FragColor.a = 1.0;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_12_bgra_nomul_afill_frag_src =
+{
+ imgnat_12_bgra_nomul_afill_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_bgra_nomul_afill_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_imgnat_12_bgra_nomul_afill_vert_src =
+{
+ imgnat_12_bgra_nomul_afill_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_bgra_nomul_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"
+ "#endif\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"
+ " ;\n"
+ " gl_FragColor.a = 1.0;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_21_bgra_nomul_afill_frag_src =
+{
+ imgnat_21_bgra_nomul_afill_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_bgra_nomul_afill_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(-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_imgnat_21_bgra_nomul_afill_vert_src =
+{
+ imgnat_21_bgra_nomul_afill_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_bgra_nomul_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"
+ "#endif\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"
+ " ;\n"
+ " gl_FragColor.a = 1.0;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_22_bgra_nomul_afill_frag_src =
+{
+ imgnat_22_bgra_nomul_afill_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_bgra_nomul_afill_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[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"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_22_bgra_nomul_afill_vert_src =
+{
+ imgnat_22_bgra_nomul_afill_vert_glsl,
+ NULL, 0
+};
+
static const char rgb_a_pair_frag_glsl[] =
"#ifdef GL_ES\n"
"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
@@ -9251,6 +15571,102 @@ static const struct {
{ 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", SHD_IMAGE, SHD_SAM12, SHD_SAM11, 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", SHD_IMAGE, SHD_SAM21, SHD_SAM11, 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", SHD_IMAGE, SHD_SAM22, SHD_SAM11, 1, 0, 1, 1 },
+ { SHADER_IMGNAT, &(shader_imgnat_vert_src), &(shader_imgnat_frag_src), "imgnat", SHD_IMAGENATIVE, SHD_SAM11, SHD_SAM11, 0, 0, 0, 0 },
+ { SHADER_IMGNAT_BGRA, &(shader_imgnat_bgra_vert_src), &(shader_imgnat_bgra_frag_src), "imgnat_bgra", SHD_IMAGENATIVE, SHD_SAM11, SHD_SAM11, 1, 0, 0, 0 },
+ { SHADER_IMGNAT_12, &(shader_imgnat_12_vert_src), &(shader_imgnat_12_frag_src), "imgnat_12", SHD_IMAGENATIVE, SHD_SAM12, SHD_SAM11, 0, 0, 0, 0 },
+ { SHADER_IMGNAT_21, &(shader_imgnat_21_vert_src), &(shader_imgnat_21_frag_src), "imgnat_21", SHD_IMAGENATIVE, SHD_SAM21, SHD_SAM11, 0, 0, 0, 0 },
+ { SHADER_IMGNAT_22, &(shader_imgnat_22_vert_src), &(shader_imgnat_22_frag_src), "imgnat_22", SHD_IMAGENATIVE, SHD_SAM22, SHD_SAM11, 0, 0, 0, 0 },
+ { SHADER_IMGNAT_12_BGRA, &(shader_imgnat_12_bgra_vert_src), &(shader_imgnat_12_bgra_frag_src), "imgnat_12_bgra", SHD_IMAGENATIVE, SHD_SAM12, SHD_SAM11, 1, 0, 0, 0 },
+ { SHADER_IMGNAT_21_BGRA, &(shader_imgnat_21_bgra_vert_src), &(shader_imgnat_21_bgra_frag_src), "imgnat_21_bgra", SHD_IMAGENATIVE, SHD_SAM21, SHD_SAM11, 1, 0, 0, 0 },
+ { SHADER_IMGNAT_22_BGRA, &(shader_imgnat_22_bgra_vert_src), &(shader_imgnat_22_bgra_frag_src), "imgnat_22_bgra", SHD_IMAGENATIVE, SHD_SAM22, SHD_SAM11, 1, 0, 0, 0 },
+ { SHADER_IMGNAT_MASK, &(shader_imgnat_mask_vert_src), &(shader_imgnat_mask_frag_src), "imgnat_mask", SHD_IMAGENATIVE, SHD_SAM11, SHD_SAM11, 0, 1, 0, 0 },
+ { SHADER_IMGNAT_BGRA_MASK, &(shader_imgnat_bgra_mask_vert_src), &(shader_imgnat_bgra_mask_frag_src), "imgnat_bgra_mask", SHD_IMAGENATIVE, SHD_SAM11, SHD_SAM11, 1, 1, 0, 0 },
+ { SHADER_IMGNAT_12_MASK, &(shader_imgnat_12_mask_vert_src), &(shader_imgnat_12_mask_frag_src), "imgnat_12_mask", SHD_IMAGENATIVE, SHD_SAM12, SHD_SAM11, 0, 1, 0, 0 },
+ { SHADER_IMGNAT_21_MASK, &(shader_imgnat_21_mask_vert_src), &(shader_imgnat_21_mask_frag_src), "imgnat_21_mask", SHD_IMAGENATIVE, SHD_SAM21, SHD_SAM11, 0, 1, 0, 0 },
+ { SHADER_IMGNAT_22_MASK, &(shader_imgnat_22_mask_vert_src), &(shader_imgnat_22_mask_frag_src), "imgnat_22_mask", SHD_IMAGENATIVE, SHD_SAM22, SHD_SAM11, 0, 1, 0, 0 },
+ { SHADER_IMGNAT_12_BGRA_MASK, &(shader_imgnat_12_bgra_mask_vert_src), &(shader_imgnat_12_bgra_mask_frag_src), "imgnat_12_bgra_mask", SHD_IMAGENATIVE, SHD_SAM12, SHD_SAM11, 1, 1, 0, 0 },
+ { SHADER_IMGNAT_21_BGRA_MASK, &(shader_imgnat_21_bgra_mask_vert_src), &(shader_imgnat_21_bgra_mask_frag_src), "imgnat_21_bgra_mask", SHD_IMAGENATIVE, SHD_SAM21, SHD_SAM11, 1, 1, 0, 0 },
+ { SHADER_IMGNAT_22_BGRA_MASK, &(shader_imgnat_22_bgra_mask_vert_src), &(shader_imgnat_22_bgra_mask_frag_src), "imgnat_22_bgra_mask", SHD_IMAGENATIVE, SHD_SAM22, SHD_SAM11, 1, 1, 0, 0 },
+ { SHADER_IMGNAT_NOMUL, &(shader_imgnat_nomul_vert_src), &(shader_imgnat_nomul_frag_src), "imgnat_nomul", SHD_IMAGENATIVE, SHD_SAM11, SHD_SAM11, 0, 0, 1, 0 },
+ { SHADER_IMGNAT_BGRA_NOMUL, &(shader_imgnat_bgra_nomul_vert_src), &(shader_imgnat_bgra_nomul_frag_src), "imgnat_bgra_nomul", SHD_IMAGENATIVE, SHD_SAM11, SHD_SAM11, 1, 0, 1, 0 },
+ { SHADER_IMGNAT_12_NOMUL, &(shader_imgnat_12_nomul_vert_src), &(shader_imgnat_12_nomul_frag_src), "imgnat_12_nomul", SHD_IMAGENATIVE, SHD_SAM12, SHD_SAM11, 0, 0, 1, 0 },
+ { SHADER_IMGNAT_21_NOMUL, &(shader_imgnat_21_nomul_vert_src), &(shader_imgnat_21_nomul_frag_src), "imgnat_21_nomul", SHD_IMAGENATIVE, SHD_SAM21, SHD_SAM11, 0, 0, 1, 0 },
+ { SHADER_IMGNAT_22_NOMUL, &(shader_imgnat_22_nomul_vert_src), &(shader_imgnat_22_nomul_frag_src), "imgnat_22_nomul", SHD_IMAGENATIVE, SHD_SAM22, SHD_SAM11, 0, 0, 1, 0 },
+ { SHADER_IMGNAT_12_BGRA_NOMUL, &(shader_imgnat_12_bgra_nomul_vert_src), &(shader_imgnat_12_bgra_nomul_frag_src), "imgnat_12_bgra_nomul", SHD_IMAGENATIVE, SHD_SAM12, SHD_SAM11, 1, 0, 1, 0 },
+ { SHADER_IMGNAT_21_BGRA_NOMUL, &(shader_imgnat_21_bgra_nomul_vert_src), &(shader_imgnat_21_bgra_nomul_frag_src), "imgnat_21_bgra_nomul", SHD_IMAGENATIVE, SHD_SAM21, SHD_SAM11, 1, 0, 1, 0 },
+ { SHADER_IMGNAT_22_BGRA_NOMUL, &(shader_imgnat_22_bgra_nomul_vert_src), &(shader_imgnat_22_bgra_nomul_frag_src), "imgnat_22_bgra_nomul", SHD_IMAGENATIVE, SHD_SAM22, SHD_SAM11, 1, 0, 1, 0 },
+ { SHADER_IMGNAT_MASK_NOMUL, &(shader_imgnat_mask_nomul_vert_src), &(shader_imgnat_mask_nomul_frag_src), "imgnat_mask_nomul", SHD_IMAGENATIVE, SHD_SAM11, SHD_SAM11, 0, 1, 1, 0 },
+ { SHADER_IMGNAT_BGRA_MASK_NOMUL, &(shader_imgnat_bgra_mask_nomul_vert_src), &(shader_imgnat_bgra_mask_nomul_frag_src), "imgnat_bgra_mask_nomul", SHD_IMAGENATIVE, SHD_SAM11, SHD_SAM11, 1, 1, 1, 0 },
+ { SHADER_IMGNAT_12_MASK_NOMUL, &(shader_imgnat_12_mask_nomul_vert_src), &(shader_imgnat_12_mask_nomul_frag_src), "imgnat_12_mask_nomul", SHD_IMAGENATIVE, SHD_SAM12, SHD_SAM11, 0, 1, 1, 0 },
+ { SHADER_IMGNAT_21_MASK_NOMUL, &(shader_imgnat_21_mask_nomul_vert_src), &(shader_imgnat_21_mask_nomul_frag_src), "imgnat_21_mask_nomul", SHD_IMAGENATIVE, SHD_SAM21, SHD_SAM11, 0, 1, 1, 0 },
+ { SHADER_IMGNAT_22_MASK_NOMUL, &(shader_imgnat_22_mask_nomul_vert_src), &(shader_imgnat_22_mask_nomul_frag_src), "imgnat_22_mask_nomul", SHD_IMAGENATIVE, SHD_SAM22, SHD_SAM11, 0, 1, 1, 0 },
+ { SHADER_IMGNAT_12_BGRA_MASK_NOMUL, &(shader_imgnat_12_bgra_mask_nomul_vert_src), &(shader_imgnat_12_bgra_mask_nomul_frag_src), "imgnat_12_bgra_mask_nomul", SHD_IMAGENATIVE, SHD_SAM12, SHD_SAM11, 1, 1, 1, 0 },
+ { SHADER_IMGNAT_21_BGRA_MASK_NOMUL, &(shader_imgnat_21_bgra_mask_nomul_vert_src), &(shader_imgnat_21_bgra_mask_nomul_frag_src), "imgnat_21_bgra_mask_nomul", SHD_IMAGENATIVE, SHD_SAM21, SHD_SAM11, 1, 1, 1, 0 },
+ { SHADER_IMGNAT_22_BGRA_MASK_NOMUL, &(shader_imgnat_22_bgra_mask_nomul_vert_src), &(shader_imgnat_22_bgra_mask_nomul_frag_src), "imgnat_22_bgra_mask_nomul", SHD_IMAGENATIVE, SHD_SAM22, SHD_SAM11, 1, 1, 1, 0 },
+ { SHADER_IMGNAT_MASK12, &(shader_imgnat_mask12_vert_src), &(shader_imgnat_mask12_frag_src), "imgnat_mask12", SHD_IMAGENATIVE, SHD_SAM11, SHD_SAM12, 0, 1, 0, 0 },
+ { SHADER_IMGNAT_BGRA_MASK12, &(shader_imgnat_bgra_mask12_vert_src), &(shader_imgnat_bgra_mask12_frag_src), "imgnat_bgra_mask12", SHD_IMAGENATIVE, SHD_SAM11, SHD_SAM12, 1, 1, 0, 0 },
+ { SHADER_IMGNAT_12_MASK12, &(shader_imgnat_12_mask12_vert_src), &(shader_imgnat_12_mask12_frag_src), "imgnat_12_mask12", SHD_IMAGENATIVE, SHD_SAM12, SHD_SAM12, 0, 1, 0, 0 },
+ { SHADER_IMGNAT_21_MASK12, &(shader_imgnat_21_mask12_vert_src), &(shader_imgnat_21_mask12_frag_src), "imgnat_21_mask12", SHD_IMAGENATIVE, SHD_SAM21, SHD_SAM12, 0, 1, 0, 0 },
+ { SHADER_IMGNAT_22_MASK12, &(shader_imgnat_22_mask12_vert_src), &(shader_imgnat_22_mask12_frag_src), "imgnat_22_mask12", SHD_IMAGENATIVE, SHD_SAM22, SHD_SAM12, 0, 1, 0, 0 },
+ { SHADER_IMGNAT_12_BGRA_MASK12, &(shader_imgnat_12_bgra_mask12_vert_src), &(shader_imgnat_12_bgra_mask12_frag_src), "imgnat_12_bgra_mask12", SHD_IMAGENATIVE, SHD_SAM12, SHD_SAM12, 1, 1, 0, 0 },
+ { SHADER_IMGNAT_21_BGRA_MASK12, &(shader_imgnat_21_bgra_mask12_vert_src), &(shader_imgnat_21_bgra_mask12_frag_src), "imgnat_21_bgra_mask12", SHD_IMAGENATIVE, SHD_SAM21, SHD_SAM12, 1, 1, 0, 0 },
+ { SHADER_IMGNAT_22_BGRA_MASK12, &(shader_imgnat_22_bgra_mask12_vert_src), &(shader_imgnat_22_bgra_mask12_frag_src), "imgnat_22_bgra_mask12", SHD_IMAGENATIVE, SHD_SAM22, SHD_SAM12, 1, 1, 0, 0 },
+ { SHADER_IMGNAT_MASK12_NOMUL, &(shader_imgnat_mask12_nomul_vert_src), &(shader_imgnat_mask12_nomul_frag_src), "imgnat_mask12_nomul", SHD_IMAGENATIVE, SHD_SAM11, SHD_SAM12, 0, 1, 1, 0 },
+ { SHADER_IMGNAT_BGRA_MASK12_NOMUL, &(shader_imgnat_bgra_mask12_nomul_vert_src), &(shader_imgnat_bgra_mask12_nomul_frag_src), "imgnat_bgra_mask12_nomul", SHD_IMAGENATIVE, SHD_SAM11, SHD_SAM12, 1, 1, 1, 0 },
+ { SHADER_IMGNAT_12_MASK12_NOMUL, &(shader_imgnat_12_mask12_nomul_vert_src), &(shader_imgnat_12_mask12_nomul_frag_src), "imgnat_12_mask12_nomul", SHD_IMAGENATIVE, SHD_SAM12, SHD_SAM12, 0, 1, 1, 0 },
+ { SHADER_IMGNAT_21_MASK12_NOMUL, &(shader_imgnat_21_mask12_nomul_vert_src), &(shader_imgnat_21_mask12_nomul_frag_src), "imgnat_21_mask12_nomul", SHD_IMAGENATIVE, SHD_SAM21, SHD_SAM12, 0, 1, 1, 0 },
+ { SHADER_IMGNAT_22_MASK12_NOMUL, &(shader_imgnat_22_mask12_nomul_vert_src), &(shader_imgnat_22_mask12_nomul_frag_src), "imgnat_22_mask12_nomul", SHD_IMAGENATIVE, SHD_SAM22, SHD_SAM12, 0, 1, 1, 0 },
+ { SHADER_IMGNAT_12_BGRA_MASK12_NOMUL, &(shader_imgnat_12_bgra_mask12_nomul_vert_src), &(shader_imgnat_12_bgra_mask12_nomul_frag_src), "imgnat_12_bgra_mask12_nomul", SHD_IMAGENATIVE, SHD_SAM12, SHD_SAM12, 1, 1, 1, 0 },
+ { SHADER_IMGNAT_21_BGRA_MASK12_NOMUL, &(shader_imgnat_21_bgra_mask12_nomul_vert_src), &(shader_imgnat_21_bgra_mask12_nomul_frag_src), "imgnat_21_bgra_mask12_nomul", SHD_IMAGENATIVE, SHD_SAM21, SHD_SAM12, 1, 1, 1, 0 },
+ { SHADER_IMGNAT_22_BGRA_MASK12_NOMUL, &(shader_imgnat_22_bgra_mask12_nomul_vert_src), &(shader_imgnat_22_bgra_mask12_nomul_frag_src), "imgnat_22_bgra_mask12_nomul", SHD_IMAGENATIVE, SHD_SAM22, SHD_SAM12, 1, 1, 1, 0 },
+ { SHADER_IMGNAT_MASK21, &(shader_imgnat_mask21_vert_src), &(shader_imgnat_mask21_frag_src), "imgnat_mask21", SHD_IMAGENATIVE, SHD_SAM11, SHD_SAM21, 0, 1, 0, 0 },
+ { SHADER_IMGNAT_BGRA_MASK21, &(shader_imgnat_bgra_mask21_vert_src), &(shader_imgnat_bgra_mask21_frag_src), "imgnat_bgra_mask21", SHD_IMAGENATIVE, SHD_SAM11, SHD_SAM21, 1, 1, 0, 0 },
+ { SHADER_IMGNAT_12_MASK21, &(shader_imgnat_12_mask21_vert_src), &(shader_imgnat_12_mask21_frag_src), "imgnat_12_mask21", SHD_IMAGENATIVE, SHD_SAM12, SHD_SAM21, 0, 1, 0, 0 },
+ { SHADER_IMGNAT_21_MASK21, &(shader_imgnat_21_mask21_vert_src), &(shader_imgnat_21_mask21_frag_src), "imgnat_21_mask21", SHD_IMAGENATIVE, SHD_SAM21, SHD_SAM21, 0, 1, 0, 0 },
+ { SHADER_IMGNAT_22_MASK21, &(shader_imgnat_22_mask21_vert_src), &(shader_imgnat_22_mask21_frag_src), "imgnat_22_mask21", SHD_IMAGENATIVE, SHD_SAM22, SHD_SAM21, 0, 1, 0, 0 },
+ { SHADER_IMGNAT_12_BGRA_MASK21, &(shader_imgnat_12_bgra_mask21_vert_src), &(shader_imgnat_12_bgra_mask21_frag_src), "imgnat_12_bgra_mask21", SHD_IMAGENATIVE, SHD_SAM12, SHD_SAM21, 1, 1, 0, 0 },
+ { SHADER_IMGNAT_21_BGRA_MASK21, &(shader_imgnat_21_bgra_mask21_vert_src), &(shader_imgnat_21_bgra_mask21_frag_src), "imgnat_21_bgra_mask21", SHD_IMAGENATIVE, SHD_SAM21, SHD_SAM21, 1, 1, 0, 0 },
+ { SHADER_IMGNAT_22_BGRA_MASK21, &(shader_imgnat_22_bgra_mask21_vert_src), &(shader_imgnat_22_bgra_mask21_frag_src), "imgnat_22_bgra_mask21", SHD_IMAGENATIVE, SHD_SAM22, SHD_SAM21, 1, 1, 0, 0 },
+ { SHADER_IMGNAT_MASK21_NOMUL, &(shader_imgnat_mask21_nomul_vert_src), &(shader_imgnat_mask21_nomul_frag_src), "imgnat_mask21_nomul", SHD_IMAGENATIVE, SHD_SAM11, SHD_SAM21, 0, 1, 1, 0 },
+ { SHADER_IMGNAT_BGRA_MASK21_NOMUL, &(shader_imgnat_bgra_mask21_nomul_vert_src), &(shader_imgnat_bgra_mask21_nomul_frag_src), "imgnat_bgra_mask21_nomul", SHD_IMAGENATIVE, SHD_SAM11, SHD_SAM21, 1, 1, 1, 0 },
+ { SHADER_IMGNAT_12_MASK21_NOMUL, &(shader_imgnat_12_mask21_nomul_vert_src), &(shader_imgnat_12_mask21_nomul_frag_src), "imgnat_12_mask21_nomul", SHD_IMAGENATIVE, SHD_SAM12, SHD_SAM21, 0, 1, 1, 0 },
+ { SHADER_IMGNAT_21_MASK21_NOMUL, &(shader_imgnat_21_mask21_nomul_vert_src), &(shader_imgnat_21_mask21_nomul_frag_src), "imgnat_21_mask21_nomul", SHD_IMAGENATIVE, SHD_SAM21, SHD_SAM21, 0, 1, 1, 0 },
+ { SHADER_IMGNAT_22_MASK21_NOMUL, &(shader_imgnat_22_mask21_nomul_vert_src), &(shader_imgnat_22_mask21_nomul_frag_src), "imgnat_22_mask21_nomul", SHD_IMAGENATIVE, SHD_SAM22, SHD_SAM21, 0, 1, 1, 0 },
+ { SHADER_IMGNAT_12_BGRA_MASK21_NOMUL, &(shader_imgnat_12_bgra_mask21_nomul_vert_src), &(shader_imgnat_12_bgra_mask21_nomul_frag_src), "imgnat_12_bgra_mask21_nomul", SHD_IMAGENATIVE, SHD_SAM12, SHD_SAM21, 1, 1, 1, 0 },
+ { SHADER_IMGNAT_21_BGRA_MASK21_NOMUL, &(shader_imgnat_21_bgra_mask21_nomul_vert_src), &(shader_imgnat_21_bgra_mask21_nomul_frag_src), "imgnat_21_bgra_mask21_nomul", SHD_IMAGENATIVE, SHD_SAM21, SHD_SAM21, 1, 1, 1, 0 },
+ { SHADER_IMGNAT_22_BGRA_MASK21_NOMUL, &(shader_imgnat_22_bgra_mask21_nomul_vert_src), &(shader_imgnat_22_bgra_mask21_nomul_frag_src), "imgnat_22_bgra_mask21_nomul", SHD_IMAGENATIVE, SHD_SAM22, SHD_SAM21, 1, 1, 1, 0 },
+ { SHADER_IMGNAT_MASK22, &(shader_imgnat_mask22_vert_src), &(shader_imgnat_mask22_frag_src), "imgnat_mask22", SHD_IMAGENATIVE, SHD_SAM11, SHD_SAM22, 0, 1, 0, 0 },
+ { SHADER_IMGNAT_BGRA_MASK22, &(shader_imgnat_bgra_mask22_vert_src), &(shader_imgnat_bgra_mask22_frag_src), "imgnat_bgra_mask22", SHD_IMAGENATIVE, SHD_SAM11, SHD_SAM22, 1, 1, 0, 0 },
+ { SHADER_IMGNAT_12_MASK22, &(shader_imgnat_12_mask22_vert_src), &(shader_imgnat_12_mask22_frag_src), "imgnat_12_mask22", SHD_IMAGENATIVE, SHD_SAM12, SHD_SAM22, 0, 1, 0, 0 },
+ { SHADER_IMGNAT_21_MASK22, &(shader_imgnat_21_mask22_vert_src), &(shader_imgnat_21_mask22_frag_src), "imgnat_21_mask22", SHD_IMAGENATIVE, SHD_SAM21, SHD_SAM22, 0, 1, 0, 0 },
+ { SHADER_IMGNAT_22_MASK22, &(shader_imgnat_22_mask22_vert_src), &(shader_imgnat_22_mask22_frag_src), "imgnat_22_mask22", SHD_IMAGENATIVE, SHD_SAM22, SHD_SAM22, 0, 1, 0, 0 },
+ { SHADER_IMGNAT_12_BGRA_MASK22, &(shader_imgnat_12_bgra_mask22_vert_src), &(shader_imgnat_12_bgra_mask22_frag_src), "imgnat_12_bgra_mask22", SHD_IMAGENATIVE, SHD_SAM12, SHD_SAM22, 1, 1, 0, 0 },
+ { SHADER_IMGNAT_21_BGRA_MASK22, &(shader_imgnat_21_bgra_mask22_vert_src), &(shader_imgnat_21_bgra_mask22_frag_src), "imgnat_21_bgra_mask22", SHD_IMAGENATIVE, SHD_SAM21, SHD_SAM22, 1, 1, 0, 0 },
+ { SHADER_IMGNAT_22_BGRA_MASK22, &(shader_imgnat_22_bgra_mask22_vert_src), &(shader_imgnat_22_bgra_mask22_frag_src), "imgnat_22_bgra_mask22", SHD_IMAGENATIVE, SHD_SAM22, SHD_SAM22, 1, 1, 0, 0 },
+ { SHADER_IMGNAT_MASK22_NOMUL, &(shader_imgnat_mask22_nomul_vert_src), &(shader_imgnat_mask22_nomul_frag_src), "imgnat_mask22_nomul", SHD_IMAGENATIVE, SHD_SAM11, SHD_SAM22, 0, 1, 1, 0 },
+ { SHADER_IMGNAT_BGRA_MASK22_NOMUL, &(shader_imgnat_bgra_mask22_nomul_vert_src), &(shader_imgnat_bgra_mask22_nomul_frag_src), "imgnat_bgra_mask22_nomul", SHD_IMAGENATIVE, SHD_SAM11, SHD_SAM22, 1, 1, 1, 0 },
+ { SHADER_IMGNAT_12_MASK22_NOMUL, &(shader_imgnat_12_mask22_nomul_vert_src), &(shader_imgnat_12_mask22_nomul_frag_src), "imgnat_12_mask22_nomul", SHD_IMAGENATIVE, SHD_SAM12, SHD_SAM22, 0, 1, 1, 0 },
+ { SHADER_IMGNAT_21_MASK22_NOMUL, &(shader_imgnat_21_mask22_nomul_vert_src), &(shader_imgnat_21_mask22_nomul_frag_src), "imgnat_21_mask22_nomul", SHD_IMAGENATIVE, SHD_SAM21, SHD_SAM22, 0, 1, 1, 0 },
+ { SHADER_IMGNAT_22_MASK22_NOMUL, &(shader_imgnat_22_mask22_nomul_vert_src), &(shader_imgnat_22_mask22_nomul_frag_src), "imgnat_22_mask22_nomul", SHD_IMAGENATIVE, SHD_SAM22, SHD_SAM22, 0, 1, 1, 0 },
+ { SHADER_IMGNAT_12_BGRA_MASK22_NOMUL, &(shader_imgnat_12_bgra_mask22_nomul_vert_src), &(shader_imgnat_12_bgra_mask22_nomul_frag_src), "imgnat_12_bgra_mask22_nomul", SHD_IMAGENATIVE, SHD_SAM12, SHD_SAM22, 1, 1, 1, 0 },
+ { SHADER_IMGNAT_21_BGRA_MASK22_NOMUL, &(shader_imgnat_21_bgra_mask22_nomul_vert_src), &(shader_imgnat_21_bgra_mask22_nomul_frag_src), "imgnat_21_bgra_mask22_nomul", SHD_IMAGENATIVE, SHD_SAM21, SHD_SAM22, 1, 1, 1, 0 },
+ { SHADER_IMGNAT_22_BGRA_MASK22_NOMUL, &(shader_imgnat_22_bgra_mask22_nomul_vert_src), &(shader_imgnat_22_bgra_mask22_nomul_frag_src), "imgnat_22_bgra_mask22_nomul", SHD_IMAGENATIVE, SHD_SAM22, SHD_SAM22, 1, 1, 1, 0 },
+ { SHADER_IMGNAT_AFILL, &(shader_imgnat_afill_vert_src), &(shader_imgnat_afill_frag_src), "imgnat_afill", SHD_IMAGENATIVE, SHD_SAM11, SHD_SAM11, 0, 0, 0, 1 },
+ { SHADER_IMGNAT_BGRA_AFILL, &(shader_imgnat_bgra_afill_vert_src), &(shader_imgnat_bgra_afill_frag_src), "imgnat_bgra_afill", SHD_IMAGENATIVE, SHD_SAM11, SHD_SAM11, 1, 0, 0, 1 },
+ { SHADER_IMGNAT_NOMUL_AFILL, &(shader_imgnat_nomul_afill_vert_src), &(shader_imgnat_nomul_afill_frag_src), "imgnat_nomul_afill", SHD_IMAGENATIVE, SHD_SAM11, SHD_SAM11, 0, 0, 1, 1 },
+ { SHADER_IMGNAT_BGRA_NOMUL_AFILL, &(shader_imgnat_bgra_nomul_afill_vert_src), &(shader_imgnat_bgra_nomul_afill_frag_src), "imgnat_bgra_nomul_afill", SHD_IMAGENATIVE, SHD_SAM11, SHD_SAM11, 1, 0, 1, 1 },
+ { SHADER_IMGNAT_12_AFILL, &(shader_imgnat_12_afill_vert_src), &(shader_imgnat_12_afill_frag_src), "imgnat_12_afill", SHD_IMAGENATIVE, SHD_SAM12, SHD_SAM11, 0, 0, 0, 1 },
+ { SHADER_IMGNAT_21_AFILL, &(shader_imgnat_21_afill_vert_src), &(shader_imgnat_21_afill_frag_src), "imgnat_21_afill", SHD_IMAGENATIVE, SHD_SAM21, SHD_SAM11, 0, 0, 0, 1 },
+ { SHADER_IMGNAT_22_AFILL, &(shader_imgnat_22_afill_vert_src), &(shader_imgnat_22_afill_frag_src), "imgnat_22_afill", SHD_IMAGENATIVE, SHD_SAM22, SHD_SAM11, 0, 0, 0, 1 },
+ { SHADER_IMGNAT_12_BGRA_AFILL, &(shader_imgnat_12_bgra_afill_vert_src), &(shader_imgnat_12_bgra_afill_frag_src), "imgnat_12_bgra_afill", SHD_IMAGENATIVE, SHD_SAM12, SHD_SAM11, 1, 0, 0, 1 },
+ { SHADER_IMGNAT_21_BGRA_AFILL, &(shader_imgnat_21_bgra_afill_vert_src), &(shader_imgnat_21_bgra_afill_frag_src), "imgnat_21_bgra_afill", SHD_IMAGENATIVE, SHD_SAM21, SHD_SAM11, 1, 0, 0, 1 },
+ { SHADER_IMGNAT_22_BGRA_AFILL, &(shader_imgnat_22_bgra_afill_vert_src), &(shader_imgnat_22_bgra_afill_frag_src), "imgnat_22_bgra_afill", SHD_IMAGENATIVE, SHD_SAM22, SHD_SAM11, 1, 0, 0, 1 },
+ { SHADER_IMGNAT_12_NOMUL_AFILL, &(shader_imgnat_12_nomul_afill_vert_src), &(shader_imgnat_12_nomul_afill_frag_src), "imgnat_12_nomul_afill", SHD_IMAGENATIVE, SHD_SAM12, SHD_SAM11, 0, 0, 1, 1 },
+ { SHADER_IMGNAT_21_NOMUL_AFILL, &(shader_imgnat_21_nomul_afill_vert_src), &(shader_imgnat_21_nomul_afill_frag_src), "imgnat_21_nomul_afill", SHD_IMAGENATIVE, SHD_SAM21, SHD_SAM11, 0, 0, 1, 1 },
+ { SHADER_IMGNAT_22_NOMUL_AFILL, &(shader_imgnat_22_nomul_afill_vert_src), &(shader_imgnat_22_nomul_afill_frag_src), "imgnat_22_nomul_afill", SHD_IMAGENATIVE, SHD_SAM22, SHD_SAM11, 0, 0, 1, 1 },
+ { SHADER_IMGNAT_12_BGRA_NOMUL_AFILL, &(shader_imgnat_12_bgra_nomul_afill_vert_src), &(shader_imgnat_12_bgra_nomul_afill_frag_src), "imgnat_12_bgra_nomul_afill", SHD_IMAGENATIVE, SHD_SAM12, SHD_SAM11, 1, 0, 1, 1 },
+ { SHADER_IMGNAT_21_BGRA_NOMUL_AFILL, &(shader_imgnat_21_bgra_nomul_afill_vert_src), &(shader_imgnat_21_bgra_nomul_afill_frag_src), "imgnat_21_bgra_nomul_afill", SHD_IMAGENATIVE, SHD_SAM21, SHD_SAM11, 1, 0, 1, 1 },
+ { SHADER_IMGNAT_22_BGRA_NOMUL_AFILL, &(shader_imgnat_22_bgra_nomul_afill_vert_src), &(shader_imgnat_22_bgra_nomul_afill_frag_src), "imgnat_22_bgra_nomul_afill", SHD_IMAGENATIVE, SHD_SAM22, SHD_SAM11, 1, 0, 1, 1 },
{ SHADER_RGB_A_PAIR, &(shader_rgb_a_pair_vert_src), &(shader_rgb_a_pair_frag_src), "rgb_a_pair", SHD_RGB_A_PAIR, SHD_SAM11, SHD_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", SHD_RGB_A_PAIR, SHD_SAM11, SHD_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", SHD_RGB_A_PAIR, SHD_SAM11, SHD_SAM11, 0, 0, 1, 0 },
diff --git a/src/modules/evas/engines/gl_common/shader/evas_gl_shaders_bigendian.x b/src/modules/evas/engines/gl_common/shader/evas_gl_shaders_bigendian.x
index 4908ac4fdd..fd03465a5b 100644
--- a/src/modules/evas/engines/gl_common/shader/evas_gl_shaders_bigendian.x
+++ b/src/modules/evas/engines/gl_common/shader/evas_gl_shaders_bigendian.x
@@ -612,7 +612,7 @@ static const char img_frag_glsl[] =
"void main()\n"
"{\n"
" vec4 c;\n"
- " c = texture2D(tex, tex_c).bgra;\n"
+ " c = texture2D(tex, tex_c).gbar;\n"
" gl_FragColor =\n"
" c\n"
" * col\n"
@@ -6918,6 +6918,6326 @@ Evas_GL_Program_Source shader_img_22_bgra_nomul_afill_vert_src =
NULL, 0
};
+static const char imgnat_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"
+ "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_imgnat_frag_src =
+{
+ imgnat_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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"
+ "void main()\n"
+ "{\n"
+ " gl_Position = mvp * vertex;\n"
+ " col = color;\n"
+ " tex_c = tex_coord;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_vert_src =
+{
+ imgnat_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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"
+ "void main()\n"
+ "{\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_imgnat_bgra_frag_src =
+{
+ imgnat_bgra_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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"
+ "void main()\n"
+ "{\n"
+ " gl_Position = mvp * vertex;\n"
+ " col = color;\n"
+ " tex_c = tex_coord;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_bgra_vert_src =
+{
+ imgnat_bgra_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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"
+ "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]).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_imgnat_12_frag_src =
+{
+ imgnat_12_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_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_imgnat_12_vert_src =
+{
+ imgnat_12_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_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]).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_imgnat_21_frag_src =
+{
+ imgnat_21_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_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_imgnat_21_vert_src =
+{
+ imgnat_21_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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"
+ "#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_imgnat_22_frag_src =
+{
+ imgnat_22_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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_imgnat_22_vert_src =
+{
+ imgnat_22_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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_imgnat_12_bgra_frag_src =
+{
+ imgnat_12_bgra_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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_imgnat_12_bgra_vert_src =
+{
+ imgnat_12_bgra_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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_imgnat_21_bgra_frag_src =
+{
+ imgnat_21_bgra_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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_imgnat_21_bgra_vert_src =
+{
+ imgnat_21_bgra_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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_imgnat_22_bgra_frag_src =
+{
+ imgnat_22_bgra_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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_imgnat_22_bgra_vert_src =
+{
+ imgnat_22_bgra_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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"
+ " float ma;\n"
+ " ma = texture2D(texm, tex_m).a;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_mask_frag_src =
+{
+ imgnat_mask_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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_imgnat_mask_vert_src =
+{
+ imgnat_mask_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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"
+ " float ma;\n"
+ " ma = texture2D(texm, tex_m).a;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_bgra_mask_frag_src =
+{
+ imgnat_bgra_mask_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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_imgnat_bgra_mask_vert_src =
+{
+ imgnat_bgra_mask_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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"
+ " float ma;\n"
+ " ma = texture2D(texm, tex_m).a;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_12_mask_frag_src =
+{
+ imgnat_12_mask_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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_imgnat_12_mask_vert_src =
+{
+ imgnat_12_mask_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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"
+ " float ma;\n"
+ " ma = texture2D(texm, tex_m).a;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_21_mask_frag_src =
+{
+ imgnat_21_mask_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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_imgnat_21_mask_vert_src =
+{
+ imgnat_21_mask_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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"
+ " float ma;\n"
+ " ma = texture2D(texm, tex_m).a;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_22_mask_frag_src =
+{
+ imgnat_22_mask_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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_imgnat_22_mask_vert_src =
+{
+ imgnat_22_mask_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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"
+ " float ma;\n"
+ " ma = texture2D(texm, tex_m).a;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_12_bgra_mask_frag_src =
+{
+ imgnat_12_bgra_mask_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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_imgnat_12_bgra_mask_vert_src =
+{
+ imgnat_12_bgra_mask_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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"
+ " float ma;\n"
+ " ma = texture2D(texm, tex_m).a;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_21_bgra_mask_frag_src =
+{
+ imgnat_21_bgra_mask_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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_imgnat_21_bgra_mask_vert_src =
+{
+ imgnat_21_bgra_mask_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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"
+ " float ma;\n"
+ " ma = texture2D(texm, tex_m).a;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_22_bgra_mask_frag_src =
+{
+ imgnat_22_bgra_mask_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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_imgnat_22_bgra_mask_vert_src =
+{
+ imgnat_22_bgra_mask_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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_imgnat_nomul_frag_src =
+{
+ imgnat_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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_imgnat_nomul_vert_src =
+{
+ imgnat_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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_imgnat_bgra_nomul_frag_src =
+{
+ imgnat_bgra_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_bgra_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_imgnat_bgra_nomul_vert_src =
+{
+ imgnat_bgra_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_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"
+ "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"
+ " c = (col00 + col01) / div_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_12_nomul_frag_src =
+{
+ imgnat_12_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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_imgnat_12_nomul_vert_src =
+{
+ imgnat_12_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_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"
+ "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"
+ " c = (col00 + col01) / div_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_21_nomul_frag_src =
+{
+ imgnat_21_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_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(-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_imgnat_21_nomul_vert_src =
+{
+ imgnat_21_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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"
+ "#endif\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"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_22_nomul_frag_src =
+{
+ imgnat_22_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_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[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"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_22_nomul_vert_src =
+{
+ imgnat_22_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_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"
+ "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"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_12_bgra_nomul_frag_src =
+{
+ imgnat_12_bgra_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_bgra_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_imgnat_12_bgra_nomul_vert_src =
+{
+ imgnat_12_bgra_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_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"
+ "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"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_21_bgra_nomul_frag_src =
+{
+ imgnat_21_bgra_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_bgra_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(-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_imgnat_21_bgra_nomul_vert_src =
+{
+ imgnat_21_bgra_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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"
+ "#endif\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"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_22_bgra_nomul_frag_src =
+{
+ imgnat_22_bgra_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_bgra_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[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"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_22_bgra_nomul_vert_src =
+{
+ imgnat_22_bgra_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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"
+ "#endif\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"
+ " float ma;\n"
+ " ma = texture2D(texm, tex_m).a;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_mask_nomul_frag_src =
+{
+ imgnat_mask_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_mask_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 vec4 mask_coord;\n"
+ "varying vec2 tex_m;\n"
+ "void main()\n"
+ "{\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_imgnat_mask_nomul_vert_src =
+{
+ imgnat_mask_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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"
+ "#endif\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"
+ " float ma;\n"
+ " ma = texture2D(texm, tex_m).a;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_bgra_mask_nomul_frag_src =
+{
+ imgnat_bgra_mask_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_bgra_mask_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 vec4 mask_coord;\n"
+ "varying vec2 tex_m;\n"
+ "void main()\n"
+ "{\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_imgnat_bgra_mask_nomul_vert_src =
+{
+ imgnat_bgra_mask_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_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"
+ "#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"
+ " 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"
+ " float ma;\n"
+ " ma = texture2D(texm, tex_m).a;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_12_mask_nomul_frag_src =
+{
+ imgnat_12_mask_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_mask_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"
+ "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_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_imgnat_12_mask_nomul_vert_src =
+{
+ imgnat_12_mask_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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"
+ "#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"
+ " 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"
+ " float ma;\n"
+ " ma = texture2D(texm, tex_m).a;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_21_mask_nomul_frag_src =
+{
+ imgnat_21_mask_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_mask_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"
+ "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_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_imgnat_21_mask_nomul_vert_src =
+{
+ imgnat_21_mask_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_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"
+ "#endif\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"
+ " float ma;\n"
+ " ma = texture2D(texm, tex_m).a;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_22_mask_nomul_frag_src =
+{
+ imgnat_22_mask_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_mask_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[4];\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_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_imgnat_22_mask_nomul_vert_src =
+{
+ imgnat_22_mask_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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"
+ "#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"
+ " 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"
+ " float ma;\n"
+ " ma = texture2D(texm, tex_m).a;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_12_bgra_mask_nomul_frag_src =
+{
+ imgnat_12_bgra_mask_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_bgra_mask_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"
+ "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_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_imgnat_12_bgra_mask_nomul_vert_src =
+{
+ imgnat_12_bgra_mask_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_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"
+ "#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"
+ " 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"
+ " float ma;\n"
+ " ma = texture2D(texm, tex_m).a;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_21_bgra_mask_nomul_frag_src =
+{
+ imgnat_21_bgra_mask_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_bgra_mask_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"
+ "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_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_imgnat_21_bgra_mask_nomul_vert_src =
+{
+ imgnat_21_bgra_mask_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_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"
+ "#endif\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"
+ " float ma;\n"
+ " ma = texture2D(texm, tex_m).a;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_22_bgra_mask_nomul_frag_src =
+{
+ imgnat_22_bgra_mask_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_bgra_mask_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[4];\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_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_imgnat_22_bgra_mask_nomul_vert_src =
+{
+ imgnat_22_bgra_mask_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_mask12_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"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[2];\n"
+ "void main()\n"
+ "{\n"
+ " vec4 c;\n"
+ " c = texture2D(tex, tex_c).bgra;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_mask12_frag_src =
+{
+ imgnat_mask12_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_mask12_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"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[2];\n"
+ "void main()\n"
+ "{\n"
+ " gl_Position = mvp * vertex;\n"
+ " col = color;\n"
+ " tex_c = tex_coord;\n"
+ " masktex_s[0] = vec2(0, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2(0, tex_masksample.y);\n"
+ " maskdiv_s = 2.0;\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_imgnat_mask12_vert_src =
+{
+ imgnat_mask12_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_bgra_mask12_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"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[2];\n"
+ "void main()\n"
+ "{\n"
+ " vec4 c;\n"
+ " c = texture2D(tex, tex_c).rgba;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_bgra_mask12_frag_src =
+{
+ imgnat_bgra_mask12_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_bgra_mask12_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"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[2];\n"
+ "void main()\n"
+ "{\n"
+ " gl_Position = mvp * vertex;\n"
+ " col = color;\n"
+ " tex_c = tex_coord;\n"
+ " masktex_s[0] = vec2(0, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2(0, tex_masksample.y);\n"
+ " maskdiv_s = 2.0;\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_imgnat_bgra_mask12_vert_src =
+{
+ imgnat_bgra_mask12_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_mask12_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"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " c = (col00 + col01) / div_s;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_12_mask12_frag_src =
+{
+ imgnat_12_mask12_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_mask12_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"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(0, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2(0, tex_masksample.y);\n"
+ " maskdiv_s = 2.0;\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_imgnat_12_mask12_vert_src =
+{
+ imgnat_12_mask12_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_mask12_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"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " c = (col00 + col01) / div_s;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_21_mask12_frag_src =
+{
+ imgnat_21_mask12_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_mask12_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"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(0, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2(0, tex_masksample.y);\n"
+ " maskdiv_s = 2.0;\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_imgnat_21_mask12_vert_src =
+{
+ imgnat_21_mask12_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_mask12_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"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " 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"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_22_mask12_frag_src =
+{
+ imgnat_22_mask12_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_mask12_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"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(0, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2(0, tex_masksample.y);\n"
+ " maskdiv_s = 2.0;\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_imgnat_22_mask12_vert_src =
+{
+ imgnat_22_mask12_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_bgra_mask12_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"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_12_bgra_mask12_frag_src =
+{
+ imgnat_12_bgra_mask12_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_bgra_mask12_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"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(0, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2(0, tex_masksample.y);\n"
+ " maskdiv_s = 2.0;\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_imgnat_12_bgra_mask12_vert_src =
+{
+ imgnat_12_bgra_mask12_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_bgra_mask12_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"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_21_bgra_mask12_frag_src =
+{
+ imgnat_21_bgra_mask12_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_bgra_mask12_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"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(0, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2(0, tex_masksample.y);\n"
+ " maskdiv_s = 2.0;\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_imgnat_21_bgra_mask12_vert_src =
+{
+ imgnat_21_bgra_mask12_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_bgra_mask12_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"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " 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"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_22_bgra_mask12_frag_src =
+{
+ imgnat_22_bgra_mask12_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_bgra_mask12_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"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(0, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2(0, tex_masksample.y);\n"
+ " maskdiv_s = 2.0;\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_imgnat_22_bgra_mask12_vert_src =
+{
+ imgnat_22_bgra_mask12_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_mask12_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"
+ "uniform sampler2D texm;\n"
+ "varying vec2 tex_m;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[2];\n"
+ "void main()\n"
+ "{\n"
+ " vec4 c;\n"
+ " c = texture2D(tex, tex_c).bgra;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_mask12_nomul_frag_src =
+{
+ imgnat_mask12_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_mask12_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 vec4 mask_coord;\n"
+ "varying vec2 tex_m;\n"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[2];\n"
+ "void main()\n"
+ "{\n"
+ " gl_Position = mvp * vertex;\n"
+ " tex_c = tex_coord;\n"
+ " masktex_s[0] = vec2(0, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2(0, tex_masksample.y);\n"
+ " maskdiv_s = 2.0;\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_imgnat_mask12_nomul_vert_src =
+{
+ imgnat_mask12_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_bgra_mask12_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"
+ "uniform sampler2D texm;\n"
+ "varying vec2 tex_m;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[2];\n"
+ "void main()\n"
+ "{\n"
+ " vec4 c;\n"
+ " c = texture2D(tex, tex_c).rgba;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_bgra_mask12_nomul_frag_src =
+{
+ imgnat_bgra_mask12_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_bgra_mask12_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 vec4 mask_coord;\n"
+ "varying vec2 tex_m;\n"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[2];\n"
+ "void main()\n"
+ "{\n"
+ " gl_Position = mvp * vertex;\n"
+ " tex_c = tex_coord;\n"
+ " masktex_s[0] = vec2(0, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2(0, tex_masksample.y);\n"
+ " maskdiv_s = 2.0;\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_imgnat_bgra_mask12_nomul_vert_src =
+{
+ imgnat_bgra_mask12_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_mask12_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"
+ "varying vec4 div_s;\n"
+ "varying vec2 tex_s[2];\n"
+ "uniform sampler2D texm;\n"
+ "varying vec2 tex_m;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " c = (col00 + col01) / div_s;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_12_mask12_nomul_frag_src =
+{
+ imgnat_12_mask12_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_mask12_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"
+ "attribute vec4 mask_coord;\n"
+ "varying vec2 tex_m;\n"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(0, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2(0, tex_masksample.y);\n"
+ " maskdiv_s = 2.0;\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_imgnat_12_mask12_nomul_vert_src =
+{
+ imgnat_12_mask12_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_mask12_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"
+ "varying vec4 div_s;\n"
+ "varying vec2 tex_s[2];\n"
+ "uniform sampler2D texm;\n"
+ "varying vec2 tex_m;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " c = (col00 + col01) / div_s;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_21_mask12_nomul_frag_src =
+{
+ imgnat_21_mask12_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_mask12_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"
+ "attribute vec4 mask_coord;\n"
+ "varying vec2 tex_m;\n"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[2];\n"
+ "void main()\n"
+ "{\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"
+ " masktex_s[0] = vec2(0, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2(0, tex_masksample.y);\n"
+ " maskdiv_s = 2.0;\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_imgnat_21_mask12_nomul_vert_src =
+{
+ imgnat_21_mask12_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_mask12_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"
+ "varying vec4 div_s;\n"
+ "varying vec2 tex_s[4];\n"
+ "uniform sampler2D texm;\n"
+ "varying vec2 tex_m;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " 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"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_22_mask12_nomul_frag_src =
+{
+ imgnat_22_mask12_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_mask12_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[4];\n"
+ "attribute vec4 mask_coord;\n"
+ "varying vec2 tex_m;\n"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(0, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2(0, tex_masksample.y);\n"
+ " maskdiv_s = 2.0;\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_imgnat_22_mask12_nomul_vert_src =
+{
+ imgnat_22_mask12_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_bgra_mask12_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"
+ "varying vec4 div_s;\n"
+ "varying vec2 tex_s[2];\n"
+ "uniform sampler2D texm;\n"
+ "varying vec2 tex_m;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_12_bgra_mask12_nomul_frag_src =
+{
+ imgnat_12_bgra_mask12_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_bgra_mask12_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"
+ "attribute vec4 mask_coord;\n"
+ "varying vec2 tex_m;\n"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(0, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2(0, tex_masksample.y);\n"
+ " maskdiv_s = 2.0;\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_imgnat_12_bgra_mask12_nomul_vert_src =
+{
+ imgnat_12_bgra_mask12_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_bgra_mask12_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"
+ "varying vec4 div_s;\n"
+ "varying vec2 tex_s[2];\n"
+ "uniform sampler2D texm;\n"
+ "varying vec2 tex_m;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_21_bgra_mask12_nomul_frag_src =
+{
+ imgnat_21_bgra_mask12_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_bgra_mask12_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"
+ "attribute vec4 mask_coord;\n"
+ "varying vec2 tex_m;\n"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[2];\n"
+ "void main()\n"
+ "{\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"
+ " masktex_s[0] = vec2(0, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2(0, tex_masksample.y);\n"
+ " maskdiv_s = 2.0;\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_imgnat_21_bgra_mask12_nomul_vert_src =
+{
+ imgnat_21_bgra_mask12_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_bgra_mask12_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"
+ "varying vec4 div_s;\n"
+ "varying vec2 tex_s[4];\n"
+ "uniform sampler2D texm;\n"
+ "varying vec2 tex_m;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " 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"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_22_bgra_mask12_nomul_frag_src =
+{
+ imgnat_22_bgra_mask12_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_bgra_mask12_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[4];\n"
+ "attribute vec4 mask_coord;\n"
+ "varying vec2 tex_m;\n"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(0, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2(0, tex_masksample.y);\n"
+ " maskdiv_s = 2.0;\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_imgnat_22_bgra_mask12_nomul_vert_src =
+{
+ imgnat_22_bgra_mask12_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_mask21_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"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[2];\n"
+ "void main()\n"
+ "{\n"
+ " vec4 c;\n"
+ " c = texture2D(tex, tex_c).bgra;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_mask21_frag_src =
+{
+ imgnat_mask21_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_mask21_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"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[2];\n"
+ "void main()\n"
+ "{\n"
+ " gl_Position = mvp * vertex;\n"
+ " col = color;\n"
+ " tex_c = tex_coord;\n"
+ " masktex_s[0] = vec2(-tex_masksample.x, 0);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, 0);\n"
+ " maskdiv_s = 2.0;\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_imgnat_mask21_vert_src =
+{
+ imgnat_mask21_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_bgra_mask21_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"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[2];\n"
+ "void main()\n"
+ "{\n"
+ " vec4 c;\n"
+ " c = texture2D(tex, tex_c).rgba;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_bgra_mask21_frag_src =
+{
+ imgnat_bgra_mask21_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_bgra_mask21_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"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[2];\n"
+ "void main()\n"
+ "{\n"
+ " gl_Position = mvp * vertex;\n"
+ " col = color;\n"
+ " tex_c = tex_coord;\n"
+ " masktex_s[0] = vec2(-tex_masksample.x, 0);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, 0);\n"
+ " maskdiv_s = 2.0;\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_imgnat_bgra_mask21_vert_src =
+{
+ imgnat_bgra_mask21_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_mask21_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"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " c = (col00 + col01) / div_s;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_12_mask21_frag_src =
+{
+ imgnat_12_mask21_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_mask21_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"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(-tex_masksample.x, 0);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, 0);\n"
+ " maskdiv_s = 2.0;\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_imgnat_12_mask21_vert_src =
+{
+ imgnat_12_mask21_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_mask21_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"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " c = (col00 + col01) / div_s;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_21_mask21_frag_src =
+{
+ imgnat_21_mask21_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_mask21_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"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(-tex_masksample.x, 0);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, 0);\n"
+ " maskdiv_s = 2.0;\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_imgnat_21_mask21_vert_src =
+{
+ imgnat_21_mask21_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_mask21_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"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " 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"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_22_mask21_frag_src =
+{
+ imgnat_22_mask21_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_mask21_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"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(-tex_masksample.x, 0);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, 0);\n"
+ " maskdiv_s = 2.0;\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_imgnat_22_mask21_vert_src =
+{
+ imgnat_22_mask21_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_bgra_mask21_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"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_12_bgra_mask21_frag_src =
+{
+ imgnat_12_bgra_mask21_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_bgra_mask21_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"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(-tex_masksample.x, 0);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, 0);\n"
+ " maskdiv_s = 2.0;\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_imgnat_12_bgra_mask21_vert_src =
+{
+ imgnat_12_bgra_mask21_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_bgra_mask21_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"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_21_bgra_mask21_frag_src =
+{
+ imgnat_21_bgra_mask21_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_bgra_mask21_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"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(-tex_masksample.x, 0);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, 0);\n"
+ " maskdiv_s = 2.0;\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_imgnat_21_bgra_mask21_vert_src =
+{
+ imgnat_21_bgra_mask21_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_bgra_mask21_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"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " 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"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_22_bgra_mask21_frag_src =
+{
+ imgnat_22_bgra_mask21_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_bgra_mask21_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"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(-tex_masksample.x, 0);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, 0);\n"
+ " maskdiv_s = 2.0;\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_imgnat_22_bgra_mask21_vert_src =
+{
+ imgnat_22_bgra_mask21_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_mask21_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"
+ "uniform sampler2D texm;\n"
+ "varying vec2 tex_m;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[2];\n"
+ "void main()\n"
+ "{\n"
+ " vec4 c;\n"
+ " c = texture2D(tex, tex_c).bgra;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_mask21_nomul_frag_src =
+{
+ imgnat_mask21_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_mask21_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 vec4 mask_coord;\n"
+ "varying vec2 tex_m;\n"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[2];\n"
+ "void main()\n"
+ "{\n"
+ " gl_Position = mvp * vertex;\n"
+ " tex_c = tex_coord;\n"
+ " masktex_s[0] = vec2(-tex_masksample.x, 0);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, 0);\n"
+ " maskdiv_s = 2.0;\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_imgnat_mask21_nomul_vert_src =
+{
+ imgnat_mask21_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_bgra_mask21_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"
+ "uniform sampler2D texm;\n"
+ "varying vec2 tex_m;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[2];\n"
+ "void main()\n"
+ "{\n"
+ " vec4 c;\n"
+ " c = texture2D(tex, tex_c).rgba;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_bgra_mask21_nomul_frag_src =
+{
+ imgnat_bgra_mask21_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_bgra_mask21_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 vec4 mask_coord;\n"
+ "varying vec2 tex_m;\n"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[2];\n"
+ "void main()\n"
+ "{\n"
+ " gl_Position = mvp * vertex;\n"
+ " tex_c = tex_coord;\n"
+ " masktex_s[0] = vec2(-tex_masksample.x, 0);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, 0);\n"
+ " maskdiv_s = 2.0;\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_imgnat_bgra_mask21_nomul_vert_src =
+{
+ imgnat_bgra_mask21_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_mask21_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"
+ "varying vec4 div_s;\n"
+ "varying vec2 tex_s[2];\n"
+ "uniform sampler2D texm;\n"
+ "varying vec2 tex_m;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " c = (col00 + col01) / div_s;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_12_mask21_nomul_frag_src =
+{
+ imgnat_12_mask21_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_mask21_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"
+ "attribute vec4 mask_coord;\n"
+ "varying vec2 tex_m;\n"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(-tex_masksample.x, 0);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, 0);\n"
+ " maskdiv_s = 2.0;\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_imgnat_12_mask21_nomul_vert_src =
+{
+ imgnat_12_mask21_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_mask21_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"
+ "varying vec4 div_s;\n"
+ "varying vec2 tex_s[2];\n"
+ "uniform sampler2D texm;\n"
+ "varying vec2 tex_m;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " c = (col00 + col01) / div_s;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_21_mask21_nomul_frag_src =
+{
+ imgnat_21_mask21_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_mask21_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"
+ "attribute vec4 mask_coord;\n"
+ "varying vec2 tex_m;\n"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[2];\n"
+ "void main()\n"
+ "{\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"
+ " masktex_s[0] = vec2(-tex_masksample.x, 0);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, 0);\n"
+ " maskdiv_s = 2.0;\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_imgnat_21_mask21_nomul_vert_src =
+{
+ imgnat_21_mask21_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_mask21_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"
+ "varying vec4 div_s;\n"
+ "varying vec2 tex_s[4];\n"
+ "uniform sampler2D texm;\n"
+ "varying vec2 tex_m;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " 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"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_22_mask21_nomul_frag_src =
+{
+ imgnat_22_mask21_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_mask21_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[4];\n"
+ "attribute vec4 mask_coord;\n"
+ "varying vec2 tex_m;\n"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(-tex_masksample.x, 0);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, 0);\n"
+ " maskdiv_s = 2.0;\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_imgnat_22_mask21_nomul_vert_src =
+{
+ imgnat_22_mask21_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_bgra_mask21_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"
+ "varying vec4 div_s;\n"
+ "varying vec2 tex_s[2];\n"
+ "uniform sampler2D texm;\n"
+ "varying vec2 tex_m;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_12_bgra_mask21_nomul_frag_src =
+{
+ imgnat_12_bgra_mask21_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_bgra_mask21_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"
+ "attribute vec4 mask_coord;\n"
+ "varying vec2 tex_m;\n"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(-tex_masksample.x, 0);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, 0);\n"
+ " maskdiv_s = 2.0;\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_imgnat_12_bgra_mask21_nomul_vert_src =
+{
+ imgnat_12_bgra_mask21_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_bgra_mask21_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"
+ "varying vec4 div_s;\n"
+ "varying vec2 tex_s[2];\n"
+ "uniform sampler2D texm;\n"
+ "varying vec2 tex_m;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_21_bgra_mask21_nomul_frag_src =
+{
+ imgnat_21_bgra_mask21_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_bgra_mask21_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"
+ "attribute vec4 mask_coord;\n"
+ "varying vec2 tex_m;\n"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[2];\n"
+ "void main()\n"
+ "{\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"
+ " masktex_s[0] = vec2(-tex_masksample.x, 0);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, 0);\n"
+ " maskdiv_s = 2.0;\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_imgnat_21_bgra_mask21_nomul_vert_src =
+{
+ imgnat_21_bgra_mask21_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_bgra_mask21_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"
+ "varying vec4 div_s;\n"
+ "varying vec2 tex_s[4];\n"
+ "uniform sampler2D texm;\n"
+ "varying vec2 tex_m;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " 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"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " ma = (ma00 + ma01) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_22_bgra_mask21_nomul_frag_src =
+{
+ imgnat_22_bgra_mask21_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_bgra_mask21_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[4];\n"
+ "attribute vec4 mask_coord;\n"
+ "varying vec2 tex_m;\n"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(-tex_masksample.x, 0);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, 0);\n"
+ " maskdiv_s = 2.0;\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_imgnat_22_bgra_mask21_nomul_vert_src =
+{
+ imgnat_22_bgra_mask21_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_mask22_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"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[4];\n"
+ "void main()\n"
+ "{\n"
+ " vec4 c;\n"
+ " c = texture2D(tex, tex_c).bgra;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " float ma10 = texture2D(texm, tex_m + masktex_s[2]).a;\n"
+ " float ma11 = texture2D(texm, tex_m + masktex_s[3]).a;\n"
+ " ma = (ma00 + ma01 + ma10 + ma11) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_mask22_frag_src =
+{
+ imgnat_mask22_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_mask22_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"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[4];\n"
+ "void main()\n"
+ "{\n"
+ " gl_Position = mvp * vertex;\n"
+ " col = color;\n"
+ " tex_c = tex_coord;\n"
+ " masktex_s[0] = vec2(-tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[2] = vec2( tex_masksample.x, tex_masksample.y);\n"
+ " masktex_s[3] = vec2(-tex_masksample.x, tex_masksample.y);\n"
+ " maskdiv_s = 4.0;\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_imgnat_mask22_vert_src =
+{
+ imgnat_mask22_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_bgra_mask22_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"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[4];\n"
+ "void main()\n"
+ "{\n"
+ " vec4 c;\n"
+ " c = texture2D(tex, tex_c).rgba;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " float ma10 = texture2D(texm, tex_m + masktex_s[2]).a;\n"
+ " float ma11 = texture2D(texm, tex_m + masktex_s[3]).a;\n"
+ " ma = (ma00 + ma01 + ma10 + ma11) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_bgra_mask22_frag_src =
+{
+ imgnat_bgra_mask22_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_bgra_mask22_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"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[4];\n"
+ "void main()\n"
+ "{\n"
+ " gl_Position = mvp * vertex;\n"
+ " col = color;\n"
+ " tex_c = tex_coord;\n"
+ " masktex_s[0] = vec2(-tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[2] = vec2( tex_masksample.x, tex_masksample.y);\n"
+ " masktex_s[3] = vec2(-tex_masksample.x, tex_masksample.y);\n"
+ " maskdiv_s = 4.0;\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_imgnat_bgra_mask22_vert_src =
+{
+ imgnat_bgra_mask22_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_mask22_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"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " c = (col00 + col01) / div_s;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " float ma10 = texture2D(texm, tex_m + masktex_s[2]).a;\n"
+ " float ma11 = texture2D(texm, tex_m + masktex_s[3]).a;\n"
+ " ma = (ma00 + ma01 + ma10 + ma11) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_12_mask22_frag_src =
+{
+ imgnat_12_mask22_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_mask22_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"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(-tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[2] = vec2( tex_masksample.x, tex_masksample.y);\n"
+ " masktex_s[3] = vec2(-tex_masksample.x, tex_masksample.y);\n"
+ " maskdiv_s = 4.0;\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_imgnat_12_mask22_vert_src =
+{
+ imgnat_12_mask22_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_mask22_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"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " c = (col00 + col01) / div_s;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " float ma10 = texture2D(texm, tex_m + masktex_s[2]).a;\n"
+ " float ma11 = texture2D(texm, tex_m + masktex_s[3]).a;\n"
+ " ma = (ma00 + ma01 + ma10 + ma11) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_21_mask22_frag_src =
+{
+ imgnat_21_mask22_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_mask22_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"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(-tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[2] = vec2( tex_masksample.x, tex_masksample.y);\n"
+ " masktex_s[3] = vec2(-tex_masksample.x, tex_masksample.y);\n"
+ " maskdiv_s = 4.0;\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_imgnat_21_mask22_vert_src =
+{
+ imgnat_21_mask22_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_mask22_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"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " float ma10 = texture2D(texm, tex_m + masktex_s[2]).a;\n"
+ " float ma11 = texture2D(texm, tex_m + masktex_s[3]).a;\n"
+ " ma = (ma00 + ma01 + ma10 + ma11) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_22_mask22_frag_src =
+{
+ imgnat_22_mask22_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_mask22_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"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(-tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[2] = vec2( tex_masksample.x, tex_masksample.y);\n"
+ " masktex_s[3] = vec2(-tex_masksample.x, tex_masksample.y);\n"
+ " maskdiv_s = 4.0;\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_imgnat_22_mask22_vert_src =
+{
+ imgnat_22_mask22_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_bgra_mask22_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"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " c = (col00 + col01) / div_s;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " float ma10 = texture2D(texm, tex_m + masktex_s[2]).a;\n"
+ " float ma11 = texture2D(texm, tex_m + masktex_s[3]).a;\n"
+ " ma = (ma00 + ma01 + ma10 + ma11) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_12_bgra_mask22_frag_src =
+{
+ imgnat_12_bgra_mask22_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_bgra_mask22_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"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(-tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[2] = vec2( tex_masksample.x, tex_masksample.y);\n"
+ " masktex_s[3] = vec2(-tex_masksample.x, tex_masksample.y);\n"
+ " maskdiv_s = 4.0;\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_imgnat_12_bgra_mask22_vert_src =
+{
+ imgnat_12_bgra_mask22_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_bgra_mask22_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"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " c = (col00 + col01) / div_s;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " float ma10 = texture2D(texm, tex_m + masktex_s[2]).a;\n"
+ " float ma11 = texture2D(texm, tex_m + masktex_s[3]).a;\n"
+ " ma = (ma00 + ma01 + ma10 + ma11) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_21_bgra_mask22_frag_src =
+{
+ imgnat_21_bgra_mask22_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_bgra_mask22_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"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(-tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[2] = vec2( tex_masksample.x, tex_masksample.y);\n"
+ " masktex_s[3] = vec2(-tex_masksample.x, tex_masksample.y);\n"
+ " maskdiv_s = 4.0;\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_imgnat_21_bgra_mask22_vert_src =
+{
+ imgnat_21_bgra_mask22_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_bgra_mask22_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"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " float ma10 = texture2D(texm, tex_m + masktex_s[2]).a;\n"
+ " float ma11 = texture2D(texm, tex_m + masktex_s[3]).a;\n"
+ " ma = (ma00 + ma01 + ma10 + ma11) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_22_bgra_mask22_frag_src =
+{
+ imgnat_22_bgra_mask22_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_bgra_mask22_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"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(-tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[2] = vec2( tex_masksample.x, tex_masksample.y);\n"
+ " masktex_s[3] = vec2(-tex_masksample.x, tex_masksample.y);\n"
+ " maskdiv_s = 4.0;\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_imgnat_22_bgra_mask22_vert_src =
+{
+ imgnat_22_bgra_mask22_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_mask22_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"
+ "uniform sampler2D texm;\n"
+ "varying vec2 tex_m;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[4];\n"
+ "void main()\n"
+ "{\n"
+ " vec4 c;\n"
+ " c = texture2D(tex, tex_c).bgra;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " float ma10 = texture2D(texm, tex_m + masktex_s[2]).a;\n"
+ " float ma11 = texture2D(texm, tex_m + masktex_s[3]).a;\n"
+ " ma = (ma00 + ma01 + ma10 + ma11) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_mask22_nomul_frag_src =
+{
+ imgnat_mask22_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_mask22_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 vec4 mask_coord;\n"
+ "varying vec2 tex_m;\n"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[4];\n"
+ "void main()\n"
+ "{\n"
+ " gl_Position = mvp * vertex;\n"
+ " tex_c = tex_coord;\n"
+ " masktex_s[0] = vec2(-tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[2] = vec2( tex_masksample.x, tex_masksample.y);\n"
+ " masktex_s[3] = vec2(-tex_masksample.x, tex_masksample.y);\n"
+ " maskdiv_s = 4.0;\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_imgnat_mask22_nomul_vert_src =
+{
+ imgnat_mask22_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_bgra_mask22_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"
+ "uniform sampler2D texm;\n"
+ "varying vec2 tex_m;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[4];\n"
+ "void main()\n"
+ "{\n"
+ " vec4 c;\n"
+ " c = texture2D(tex, tex_c).rgba;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " float ma10 = texture2D(texm, tex_m + masktex_s[2]).a;\n"
+ " float ma11 = texture2D(texm, tex_m + masktex_s[3]).a;\n"
+ " ma = (ma00 + ma01 + ma10 + ma11) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_bgra_mask22_nomul_frag_src =
+{
+ imgnat_bgra_mask22_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_bgra_mask22_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 vec4 mask_coord;\n"
+ "varying vec2 tex_m;\n"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[4];\n"
+ "void main()\n"
+ "{\n"
+ " gl_Position = mvp * vertex;\n"
+ " tex_c = tex_coord;\n"
+ " masktex_s[0] = vec2(-tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[2] = vec2( tex_masksample.x, tex_masksample.y);\n"
+ " masktex_s[3] = vec2(-tex_masksample.x, tex_masksample.y);\n"
+ " maskdiv_s = 4.0;\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_imgnat_bgra_mask22_nomul_vert_src =
+{
+ imgnat_bgra_mask22_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_mask22_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"
+ "varying vec4 div_s;\n"
+ "varying vec2 tex_s[2];\n"
+ "uniform sampler2D texm;\n"
+ "varying vec2 tex_m;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " c = (col00 + col01) / div_s;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " float ma10 = texture2D(texm, tex_m + masktex_s[2]).a;\n"
+ " float ma11 = texture2D(texm, tex_m + masktex_s[3]).a;\n"
+ " ma = (ma00 + ma01 + ma10 + ma11) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_12_mask22_nomul_frag_src =
+{
+ imgnat_12_mask22_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_mask22_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"
+ "attribute vec4 mask_coord;\n"
+ "varying vec2 tex_m;\n"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(-tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[2] = vec2( tex_masksample.x, tex_masksample.y);\n"
+ " masktex_s[3] = vec2(-tex_masksample.x, tex_masksample.y);\n"
+ " maskdiv_s = 4.0;\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_imgnat_12_mask22_nomul_vert_src =
+{
+ imgnat_12_mask22_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_mask22_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"
+ "varying vec4 div_s;\n"
+ "varying vec2 tex_s[2];\n"
+ "uniform sampler2D texm;\n"
+ "varying vec2 tex_m;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " c = (col00 + col01) / div_s;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " float ma10 = texture2D(texm, tex_m + masktex_s[2]).a;\n"
+ " float ma11 = texture2D(texm, tex_m + masktex_s[3]).a;\n"
+ " ma = (ma00 + ma01 + ma10 + ma11) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_21_mask22_nomul_frag_src =
+{
+ imgnat_21_mask22_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_mask22_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"
+ "attribute vec4 mask_coord;\n"
+ "varying vec2 tex_m;\n"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[4];\n"
+ "void main()\n"
+ "{\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"
+ " masktex_s[0] = vec2(-tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[2] = vec2( tex_masksample.x, tex_masksample.y);\n"
+ " masktex_s[3] = vec2(-tex_masksample.x, tex_masksample.y);\n"
+ " maskdiv_s = 4.0;\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_imgnat_21_mask22_nomul_vert_src =
+{
+ imgnat_21_mask22_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_mask22_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"
+ "varying vec4 div_s;\n"
+ "varying vec2 tex_s[4];\n"
+ "uniform sampler2D texm;\n"
+ "varying vec2 tex_m;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " float ma10 = texture2D(texm, tex_m + masktex_s[2]).a;\n"
+ " float ma11 = texture2D(texm, tex_m + masktex_s[3]).a;\n"
+ " ma = (ma00 + ma01 + ma10 + ma11) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_22_mask22_nomul_frag_src =
+{
+ imgnat_22_mask22_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_mask22_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[4];\n"
+ "attribute vec4 mask_coord;\n"
+ "varying vec2 tex_m;\n"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(-tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[2] = vec2( tex_masksample.x, tex_masksample.y);\n"
+ " masktex_s[3] = vec2(-tex_masksample.x, tex_masksample.y);\n"
+ " maskdiv_s = 4.0;\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_imgnat_22_mask22_nomul_vert_src =
+{
+ imgnat_22_mask22_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_bgra_mask22_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"
+ "varying vec4 div_s;\n"
+ "varying vec2 tex_s[2];\n"
+ "uniform sampler2D texm;\n"
+ "varying vec2 tex_m;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " c = (col00 + col01) / div_s;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " float ma10 = texture2D(texm, tex_m + masktex_s[2]).a;\n"
+ " float ma11 = texture2D(texm, tex_m + masktex_s[3]).a;\n"
+ " ma = (ma00 + ma01 + ma10 + ma11) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_12_bgra_mask22_nomul_frag_src =
+{
+ imgnat_12_bgra_mask22_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_bgra_mask22_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"
+ "attribute vec4 mask_coord;\n"
+ "varying vec2 tex_m;\n"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(-tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[2] = vec2( tex_masksample.x, tex_masksample.y);\n"
+ " masktex_s[3] = vec2(-tex_masksample.x, tex_masksample.y);\n"
+ " maskdiv_s = 4.0;\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_imgnat_12_bgra_mask22_nomul_vert_src =
+{
+ imgnat_12_bgra_mask22_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_bgra_mask22_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"
+ "varying vec4 div_s;\n"
+ "varying vec2 tex_s[2];\n"
+ "uniform sampler2D texm;\n"
+ "varying vec2 tex_m;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " c = (col00 + col01) / div_s;\n"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " float ma10 = texture2D(texm, tex_m + masktex_s[2]).a;\n"
+ " float ma11 = texture2D(texm, tex_m + masktex_s[3]).a;\n"
+ " ma = (ma00 + ma01 + ma10 + ma11) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_21_bgra_mask22_nomul_frag_src =
+{
+ imgnat_21_bgra_mask22_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_bgra_mask22_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"
+ "attribute vec4 mask_coord;\n"
+ "varying vec2 tex_m;\n"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_s[4];\n"
+ "void main()\n"
+ "{\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"
+ " masktex_s[0] = vec2(-tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[2] = vec2( tex_masksample.x, tex_masksample.y);\n"
+ " masktex_s[3] = vec2(-tex_masksample.x, tex_masksample.y);\n"
+ " maskdiv_s = 4.0;\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_imgnat_21_bgra_mask22_nomul_vert_src =
+{
+ imgnat_21_bgra_mask22_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_bgra_mask22_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"
+ "varying vec4 div_s;\n"
+ "varying vec2 tex_s[4];\n"
+ "uniform sampler2D texm;\n"
+ "varying vec2 tex_m;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " float ma;\n"
+ " float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
+ " float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
+ " float ma10 = texture2D(texm, tex_m + masktex_s[2]).a;\n"
+ " float ma11 = texture2D(texm, tex_m + masktex_s[3]).a;\n"
+ " ma = (ma00 + ma01 + ma10 + ma11) / maskdiv_s;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * ma\n"
+ " ;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_22_bgra_mask22_nomul_frag_src =
+{
+ imgnat_22_bgra_mask22_nomul_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_bgra_mask22_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[4];\n"
+ "attribute vec4 mask_coord;\n"
+ "varying vec2 tex_m;\n"
+ "attribute vec2 tex_masksample;\n"
+ "varying float maskdiv_s;\n"
+ "varying vec2 masktex_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"
+ " masktex_s[0] = vec2(-tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[1] = vec2( tex_masksample.x, -tex_masksample.y);\n"
+ " masktex_s[2] = vec2( tex_masksample.x, tex_masksample.y);\n"
+ " masktex_s[3] = vec2(-tex_masksample.x, tex_masksample.y);\n"
+ " maskdiv_s = 4.0;\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_imgnat_22_bgra_mask22_nomul_vert_src =
+{
+ imgnat_22_bgra_mask22_nomul_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_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"
+ "#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"
+ " gl_FragColor.a = 1.0;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_afill_frag_src =
+{
+ imgnat_afill_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_afill_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"
+ "void main()\n"
+ "{\n"
+ " gl_Position = mvp * vertex;\n"
+ " col = color;\n"
+ " tex_c = tex_coord;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_afill_vert_src =
+{
+ imgnat_afill_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_bgra_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"
+ "#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).rgba;\n"
+ " gl_FragColor =\n"
+ " c\n"
+ " * col\n"
+ " ;\n"
+ " gl_FragColor.a = 1.0;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_bgra_afill_frag_src =
+{
+ imgnat_bgra_afill_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_bgra_afill_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"
+ "void main()\n"
+ "{\n"
+ " gl_Position = mvp * vertex;\n"
+ " col = color;\n"
+ " tex_c = tex_coord;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_bgra_afill_vert_src =
+{
+ imgnat_bgra_afill_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_nomul_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"
+ "#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"
+ " gl_FragColor.a = 1.0;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_nomul_afill_frag_src =
+{
+ imgnat_nomul_afill_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_nomul_afill_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_imgnat_nomul_afill_vert_src =
+{
+ imgnat_nomul_afill_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_bgra_nomul_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"
+ "#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"
+ " gl_FragColor.a = 1.0;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_bgra_nomul_afill_frag_src =
+{
+ imgnat_bgra_nomul_afill_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_bgra_nomul_afill_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_imgnat_bgra_nomul_afill_vert_src =
+{
+ imgnat_bgra_nomul_afill_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_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"
+ "#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]).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_imgnat_12_afill_frag_src =
+{
+ imgnat_12_afill_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_afill_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_imgnat_12_afill_vert_src =
+{
+ imgnat_12_afill_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_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"
+ "#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]).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_imgnat_21_afill_frag_src =
+{
+ imgnat_21_afill_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_afill_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_imgnat_21_afill_vert_src =
+{
+ imgnat_21_afill_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_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"
+ "#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"
+ " gl_FragColor.a = 1.0;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_22_afill_frag_src =
+{
+ imgnat_22_afill_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_afill_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_imgnat_22_afill_vert_src =
+{
+ imgnat_22_afill_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_bgra_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"
+ "#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"
+ " gl_FragColor.a = 1.0;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_12_bgra_afill_frag_src =
+{
+ imgnat_12_bgra_afill_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_bgra_afill_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_imgnat_12_bgra_afill_vert_src =
+{
+ imgnat_12_bgra_afill_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_bgra_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"
+ "#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"
+ " gl_FragColor.a = 1.0;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_21_bgra_afill_frag_src =
+{
+ imgnat_21_bgra_afill_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_bgra_afill_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_imgnat_21_bgra_afill_vert_src =
+{
+ imgnat_21_bgra_afill_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_bgra_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"
+ "#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"
+ " gl_FragColor.a = 1.0;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_22_bgra_afill_frag_src =
+{
+ imgnat_22_bgra_afill_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_bgra_afill_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_imgnat_22_bgra_afill_vert_src =
+{
+ imgnat_22_bgra_afill_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_nomul_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"
+ "#endif\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]).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_imgnat_12_nomul_afill_frag_src =
+{
+ imgnat_12_nomul_afill_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_nomul_afill_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_imgnat_12_nomul_afill_vert_src =
+{
+ imgnat_12_nomul_afill_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_nomul_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"
+ "#endif\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]).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_imgnat_21_nomul_afill_frag_src =
+{
+ imgnat_21_nomul_afill_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_nomul_afill_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(-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_imgnat_21_nomul_afill_vert_src =
+{
+ imgnat_21_nomul_afill_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_nomul_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"
+ "#endif\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"
+ " ;\n"
+ " gl_FragColor.a = 1.0;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_22_nomul_afill_frag_src =
+{
+ imgnat_22_nomul_afill_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_nomul_afill_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[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"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_22_nomul_afill_vert_src =
+{
+ imgnat_22_nomul_afill_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_bgra_nomul_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"
+ "#endif\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"
+ " ;\n"
+ " gl_FragColor.a = 1.0;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_12_bgra_nomul_afill_frag_src =
+{
+ imgnat_12_bgra_nomul_afill_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_12_bgra_nomul_afill_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_imgnat_12_bgra_nomul_afill_vert_src =
+{
+ imgnat_12_bgra_nomul_afill_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_bgra_nomul_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"
+ "#endif\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"
+ " ;\n"
+ " gl_FragColor.a = 1.0;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_21_bgra_nomul_afill_frag_src =
+{
+ imgnat_21_bgra_nomul_afill_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_21_bgra_nomul_afill_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(-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_imgnat_21_bgra_nomul_afill_vert_src =
+{
+ imgnat_21_bgra_nomul_afill_vert_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_bgra_nomul_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"
+ "#endif\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"
+ " ;\n"
+ " gl_FragColor.a = 1.0;\n"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_22_bgra_nomul_afill_frag_src =
+{
+ imgnat_22_bgra_nomul_afill_frag_glsl,
+ NULL, 0
+};
+
+static const char imgnat_22_bgra_nomul_afill_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[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"
+ "}\n";
+Evas_GL_Program_Source shader_imgnat_22_bgra_nomul_afill_vert_src =
+{
+ imgnat_22_bgra_nomul_afill_vert_glsl,
+ NULL, 0
+};
+
static const char rgb_a_pair_frag_glsl[] =
"#ifdef GL_ES\n"
"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
@@ -9251,6 +15571,102 @@ static const struct {
{ 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", SHD_IMAGE, SHD_SAM12, SHD_SAM11, 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", SHD_IMAGE, SHD_SAM21, SHD_SAM11, 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", SHD_IMAGE, SHD_SAM22, SHD_SAM11, 1, 0, 1, 1 },
+ { SHADER_IMGNAT, &(shader_imgnat_vert_src), &(shader_imgnat_frag_src), "imgnat", SHD_IMAGENATIVE, SHD_SAM11, SHD_SAM11, 0, 0, 0, 0 },
+ { SHADER_IMGNAT_BGRA, &(shader_imgnat_bgra_vert_src), &(shader_imgnat_bgra_frag_src), "imgnat_bgra", SHD_IMAGENATIVE, SHD_SAM11, SHD_SAM11, 1, 0, 0, 0 },
+ { SHADER_IMGNAT_12, &(shader_imgnat_12_vert_src), &(shader_imgnat_12_frag_src), "imgnat_12", SHD_IMAGENATIVE, SHD_SAM12, SHD_SAM11, 0, 0, 0, 0 },
+ { SHADER_IMGNAT_21, &(shader_imgnat_21_vert_src), &(shader_imgnat_21_frag_src), "imgnat_21", SHD_IMAGENATIVE, SHD_SAM21, SHD_SAM11, 0, 0, 0, 0 },
+ { SHADER_IMGNAT_22, &(shader_imgnat_22_vert_src), &(shader_imgnat_22_frag_src), "imgnat_22", SHD_IMAGENATIVE, SHD_SAM22, SHD_SAM11, 0, 0, 0, 0 },
+ { SHADER_IMGNAT_12_BGRA, &(shader_imgnat_12_bgra_vert_src), &(shader_imgnat_12_bgra_frag_src), "imgnat_12_bgra", SHD_IMAGENATIVE, SHD_SAM12, SHD_SAM11, 1, 0, 0, 0 },
+ { SHADER_IMGNAT_21_BGRA, &(shader_imgnat_21_bgra_vert_src), &(shader_imgnat_21_bgra_frag_src), "imgnat_21_bgra", SHD_IMAGENATIVE, SHD_SAM21, SHD_SAM11, 1, 0, 0, 0 },
+ { SHADER_IMGNAT_22_BGRA, &(shader_imgnat_22_bgra_vert_src), &(shader_imgnat_22_bgra_frag_src), "imgnat_22_bgra", SHD_IMAGENATIVE, SHD_SAM22, SHD_SAM11, 1, 0, 0, 0 },
+ { SHADER_IMGNAT_MASK, &(shader_imgnat_mask_vert_src), &(shader_imgnat_mask_frag_src), "imgnat_mask", SHD_IMAGENATIVE, SHD_SAM11, SHD_SAM11, 0, 1, 0, 0 },
+ { SHADER_IMGNAT_BGRA_MASK, &(shader_imgnat_bgra_mask_vert_src), &(shader_imgnat_bgra_mask_frag_src), "imgnat_bgra_mask", SHD_IMAGENATIVE, SHD_SAM11, SHD_SAM11, 1, 1, 0, 0 },
+ { SHADER_IMGNAT_12_MASK, &(shader_imgnat_12_mask_vert_src), &(shader_imgnat_12_mask_frag_src), "imgnat_12_mask", SHD_IMAGENATIVE, SHD_SAM12, SHD_SAM11, 0, 1, 0, 0 },
+ { SHADER_IMGNAT_21_MASK, &(shader_imgnat_21_mask_vert_src), &(shader_imgnat_21_mask_frag_src), "imgnat_21_mask", SHD_IMAGENATIVE, SHD_SAM21, SHD_SAM11, 0, 1, 0, 0 },
+ { SHADER_IMGNAT_22_MASK, &(shader_imgnat_22_mask_vert_src), &(shader_imgnat_22_mask_frag_src), "imgnat_22_mask", SHD_IMAGENATIVE, SHD_SAM22, SHD_SAM11, 0, 1, 0, 0 },
+ { SHADER_IMGNAT_12_BGRA_MASK, &(shader_imgnat_12_bgra_mask_vert_src), &(shader_imgnat_12_bgra_mask_frag_src), "imgnat_12_bgra_mask", SHD_IMAGENATIVE, SHD_SAM12, SHD_SAM11, 1, 1, 0, 0 },
+ { SHADER_IMGNAT_21_BGRA_MASK, &(shader_imgnat_21_bgra_mask_vert_src), &(shader_imgnat_21_bgra_mask_frag_src), "imgnat_21_bgra_mask", SHD_IMAGENATIVE, SHD_SAM21, SHD_SAM11, 1, 1, 0, 0 },
+ { SHADER_IMGNAT_22_BGRA_MASK, &(shader_imgnat_22_bgra_mask_vert_src), &(shader_imgnat_22_bgra_mask_frag_src), "imgnat_22_bgra_mask", SHD_IMAGENATIVE, SHD_SAM22, SHD_SAM11, 1, 1, 0, 0 },
+ { SHADER_IMGNAT_NOMUL, &(shader_imgnat_nomul_vert_src), &(shader_imgnat_nomul_frag_src), "imgnat_nomul", SHD_IMAGENATIVE, SHD_SAM11, SHD_SAM11, 0, 0, 1, 0 },
+ { SHADER_IMGNAT_BGRA_NOMUL, &(shader_imgnat_bgra_nomul_vert_src), &(shader_imgnat_bgra_nomul_frag_src), "imgnat_bgra_nomul", SHD_IMAGENATIVE, SHD_SAM11, SHD_SAM11, 1, 0, 1, 0 },
+ { SHADER_IMGNAT_12_NOMUL, &(shader_imgnat_12_nomul_vert_src), &(shader_imgnat_12_nomul_frag_src), "imgnat_12_nomul", SHD_IMAGENATIVE, SHD_SAM12, SHD_SAM11, 0, 0, 1, 0 },
+ { SHADER_IMGNAT_21_NOMUL, &(shader_imgnat_21_nomul_vert_src), &(shader_imgnat_21_nomul_frag_src), "imgnat_21_nomul", SHD_IMAGENATIVE, SHD_SAM21, SHD_SAM11, 0, 0, 1, 0 },
+ { SHADER_IMGNAT_22_NOMUL, &(shader_imgnat_22_nomul_vert_src), &(shader_imgnat_22_nomul_frag_src), "imgnat_22_nomul", SHD_IMAGENATIVE, SHD_SAM22, SHD_SAM11, 0, 0, 1, 0 },
+ { SHADER_IMGNAT_12_BGRA_NOMUL, &(shader_imgnat_12_bgra_nomul_vert_src), &(shader_imgnat_12_bgra_nomul_frag_src), "imgnat_12_bgra_nomul", SHD_IMAGENATIVE, SHD_SAM12, SHD_SAM11, 1, 0, 1, 0 },
+ { SHADER_IMGNAT_21_BGRA_NOMUL, &(shader_imgnat_21_bgra_nomul_vert_src), &(shader_imgnat_21_bgra_nomul_frag_src), "imgnat_21_bgra_nomul", SHD_IMAGENATIVE, SHD_SAM21, SHD_SAM11, 1, 0, 1, 0 },
+ { SHADER_IMGNAT_22_BGRA_NOMUL, &(shader_imgnat_22_bgra_nomul_vert_src), &(shader_imgnat_22_bgra_nomul_frag_src), "imgnat_22_bgra_nomul", SHD_IMAGENATIVE, SHD_SAM22, SHD_SAM11, 1, 0, 1, 0 },
+ { SHADER_IMGNAT_MASK_NOMUL, &(shader_imgnat_mask_nomul_vert_src), &(shader_imgnat_mask_nomul_frag_src), "imgnat_mask_nomul", SHD_IMAGENATIVE, SHD_SAM11, SHD_SAM11, 0, 1, 1, 0 },
+ { SHADER_IMGNAT_BGRA_MASK_NOMUL, &(shader_imgnat_bgra_mask_nomul_vert_src), &(shader_imgnat_bgra_mask_nomul_frag_src), "imgnat_bgra_mask_nomul", SHD_IMAGENATIVE, SHD_SAM11, SHD_SAM11, 1, 1, 1, 0 },
+ { SHADER_IMGNAT_12_MASK_NOMUL, &(shader_imgnat_12_mask_nomul_vert_src), &(shader_imgnat_12_mask_nomul_frag_src), "imgnat_12_mask_nomul", SHD_IMAGENATIVE, SHD_SAM12, SHD_SAM11, 0, 1, 1, 0 },
+ { SHADER_IMGNAT_21_MASK_NOMUL, &(shader_imgnat_21_mask_nomul_vert_src), &(shader_imgnat_21_mask_nomul_frag_src), "imgnat_21_mask_nomul", SHD_IMAGENATIVE, SHD_SAM21, SHD_SAM11, 0, 1, 1, 0 },
+ { SHADER_IMGNAT_22_MASK_NOMUL, &(shader_imgnat_22_mask_nomul_vert_src), &(shader_imgnat_22_mask_nomul_frag_src), "imgnat_22_mask_nomul", SHD_IMAGENATIVE, SHD_SAM22, SHD_SAM11, 0, 1, 1, 0 },
+ { SHADER_IMGNAT_12_BGRA_MASK_NOMUL, &(shader_imgnat_12_bgra_mask_nomul_vert_src), &(shader_imgnat_12_bgra_mask_nomul_frag_src), "imgnat_12_bgra_mask_nomul", SHD_IMAGENATIVE, SHD_SAM12, SHD_SAM11, 1, 1, 1, 0 },
+ { SHADER_IMGNAT_21_BGRA_MASK_NOMUL, &(shader_imgnat_21_bgra_mask_nomul_vert_src), &(shader_imgnat_21_bgra_mask_nomul_frag_src), "imgnat_21_bgra_mask_nomul", SHD_IMAGENATIVE, SHD_SAM21, SHD_SAM11, 1, 1, 1, 0 },
+ { SHADER_IMGNAT_22_BGRA_MASK_NOMUL, &(shader_imgnat_22_bgra_mask_nomul_vert_src), &(shader_imgnat_22_bgra_mask_nomul_frag_src), "imgnat_22_bgra_mask_nomul", SHD_IMAGENATIVE, SHD_SAM22, SHD_SAM11, 1, 1, 1, 0 },
+ { SHADER_IMGNAT_MASK12, &(shader_imgnat_mask12_vert_src), &(shader_imgnat_mask12_frag_src), "imgnat_mask12", SHD_IMAGENATIVE, SHD_SAM11, SHD_SAM12, 0, 1, 0, 0 },
+ { SHADER_IMGNAT_BGRA_MASK12, &(shader_imgnat_bgra_mask12_vert_src), &(shader_imgnat_bgra_mask12_frag_src), "imgnat_bgra_mask12", SHD_IMAGENATIVE, SHD_SAM11, SHD_SAM12, 1, 1, 0, 0 },
+ { SHADER_IMGNAT_12_MASK12, &(shader_imgnat_12_mask12_vert_src), &(shader_imgnat_12_mask12_frag_src), "imgnat_12_mask12", SHD_IMAGENATIVE, SHD_SAM12, SHD_SAM12, 0, 1, 0, 0 },
+ { SHADER_IMGNAT_21_MASK12, &(shader_imgnat_21_mask12_vert_src), &(shader_imgnat_21_mask12_frag_src), "imgnat_21_mask12", SHD_IMAGENATIVE, SHD_SAM21, SHD_SAM12, 0, 1, 0, 0 },
+ { SHADER_IMGNAT_22_MASK12, &(shader_imgnat_22_mask12_vert_src), &(shader_imgnat_22_mask12_frag_src), "imgnat_22_mask12", SHD_IMAGENATIVE, SHD_SAM22, SHD_SAM12, 0, 1, 0, 0 },
+ { SHADER_IMGNAT_12_BGRA_MASK12, &(shader_imgnat_12_bgra_mask12_vert_src), &(shader_imgnat_12_bgra_mask12_frag_src), "imgnat_12_bgra_mask12", SHD_IMAGENATIVE, SHD_SAM12, SHD_SAM12, 1, 1, 0, 0 },
+ { SHADER_IMGNAT_21_BGRA_MASK12, &(shader_imgnat_21_bgra_mask12_vert_src), &(shader_imgnat_21_bgra_mask12_frag_src), "imgnat_21_bgra_mask12", SHD_IMAGENATIVE, SHD_SAM21, SHD_SAM12, 1, 1, 0, 0 },
+ { SHADER_IMGNAT_22_BGRA_MASK12, &(shader_imgnat_22_bgra_mask12_vert_src), &(shader_imgnat_22_bgra_mask12_frag_src), "imgnat_22_bgra_mask12", SHD_IMAGENATIVE, SHD_SAM22, SHD_SAM12, 1, 1, 0, 0 },
+ { SHADER_IMGNAT_MASK12_NOMUL, &(shader_imgnat_mask12_nomul_vert_src), &(shader_imgnat_mask12_nomul_frag_src), "imgnat_mask12_nomul", SHD_IMAGENATIVE, SHD_SAM11, SHD_SAM12, 0, 1, 1, 0 },
+ { SHADER_IMGNAT_BGRA_MASK12_NOMUL, &(shader_imgnat_bgra_mask12_nomul_vert_src), &(shader_imgnat_bgra_mask12_nomul_frag_src), "imgnat_bgra_mask12_nomul", SHD_IMAGENATIVE, SHD_SAM11, SHD_SAM12, 1, 1, 1, 0 },
+ { SHADER_IMGNAT_12_MASK12_NOMUL, &(shader_imgnat_12_mask12_nomul_vert_src), &(shader_imgnat_12_mask12_nomul_frag_src), "imgnat_12_mask12_nomul", SHD_IMAGENATIVE, SHD_SAM12, SHD_SAM12, 0, 1, 1, 0 },
+ { SHADER_IMGNAT_21_MASK12_NOMUL, &(shader_imgnat_21_mask12_nomul_vert_src), &(shader_imgnat_21_mask12_nomul_frag_src), "imgnat_21_mask12_nomul", SHD_IMAGENATIVE, SHD_SAM21, SHD_SAM12, 0, 1, 1, 0 },
+ { SHADER_IMGNAT_22_MASK12_NOMUL, &(shader_imgnat_22_mask12_nomul_vert_src), &(shader_imgnat_22_mask12_nomul_frag_src), "imgnat_22_mask12_nomul", SHD_IMAGENATIVE, SHD_SAM22, SHD_SAM12, 0, 1, 1, 0 },
+ { SHADER_IMGNAT_12_BGRA_MASK12_NOMUL, &(shader_imgnat_12_bgra_mask12_nomul_vert_src), &(shader_imgnat_12_bgra_mask12_nomul_frag_src), "imgnat_12_bgra_mask12_nomul", SHD_IMAGENATIVE, SHD_SAM12, SHD_SAM12, 1, 1, 1, 0 },
+ { SHADER_IMGNAT_21_BGRA_MASK12_NOMUL, &(shader_imgnat_21_bgra_mask12_nomul_vert_src), &(shader_imgnat_21_bgra_mask12_nomul_frag_src), "imgnat_21_bgra_mask12_nomul", SHD_IMAGENATIVE, SHD_SAM21, SHD_SAM12, 1, 1, 1, 0 },
+ { SHADER_IMGNAT_22_BGRA_MASK12_NOMUL, &(shader_imgnat_22_bgra_mask12_nomul_vert_src), &(shader_imgnat_22_bgra_mask12_nomul_frag_src), "imgnat_22_bgra_mask12_nomul", SHD_IMAGENATIVE, SHD_SAM22, SHD_SAM12, 1, 1, 1, 0 },
+ { SHADER_IMGNAT_MASK21, &(shader_imgnat_mask21_vert_src), &(shader_imgnat_mask21_frag_src), "imgnat_mask21", SHD_IMAGENATIVE, SHD_SAM11, SHD_SAM21, 0, 1, 0, 0 },
+ { SHADER_IMGNAT_BGRA_MASK21, &(shader_imgnat_bgra_mask21_vert_src), &(shader_imgnat_bgra_mask21_frag_src), "imgnat_bgra_mask21", SHD_IMAGENATIVE, SHD_SAM11, SHD_SAM21, 1, 1, 0, 0 },
+ { SHADER_IMGNAT_12_MASK21, &(shader_imgnat_12_mask21_vert_src), &(shader_imgnat_12_mask21_frag_src), "imgnat_12_mask21", SHD_IMAGENATIVE, SHD_SAM12, SHD_SAM21, 0, 1, 0, 0 },
+ { SHADER_IMGNAT_21_MASK21, &(shader_imgnat_21_mask21_vert_src), &(shader_imgnat_21_mask21_frag_src), "imgnat_21_mask21", SHD_IMAGENATIVE, SHD_SAM21, SHD_SAM21, 0, 1, 0, 0 },
+ { SHADER_IMGNAT_22_MASK21, &(shader_imgnat_22_mask21_vert_src), &(shader_imgnat_22_mask21_frag_src), "imgnat_22_mask21", SHD_IMAGENATIVE, SHD_SAM22, SHD_SAM21, 0, 1, 0, 0 },
+ { SHADER_IMGNAT_12_BGRA_MASK21, &(shader_imgnat_12_bgra_mask21_vert_src), &(shader_imgnat_12_bgra_mask21_frag_src), "imgnat_12_bgra_mask21", SHD_IMAGENATIVE, SHD_SAM12, SHD_SAM21, 1, 1, 0, 0 },
+ { SHADER_IMGNAT_21_BGRA_MASK21, &(shader_imgnat_21_bgra_mask21_vert_src), &(shader_imgnat_21_bgra_mask21_frag_src), "imgnat_21_bgra_mask21", SHD_IMAGENATIVE, SHD_SAM21, SHD_SAM21, 1, 1, 0, 0 },
+ { SHADER_IMGNAT_22_BGRA_MASK21, &(shader_imgnat_22_bgra_mask21_vert_src), &(shader_imgnat_22_bgra_mask21_frag_src), "imgnat_22_bgra_mask21", SHD_IMAGENATIVE, SHD_SAM22, SHD_SAM21, 1, 1, 0, 0 },
+ { SHADER_IMGNAT_MASK21_NOMUL, &(shader_imgnat_mask21_nomul_vert_src), &(shader_imgnat_mask21_nomul_frag_src), "imgnat_mask21_nomul", SHD_IMAGENATIVE, SHD_SAM11, SHD_SAM21, 0, 1, 1, 0 },
+ { SHADER_IMGNAT_BGRA_MASK21_NOMUL, &(shader_imgnat_bgra_mask21_nomul_vert_src), &(shader_imgnat_bgra_mask21_nomul_frag_src), "imgnat_bgra_mask21_nomul", SHD_IMAGENATIVE, SHD_SAM11, SHD_SAM21, 1, 1, 1, 0 },
+ { SHADER_IMGNAT_12_MASK21_NOMUL, &(shader_imgnat_12_mask21_nomul_vert_src), &(shader_imgnat_12_mask21_nomul_frag_src), "imgnat_12_mask21_nomul", SHD_IMAGENATIVE, SHD_SAM12, SHD_SAM21, 0, 1, 1, 0 },
+ { SHADER_IMGNAT_21_MASK21_NOMUL, &(shader_imgnat_21_mask21_nomul_vert_src), &(shader_imgnat_21_mask21_nomul_frag_src), "imgnat_21_mask21_nomul", SHD_IMAGENATIVE, SHD_SAM21, SHD_SAM21, 0, 1, 1, 0 },
+ { SHADER_IMGNAT_22_MASK21_NOMUL, &(shader_imgnat_22_mask21_nomul_vert_src), &(shader_imgnat_22_mask21_nomul_frag_src), "imgnat_22_mask21_nomul", SHD_IMAGENATIVE, SHD_SAM22, SHD_SAM21, 0, 1, 1, 0 },
+ { SHADER_IMGNAT_12_BGRA_MASK21_NOMUL, &(shader_imgnat_12_bgra_mask21_nomul_vert_src), &(shader_imgnat_12_bgra_mask21_nomul_frag_src), "imgnat_12_bgra_mask21_nomul", SHD_IMAGENATIVE, SHD_SAM12, SHD_SAM21, 1, 1, 1, 0 },
+ { SHADER_IMGNAT_21_BGRA_MASK21_NOMUL, &(shader_imgnat_21_bgra_mask21_nomul_vert_src), &(shader_imgnat_21_bgra_mask21_nomul_frag_src), "imgnat_21_bgra_mask21_nomul", SHD_IMAGENATIVE, SHD_SAM21, SHD_SAM21, 1, 1, 1, 0 },
+ { SHADER_IMGNAT_22_BGRA_MASK21_NOMUL, &(shader_imgnat_22_bgra_mask21_nomul_vert_src), &(shader_imgnat_22_bgra_mask21_nomul_frag_src), "imgnat_22_bgra_mask21_nomul", SHD_IMAGENATIVE, SHD_SAM22, SHD_SAM21, 1, 1, 1, 0 },
+ { SHADER_IMGNAT_MASK22, &(shader_imgnat_mask22_vert_src), &(shader_imgnat_mask22_frag_src), "imgnat_mask22", SHD_IMAGENATIVE, SHD_SAM11, SHD_SAM22, 0, 1, 0, 0 },
+ { SHADER_IMGNAT_BGRA_MASK22, &(shader_imgnat_bgra_mask22_vert_src), &(shader_imgnat_bgra_mask22_frag_src), "imgnat_bgra_mask22", SHD_IMAGENATIVE, SHD_SAM11, SHD_SAM22, 1, 1, 0, 0 },
+ { SHADER_IMGNAT_12_MASK22, &(shader_imgnat_12_mask22_vert_src), &(shader_imgnat_12_mask22_frag_src), "imgnat_12_mask22", SHD_IMAGENATIVE, SHD_SAM12, SHD_SAM22, 0, 1, 0, 0 },
+ { SHADER_IMGNAT_21_MASK22, &(shader_imgnat_21_mask22_vert_src), &(shader_imgnat_21_mask22_frag_src), "imgnat_21_mask22", SHD_IMAGENATIVE, SHD_SAM21, SHD_SAM22, 0, 1, 0, 0 },
+ { SHADER_IMGNAT_22_MASK22, &(shader_imgnat_22_mask22_vert_src), &(shader_imgnat_22_mask22_frag_src), "imgnat_22_mask22", SHD_IMAGENATIVE, SHD_SAM22, SHD_SAM22, 0, 1, 0, 0 },
+ { SHADER_IMGNAT_12_BGRA_MASK22, &(shader_imgnat_12_bgra_mask22_vert_src), &(shader_imgnat_12_bgra_mask22_frag_src), "imgnat_12_bgra_mask22", SHD_IMAGENATIVE, SHD_SAM12, SHD_SAM22, 1, 1, 0, 0 },
+ { SHADER_IMGNAT_21_BGRA_MASK22, &(shader_imgnat_21_bgra_mask22_vert_src), &(shader_imgnat_21_bgra_mask22_frag_src), "imgnat_21_bgra_mask22", SHD_IMAGENATIVE, SHD_SAM21, SHD_SAM22, 1, 1, 0, 0 },
+ { SHADER_IMGNAT_22_BGRA_MASK22, &(shader_imgnat_22_bgra_mask22_vert_src), &(shader_imgnat_22_bgra_mask22_frag_src), "imgnat_22_bgra_mask22", SHD_IMAGENATIVE, SHD_SAM22, SHD_SAM22, 1, 1, 0, 0 },
+ { SHADER_IMGNAT_MASK22_NOMUL, &(shader_imgnat_mask22_nomul_vert_src), &(shader_imgnat_mask22_nomul_frag_src), "imgnat_mask22_nomul", SHD_IMAGENATIVE, SHD_SAM11, SHD_SAM22, 0, 1, 1, 0 },
+ { SHADER_IMGNAT_BGRA_MASK22_NOMUL, &(shader_imgnat_bgra_mask22_nomul_vert_src), &(shader_imgnat_bgra_mask22_nomul_frag_src), "imgnat_bgra_mask22_nomul", SHD_IMAGENATIVE, SHD_SAM11, SHD_SAM22, 1, 1, 1, 0 },
+ { SHADER_IMGNAT_12_MASK22_NOMUL, &(shader_imgnat_12_mask22_nomul_vert_src), &(shader_imgnat_12_mask22_nomul_frag_src), "imgnat_12_mask22_nomul", SHD_IMAGENATIVE, SHD_SAM12, SHD_SAM22, 0, 1, 1, 0 },
+ { SHADER_IMGNAT_21_MASK22_NOMUL, &(shader_imgnat_21_mask22_nomul_vert_src), &(shader_imgnat_21_mask22_nomul_frag_src), "imgnat_21_mask22_nomul", SHD_IMAGENATIVE, SHD_SAM21, SHD_SAM22, 0, 1, 1, 0 },
+ { SHADER_IMGNAT_22_MASK22_NOMUL, &(shader_imgnat_22_mask22_nomul_vert_src), &(shader_imgnat_22_mask22_nomul_frag_src), "imgnat_22_mask22_nomul", SHD_IMAGENATIVE, SHD_SAM22, SHD_SAM22, 0, 1, 1, 0 },
+ { SHADER_IMGNAT_12_BGRA_MASK22_NOMUL, &(shader_imgnat_12_bgra_mask22_nomul_vert_src), &(shader_imgnat_12_bgra_mask22_nomul_frag_src), "imgnat_12_bgra_mask22_nomul", SHD_IMAGENATIVE, SHD_SAM12, SHD_SAM22, 1, 1, 1, 0 },
+ { SHADER_IMGNAT_21_BGRA_MASK22_NOMUL, &(shader_imgnat_21_bgra_mask22_nomul_vert_src), &(shader_imgnat_21_bgra_mask22_nomul_frag_src), "imgnat_21_bgra_mask22_nomul", SHD_IMAGENATIVE, SHD_SAM21, SHD_SAM22, 1, 1, 1, 0 },
+ { SHADER_IMGNAT_22_BGRA_MASK22_NOMUL, &(shader_imgnat_22_bgra_mask22_nomul_vert_src), &(shader_imgnat_22_bgra_mask22_nomul_frag_src), "imgnat_22_bgra_mask22_nomul", SHD_IMAGENATIVE, SHD_SAM22, SHD_SAM22, 1, 1, 1, 0 },
+ { SHADER_IMGNAT_AFILL, &(shader_imgnat_afill_vert_src), &(shader_imgnat_afill_frag_src), "imgnat_afill", SHD_IMAGENATIVE, SHD_SAM11, SHD_SAM11, 0, 0, 0, 1 },
+ { SHADER_IMGNAT_BGRA_AFILL, &(shader_imgnat_bgra_afill_vert_src), &(shader_imgnat_bgra_afill_frag_src), "imgnat_bgra_afill", SHD_IMAGENATIVE, SHD_SAM11, SHD_SAM11, 1, 0, 0, 1 },
+ { SHADER_IMGNAT_NOMUL_AFILL, &(shader_imgnat_nomul_afill_vert_src), &(shader_imgnat_nomul_afill_frag_src), "imgnat_nomul_afill", SHD_IMAGENATIVE, SHD_SAM11, SHD_SAM11, 0, 0, 1, 1 },
+ { SHADER_IMGNAT_BGRA_NOMUL_AFILL, &(shader_imgnat_bgra_nomul_afill_vert_src), &(shader_imgnat_bgra_nomul_afill_frag_src), "imgnat_bgra_nomul_afill", SHD_IMAGENATIVE, SHD_SAM11, SHD_SAM11, 1, 0, 1, 1 },
+ { SHADER_IMGNAT_12_AFILL, &(shader_imgnat_12_afill_vert_src), &(shader_imgnat_12_afill_frag_src), "imgnat_12_afill", SHD_IMAGENATIVE, SHD_SAM12, SHD_SAM11, 0, 0, 0, 1 },
+ { SHADER_IMGNAT_21_AFILL, &(shader_imgnat_21_afill_vert_src), &(shader_imgnat_21_afill_frag_src), "imgnat_21_afill", SHD_IMAGENATIVE, SHD_SAM21, SHD_SAM11, 0, 0, 0, 1 },
+ { SHADER_IMGNAT_22_AFILL, &(shader_imgnat_22_afill_vert_src), &(shader_imgnat_22_afill_frag_src), "imgnat_22_afill", SHD_IMAGENATIVE, SHD_SAM22, SHD_SAM11, 0, 0, 0, 1 },
+ { SHADER_IMGNAT_12_BGRA_AFILL, &(shader_imgnat_12_bgra_afill_vert_src), &(shader_imgnat_12_bgra_afill_frag_src), "imgnat_12_bgra_afill", SHD_IMAGENATIVE, SHD_SAM12, SHD_SAM11, 1, 0, 0, 1 },
+ { SHADER_IMGNAT_21_BGRA_AFILL, &(shader_imgnat_21_bgra_afill_vert_src), &(shader_imgnat_21_bgra_afill_frag_src), "imgnat_21_bgra_afill", SHD_IMAGENATIVE, SHD_SAM21, SHD_SAM11, 1, 0, 0, 1 },
+ { SHADER_IMGNAT_22_BGRA_AFILL, &(shader_imgnat_22_bgra_afill_vert_src), &(shader_imgnat_22_bgra_afill_frag_src), "imgnat_22_bgra_afill", SHD_IMAGENATIVE, SHD_SAM22, SHD_SAM11, 1, 0, 0, 1 },
+ { SHADER_IMGNAT_12_NOMUL_AFILL, &(shader_imgnat_12_nomul_afill_vert_src), &(shader_imgnat_12_nomul_afill_frag_src), "imgnat_12_nomul_afill", SHD_IMAGENATIVE, SHD_SAM12, SHD_SAM11, 0, 0, 1, 1 },
+ { SHADER_IMGNAT_21_NOMUL_AFILL, &(shader_imgnat_21_nomul_afill_vert_src), &(shader_imgnat_21_nomul_afill_frag_src), "imgnat_21_nomul_afill", SHD_IMAGENATIVE, SHD_SAM21, SHD_SAM11, 0, 0, 1, 1 },
+ { SHADER_IMGNAT_22_NOMUL_AFILL, &(shader_imgnat_22_nomul_afill_vert_src), &(shader_imgnat_22_nomul_afill_frag_src), "imgnat_22_nomul_afill", SHD_IMAGENATIVE, SHD_SAM22, SHD_SAM11, 0, 0, 1, 1 },
+ { SHADER_IMGNAT_12_BGRA_NOMUL_AFILL, &(shader_imgnat_12_bgra_nomul_afill_vert_src), &(shader_imgnat_12_bgra_nomul_afill_frag_src), "imgnat_12_bgra_nomul_afill", SHD_IMAGENATIVE, SHD_SAM12, SHD_SAM11, 1, 0, 1, 1 },
+ { SHADER_IMGNAT_21_BGRA_NOMUL_AFILL, &(shader_imgnat_21_bgra_nomul_afill_vert_src), &(shader_imgnat_21_bgra_nomul_afill_frag_src), "imgnat_21_bgra_nomul_afill", SHD_IMAGENATIVE, SHD_SAM21, SHD_SAM11, 1, 0, 1, 1 },
+ { SHADER_IMGNAT_22_BGRA_NOMUL_AFILL, &(shader_imgnat_22_bgra_nomul_afill_vert_src), &(shader_imgnat_22_bgra_nomul_afill_frag_src), "imgnat_22_bgra_nomul_afill", SHD_IMAGENATIVE, SHD_SAM22, SHD_SAM11, 1, 0, 1, 1 },
{ SHADER_RGB_A_PAIR, &(shader_rgb_a_pair_vert_src), &(shader_rgb_a_pair_frag_src), "rgb_a_pair", SHD_RGB_A_PAIR, SHD_SAM11, SHD_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", SHD_RGB_A_PAIR, SHD_SAM11, SHD_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", SHD_RGB_A_PAIR, SHD_SAM11, SHD_SAM11, 0, 0, 1, 0 },
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 db1cad4fbc..967c619a89 100755
--- a/src/modules/evas/engines/gl_common/shader/gen_shaders.sh
+++ b/src/modules/evas/engines/gl_common/shader/gen_shaders.sh
@@ -97,6 +97,7 @@ for (( i = 0; i < ${#SHADERS[@]} ; i++ )) ; do
# Urgh. Some fixups
case $TYPE in
IMG) TYPE="IMAGE";;
+ IMGNAT) TYPE="IMAGENATIVE";;
RGB) TYPE="RGB_A_PAIR";;
TEX) TYPE="TEX_EXTERNAL";;
esac
diff --git a/src/modules/evas/engines/gl_common/shader/shaders.txt b/src/modules/evas/engines/gl_common/shader/shaders.txt
index 78e6a9920a..2340489aa9 100644
--- a/src/modules/evas/engines/gl_common/shader/shaders.txt
+++ b/src/modules/evas/engines/gl_common/shader/shaders.txt
@@ -22,7 +22,7 @@ font_mask22:tex,mask,masksam22,alpha
# Images: color version
-img:tex
+img:tex,img
img_bgra:tex,img,bgra
img_12:tex,img,sam12
img_21:tex,img,sam21
@@ -134,6 +134,122 @@ img_22_bgra_nomul_afill:tex,img,sam22,bgra,nomul,afill
+
+
+
+# Images: color version
+imgnat:tex
+imgnat_bgra:tex,bgra
+imgnat_12:tex,sam12
+imgnat_21:tex,sam21
+imgnat_22:tex,sam22
+imgnat_12_bgra:tex,sam12,bgra
+imgnat_21_bgra:tex,sam21,bgra
+imgnat_22_bgra:tex,sam22,bgra
+
+imgnat_mask:tex,mask
+imgnat_bgra_mask:tex,mask,bgra
+imgnat_12_mask:tex,mask,sam12
+imgnat_21_mask:tex,mask,sam21
+imgnat_22_mask:tex,mask,sam22
+imgnat_12_bgra_mask:tex,mask,sam12,bgra
+imgnat_21_bgra_mask:tex,mask,sam21,bgra
+imgnat_22_bgra_mask:tex,mask,sam22,bgra
+
+
+# Images: nomul version (copy above with extra nomul flag)
+imgnat_nomul:tex,nomul
+imgnat_bgra_nomul:tex,nomul,bgra
+imgnat_12_nomul:tex,sam12,nomul
+imgnat_21_nomul:tex,sam21,nomul
+imgnat_22_nomul:tex,sam22,nomul
+imgnat_12_bgra_nomul:tex,sam12,bgra,nomul
+imgnat_21_bgra_nomul:tex,sam21,bgra,nomul
+imgnat_22_bgra_nomul:tex,sam22,bgra,nomul
+
+imgnat_mask_nomul:tex,mask,nomul
+imgnat_bgra_mask_nomul:tex,mask,nomul,bgra
+imgnat_12_mask_nomul:tex,mask,sam12,nomul
+imgnat_21_mask_nomul:tex,mask,sam21,nomul
+imgnat_22_mask_nomul:tex,mask,sam22,nomul
+imgnat_12_bgra_mask_nomul:tex,mask,sam12,bgra,nomul
+imgnat_21_bgra_mask_nomul:tex,mask,sam21,bgra,nomul
+imgnat_22_bgra_mask_nomul:tex,mask,sam22,bgra,nomul
+
+
+# Now the same as above but with MASKSAM
+imgnat_mask12:tex,mask,masksam12
+imgnat_bgra_mask12:tex,mask,masksam12,bgra
+imgnat_12_mask12:tex,mask,masksam12,sam12
+imgnat_21_mask12:tex,mask,masksam12,sam21
+imgnat_22_mask12:tex,mask,masksam12,sam22
+imgnat_12_bgra_mask12:tex,mask,masksam12,sam12,bgra
+imgnat_21_bgra_mask12:tex,mask,masksam12,sam21,bgra
+imgnat_22_bgra_mask12:tex,mask,masksam12,sam22,bgra
+imgnat_mask12_nomul:tex,mask,masksam12,nomul
+imgnat_bgra_mask12_nomul:tex,mask,masksam12,nomul,bgra
+imgnat_12_mask12_nomul:tex,mask,masksam12,sam12,nomul
+imgnat_21_mask12_nomul:tex,mask,masksam12,sam21,nomul
+imgnat_22_mask12_nomul:tex,mask,masksam12,sam22,nomul
+imgnat_12_bgra_mask12_nomul:tex,mask,masksam12,sam12,bgra,nomul
+imgnat_21_bgra_mask12_nomul:tex,mask,masksam12,sam21,bgra,nomul
+imgnat_22_bgra_mask12_nomul:tex,mask,masksam12,sam22,bgra,nomul
+
+imgnat_mask21:tex,mask,masksam21
+imgnat_bgra_mask21:tex,mask,masksam21,bgra
+imgnat_12_mask21:tex,mask,masksam21,sam12
+imgnat_21_mask21:tex,mask,masksam21,sam21
+imgnat_22_mask21:tex,mask,masksam21,sam22
+imgnat_12_bgra_mask21:tex,mask,masksam21,sam12,bgra
+imgnat_21_bgra_mask21:tex,mask,masksam21,sam21,bgra
+imgnat_22_bgra_mask21:tex,mask,masksam21,sam22,bgra
+imgnat_mask21_nomul:tex,mask,masksam21,nomul
+imgnat_bgra_mask21_nomul:tex,mask,masksam21,nomul,bgra
+imgnat_12_mask21_nomul:tex,mask,masksam21,sam12,nomul
+imgnat_21_mask21_nomul:tex,mask,masksam21,sam21,nomul
+imgnat_22_mask21_nomul:tex,mask,masksam21,sam22,nomul
+imgnat_12_bgra_mask21_nomul:tex,mask,masksam21,sam12,bgra,nomul
+imgnat_21_bgra_mask21_nomul:tex,mask,masksam21,sam21,bgra,nomul
+imgnat_22_bgra_mask21_nomul:tex,mask,masksam21,sam22,bgra,nomul
+
+imgnat_mask22:tex,mask,masksam22
+imgnat_bgra_mask22:tex,mask,masksam22,bgra
+imgnat_12_mask22:tex,mask,masksam22,sam12
+imgnat_21_mask22:tex,mask,masksam22,sam21
+imgnat_22_mask22:tex,mask,masksam22,sam22
+imgnat_12_bgra_mask22:tex,mask,masksam22,sam12,bgra
+imgnat_21_bgra_mask22:tex,mask,masksam22,sam21,bgra
+imgnat_22_bgra_mask22:tex,mask,masksam22,sam22,bgra
+imgnat_mask22_nomul:tex,mask,masksam22,nomul
+imgnat_bgra_mask22_nomul:tex,mask,masksam22,nomul,bgra
+imgnat_12_mask22_nomul:tex,mask,masksam22,sam12,nomul
+imgnat_21_mask22_nomul:tex,mask,masksam22,sam21,nomul
+imgnat_22_mask22_nomul:tex,mask,masksam22,sam22,nomul
+imgnat_12_bgra_mask22_nomul:tex,mask,masksam22,sam12,bgra,nomul
+imgnat_21_bgra_mask22_nomul:tex,mask,masksam22,sam21,bgra,nomul
+imgnat_22_bgra_mask22_nomul:tex,mask,masksam22,sam22,bgra,nomul
+
+
+# Some AFILL versions
+imgnat_afill:tex,afill
+imgnat_bgra_afill:tex,afill,bgra
+imgnat_nomul_afill:tex,nomul,afill
+imgnat_bgra_nomul_afill:tex,nomul,afill,bgra
+imgnat_12_afill:tex,sam12,afill
+imgnat_21_afill:tex,sam21,afill
+imgnat_22_afill:tex,sam22,afill
+imgnat_12_bgra_afill:tex,sam12,bgra,afill
+imgnat_21_bgra_afill:tex,sam21,bgra,afill
+imgnat_22_bgra_afill:tex,sam22,bgra,afill
+imgnat_12_nomul_afill:tex,sam12,nomul,afill
+imgnat_21_nomul_afill:tex,sam21,nomul,afill
+imgnat_22_nomul_afill:tex,sam22,nomul,afill
+imgnat_12_bgra_nomul_afill:tex,sam12,bgra,nomul,afill
+imgnat_21_bgra_nomul_afill:tex,sam21,bgra,nomul,afill
+imgnat_22_bgra_nomul_afill:tex,sam22,bgra,nomul,afill
+
+
+
# RGB+A. We can add more!
rgb_a_pair:tex,texa
rgb_a_pair_mask:tex,texa,mask