jpeg pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=986b60eaf0175b3592883c85cfb6f5f5a280f31d

commit 986b60eaf0175b3592883c85cfb6f5f5a280f31d
Author: Jean-Philippe Andre <jp.an...@samsung.com>
Date:   Wed Feb 11 20:39:05 2015 +0900

    Evas GL common: Use uniform instead of attribute for sample
    
    Image and texture programs "12", "21" and "22" used tex_sample
    as a texture attribute passed to the vertex shader. Instead of
    this seemingly hackish solution, use a vec2 uniform.
---
 .../evas/engines/gl_common/evas_gl_common.h        |   5 +-
 .../evas/engines/gl_common/evas_gl_context.c       |  53 +------
 .../evas/engines/gl_common/evas_gl_shader.c        |   3 -
 .../engines/gl_common/shader/evas_gl_shaders.x     | 176 ++++++++++-----------
 .../gl_common/shader/img_12_bgra_nomul_vert.shd    |   6 +-
 .../engines/gl_common/shader/img_12_bgra_vert.shd  |   6 +-
 .../engines/gl_common/shader/img_12_nomul_vert.shd |   6 +-
 .../evas/engines/gl_common/shader/img_12_vert.shd  |   6 +-
 .../gl_common/shader/img_21_bgra_nomul_vert.shd    |   6 +-
 .../engines/gl_common/shader/img_21_bgra_vert.shd  |   6 +-
 .../engines/gl_common/shader/img_21_nomul_vert.shd |   6 +-
 .../evas/engines/gl_common/shader/img_21_vert.shd  |   6 +-
 .../gl_common/shader/img_22_bgra_nomul_vert.shd    |  10 +-
 .../engines/gl_common/shader/img_22_bgra_vert.shd  |  10 +-
 .../engines/gl_common/shader/img_22_nomul_vert.shd |  10 +-
 .../evas/engines/gl_common/shader/img_22_vert.shd  |  10 +-
 .../engines/gl_common/shader/tex_12_afill_vert.shd |   6 +-
 .../gl_common/shader/tex_12_nomul_afill_vert.shd   |   6 +-
 .../engines/gl_common/shader/tex_12_nomul_vert.shd |   6 +-
 .../evas/engines/gl_common/shader/tex_12_vert.shd  |   6 +-
 .../engines/gl_common/shader/tex_21_afill_vert.shd |   6 +-
 .../gl_common/shader/tex_21_nomul_afill_vert.shd   |   6 +-
 .../engines/gl_common/shader/tex_21_nomul_vert.shd |   6 +-
 .../evas/engines/gl_common/shader/tex_21_vert.shd  |   6 +-
 .../engines/gl_common/shader/tex_22_afill_vert.shd |  10 +-
 .../gl_common/shader/tex_22_nomul_afill_vert.shd   |  10 +-
 .../engines/gl_common/shader/tex_22_nomul_vert.shd |  10 +-
 .../evas/engines/gl_common/shader/tex_22_vert.shd  |  10 +-
 28 files changed, 180 insertions(+), 233 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 481a557..f8effa3 100644
--- a/src/modules/evas/engines/gl_common/evas_gl_common.h
+++ b/src/modules/evas/engines/gl_common/evas_gl_common.h
@@ -276,8 +276,7 @@
 #define SHAD_TEXUV2 3
 #define SHAD_TEXUV3 4
 #define SHAD_TEXA   5
-#define SHAD_TEXSAM 6
-#define SHAD_TEXM   7
+#define SHAD_TEXM   6
 
 typedef struct _Evas_GL_Program               Evas_GL_Program;
 typedef struct _Evas_GL_Program_Source        Evas_GL_Program_Source;
@@ -474,7 +473,6 @@ struct _Evas_Engine_GL_Context
          GLfloat *texuv2;
          GLfloat *texuv3;
          GLfloat *texa;
-         GLfloat *texsam;
          GLfloat *texm;
          Eina_List *uniforms; /* Evas_GL_Uniform */
          Eina_Bool line: 1;
@@ -484,7 +482,6 @@ struct _Evas_Engine_GL_Context
          Eina_Bool use_texuv2 : 1;
          Eina_Bool use_texuv3 : 1;
          Eina_Bool use_texa : 1;
-         Eina_Bool use_texsam : 1;
          Eina_Bool use_texm : 1;
          Eina_Bool anti_alias : 1;
          Evas_GL_Image *im;
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 080ae2a..1cdb240 100644
--- a/src/modules/evas/engines/gl_common/evas_gl_context.c
+++ b/src/modules/evas/engines/gl_common/evas_gl_context.c
@@ -949,7 +949,6 @@ evas_gl_common_context_free(Evas_Engine_GL_Context *gc)
              if (gc->pipe[i].array.texa) free(gc->pipe[i].array.texa);
              if (gc->pipe[i].array.texuv2) free(gc->pipe[i].array.texuv2);
              if (gc->pipe[i].array.texuv3) free(gc->pipe[i].array.texuv3);
-             if (gc->pipe[i].array.texsam) free(gc->pipe[i].array.texsam);
              if (gc->pipe[i].array.texm) free(gc->pipe[i].array.texm);
           }
      }
@@ -1251,9 +1250,6 @@ 
evas_gl_common_context_target_surface_set(Evas_Engine_GL_Context *gc,
 #define PUSH_TEXM(n, u, v) do { \
    gc->pipe[n].array.texm[nm++] = u; \
    gc->pipe[n].array.texm[nm++] = v; } while(0)
-#define PUSH_TEXSAM(n, x, y) do { \
-   gc->pipe[n].array.texsam[ns++] = x; \
-   gc->pipe[n].array.texsam[ns++] = y; } while(0)
 
 #define PUSH_6_COLORS(pn, r, g, b, a) \
    do { int i; for (i = 0; i < 6; i++) PUSH_COLOR(pn, r, g, b, a); } while(0)
@@ -1300,7 +1296,6 @@ array_alloc(Evas_Engine_GL_Context *gc, int n)
         ALOC(texa,   GLfloat, 2);
         ALOC(texuv2, GLfloat, 2);
         ALOC(texuv3, GLfloat, 2);
-        ALOC(texsam, GLfloat, 2);
         ALOC(texm,   GLfloat, 2);
         return;
      }
@@ -1316,7 +1311,6 @@ array_alloc(Evas_Engine_GL_Context *gc, int n)
    RALOC(texa,   GLfloat, 2);
    RALOC(texuv2, GLfloat, 2);
    RALOC(texuv3, GLfloat, 2);
-   RALOC(texsam, GLfloat, 2);
    RALOC(texm,   GLfloat, 2);
 }
 
@@ -1653,7 +1647,6 @@ evas_gl_common_context_line_push(Evas_Engine_GL_Context 
*gc,
    gc->pipe[pn].array.use_texuv2 = 0;
    gc->pipe[pn].array.use_texuv3 = 0;
    gc->pipe[pn].array.use_texa = 0;
-   gc->pipe[pn].array.use_texsam = 0;
    gc->pipe[pn].array.use_texm = 0;
 
    PIPE_GROW(gc, pn, 2);
@@ -1674,7 +1667,6 @@ evas_gl_common_context_line_push(Evas_Engine_GL_Context 
*gc,
    gc->pipe[pn].array.use_texuv2 = 0;
    gc->pipe[pn].array.use_texuv3 = 0;
    gc->pipe[pn].array.use_texa = 0;
-   gc->pipe[pn].array.use_texsam = 0;
    gc->pipe[pn].array.use_texm = 0;
 }
 
@@ -1727,7 +1719,6 @@ again:
         gc->pipe[pn].array.use_texuv2 = 0;
         gc->pipe[pn].array.use_texuv3 = 0;
         gc->pipe[pn].array.use_texa = 0;
-        gc->pipe[pn].array.use_texsam = 0;
         gc->pipe[pn].array.use_texm = !!mtex;
      }
    else
@@ -1779,7 +1770,6 @@ again:
              gc->pipe[pn].array.use_texuv2 = 0;
              gc->pipe[pn].array.use_texuv3 = 0;
              gc->pipe[pn].array.use_texa = 0;
-             gc->pipe[pn].array.use_texsam = 0;
              gc->pipe[pn].array.use_texm = !!mtex;
          }
      }
@@ -1815,7 +1805,6 @@ again:
    gc->pipe[pn].array.use_texuv2 = 0;
    gc->pipe[pn].array.use_texuv3 = 0;
    gc->pipe[pn].array.use_texa = 0;
-   gc->pipe[pn].array.use_texsam = 0;
    gc->pipe[pn].array.use_texm = !!mtex;
 #endif
 
@@ -2070,7 +2059,6 @@ evas_gl_common_context_image_push(Evas_Engine_GL_Context 
*gc,
    gc->pipe[pn].array.use_texuv2 = 0;
    gc->pipe[pn].array.use_texuv3 = 0;
    gc->pipe[pn].array.use_texm = !!mtex;
-   gc->pipe[pn].array.use_texsam = sam;
 
    pipe_region_expand(gc, pn, x, y, w, h);
    PIPE_GROW(gc, pn, 6);
@@ -2110,14 +2098,7 @@ evas_gl_common_context_image_push(Evas_Engine_GL_Context 
*gc,
      {
         double samx = (double)(sw) / (double)(tex->pt->w * w * 4);
         double samy = (double)(sh) / (double)(tex->pt->h * h * 4);
-        
-        PUSH_TEXSAM(pn, samx, samy);
-        PUSH_TEXSAM(pn, samx, samy);
-        PUSH_TEXSAM(pn, samx, samy);
-
-        PUSH_TEXSAM(pn, samx, samy);
-        PUSH_TEXSAM(pn, samx, samy);
-        PUSH_TEXSAM(pn, samx, samy);
+        PUSH_UNIFORM(pn, EVAS_GL_UNIFORM_VEC2, "sample", samx, samy);
      }
 
    PUSH_MASK(pn, mtex, mx, my, mw, mh);
@@ -2170,7 +2151,6 @@ evas_gl_common_context_font_push(Evas_Engine_GL_Context 
*gc,
    gc->pipe[pn].array.use_texuv2 = 0;
    gc->pipe[pn].array.use_texuv3 = 0;
    gc->pipe[pn].array.use_texm = !!mtex;
-   gc->pipe[pn].array.use_texsam = 0;
 
    pipe_region_expand(gc, pn, x, y, w, h);
    PIPE_GROW(gc, pn, 6);
@@ -2264,7 +2244,6 @@ evas_gl_common_context_yuv_push(Evas_Engine_GL_Context 
*gc,
    gc->pipe[pn].array.use_texuv2 = 1;
    gc->pipe[pn].array.use_texuv3 = 1;
    gc->pipe[pn].array.use_texm = !!mtex;
-   gc->pipe[pn].array.use_texsam = 0;
 
    pipe_region_expand(gc, pn, x, y, w, h);
    PIPE_GROW(gc, pn, 6);
@@ -2368,7 +2347,6 @@ evas_gl_common_context_yuy2_push(Evas_Engine_GL_Context 
*gc,
    gc->pipe[pn].array.use_texuv2 = 1;
    gc->pipe[pn].array.use_texuv3 = 0;
    gc->pipe[pn].array.use_texm = !!mtex;
-   gc->pipe[pn].array.use_texsam = 0;
 
    pipe_region_expand(gc, pn, x, y, w, h);
    PIPE_GROW(gc, pn, 6);
@@ -2466,7 +2444,6 @@ evas_gl_common_context_nv12_push(Evas_Engine_GL_Context 
*gc,
    gc->pipe[pn].array.use_texuv2 = 1;
    gc->pipe[pn].array.use_texuv3 = 0;
    gc->pipe[pn].array.use_texm = !!mtex;
-   gc->pipe[pn].array.use_texsam = 0;
 
    pipe_region_expand(gc, pn, x, y, w, h);
    PIPE_GROW(gc, pn, 6);
@@ -2569,7 +2546,6 @@ 
evas_gl_common_context_rgb_a_pair_push(Evas_Engine_GL_Context *gc,
    gc->pipe[pn].array.use_texuv2 = 0;
    gc->pipe[pn].array.use_texuv3 = 0;
    gc->pipe[pn].array.use_texa = EINA_TRUE;
-   gc->pipe[pn].array.use_texsam = 0;
    gc->pipe[pn].array.use_texm = !!mtex;
 
    pipe_region_expand(gc, pn, x, y, w, h);
@@ -2822,7 +2798,6 @@ 
evas_gl_common_context_image_map_push(Evas_Engine_GL_Context *gc,
    gc->pipe[pn].array.use_texuv3 = (utexture) ? 1 : 0;
    gc->pipe[pn].array.use_texm = !!mtex;
    gc->pipe[pn].array.use_texa = 0;
-   gc->pipe[pn].array.use_texsam = 0;
 
    pipe_region_expand(gc, pn, x, y, w, h);
    PIPE_GROW(gc, pn, 6);
@@ -3266,7 +3241,6 @@ shader_array_flush(Evas_Engine_GL_Context *gc)
         unsigned char *texuv2_ptr = NULL;
         unsigned char *texuv3_ptr = NULL;
         unsigned char *texa_ptr = NULL;
-        unsigned char *texsam_ptr = NULL;
         unsigned char *texm_ptr = NULL;
 
         if (glsym_glMapBuffer && glsym_glUnmapBuffer)
@@ -3282,8 +3256,7 @@ shader_array_flush(Evas_Engine_GL_Context *gc)
              texuv2_ptr = texuv_ptr + TEX_SIZE;
              texuv3_ptr = texuv2_ptr + TEX_SIZE;
              texa_ptr = texuv3_ptr + TEX_SIZE;
-             texsam_ptr = texa_ptr + TEX_SIZE;
-             texm_ptr = texsam_ptr + TEX_SIZE;
+             texm_ptr = texa_ptr + TEX_SIZE;
 # define END_POINTER (texm_ptr + TEX_SIZE)
 
              glBindBuffer(GL_ARRAY_BUFFER, gc->pipe[i].array.buffer);
@@ -3311,12 +3284,10 @@ shader_array_flush(Evas_Engine_GL_Context *gc)
                     memcpy(x + (unsigned long)texuv3_ptr, 
gc->pipe[i].array.texuv3, TEX_SIZE);
                   if (gc->pipe[i].array.use_texa)
                     memcpy(x + (unsigned long)texa_ptr, 
gc->pipe[i].array.texa, TEX_SIZE);
-                  if (gc->pipe[i].array.use_texsam)
-                    memcpy(x + (unsigned long)texsam_ptr, 
gc->pipe[i].array.texsam, TEX_SIZE);
                   if (gc->pipe[i].array.use_texm)
                     memcpy(x + (unsigned long)texm_ptr, 
gc->pipe[i].array.texm, TEX_SIZE);
 /*                  
-                  fprintf(stderr, "copy %i bytes [%i/%i slots] [%i + %i + %i + 
%i + %i + %i + %i] <%i %i %i %i %i %i %i>\n",
+                  fprintf(stderr, "copy %i bytes [%i/%i slots] [%i + %i + %i + 
%i + %i + %i + %i] <%i %i %i %i %i %i>\n",
                           (int)((unsigned char *)END_POINTER),
                           gc->pipe[i].array.num,
                           gc->pipe[i].array.alloc,
@@ -3327,7 +3298,6 @@ shader_array_flush(Evas_Engine_GL_Context *gc)
                           gc->pipe[i].array.use_texuv2,
                           gc->pipe[i].array.use_texuv3,
                           gc->pipe[i].array.use_texa,
-                          gc->pipe[i].array.use_texsam,
                           gc->pipe[i].array.use_texm);
  */
                   glsym_glUnmapBuffer(GL_ARRAY_BUFFER);
@@ -3341,7 +3311,6 @@ shader_array_flush(Evas_Engine_GL_Context *gc)
              texuv2_ptr = (unsigned char *)gc->pipe[i].array.texuv2;
              texuv3_ptr = (unsigned char *)gc->pipe[i].array.texuv3;
              texa_ptr = (unsigned char *)gc->pipe[i].array.texa;
-             texsam_ptr = (unsigned char *)gc->pipe[i].array.texsam;
              texm_ptr = (unsigned char *)gc->pipe[i].array.texm;
           }
         glVertexAttribPointer(SHAD_VERTEX, 3, GL_SHORT, GL_FALSE, 0, (void 
*)vertex_ptr);
@@ -3371,8 +3340,6 @@ shader_array_flush(Evas_Engine_GL_Context *gc)
              GLERR(__FUNCTION__, __FILE__, __LINE__, "");
              glDisableVertexAttribArray(SHAD_TEXA);
              GLERR(__FUNCTION__, __FILE__, __LINE__, "");
-             glDisableVertexAttribArray(SHAD_TEXSAM);
-             GLERR(__FUNCTION__, __FILE__, __LINE__, "");
              glDisableVertexAttribArray(SHAD_TEXM);
              GLERR(__FUNCTION__, __FILE__, __LINE__, "");
              glDrawArrays(GL_LINES, 0, gc->pipe[i].array.num);
@@ -3444,17 +3411,6 @@ shader_array_flush(Evas_Engine_GL_Context *gc)
                   glDisableVertexAttribArray(SHAD_TEXA);
                }
 
-             if (gc->pipe[i].array.use_texsam)
-               {
-                  glEnableVertexAttribArray(SHAD_TEXSAM);
-                  GLERR(__FUNCTION__, __FILE__, __LINE__, "");
-                  glVertexAttribPointer(SHAD_TEXSAM, 2, GL_FLOAT, GL_FALSE, 0, 
(void *)texsam_ptr);
-                  GLERR(__FUNCTION__, __FILE__, __LINE__, "");
-               }
-             else
-               {
-                  glDisableVertexAttribArray(SHAD_TEXSAM);
-               }
              if ((gc->pipe[i].array.use_texuv2) && 
(gc->pipe[i].array.use_texuv3))
                {
                   glEnableVertexAttribArray(SHAD_TEXUV2);
@@ -3652,7 +3608,6 @@ shader_array_flush(Evas_Engine_GL_Context *gc)
         if (gc->pipe[i].array.texa) free(gc->pipe[i].array.texa);
         if (gc->pipe[i].array.texuv2) free(gc->pipe[i].array.texuv2);
         if (gc->pipe[i].array.texuv3) free(gc->pipe[i].array.texuv3);
-        if (gc->pipe[i].array.texsam) free(gc->pipe[i].array.texsam);
         if (gc->pipe[i].array.texm) free(gc->pipe[i].array.texm);
 
         gc->pipe[i].array.line = 0;
@@ -3662,7 +3617,6 @@ shader_array_flush(Evas_Engine_GL_Context *gc)
         gc->pipe[i].array.use_texuv2 = 0;
         gc->pipe[i].array.use_texuv3 = 0;
         gc->pipe[i].array.use_texa = 0;
-        gc->pipe[i].array.use_texsam = 0;
         gc->pipe[i].array.use_texm = 0;
         
         gc->pipe[i].array.vertex = NULL;
@@ -3671,7 +3625,6 @@ shader_array_flush(Evas_Engine_GL_Context *gc)
         gc->pipe[i].array.texa = NULL;
         gc->pipe[i].array.texuv2 = NULL;
         gc->pipe[i].array.texuv3 = NULL;
-        gc->pipe[i].array.texsam = NULL;
         gc->pipe[i].array.texm = NULL;
 
         gc->pipe[i].array.num = 0;
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 d0648c6..bc5010c 100644
--- a/src/modules/evas/engines/gl_common/evas_gl_shader.c
+++ b/src/modules/evas/engines/gl_common/evas_gl_shader.c
@@ -77,7 +77,6 @@ _evas_gl_common_shader_program_binary_init(Evas_GL_Program *p,
    glBindAttribLocation(p->prog, SHAD_TEXUV2, "tex_coord2");
    glBindAttribLocation(p->prog, SHAD_TEXUV3, "tex_coord3");
    glBindAttribLocation(p->prog, SHAD_TEXA,   "tex_coorda");
-   glBindAttribLocation(p->prog, SHAD_TEXSAM, "tex_sample");
    glBindAttribLocation(p->prog, SHAD_TEXM,   "tex_coordm");
 
    glGetProgramiv(p->prog, GL_LINK_STATUS, &ok);
@@ -202,8 +201,6 @@ _evas_gl_common_shader_program_source_init(Evas_GL_Program 
*p,
    GLERR(__FUNCTION__, __FILE__, __LINE__, "");
    glBindAttribLocation(p->prog, SHAD_TEXA, "tex_coorda");
    GLERR(__FUNCTION__, __FILE__, __LINE__, "");
-   glBindAttribLocation(p->prog, SHAD_TEXSAM, "tex_sample");
-   GLERR(__FUNCTION__, __FILE__, __LINE__, "");
    glBindAttribLocation(p->prog, SHAD_TEXM, "tex_coordm");
    GLERR(__FUNCTION__, __FILE__, __LINE__, "");
 
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 712a849..50ed712 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
@@ -156,7 +156,7 @@ static const char const img_12_bgra_nomul_vert_glsl[] =
    "#endif\n"
    "attribute vec4 vertex;\n"
    "attribute vec2 tex_coord;\n"
-   "attribute vec2 tex_sample;\n"
+   "uniform vec2 sample;\n"
    "uniform mat4 mvp;\n"
    "varying vec2 tex_c;\n"
    "varying vec2 tex_s[2];\n"
@@ -165,8 +165,8 @@ static const char const img_12_bgra_nomul_vert_glsl[] =
    "{\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"
+   "   tex_s[0] = vec2(0, -sample.y);\n"
+   "   tex_s[1] = vec2(0,  sample.y);\n"
    "   div_s = vec4(2, 2, 2, 2);\n"
    "}\n";
 Evas_GL_Program_Source shader_img_12_bgra_nomul_vert_src =
@@ -183,7 +183,7 @@ static const char const img_12_bgra_vert_glsl[] =
    "attribute vec4 vertex;\n"
    "attribute vec4 color;\n"
    "attribute vec2 tex_coord;\n"
-   "attribute vec2 tex_sample;\n"
+   "uniform vec2 sample;\n"
    "uniform mat4 mvp;\n"
    "varying vec4 col;\n"
    "varying vec2 tex_c;\n"
@@ -194,8 +194,8 @@ static const char const img_12_bgra_vert_glsl[] =
    "   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"
+   "   tex_s[0] = vec2(0, -sample.y);\n"
+   "   tex_s[1] = vec2(0,  sample.y);\n"
    "   div_s = vec4(2, 2, 2, 2);\n"
    "}\n";
 Evas_GL_Program_Source shader_img_12_bgra_vert_src =
@@ -262,7 +262,7 @@ static const char const img_12_nomul_vert_glsl[] =
    "#endif\n"
    "attribute vec4 vertex;\n"
    "attribute vec2 tex_coord;\n"
-   "attribute vec2 tex_sample;\n"
+   "uniform vec2 sample;\n"
    "uniform mat4 mvp;\n"
    "varying vec2 tex_c;\n"
    "varying vec2 tex_s[2];\n"
@@ -271,8 +271,8 @@ static const char const img_12_nomul_vert_glsl[] =
    "{\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"
+   "   tex_s[0] = vec2(0, -sample.y);\n"
+   "   tex_s[1] = vec2(0,  sample.y);\n"
    "   div_s = vec4(2, 2, 2, 2);\n"
    "}\n";
 Evas_GL_Program_Source shader_img_12_nomul_vert_src =
@@ -289,7 +289,7 @@ static const char const img_12_vert_glsl[] =
    "attribute vec4 vertex;\n"
    "attribute vec4 color;\n"
    "attribute vec2 tex_coord;\n"
-   "attribute vec2 tex_sample;\n"
+   "uniform vec2 sample;\n"
    "uniform mat4 mvp;\n"
    "varying vec4 col;\n"
    "varying vec2 tex_c;\n"
@@ -300,8 +300,8 @@ static const char const img_12_vert_glsl[] =
    "   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"
+   "   tex_s[0] = vec2(0, -sample.y);\n"
+   "   tex_s[1] = vec2(0,  sample.y);\n"
    "   div_s = vec4(2, 2, 2, 2);\n"
    "}\n";
 Evas_GL_Program_Source shader_img_12_vert_src =
@@ -368,7 +368,7 @@ static const char const img_21_bgra_nomul_vert_glsl[] =
    "#endif\n"
    "attribute vec4 vertex;\n"
    "attribute vec2 tex_coord;\n"
-   "attribute vec2 tex_sample;\n"
+   "uniform vec2 sample;\n"
    "uniform mat4 mvp;\n"
    "varying vec2 tex_c;\n"
    "varying vec2 tex_s[2];\n"
@@ -377,8 +377,8 @@ static const char const img_21_bgra_nomul_vert_glsl[] =
    "{\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"
+   "   tex_s[0] = vec2(-sample.x, 0);\n"
+   "   tex_s[1] = vec2( sample.x, 0);\n"
    "   div_s = vec4(2, 2, 2, 2);\n"
    "}\n";
 Evas_GL_Program_Source shader_img_21_bgra_nomul_vert_src =
@@ -395,7 +395,7 @@ static const char const img_21_bgra_vert_glsl[] =
    "attribute vec4 vertex;\n"
    "attribute vec4 color;\n"
    "attribute vec2 tex_coord;\n"
-   "attribute vec2 tex_sample;\n"
+   "uniform vec2 sample;\n"
    "uniform mat4 mvp;\n"
    "varying vec4 col;\n"
    "varying vec2 tex_c;\n"
@@ -406,8 +406,8 @@ static const char const img_21_bgra_vert_glsl[] =
    "   gl_Position = mvp * vertex;\n"
    "   col = color;\n"
    "   tex_c = tex_coord;\n"
-   "   tex_s[0] = vec2(-tex_sample.x, 0);\n"
-   "   tex_s[1] = vec2( tex_sample.x, 0);\n"
+   "   tex_s[0] = vec2(-sample.x, 0);\n"
+   "   tex_s[1] = vec2( sample.x, 0);\n"
    "   div_s = vec4(2, 2, 2, 2);\n"
    "}\n";
 Evas_GL_Program_Source shader_img_21_bgra_vert_src =
@@ -474,7 +474,7 @@ static const char const img_21_nomul_vert_glsl[] =
    "#endif\n"
    "attribute vec4 vertex;\n"
    "attribute vec2 tex_coord;\n"
-   "attribute vec2 tex_sample;\n"
+   "uniform vec2 sample;\n"
    "uniform mat4 mvp;\n"
    "varying vec2 tex_c;\n"
    "varying vec2 tex_s[2];\n"
@@ -483,8 +483,8 @@ static const char const img_21_nomul_vert_glsl[] =
    "{\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"
+   "   tex_s[0] = vec2(-sample.x, 0);\n"
+   "   tex_s[1] = vec2( sample.x, 0);\n"
    "   div_s = vec4(2, 2, 2, 2);\n"
    "}\n";
 Evas_GL_Program_Source shader_img_21_nomul_vert_src =
@@ -501,7 +501,7 @@ static const char const img_21_vert_glsl[] =
    "attribute vec4 vertex;\n"
    "attribute vec4 color;\n"
    "attribute vec2 tex_coord;\n"
-   "attribute vec2 tex_sample;\n"
+   "uniform vec2 sample;\n"
    "uniform mat4 mvp;\n"
    "varying vec4 col;\n"
    "varying vec2 tex_c;\n"
@@ -512,8 +512,8 @@ static const char const img_21_vert_glsl[] =
    "   gl_Position = mvp * vertex;\n"
    "   col = color;\n"
    "   tex_c = tex_coord;\n"
-   "   tex_s[0] = vec2(-tex_sample.x, 0);\n"
-   "   tex_s[1] = vec2( tex_sample.x, 0);\n"
+   "   tex_s[0] = vec2(-sample.x, 0);\n"
+   "   tex_s[1] = vec2( sample.x, 0);\n"
    "   div_s = vec4(2, 2, 2, 2);\n"
    "}\n";
 Evas_GL_Program_Source shader_img_21_vert_src =
@@ -584,7 +584,7 @@ static const char const img_22_bgra_nomul_vert_glsl[] =
    "#endif\n"
    "attribute vec4 vertex;\n"
    "attribute vec2 tex_coord;\n"
-   "attribute vec2 tex_sample;\n"
+   "uniform vec2 sample;\n"
    "uniform mat4 mvp;\n"
    "varying vec2 tex_c;\n"
    "varying vec2 tex_s[4];\n"
@@ -593,10 +593,10 @@ static const char const img_22_bgra_nomul_vert_glsl[] =
    "{\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"
+   "   tex_s[0] = vec2(-sample.x, -sample.y);\n"
+   "   tex_s[1] = vec2( sample.x, -sample.y);\n"
+   "   tex_s[2] = vec2( sample.x,  sample.y);\n"
+   "   tex_s[3] = vec2(-sample.x,  sample.y);\n"
    "   div_s = vec4(4, 4, 4, 4);\n"
    "}\n";
 Evas_GL_Program_Source shader_img_22_bgra_nomul_vert_src =
@@ -613,7 +613,7 @@ static const char const img_22_bgra_vert_glsl[] =
    "attribute vec4 vertex;\n"
    "attribute vec4 color;\n"
    "attribute vec2 tex_coord;\n"
-   "attribute vec2 tex_sample;\n"
+   "uniform vec2 sample;\n"
    "uniform mat4 mvp;\n"
    "varying vec4 col;\n"
    "varying vec2 tex_c;\n"
@@ -624,10 +624,10 @@ static const char const img_22_bgra_vert_glsl[] =
    "   gl_Position = mvp * vertex;\n"
    "   col = color;\n"
    "   tex_c = tex_coord;\n"
-   "   tex_s[0] = vec2(-tex_sample.x, -tex_sample.y);\n"
-   "   tex_s[1] = vec2( tex_sample.x, -tex_sample.y);\n"
-   "   tex_s[2] = vec2( tex_sample.x,  tex_sample.y);\n"
-   "   tex_s[3] = vec2(-tex_sample.x,  tex_sample.y);\n"
+   "   tex_s[0] = vec2(-sample.x, -sample.y);\n"
+   "   tex_s[1] = vec2( sample.x, -sample.y);\n"
+   "   tex_s[2] = vec2( sample.x,  sample.y);\n"
+   "   tex_s[3] = vec2(-sample.x,  sample.y);\n"
    "   div_s = vec4(4, 4, 4, 4);\n"
    "}\n";
 Evas_GL_Program_Source shader_img_22_bgra_vert_src =
@@ -698,7 +698,7 @@ static const char const img_22_nomul_vert_glsl[] =
    "#endif\n"
    "attribute vec4 vertex;\n"
    "attribute vec2 tex_coord;\n"
-   "attribute vec2 tex_sample;\n"
+   "uniform vec2 sample;\n"
    "uniform mat4 mvp;\n"
    "varying vec2 tex_c;\n"
    "varying vec2 tex_s[4];\n"
@@ -707,10 +707,10 @@ static const char const img_22_nomul_vert_glsl[] =
    "{\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"
+   "   tex_s[0] = vec2(-sample.x, -sample.y);\n"
+   "   tex_s[1] = vec2( sample.x, -sample.y);\n"
+   "   tex_s[2] = vec2( sample.x,  sample.y);\n"
+   "   tex_s[3] = vec2(-sample.x,  sample.y);\n"
    "   div_s = vec4(4, 4, 4, 4);\n"
    "}\n";
 Evas_GL_Program_Source shader_img_22_nomul_vert_src =
@@ -727,7 +727,7 @@ static const char const img_22_vert_glsl[] =
    "attribute vec4 vertex;\n"
    "attribute vec4 color;\n"
    "attribute vec2 tex_coord;\n"
-   "attribute vec2 tex_sample;\n"
+   "uniform vec2 sample;\n"
    "uniform mat4 mvp;\n"
    "varying vec4 col;\n"
    "varying vec2 tex_c;\n"
@@ -738,10 +738,10 @@ static const char const img_22_vert_glsl[] =
    "   gl_Position = mvp * vertex;\n"
    "   col = color;\n"
    "   tex_c = tex_coord;\n"
-   "   tex_s[0] = vec2(-tex_sample.x, -tex_sample.y);\n"
-   "   tex_s[1] = vec2( tex_sample.x, -tex_sample.y);\n"
-   "   tex_s[2] = vec2( tex_sample.x,  tex_sample.y);\n"
-   "   tex_s[3] = vec2(-tex_sample.x,  tex_sample.y);\n"
+   "   tex_s[0] = vec2(-sample.x, -sample.y);\n"
+   "   tex_s[1] = vec2( sample.x, -sample.y);\n"
+   "   tex_s[2] = vec2( sample.x,  sample.y);\n"
+   "   tex_s[3] = vec2(-sample.x,  sample.y);\n"
    "   div_s = vec4(4, 4, 4, 4);\n"
    "}\n";
 Evas_GL_Program_Source shader_img_22_vert_src =
@@ -1210,7 +1210,7 @@ static const char const tex_12_vert_glsl[] =
    "attribute vec4 vertex;\n"
    "attribute vec4 color;\n"
    "attribute vec2 tex_coord;\n"
-   "attribute vec2 tex_sample;\n"
+   "uniform vec2 sample;\n"
    "uniform mat4 mvp;\n"
    "varying vec4 col;\n"
    "varying vec2 tex_c;\n"
@@ -1221,8 +1221,8 @@ static const char const tex_12_vert_glsl[] =
    "   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"
+   "   tex_s[0] = vec2(0, -sample.y);\n"
+   "   tex_s[1] = vec2(0,  sample.y);\n"
    "   div_s = vec4(2, 2, 2, 2);\n"
    "}\n";
 Evas_GL_Program_Source shader_tex_12_vert_src =
@@ -1263,7 +1263,7 @@ static const char const tex_12_nomul_vert_glsl[] =
    "#endif\n"
    "attribute vec4 vertex;\n"
    "attribute vec2 tex_coord;\n"
-   "attribute vec2 tex_sample;\n"
+   "uniform vec2 sample;\n"
    "uniform mat4 mvp;\n"
    "varying vec2 tex_c;\n"
    "varying vec2 tex_s[2];\n"
@@ -1272,8 +1272,8 @@ static const char const tex_12_nomul_vert_glsl[] =
    "{\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"
+   "   tex_s[0] = vec2(0, -sample.y);\n"
+   "   tex_s[1] = vec2(0,  sample.y);\n"
    "   div_s = vec4(2, 2, 2, 2);\n"
    "}\n";
 Evas_GL_Program_Source shader_tex_12_nomul_vert_src =
@@ -1316,7 +1316,7 @@ static const char const tex_21_vert_glsl[] =
    "attribute vec4 vertex;\n"
    "attribute vec4 color;\n"
    "attribute vec2 tex_coord;\n"
-   "attribute vec2 tex_sample;\n"
+   "uniform vec2 sample;\n"
    "uniform mat4 mvp;\n"
    "varying vec4 col;\n"
    "varying vec2 tex_c;\n"
@@ -1327,8 +1327,8 @@ static const char const tex_21_vert_glsl[] =
    "   gl_Position = mvp * vertex;\n"
    "   col = color;\n"
    "   tex_c = tex_coord;\n"
-   "   tex_s[0] = vec2(-tex_sample.x, 0);\n"
-   "   tex_s[1] = vec2( tex_sample.x, 0);\n"
+   "   tex_s[0] = vec2(-sample.x, 0);\n"
+   "   tex_s[1] = vec2( sample.x, 0);\n"
    "   div_s = vec4(2, 2, 2, 2);\n"
    "}\n";
 Evas_GL_Program_Source shader_tex_21_vert_src =
@@ -1369,7 +1369,7 @@ static const char const tex_21_nomul_vert_glsl[] =
    "#endif\n"
    "attribute vec4 vertex;\n"
    "attribute vec2 tex_coord;\n"
-   "attribute vec2 tex_sample;\n"
+   "uniform vec2 sample;\n"
    "uniform mat4 mvp;\n"
    "varying vec2 tex_c;\n"
    "varying vec2 tex_s[2];\n"
@@ -1378,8 +1378,8 @@ static const char const tex_21_nomul_vert_glsl[] =
    "{\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"
+   "   tex_s[0] = vec2(-sample.x, 0);\n"
+   "   tex_s[1] = vec2( sample.x, 0);\n"
    "   div_s = vec4(2, 2, 2, 2);\n"
    "}\n";
 Evas_GL_Program_Source shader_tex_21_nomul_vert_src =
@@ -1424,7 +1424,7 @@ static const char const tex_22_vert_glsl[] =
    "attribute vec4 vertex;\n"
    "attribute vec4 color;\n"
    "attribute vec2 tex_coord;\n"
-   "attribute vec2 tex_sample;\n"
+   "uniform vec2 sample;\n"
    "uniform mat4 mvp;\n"
    "varying vec4 col;\n"
    "varying vec2 tex_c;\n"
@@ -1435,10 +1435,10 @@ static const char const tex_22_vert_glsl[] =
    "   gl_Position = mvp * vertex;\n"
    "   col = color;\n"
    "   tex_c = tex_coord;\n"
-   "   tex_s[0] = vec2(-tex_sample.x, -tex_sample.y);\n"
-   "   tex_s[1] = vec2( tex_sample.x, -tex_sample.y);\n"
-   "   tex_s[2] = vec2( tex_sample.x,  tex_sample.y);\n"
-   "   tex_s[3] = vec2(-tex_sample.x,  tex_sample.y);\n"
+   "   tex_s[0] = vec2(-sample.x, -sample.y);\n"
+   "   tex_s[1] = vec2( sample.x, -sample.y);\n"
+   "   tex_s[2] = vec2( sample.x,  sample.y);\n"
+   "   tex_s[3] = vec2(-sample.x,  sample.y);\n"
    "   div_s = vec4(4, 4, 4, 4);\n"
    "}\n";
 Evas_GL_Program_Source shader_tex_22_vert_src =
@@ -1481,7 +1481,7 @@ static const char const tex_22_nomul_vert_glsl[] =
    "#endif\n"
    "attribute vec4 vertex;\n"
    "attribute vec2 tex_coord;\n"
-   "attribute vec2 tex_sample;\n"
+   "uniform vec2 sample;\n"
    "uniform mat4 mvp;\n"
    "varying vec2 tex_c;\n"
    "varying vec2 tex_s[4];\n"
@@ -1490,10 +1490,10 @@ static const char const tex_22_nomul_vert_glsl[] =
    "{\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"
+   "   tex_s[0] = vec2(-sample.x, -sample.y);\n"
+   "   tex_s[1] = vec2( sample.x, -sample.y);\n"
+   "   tex_s[2] = vec2( sample.x,  sample.y);\n"
+   "   tex_s[3] = vec2(-sample.x,  sample.y);\n"
    "   div_s = vec4(4, 4, 4, 4);\n"
    "}\n";
 Evas_GL_Program_Source shader_tex_22_nomul_vert_src =
@@ -1671,7 +1671,7 @@ static const char const tex_22_afill_vert_glsl[] =
    "attribute vec4 vertex;\n"
    "attribute vec4 color;\n"
    "attribute vec2 tex_coord;\n"
-   "attribute vec2 tex_sample;\n"
+   "uniform vec2 sample;\n"
    "uniform mat4 mvp;\n"
    "varying vec4 col;\n"
    "varying vec2 tex_c;\n"
@@ -1682,10 +1682,10 @@ static const char const tex_22_afill_vert_glsl[] =
    "   gl_Position = mvp * vertex;\n"
    "   col = color;\n"
    "   tex_c = tex_coord;\n"
-   "   tex_s[0] = vec2(-tex_sample.x, -tex_sample.y);\n"
-   "   tex_s[1] = vec2( tex_sample.x, -tex_sample.y);\n"
-   "   tex_s[2] = vec2( tex_sample.x,  tex_sample.y);\n"
-   "   tex_s[3] = vec2(-tex_sample.x,  tex_sample.y);\n"
+   "   tex_s[0] = vec2(-sample.x, -sample.y);\n"
+   "   tex_s[1] = vec2( sample.x, -sample.y);\n"
+   "   tex_s[2] = vec2( sample.x,  sample.y);\n"
+   "   tex_s[3] = vec2(-sample.x,  sample.y);\n"
    "   div_s = vec4(4, 4, 4, 4);\n"
    "}\n";
 Evas_GL_Program_Source shader_tex_22_afill_vert_src =
@@ -1729,7 +1729,7 @@ static const char const tex_21_afill_vert_glsl[] =
    "attribute vec4 vertex;\n"
    "attribute vec4 color;\n"
    "attribute vec2 tex_coord;\n"
-   "attribute vec2 tex_sample;\n"
+   "uniform vec2 sample;\n"
    "uniform mat4 mvp;\n"
    "varying vec4 col;\n"
    "varying vec2 tex_c;\n"
@@ -1740,8 +1740,8 @@ static const char const tex_21_afill_vert_glsl[] =
    "   gl_Position = mvp * vertex;\n"
    "   col = color;\n"
    "   tex_c = tex_coord;\n"
-   "   tex_s[0] = vec2(-tex_sample.x, 0);\n"
-   "   tex_s[1] = vec2( tex_sample.x, 0);\n"
+   "   tex_s[0] = vec2(-sample.x, 0);\n"
+   "   tex_s[1] = vec2( sample.x, 0);\n"
    "   div_s = vec4(2, 2, 2, 2);\n"
    "}\n";
 Evas_GL_Program_Source shader_tex_21_afill_vert_src =
@@ -1785,7 +1785,7 @@ static const char const tex_12_afill_vert_glsl[] =
    "attribute vec4 vertex;\n"
    "attribute vec4 color;\n"
    "attribute vec2 tex_coord;\n"
-   "attribute vec2 tex_sample;\n"
+   "uniform vec2 sample;\n"
    "uniform mat4 mvp;\n"
    "varying vec4 col;\n"
    "varying vec2 tex_c;\n"
@@ -1796,8 +1796,8 @@ static const char const tex_12_afill_vert_glsl[] =
    "   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"
+   "   tex_s[0] = vec2(0, -sample.y);\n"
+   "   tex_s[1] = vec2(0,  sample.y);\n"
    "   div_s = vec4(2, 2, 2, 2);\n"
    "}\n";
 Evas_GL_Program_Source shader_tex_12_afill_vert_src =
@@ -1841,7 +1841,7 @@ static const char const tex_22_nomul_afill_vert_glsl[] =
    "#endif\n"
    "attribute vec4 vertex;\n"
    "attribute vec2 tex_coord;\n"
-   "attribute vec2 tex_sample;\n"
+   "uniform vec2 sample;\n"
    "uniform mat4 mvp;\n"
    "varying vec2 tex_c;\n"
    "varying vec2 tex_s[4];\n"
@@ -1850,10 +1850,10 @@ static const char const tex_22_nomul_afill_vert_glsl[] =
    "{\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"
+   "   tex_s[0] = vec2(-sample.x, -sample.y);\n"
+   "   tex_s[1] = vec2( sample.x, -sample.y);\n"
+   "   tex_s[2] = vec2( sample.x,  sample.y);\n"
+   "   tex_s[3] = vec2(-sample.x,  sample.y);\n"
    "   div_s = vec4(4, 4, 4, 4);\n"
    "}\n";
 Evas_GL_Program_Source shader_tex_22_nomul_afill_vert_src =
@@ -1895,7 +1895,7 @@ static const char const tex_21_nomul_afill_vert_glsl[] =
    "#endif\n"
    "attribute vec4 vertex;\n"
    "attribute vec2 tex_coord;\n"
-   "attribute vec2 tex_sample;\n"
+   "uniform vec2 sample;\n"
    "uniform mat4 mvp;\n"
    "varying vec2 tex_c;\n"
    "varying vec2 tex_s[2];\n"
@@ -1904,8 +1904,8 @@ static const char const tex_21_nomul_afill_vert_glsl[] =
    "{\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"
+   "   tex_s[0] = vec2(-sample.x, 0);\n"
+   "   tex_s[1] = vec2( sample.x, 0);\n"
    "   div_s = vec4(2, 2, 2, 2);\n"
    "}\n";
 Evas_GL_Program_Source shader_tex_21_nomul_afill_vert_src =
@@ -1947,7 +1947,7 @@ static const char const tex_12_nomul_afill_vert_glsl[] =
    "#endif\n"
    "attribute vec4 vertex;\n"
    "attribute vec2 tex_coord;\n"
-   "attribute vec2 tex_sample;\n"
+   "uniform vec2 sample;\n"
    "uniform mat4 mvp;\n"
    "varying vec2 tex_c;\n"
    "varying vec2 tex_s[2];\n"
@@ -1956,8 +1956,8 @@ static const char const tex_12_nomul_afill_vert_glsl[] =
    "{\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"
+   "   tex_s[0] = vec2(0, -sample.y);\n"
+   "   tex_s[1] = vec2(0,  sample.y);\n"
    "   div_s = vec4(2, 2, 2, 2);\n"
    "}\n";
 Evas_GL_Program_Source shader_tex_12_nomul_afill_vert_src =
diff --git 
a/src/modules/evas/engines/gl_common/shader/img_12_bgra_nomul_vert.shd 
b/src/modules/evas/engines/gl_common/shader/img_12_bgra_nomul_vert.shd
index 40144aa..0d45f98 100644
--- a/src/modules/evas/engines/gl_common/shader/img_12_bgra_nomul_vert.shd
+++ b/src/modules/evas/engines/gl_common/shader/img_12_bgra_nomul_vert.shd
@@ -3,7 +3,7 @@ precision highp float;
 #endif
 attribute vec4 vertex;
 attribute vec2 tex_coord;
-attribute vec2 tex_sample;
+uniform vec2 sample;
 uniform mat4 mvp;
 varying vec2 tex_c;
 varying vec2 tex_s[2];
@@ -12,7 +12,7 @@ void main()
 {
    gl_Position = mvp * vertex;
    tex_c = tex_coord;
-   tex_s[0] = vec2(0, -tex_sample.y);
-   tex_s[1] = vec2(0,  tex_sample.y);
+   tex_s[0] = vec2(0, -sample.y);
+   tex_s[1] = vec2(0,  sample.y);
    div_s = vec4(2, 2, 2, 2);
 }
diff --git a/src/modules/evas/engines/gl_common/shader/img_12_bgra_vert.shd 
b/src/modules/evas/engines/gl_common/shader/img_12_bgra_vert.shd
index 810d73a..df2b9f0 100644
--- a/src/modules/evas/engines/gl_common/shader/img_12_bgra_vert.shd
+++ b/src/modules/evas/engines/gl_common/shader/img_12_bgra_vert.shd
@@ -4,7 +4,7 @@ precision highp float;
 attribute vec4 vertex;
 attribute vec4 color;
 attribute vec2 tex_coord;
-attribute vec2 tex_sample;
+uniform vec2 sample;
 uniform mat4 mvp;
 varying vec4 col;
 varying vec2 tex_c;
@@ -15,7 +15,7 @@ void main()
    gl_Position = mvp * vertex;
    col = color;
    tex_c = tex_coord;
-   tex_s[0] = vec2(0, -tex_sample.y);
-   tex_s[1] = vec2(0,  tex_sample.y);
+   tex_s[0] = vec2(0, -sample.y);
+   tex_s[1] = vec2(0,  sample.y);
    div_s = vec4(2, 2, 2, 2);
 }
diff --git a/src/modules/evas/engines/gl_common/shader/img_12_nomul_vert.shd 
b/src/modules/evas/engines/gl_common/shader/img_12_nomul_vert.shd
index 40144aa..0d45f98 100644
--- a/src/modules/evas/engines/gl_common/shader/img_12_nomul_vert.shd
+++ b/src/modules/evas/engines/gl_common/shader/img_12_nomul_vert.shd
@@ -3,7 +3,7 @@ precision highp float;
 #endif
 attribute vec4 vertex;
 attribute vec2 tex_coord;
-attribute vec2 tex_sample;
+uniform vec2 sample;
 uniform mat4 mvp;
 varying vec2 tex_c;
 varying vec2 tex_s[2];
@@ -12,7 +12,7 @@ void main()
 {
    gl_Position = mvp * vertex;
    tex_c = tex_coord;
-   tex_s[0] = vec2(0, -tex_sample.y);
-   tex_s[1] = vec2(0,  tex_sample.y);
+   tex_s[0] = vec2(0, -sample.y);
+   tex_s[1] = vec2(0,  sample.y);
    div_s = vec4(2, 2, 2, 2);
 }
diff --git a/src/modules/evas/engines/gl_common/shader/img_12_vert.shd 
b/src/modules/evas/engines/gl_common/shader/img_12_vert.shd
index 810d73a..df2b9f0 100644
--- a/src/modules/evas/engines/gl_common/shader/img_12_vert.shd
+++ b/src/modules/evas/engines/gl_common/shader/img_12_vert.shd
@@ -4,7 +4,7 @@ precision highp float;
 attribute vec4 vertex;
 attribute vec4 color;
 attribute vec2 tex_coord;
-attribute vec2 tex_sample;
+uniform vec2 sample;
 uniform mat4 mvp;
 varying vec4 col;
 varying vec2 tex_c;
@@ -15,7 +15,7 @@ void main()
    gl_Position = mvp * vertex;
    col = color;
    tex_c = tex_coord;
-   tex_s[0] = vec2(0, -tex_sample.y);
-   tex_s[1] = vec2(0,  tex_sample.y);
+   tex_s[0] = vec2(0, -sample.y);
+   tex_s[1] = vec2(0,  sample.y);
    div_s = vec4(2, 2, 2, 2);
 }
diff --git 
a/src/modules/evas/engines/gl_common/shader/img_21_bgra_nomul_vert.shd 
b/src/modules/evas/engines/gl_common/shader/img_21_bgra_nomul_vert.shd
index a6b149f..ea6d9e0 100644
--- a/src/modules/evas/engines/gl_common/shader/img_21_bgra_nomul_vert.shd
+++ b/src/modules/evas/engines/gl_common/shader/img_21_bgra_nomul_vert.shd
@@ -3,7 +3,7 @@ precision highp float;
 #endif
 attribute vec4 vertex;
 attribute vec2 tex_coord;
-attribute vec2 tex_sample;
+uniform vec2 sample;
 uniform mat4 mvp;
 varying vec2 tex_c;
 varying vec2 tex_s[2];
@@ -12,7 +12,7 @@ void main()
 {
    gl_Position = mvp * vertex;
    tex_c = tex_coord;
-   tex_s[0] = vec2(-tex_sample.x, 0);
-   tex_s[1] = vec2( tex_sample.x, 0);
+   tex_s[0] = vec2(-sample.x, 0);
+   tex_s[1] = vec2( sample.x, 0);
    div_s = vec4(2, 2, 2, 2);
 }
diff --git a/src/modules/evas/engines/gl_common/shader/img_21_bgra_vert.shd 
b/src/modules/evas/engines/gl_common/shader/img_21_bgra_vert.shd
index 98d9154..915eb36 100644
--- a/src/modules/evas/engines/gl_common/shader/img_21_bgra_vert.shd
+++ b/src/modules/evas/engines/gl_common/shader/img_21_bgra_vert.shd
@@ -4,7 +4,7 @@ precision highp float;
 attribute vec4 vertex;
 attribute vec4 color;
 attribute vec2 tex_coord;
-attribute vec2 tex_sample;
+uniform vec2 sample;
 uniform mat4 mvp;
 varying vec4 col;
 varying vec2 tex_c;
@@ -15,7 +15,7 @@ void main()
    gl_Position = mvp * vertex;
    col = color;
    tex_c = tex_coord;
-   tex_s[0] = vec2(-tex_sample.x, 0);
-   tex_s[1] = vec2( tex_sample.x, 0);
+   tex_s[0] = vec2(-sample.x, 0);
+   tex_s[1] = vec2( sample.x, 0);
    div_s = vec4(2, 2, 2, 2);
 }
diff --git a/src/modules/evas/engines/gl_common/shader/img_21_nomul_vert.shd 
b/src/modules/evas/engines/gl_common/shader/img_21_nomul_vert.shd
index a6b149f..ea6d9e0 100644
--- a/src/modules/evas/engines/gl_common/shader/img_21_nomul_vert.shd
+++ b/src/modules/evas/engines/gl_common/shader/img_21_nomul_vert.shd
@@ -3,7 +3,7 @@ precision highp float;
 #endif
 attribute vec4 vertex;
 attribute vec2 tex_coord;
-attribute vec2 tex_sample;
+uniform vec2 sample;
 uniform mat4 mvp;
 varying vec2 tex_c;
 varying vec2 tex_s[2];
@@ -12,7 +12,7 @@ void main()
 {
    gl_Position = mvp * vertex;
    tex_c = tex_coord;
-   tex_s[0] = vec2(-tex_sample.x, 0);
-   tex_s[1] = vec2( tex_sample.x, 0);
+   tex_s[0] = vec2(-sample.x, 0);
+   tex_s[1] = vec2( sample.x, 0);
    div_s = vec4(2, 2, 2, 2);
 }
diff --git a/src/modules/evas/engines/gl_common/shader/img_21_vert.shd 
b/src/modules/evas/engines/gl_common/shader/img_21_vert.shd
index 98d9154..915eb36 100644
--- a/src/modules/evas/engines/gl_common/shader/img_21_vert.shd
+++ b/src/modules/evas/engines/gl_common/shader/img_21_vert.shd
@@ -4,7 +4,7 @@ precision highp float;
 attribute vec4 vertex;
 attribute vec4 color;
 attribute vec2 tex_coord;
-attribute vec2 tex_sample;
+uniform vec2 sample;
 uniform mat4 mvp;
 varying vec4 col;
 varying vec2 tex_c;
@@ -15,7 +15,7 @@ void main()
    gl_Position = mvp * vertex;
    col = color;
    tex_c = tex_coord;
-   tex_s[0] = vec2(-tex_sample.x, 0);
-   tex_s[1] = vec2( tex_sample.x, 0);
+   tex_s[0] = vec2(-sample.x, 0);
+   tex_s[1] = vec2( sample.x, 0);
    div_s = vec4(2, 2, 2, 2);
 }
diff --git 
a/src/modules/evas/engines/gl_common/shader/img_22_bgra_nomul_vert.shd 
b/src/modules/evas/engines/gl_common/shader/img_22_bgra_nomul_vert.shd
index e6303d7..b8c6dbf 100644
--- a/src/modules/evas/engines/gl_common/shader/img_22_bgra_nomul_vert.shd
+++ b/src/modules/evas/engines/gl_common/shader/img_22_bgra_nomul_vert.shd
@@ -3,7 +3,7 @@ precision highp float;
 #endif
 attribute vec4 vertex;
 attribute vec2 tex_coord;
-attribute vec2 tex_sample;
+uniform vec2 sample;
 uniform mat4 mvp;
 varying vec2 tex_c;
 varying vec2 tex_s[4];
@@ -12,9 +12,9 @@ void main()
 {
    gl_Position = mvp * vertex;
    tex_c = tex_coord;
-   tex_s[0] = vec2(-tex_sample.x, -tex_sample.y);
-   tex_s[1] = vec2( tex_sample.x, -tex_sample.y);
-   tex_s[2] = vec2( tex_sample.x,  tex_sample.y);
-   tex_s[3] = vec2(-tex_sample.x,  tex_sample.y);
+   tex_s[0] = vec2(-sample.x, -sample.y);
+   tex_s[1] = vec2( sample.x, -sample.y);
+   tex_s[2] = vec2( sample.x,  sample.y);
+   tex_s[3] = vec2(-sample.x,  sample.y);
    div_s = vec4(4, 4, 4, 4);
 }
diff --git a/src/modules/evas/engines/gl_common/shader/img_22_bgra_vert.shd 
b/src/modules/evas/engines/gl_common/shader/img_22_bgra_vert.shd
index e964ea1..5816b96 100644
--- a/src/modules/evas/engines/gl_common/shader/img_22_bgra_vert.shd
+++ b/src/modules/evas/engines/gl_common/shader/img_22_bgra_vert.shd
@@ -4,7 +4,7 @@ precision highp float;
 attribute vec4 vertex;
 attribute vec4 color;
 attribute vec2 tex_coord;
-attribute vec2 tex_sample;
+uniform vec2 sample;
 uniform mat4 mvp;
 varying vec4 col;
 varying vec2 tex_c;
@@ -15,9 +15,9 @@ void main()
    gl_Position = mvp * vertex;
    col = color;
    tex_c = tex_coord;
-   tex_s[0] = vec2(-tex_sample.x, -tex_sample.y);
-   tex_s[1] = vec2( tex_sample.x, -tex_sample.y);
-   tex_s[2] = vec2( tex_sample.x,  tex_sample.y);
-   tex_s[3] = vec2(-tex_sample.x,  tex_sample.y);
+   tex_s[0] = vec2(-sample.x, -sample.y);
+   tex_s[1] = vec2( sample.x, -sample.y);
+   tex_s[2] = vec2( sample.x,  sample.y);
+   tex_s[3] = vec2(-sample.x,  sample.y);
    div_s = vec4(4, 4, 4, 4);
 }
diff --git a/src/modules/evas/engines/gl_common/shader/img_22_nomul_vert.shd 
b/src/modules/evas/engines/gl_common/shader/img_22_nomul_vert.shd
index e6303d7..b8c6dbf 100644
--- a/src/modules/evas/engines/gl_common/shader/img_22_nomul_vert.shd
+++ b/src/modules/evas/engines/gl_common/shader/img_22_nomul_vert.shd
@@ -3,7 +3,7 @@ precision highp float;
 #endif
 attribute vec4 vertex;
 attribute vec2 tex_coord;
-attribute vec2 tex_sample;
+uniform vec2 sample;
 uniform mat4 mvp;
 varying vec2 tex_c;
 varying vec2 tex_s[4];
@@ -12,9 +12,9 @@ void main()
 {
    gl_Position = mvp * vertex;
    tex_c = tex_coord;
-   tex_s[0] = vec2(-tex_sample.x, -tex_sample.y);
-   tex_s[1] = vec2( tex_sample.x, -tex_sample.y);
-   tex_s[2] = vec2( tex_sample.x,  tex_sample.y);
-   tex_s[3] = vec2(-tex_sample.x,  tex_sample.y);
+   tex_s[0] = vec2(-sample.x, -sample.y);
+   tex_s[1] = vec2( sample.x, -sample.y);
+   tex_s[2] = vec2( sample.x,  sample.y);
+   tex_s[3] = vec2(-sample.x,  sample.y);
    div_s = vec4(4, 4, 4, 4);
 }
diff --git a/src/modules/evas/engines/gl_common/shader/img_22_vert.shd 
b/src/modules/evas/engines/gl_common/shader/img_22_vert.shd
index e964ea1..5816b96 100644
--- a/src/modules/evas/engines/gl_common/shader/img_22_vert.shd
+++ b/src/modules/evas/engines/gl_common/shader/img_22_vert.shd
@@ -4,7 +4,7 @@ precision highp float;
 attribute vec4 vertex;
 attribute vec4 color;
 attribute vec2 tex_coord;
-attribute vec2 tex_sample;
+uniform vec2 sample;
 uniform mat4 mvp;
 varying vec4 col;
 varying vec2 tex_c;
@@ -15,9 +15,9 @@ void main()
    gl_Position = mvp * vertex;
    col = color;
    tex_c = tex_coord;
-   tex_s[0] = vec2(-tex_sample.x, -tex_sample.y);
-   tex_s[1] = vec2( tex_sample.x, -tex_sample.y);
-   tex_s[2] = vec2( tex_sample.x,  tex_sample.y);
-   tex_s[3] = vec2(-tex_sample.x,  tex_sample.y);
+   tex_s[0] = vec2(-sample.x, -sample.y);
+   tex_s[1] = vec2( sample.x, -sample.y);
+   tex_s[2] = vec2( sample.x,  sample.y);
+   tex_s[3] = vec2(-sample.x,  sample.y);
    div_s = vec4(4, 4, 4, 4);
 }
diff --git a/src/modules/evas/engines/gl_common/shader/tex_12_afill_vert.shd 
b/src/modules/evas/engines/gl_common/shader/tex_12_afill_vert.shd
index 810d73a..df2b9f0 100644
--- a/src/modules/evas/engines/gl_common/shader/tex_12_afill_vert.shd
+++ b/src/modules/evas/engines/gl_common/shader/tex_12_afill_vert.shd
@@ -4,7 +4,7 @@ precision highp float;
 attribute vec4 vertex;
 attribute vec4 color;
 attribute vec2 tex_coord;
-attribute vec2 tex_sample;
+uniform vec2 sample;
 uniform mat4 mvp;
 varying vec4 col;
 varying vec2 tex_c;
@@ -15,7 +15,7 @@ void main()
    gl_Position = mvp * vertex;
    col = color;
    tex_c = tex_coord;
-   tex_s[0] = vec2(0, -tex_sample.y);
-   tex_s[1] = vec2(0,  tex_sample.y);
+   tex_s[0] = vec2(0, -sample.y);
+   tex_s[1] = vec2(0,  sample.y);
    div_s = vec4(2, 2, 2, 2);
 }
diff --git 
a/src/modules/evas/engines/gl_common/shader/tex_12_nomul_afill_vert.shd 
b/src/modules/evas/engines/gl_common/shader/tex_12_nomul_afill_vert.shd
index 40144aa..0d45f98 100644
--- a/src/modules/evas/engines/gl_common/shader/tex_12_nomul_afill_vert.shd
+++ b/src/modules/evas/engines/gl_common/shader/tex_12_nomul_afill_vert.shd
@@ -3,7 +3,7 @@ precision highp float;
 #endif
 attribute vec4 vertex;
 attribute vec2 tex_coord;
-attribute vec2 tex_sample;
+uniform vec2 sample;
 uniform mat4 mvp;
 varying vec2 tex_c;
 varying vec2 tex_s[2];
@@ -12,7 +12,7 @@ void main()
 {
    gl_Position = mvp * vertex;
    tex_c = tex_coord;
-   tex_s[0] = vec2(0, -tex_sample.y);
-   tex_s[1] = vec2(0,  tex_sample.y);
+   tex_s[0] = vec2(0, -sample.y);
+   tex_s[1] = vec2(0,  sample.y);
    div_s = vec4(2, 2, 2, 2);
 }
diff --git a/src/modules/evas/engines/gl_common/shader/tex_12_nomul_vert.shd 
b/src/modules/evas/engines/gl_common/shader/tex_12_nomul_vert.shd
index 40144aa..0d45f98 100644
--- a/src/modules/evas/engines/gl_common/shader/tex_12_nomul_vert.shd
+++ b/src/modules/evas/engines/gl_common/shader/tex_12_nomul_vert.shd
@@ -3,7 +3,7 @@ precision highp float;
 #endif
 attribute vec4 vertex;
 attribute vec2 tex_coord;
-attribute vec2 tex_sample;
+uniform vec2 sample;
 uniform mat4 mvp;
 varying vec2 tex_c;
 varying vec2 tex_s[2];
@@ -12,7 +12,7 @@ void main()
 {
    gl_Position = mvp * vertex;
    tex_c = tex_coord;
-   tex_s[0] = vec2(0, -tex_sample.y);
-   tex_s[1] = vec2(0,  tex_sample.y);
+   tex_s[0] = vec2(0, -sample.y);
+   tex_s[1] = vec2(0,  sample.y);
    div_s = vec4(2, 2, 2, 2);
 }
diff --git a/src/modules/evas/engines/gl_common/shader/tex_12_vert.shd 
b/src/modules/evas/engines/gl_common/shader/tex_12_vert.shd
index 810d73a..df2b9f0 100644
--- a/src/modules/evas/engines/gl_common/shader/tex_12_vert.shd
+++ b/src/modules/evas/engines/gl_common/shader/tex_12_vert.shd
@@ -4,7 +4,7 @@ precision highp float;
 attribute vec4 vertex;
 attribute vec4 color;
 attribute vec2 tex_coord;
-attribute vec2 tex_sample;
+uniform vec2 sample;
 uniform mat4 mvp;
 varying vec4 col;
 varying vec2 tex_c;
@@ -15,7 +15,7 @@ void main()
    gl_Position = mvp * vertex;
    col = color;
    tex_c = tex_coord;
-   tex_s[0] = vec2(0, -tex_sample.y);
-   tex_s[1] = vec2(0,  tex_sample.y);
+   tex_s[0] = vec2(0, -sample.y);
+   tex_s[1] = vec2(0,  sample.y);
    div_s = vec4(2, 2, 2, 2);
 }
diff --git a/src/modules/evas/engines/gl_common/shader/tex_21_afill_vert.shd 
b/src/modules/evas/engines/gl_common/shader/tex_21_afill_vert.shd
index 98d9154..915eb36 100644
--- a/src/modules/evas/engines/gl_common/shader/tex_21_afill_vert.shd
+++ b/src/modules/evas/engines/gl_common/shader/tex_21_afill_vert.shd
@@ -4,7 +4,7 @@ precision highp float;
 attribute vec4 vertex;
 attribute vec4 color;
 attribute vec2 tex_coord;
-attribute vec2 tex_sample;
+uniform vec2 sample;
 uniform mat4 mvp;
 varying vec4 col;
 varying vec2 tex_c;
@@ -15,7 +15,7 @@ void main()
    gl_Position = mvp * vertex;
    col = color;
    tex_c = tex_coord;
-   tex_s[0] = vec2(-tex_sample.x, 0);
-   tex_s[1] = vec2( tex_sample.x, 0);
+   tex_s[0] = vec2(-sample.x, 0);
+   tex_s[1] = vec2( sample.x, 0);
    div_s = vec4(2, 2, 2, 2);
 }
diff --git 
a/src/modules/evas/engines/gl_common/shader/tex_21_nomul_afill_vert.shd 
b/src/modules/evas/engines/gl_common/shader/tex_21_nomul_afill_vert.shd
index a6b149f..ea6d9e0 100644
--- a/src/modules/evas/engines/gl_common/shader/tex_21_nomul_afill_vert.shd
+++ b/src/modules/evas/engines/gl_common/shader/tex_21_nomul_afill_vert.shd
@@ -3,7 +3,7 @@ precision highp float;
 #endif
 attribute vec4 vertex;
 attribute vec2 tex_coord;
-attribute vec2 tex_sample;
+uniform vec2 sample;
 uniform mat4 mvp;
 varying vec2 tex_c;
 varying vec2 tex_s[2];
@@ -12,7 +12,7 @@ void main()
 {
    gl_Position = mvp * vertex;
    tex_c = tex_coord;
-   tex_s[0] = vec2(-tex_sample.x, 0);
-   tex_s[1] = vec2( tex_sample.x, 0);
+   tex_s[0] = vec2(-sample.x, 0);
+   tex_s[1] = vec2( sample.x, 0);
    div_s = vec4(2, 2, 2, 2);
 }
diff --git a/src/modules/evas/engines/gl_common/shader/tex_21_nomul_vert.shd 
b/src/modules/evas/engines/gl_common/shader/tex_21_nomul_vert.shd
index a6b149f..ea6d9e0 100644
--- a/src/modules/evas/engines/gl_common/shader/tex_21_nomul_vert.shd
+++ b/src/modules/evas/engines/gl_common/shader/tex_21_nomul_vert.shd
@@ -3,7 +3,7 @@ precision highp float;
 #endif
 attribute vec4 vertex;
 attribute vec2 tex_coord;
-attribute vec2 tex_sample;
+uniform vec2 sample;
 uniform mat4 mvp;
 varying vec2 tex_c;
 varying vec2 tex_s[2];
@@ -12,7 +12,7 @@ void main()
 {
    gl_Position = mvp * vertex;
    tex_c = tex_coord;
-   tex_s[0] = vec2(-tex_sample.x, 0);
-   tex_s[1] = vec2( tex_sample.x, 0);
+   tex_s[0] = vec2(-sample.x, 0);
+   tex_s[1] = vec2( sample.x, 0);
    div_s = vec4(2, 2, 2, 2);
 }
diff --git a/src/modules/evas/engines/gl_common/shader/tex_21_vert.shd 
b/src/modules/evas/engines/gl_common/shader/tex_21_vert.shd
index 98d9154..915eb36 100644
--- a/src/modules/evas/engines/gl_common/shader/tex_21_vert.shd
+++ b/src/modules/evas/engines/gl_common/shader/tex_21_vert.shd
@@ -4,7 +4,7 @@ precision highp float;
 attribute vec4 vertex;
 attribute vec4 color;
 attribute vec2 tex_coord;
-attribute vec2 tex_sample;
+uniform vec2 sample;
 uniform mat4 mvp;
 varying vec4 col;
 varying vec2 tex_c;
@@ -15,7 +15,7 @@ void main()
    gl_Position = mvp * vertex;
    col = color;
    tex_c = tex_coord;
-   tex_s[0] = vec2(-tex_sample.x, 0);
-   tex_s[1] = vec2( tex_sample.x, 0);
+   tex_s[0] = vec2(-sample.x, 0);
+   tex_s[1] = vec2( sample.x, 0);
    div_s = vec4(2, 2, 2, 2);
 }
diff --git a/src/modules/evas/engines/gl_common/shader/tex_22_afill_vert.shd 
b/src/modules/evas/engines/gl_common/shader/tex_22_afill_vert.shd
index e964ea1..5816b96 100644
--- a/src/modules/evas/engines/gl_common/shader/tex_22_afill_vert.shd
+++ b/src/modules/evas/engines/gl_common/shader/tex_22_afill_vert.shd
@@ -4,7 +4,7 @@ precision highp float;
 attribute vec4 vertex;
 attribute vec4 color;
 attribute vec2 tex_coord;
-attribute vec2 tex_sample;
+uniform vec2 sample;
 uniform mat4 mvp;
 varying vec4 col;
 varying vec2 tex_c;
@@ -15,9 +15,9 @@ void main()
    gl_Position = mvp * vertex;
    col = color;
    tex_c = tex_coord;
-   tex_s[0] = vec2(-tex_sample.x, -tex_sample.y);
-   tex_s[1] = vec2( tex_sample.x, -tex_sample.y);
-   tex_s[2] = vec2( tex_sample.x,  tex_sample.y);
-   tex_s[3] = vec2(-tex_sample.x,  tex_sample.y);
+   tex_s[0] = vec2(-sample.x, -sample.y);
+   tex_s[1] = vec2( sample.x, -sample.y);
+   tex_s[2] = vec2( sample.x,  sample.y);
+   tex_s[3] = vec2(-sample.x,  sample.y);
    div_s = vec4(4, 4, 4, 4);
 }
diff --git 
a/src/modules/evas/engines/gl_common/shader/tex_22_nomul_afill_vert.shd 
b/src/modules/evas/engines/gl_common/shader/tex_22_nomul_afill_vert.shd
index e6303d7..b8c6dbf 100644
--- a/src/modules/evas/engines/gl_common/shader/tex_22_nomul_afill_vert.shd
+++ b/src/modules/evas/engines/gl_common/shader/tex_22_nomul_afill_vert.shd
@@ -3,7 +3,7 @@ precision highp float;
 #endif
 attribute vec4 vertex;
 attribute vec2 tex_coord;
-attribute vec2 tex_sample;
+uniform vec2 sample;
 uniform mat4 mvp;
 varying vec2 tex_c;
 varying vec2 tex_s[4];
@@ -12,9 +12,9 @@ void main()
 {
    gl_Position = mvp * vertex;
    tex_c = tex_coord;
-   tex_s[0] = vec2(-tex_sample.x, -tex_sample.y);
-   tex_s[1] = vec2( tex_sample.x, -tex_sample.y);
-   tex_s[2] = vec2( tex_sample.x,  tex_sample.y);
-   tex_s[3] = vec2(-tex_sample.x,  tex_sample.y);
+   tex_s[0] = vec2(-sample.x, -sample.y);
+   tex_s[1] = vec2( sample.x, -sample.y);
+   tex_s[2] = vec2( sample.x,  sample.y);
+   tex_s[3] = vec2(-sample.x,  sample.y);
    div_s = vec4(4, 4, 4, 4);
 }
diff --git a/src/modules/evas/engines/gl_common/shader/tex_22_nomul_vert.shd 
b/src/modules/evas/engines/gl_common/shader/tex_22_nomul_vert.shd
index e6303d7..b8c6dbf 100644
--- a/src/modules/evas/engines/gl_common/shader/tex_22_nomul_vert.shd
+++ b/src/modules/evas/engines/gl_common/shader/tex_22_nomul_vert.shd
@@ -3,7 +3,7 @@ precision highp float;
 #endif
 attribute vec4 vertex;
 attribute vec2 tex_coord;
-attribute vec2 tex_sample;
+uniform vec2 sample;
 uniform mat4 mvp;
 varying vec2 tex_c;
 varying vec2 tex_s[4];
@@ -12,9 +12,9 @@ void main()
 {
    gl_Position = mvp * vertex;
    tex_c = tex_coord;
-   tex_s[0] = vec2(-tex_sample.x, -tex_sample.y);
-   tex_s[1] = vec2( tex_sample.x, -tex_sample.y);
-   tex_s[2] = vec2( tex_sample.x,  tex_sample.y);
-   tex_s[3] = vec2(-tex_sample.x,  tex_sample.y);
+   tex_s[0] = vec2(-sample.x, -sample.y);
+   tex_s[1] = vec2( sample.x, -sample.y);
+   tex_s[2] = vec2( sample.x,  sample.y);
+   tex_s[3] = vec2(-sample.x,  sample.y);
    div_s = vec4(4, 4, 4, 4);
 }
diff --git a/src/modules/evas/engines/gl_common/shader/tex_22_vert.shd 
b/src/modules/evas/engines/gl_common/shader/tex_22_vert.shd
index e964ea1..5816b96 100644
--- a/src/modules/evas/engines/gl_common/shader/tex_22_vert.shd
+++ b/src/modules/evas/engines/gl_common/shader/tex_22_vert.shd
@@ -4,7 +4,7 @@ precision highp float;
 attribute vec4 vertex;
 attribute vec4 color;
 attribute vec2 tex_coord;
-attribute vec2 tex_sample;
+uniform vec2 sample;
 uniform mat4 mvp;
 varying vec4 col;
 varying vec2 tex_c;
@@ -15,9 +15,9 @@ void main()
    gl_Position = mvp * vertex;
    col = color;
    tex_c = tex_coord;
-   tex_s[0] = vec2(-tex_sample.x, -tex_sample.y);
-   tex_s[1] = vec2( tex_sample.x, -tex_sample.y);
-   tex_s[2] = vec2( tex_sample.x,  tex_sample.y);
-   tex_s[3] = vec2(-tex_sample.x,  tex_sample.y);
+   tex_s[0] = vec2(-sample.x, -sample.y);
+   tex_s[1] = vec2( sample.x, -sample.y);
+   tex_s[2] = vec2( sample.x,  sample.y);
+   tex_s[3] = vec2(-sample.x,  sample.y);
    div_s = vec4(4, 4, 4, 4);
 }

-- 


Reply via email to