jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=24f38eaf6df3081b02b8582ae22e148bec869f52
commit 24f38eaf6df3081b02b8582ae22e148bec869f52 Author: Jean-Philippe Andre <[email protected]> Date: Fri Jul 11 12:17:46 2014 +0900 Evas gl: Replace all remaining references to mask stuff by alpha Masking is not used (there even was a recent commit by Hermet to remove most of the occurences of mask shaders in GL), and I've introduced a new ETC1+Alpha feature. Replace the old texm and associated variables by texa for alpha texures. --- .../evas/engines/gl_common/evas_gl_common.h | 21 +--- .../evas/engines/gl_common/evas_gl_context.c | 136 ++++++++++++--------- .../evas/engines/gl_common/evas_gl_shader.c | 4 +- .../engines/gl_common/shader/rgb_a_pair_frag.h | 11 +- .../engines/gl_common/shader/rgb_a_pair_frag.shd | 11 +- .../gl_common/shader/rgb_a_pair_nomul_frag.h | 10 +- .../gl_common/shader/rgb_a_pair_nomul_frag.shd | 10 +- .../gl_common/shader/rgb_a_pair_nomul_vert.h | 11 +- .../gl_common/shader/rgb_a_pair_nomul_vert.shd | 11 +- .../engines/gl_common/shader/rgb_a_pair_vert.h | 11 +- .../engines/gl_common/shader/rgb_a_pair_vert.shd | 11 +- 11 files changed, 124 insertions(+), 123 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 178b2a1..4877e22 100644 --- a/src/modules/evas/engines/gl_common/evas_gl_common.h +++ b/src/modules/evas/engines/gl_common/evas_gl_common.h @@ -268,7 +268,7 @@ #define SHAD_TEXUV 2 #define SHAD_TEXUV2 3 #define SHAD_TEXUV3 4 -#define SHAD_TEXM 5 +#define SHAD_TEXA 5 #define SHAD_TEXSAM 6 typedef struct _Evas_GL_Program Evas_GL_Program; @@ -485,8 +485,7 @@ struct _Evas_Engine_GL_Context int top_pipe; struct { GLuint cur_prog; - GLuint cur_tex, cur_texu, cur_texv; - GLuint cur_texm, cur_texmu, cur_texmv; + GLuint cur_tex, cur_texu, cur_texv, cur_texa; int render_op; int cx, cy, cw, ch; int smooth; @@ -513,7 +512,7 @@ struct _Evas_Engine_GL_Context struct { Evas_GL_Image *surface; GLuint cur_prog; - GLuint cur_tex, cur_texu, cur_texv, cur_texm; + GLuint cur_tex, cur_texu, cur_texv, cur_texa; void *cur_tex_dyn, *cur_texu_dyn, *cur_texv_dyn; int render_op; int cx, cy, cw, ch; @@ -528,7 +527,7 @@ struct _Evas_Engine_GL_Context GLfloat *texuv; GLfloat *texuv2; GLfloat *texuv3; - GLfloat *texm; + GLfloat *texa; GLfloat *texsam; Eina_Bool line: 1; Eina_Bool use_vertex : 1; @@ -536,7 +535,7 @@ struct _Evas_Engine_GL_Context Eina_Bool use_texuv : 1; Eina_Bool use_texuv2 : 1; Eina_Bool use_texuv3 : 1; - Eina_Bool use_texm : 1; + Eina_Bool use_texa : 1; Eina_Bool use_texsam : 1; Evas_GL_Image *im; GLuint buffer; @@ -753,16 +752,6 @@ void evas_gl_common_context_image_push(Evas_Engine_GL_Context *gc, int x, int y, int w, int h, int r, int g, int b, int a, Eina_Bool smooth, Eina_Bool tex_only); -void evas_gl_common_context_image_mask_push(Evas_Engine_GL_Context *gc, - Evas_GL_Texture *tex, - Evas_GL_Texture *texm, - double sx, double sy, double sw, double sh, - double sxm, double sym, double swm, double shm, - int x, int y, int w, int h, - int r, int g, int b, int a, - Eina_Bool smooth); - - void evas_gl_common_context_font_push(Evas_Engine_GL_Context *gc, Evas_GL_Texture *tex, double sx, double sy, double sw, double sh, 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 a2513a2..46d2dd1 100644 --- a/src/modules/evas/engines/gl_common/evas_gl_context.c +++ b/src/modules/evas/engines/gl_common/evas_gl_context.c @@ -920,7 +920,7 @@ evas_gl_common_context_free(Evas_Engine_GL_Context *gc) if (gc->pipe[i].array.vertex) free(gc->pipe[i].array.vertex); if (gc->pipe[i].array.color) free(gc->pipe[i].array.color); if (gc->pipe[i].array.texuv) free(gc->pipe[i].array.texuv); - if (gc->pipe[i].array.texm) free(gc->pipe[i].array.texm); + 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); @@ -987,9 +987,7 @@ evas_gl_common_context_newframe(Evas_Engine_GL_Context *gc) gc->state.current.cur_tex = 0; gc->state.current.cur_texu = 0; gc->state.current.cur_texv = 0; - gc->state.current.cur_texm = 0; - gc->state.current.cur_texmu = 0; - gc->state.current.cur_texmv = 0; + gc->state.current.cur_texa = 0; gc->state.current.render_op = 0; gc->state.current.smooth = 0; gc->state.current.blend = 0; @@ -1016,7 +1014,7 @@ evas_gl_common_context_newframe(Evas_Engine_GL_Context *gc) gc->pipe[i].shader.cur_tex = 0; gc->pipe[i].shader.cur_texu = 0; gc->pipe[i].shader.cur_texv = 0; - gc->pipe[i].shader.cur_texm = 0; + gc->pipe[i].shader.cur_texa = 0; gc->pipe[i].shader.render_op = EVAS_RENDER_BLEND; gc->pipe[i].shader.smooth = 0; gc->pipe[i].shader.blend = 0; @@ -1203,9 +1201,9 @@ evas_gl_common_context_target_surface_set(Evas_Engine_GL_Context *gc, #define PUSH_TEXUV3(n, u, v) \ gc->pipe[n].array.texuv3[nu3++] = u; \ gc->pipe[n].array.texuv3[nu3++] = v -#define PUSH_TEXM(n, u, v) \ - gc->pipe[n].array.texm[nm++] = u; \ - gc->pipe[n].array.texm[nm++] = v +#define PUSH_TEXA(n, u, v) \ + gc->pipe[n].array.texa[na++] = u; \ + gc->pipe[n].array.texa[na++] = v #define PUSH_TEXSAM(n, x, y) \ gc->pipe[n].array.texsam[ns++] = x; \ gc->pipe[n].array.texsam[ns++] = y @@ -1224,7 +1222,7 @@ array_alloc(Evas_Engine_GL_Context *gc, int n) ALOC(vertex, GLshort, 3); ALOC(color, GLubyte, 4); ALOC(texuv, GLfloat, 2); - ALOC(texm, GLfloat, 2); + ALOC(texa, GLfloat, 2); ALOC(texuv2, GLfloat, 2); ALOC(texuv3, GLfloat, 2); ALOC(texsam, GLfloat, 2); @@ -1239,7 +1237,7 @@ array_alloc(Evas_Engine_GL_Context *gc, int n) RALOC(vertex, GLshort, 3); RALOC(color, GLubyte, 4); RALOC(texuv, GLfloat, 2); - RALOC(texm, GLfloat, 2); + RALOC(texa, GLfloat, 2); RALOC(texuv2, GLfloat, 2); RALOC(texuv3, GLfloat, 2); RALOC(texsam, GLfloat, 2); @@ -1346,7 +1344,6 @@ static int _evas_gl_common_context_push(int rtype, Evas_Engine_GL_Context *gc, Evas_GL_Texture *tex, - Evas_GL_Texture *texm, GLuint prog, int x, int y, int w, int h, Eina_Bool blend, @@ -1355,13 +1352,10 @@ _evas_gl_common_context_push(int rtype, int cx, int cy, int cw, int ch) { GLuint current_tex = 0; - GLuint current_texm = 0; int pn = 0; if (tex) current_tex = tex->ptt ? tex->ptt->texture : tex->pt->texture; - if (texm) - current_texm = texm->ptt ? texm->ptt->texture : texm->pt->texture; #ifdef GLPIPES again: @@ -1378,7 +1372,6 @@ _evas_gl_common_context_push(int rtype, { if ((gc->pipe[i].region.type == rtype) && (!tex || gc->pipe[i].shader.cur_tex == current_tex) - && (!texm || gc->pipe[i].shader.cur_texm == current_texm) && (gc->pipe[i].shader.cur_prog == prog) && (gc->pipe[i].shader.smooth == smooth) && (gc->pipe[i].shader.blend == blend) @@ -1478,7 +1471,7 @@ evas_gl_common_context_line_push(Evas_Engine_GL_Context *gc, gc->pipe[pn].array.use_texuv = 0; gc->pipe[pn].array.use_texuv2 = 0; gc->pipe[pn].array.use_texuv3 = 0; - gc->pipe[pn].array.use_texm = 0; + gc->pipe[pn].array.use_texa = 0; gc->pipe[pn].array.use_texsam = 0; pnum = gc->pipe[pn].array.num; @@ -1501,7 +1494,7 @@ evas_gl_common_context_line_push(Evas_Engine_GL_Context *gc, gc->pipe[pn].array.use_texuv = 0; gc->pipe[pn].array.use_texuv2 = 0; gc->pipe[pn].array.use_texuv3 = 0; - gc->pipe[pn].array.use_texm = 0; + gc->pipe[pn].array.use_texa = 0; gc->pipe[pn].array.use_texsam = 0; } @@ -1540,7 +1533,7 @@ again: gc->pipe[pn].array.use_texuv = 0; gc->pipe[pn].array.use_texuv2 = 0; gc->pipe[pn].array.use_texuv3 = 0; - gc->pipe[pn].array.use_texm = 0; + gc->pipe[pn].array.use_texa = 0; gc->pipe[pn].array.use_texsam = 0; } else @@ -1588,7 +1581,7 @@ again: gc->pipe[pn].array.use_texuv = 0; gc->pipe[pn].array.use_texuv2 = 0; gc->pipe[pn].array.use_texuv3 = 0; - gc->pipe[pn].array.use_texm = 0; + gc->pipe[pn].array.use_texa = 0; gc->pipe[pn].array.use_texsam = 0; } } @@ -1815,7 +1808,7 @@ evas_gl_common_context_image_push(Evas_Engine_GL_Context *gc, } pn = _evas_gl_common_context_push(RTYPE_IMAGE, - gc, tex, NULL, + gc, tex, prog, x, y, w, h, blend, @@ -1840,7 +1833,7 @@ evas_gl_common_context_image_push(Evas_Engine_GL_Context *gc, gc->pipe[pn].array.use_texuv = 1; gc->pipe[pn].array.use_texuv2 = 0; gc->pipe[pn].array.use_texuv3 = 0; - gc->pipe[pn].array.use_texm = 0; + gc->pipe[pn].array.use_texa = 0; gc->pipe[pn].array.use_texsam = sam; pipe_region_expand(gc, pn, x, y, w, h); @@ -1928,7 +1921,7 @@ evas_gl_common_context_font_push(Evas_Engine_GL_Context *gc, int pn = 0; pn = _evas_gl_common_context_push(RTYPE_FONT, - gc, tex, NULL, + gc, tex, prog, x, y, w, h, 1, @@ -1952,7 +1945,7 @@ evas_gl_common_context_font_push(Evas_Engine_GL_Context *gc, gc->pipe[pn].array.use_texuv = 1; gc->pipe[pn].array.use_texuv2 = 0; gc->pipe[pn].array.use_texuv3 = 0; - gc->pipe[pn].array.use_texm = 0; + gc->pipe[pn].array.use_texa = 0; gc->pipe[pn].array.use_texsam = 0; pipe_region_expand(gc, pn, x, y, w, h); @@ -2019,7 +2012,7 @@ evas_gl_common_context_yuv_push(Evas_Engine_GL_Context *gc, SHADER_YUV_NOMUL, SHADER_YUV)].prog; pn = _evas_gl_common_context_push(RTYPE_YUV, - gc, tex, NULL, + gc, tex, prog, x, y, w, h, blend, @@ -2045,7 +2038,7 @@ evas_gl_common_context_yuv_push(Evas_Engine_GL_Context *gc, gc->pipe[pn].array.use_texuv = 1; gc->pipe[pn].array.use_texuv2 = 1; gc->pipe[pn].array.use_texuv3 = 1; - gc->pipe[pn].array.use_texm = 0; + gc->pipe[pn].array.use_texa = 0; gc->pipe[pn].array.use_texsam = 0; pipe_region_expand(gc, pn, x, y, w, h); @@ -2124,7 +2117,7 @@ evas_gl_common_context_yuy2_push(Evas_Engine_GL_Context *gc, SHADER_YUY2_NOMUL, SHADER_YUY2)].prog; pn = _evas_gl_common_context_push(RTYPE_YUY2, - gc, tex, NULL, + gc, tex, prog, x, y, w, h, blend, @@ -2149,7 +2142,7 @@ evas_gl_common_context_yuy2_push(Evas_Engine_GL_Context *gc, gc->pipe[pn].array.use_texuv = 1; gc->pipe[pn].array.use_texuv2 = 1; gc->pipe[pn].array.use_texuv3 = 0; - gc->pipe[pn].array.use_texm = 0; + gc->pipe[pn].array.use_texa = 0; gc->pipe[pn].array.use_texsam = 0; pipe_region_expand(gc, pn, x, y, w, h); @@ -2220,7 +2213,7 @@ evas_gl_common_context_nv12_push(Evas_Engine_GL_Context *gc, SHADER_NV12_NOMUL, SHADER_NV12)].prog; pn = _evas_gl_common_context_push(RTYPE_NV12, - gc, tex, NULL, + gc, tex, prog, x, y, w, h, blend, @@ -2247,7 +2240,7 @@ evas_gl_common_context_nv12_push(Evas_Engine_GL_Context *gc, gc->pipe[pn].array.use_texuv = 1; gc->pipe[pn].array.use_texuv2 = 1; gc->pipe[pn].array.use_texuv3 = 0; - gc->pipe[pn].array.use_texm = 0; + gc->pipe[pn].array.use_texa = 0; gc->pipe[pn].array.use_texsam = 0; pipe_region_expand(gc, pn, x, y, w, h); @@ -2315,7 +2308,7 @@ evas_gl_common_context_rgb_a_pair_push(Evas_Engine_GL_Context *gc, * colorspaces as well (eg. RGB565+Alpha4, ...). */ - int pnum, nv, nc, nu, nm, i; + int pnum, nv, nc, nu, na, i; GLfloat tx1, tx2, ty1, ty2, t2x1, t2x2, t2y1, t2y2; GLuint prog; int pn; @@ -2324,7 +2317,7 @@ evas_gl_common_context_rgb_a_pair_push(Evas_Engine_GL_Context *gc, (0, NULL, r, g, b, a, SHADER_RGB_A_PAIR_NOMUL, SHADER_RGB_A_PAIR)].prog; pn = _evas_gl_common_context_push(RTYPE_IMAGE, - gc, tex, NULL, + gc, tex, prog, x, y, w, h, EINA_TRUE, @@ -2333,7 +2326,7 @@ evas_gl_common_context_rgb_a_pair_push(Evas_Engine_GL_Context *gc, gc->pipe[pn].region.type = RTYPE_IMAGE; gc->pipe[pn].shader.cur_tex = tex->pt->texture; - gc->pipe[pn].shader.cur_texm = tex->pta->texture; + gc->pipe[pn].shader.cur_texa = tex->pta->texture; gc->pipe[pn].shader.cur_prog = prog; gc->pipe[pn].shader.smooth = smooth; gc->pipe[pn].shader.blend = EINA_TRUE; @@ -2350,13 +2343,13 @@ evas_gl_common_context_rgb_a_pair_push(Evas_Engine_GL_Context *gc, gc->pipe[pn].array.use_texuv = EINA_TRUE; gc->pipe[pn].array.use_texuv2 = 0; gc->pipe[pn].array.use_texuv3 = 0; - gc->pipe[pn].array.use_texm = EINA_TRUE; + gc->pipe[pn].array.use_texa = EINA_TRUE; gc->pipe[pn].array.use_texsam = 0; pipe_region_expand(gc, pn, x, y, w, h); pnum = gc->pipe[pn].array.num; - nv = pnum * 3; nc = pnum * 4; nu = pnum * 2; nm = pnum * 2; + nv = pnum * 3; nc = pnum * 4; nu = pnum * 2; na = pnum * 2; gc->pipe[pn].array.num += 6; array_alloc(gc, pn); @@ -2378,9 +2371,9 @@ evas_gl_common_context_rgb_a_pair_push(Evas_Engine_GL_Context *gc, PUSH_TEXUV(pn, tx2, ty1); PUSH_TEXUV(pn, tx1, ty2); - PUSH_TEXM(pn, t2x1, t2y1); - PUSH_TEXM(pn, t2x2, t2y1); - PUSH_TEXM(pn, t2x1, t2y2); + PUSH_TEXA(pn, t2x1, t2y1); + PUSH_TEXA(pn, t2x2, t2y1); + PUSH_TEXA(pn, t2x1, t2y2); PUSH_VERTEX(pn, x + w, y , 0); PUSH_VERTEX(pn, x + w, y + h, 0); @@ -2390,9 +2383,9 @@ evas_gl_common_context_rgb_a_pair_push(Evas_Engine_GL_Context *gc, PUSH_TEXUV(pn, tx2, ty2); PUSH_TEXUV(pn, tx1, ty2); - PUSH_TEXM(pn, t2x2, t2y1); - PUSH_TEXM(pn, t2x2, t2y2); - PUSH_TEXM(pn, t2x1, t2y2); + PUSH_TEXA(pn, t2x2, t2y1); + PUSH_TEXA(pn, t2x2, t2y2); + PUSH_TEXA(pn, t2x1, t2y2); for (i = 0; i < 6; i++) { @@ -2559,7 +2552,7 @@ evas_gl_common_context_image_map_push(Evas_Engine_GL_Context *gc, } pn = _evas_gl_common_context_push(RTYPE_MAP, - gc, tex, NULL, + gc, tex, prog, x, y, w, h, blend, @@ -2594,7 +2587,7 @@ evas_gl_common_context_image_map_push(Evas_Engine_GL_Context *gc, gc->pipe[pn].array.use_texuv = 1; gc->pipe[pn].array.use_texuv2 = (utexture || uvtexture) ? 1 : 0; gc->pipe[pn].array.use_texuv3 = (utexture) ? 1 : 0; - gc->pipe[pn].array.use_texm = 0; + gc->pipe[pn].array.use_texa = 0; gc->pipe[pn].array.use_texsam = 0; pipe_region_expand(gc, pn, x, y, w, h); @@ -3049,8 +3042,8 @@ shader_array_flush(Evas_Engine_GL_Context *gc) memcpy(x + (unsigned long)texuv2_ptr, gc->pipe[i].array.texuv2, TEX_SIZE); if (gc->pipe[i].array.use_texuv3) memcpy(x + (unsigned long)texuv3_ptr, gc->pipe[i].array.texuv3, TEX_SIZE); - if (gc->pipe[i].array.use_texm) - memcpy(x + (unsigned long)texm_ptr, gc->pipe[i].array.texm, TEX_SIZE); + if (gc->pipe[i].array.use_texa) + memcpy(x + (unsigned long)texm_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); /* @@ -3077,7 +3070,7 @@ shader_array_flush(Evas_Engine_GL_Context *gc) texuv_ptr = (unsigned char *)gc->pipe[i].array.texuv; texuv2_ptr = (unsigned char *)gc->pipe[i].array.texuv2; texuv3_ptr = (unsigned char *)gc->pipe[i].array.texuv3; - texm_ptr = (unsigned char *)gc->pipe[i].array.texm; + texm_ptr = (unsigned char *)gc->pipe[i].array.texa; texsam_ptr = (unsigned char *)gc->pipe[i].array.texsam; } glVertexAttribPointer(SHAD_VERTEX, 3, GL_SHORT, GL_FALSE, 0, (void *)vertex_ptr); @@ -3112,22 +3105,47 @@ shader_array_flush(Evas_Engine_GL_Context *gc) GLERR(__FUNCTION__, __FILE__, __LINE__, ""); } - if (gc->pipe[i].array.use_texm) - { - glEnableVertexAttribArray(SHAD_TEXM); - GLERR(__FUNCTION__, __FILE__, __LINE__, ""); - glVertexAttribPointer(SHAD_TEXM, 2, GL_FLOAT, GL_FALSE, 0, (void *)texm_ptr); - GLERR(__FUNCTION__, __FILE__, __LINE__, ""); - glActiveTexture(GL_TEXTURE1); - GLERR(__FUNCTION__, __FILE__, __LINE__, ""); - glBindTexture(GL_TEXTURE_2D, gc->pipe[i].shader.cur_texm); - GLERR(__FUNCTION__, __FILE__, __LINE__, ""); + if (gc->pipe[i].array.use_texa) + { + glEnableVertexAttribArray(SHAD_TEXA); + GLERR(__FUNCTION__, __FILE__, __LINE__, ""); + glVertexAttribPointer(SHAD_TEXA, 2, GL_FLOAT, GL_FALSE, 0, (void *)texm_ptr); + GLERR(__FUNCTION__, __FILE__, __LINE__, ""); + glActiveTexture(GL_TEXTURE1); + GLERR(__FUNCTION__, __FILE__, __LINE__, ""); + glBindTexture(GL_TEXTURE_2D, gc->pipe[i].shader.cur_texa); + GLERR(__FUNCTION__, __FILE__, __LINE__, ""); +#ifdef GL_TEXTURE_MAX_ANISOTROPY_EXT + if (shared->info.anisotropic > 0.0) + { + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, shared->info.anisotropic); + GLERR(__FUNCTION__, __FILE__, __LINE__, ""); + } +#endif + if (gc->pipe[i].shader.smooth) + { + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + GLERR(__FUNCTION__, __FILE__, __LINE__, ""); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + GLERR(__FUNCTION__, __FILE__, __LINE__, ""); + } + else + { + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + GLERR(__FUNCTION__, __FILE__, __LINE__, ""); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + GLERR(__FUNCTION__, __FILE__, __LINE__, ""); + } + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + GLERR(__FUNCTION__, __FILE__, __LINE__, ""); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + GLERR(__FUNCTION__, __FILE__, __LINE__, ""); glActiveTexture(GL_TEXTURE0); GLERR(__FUNCTION__, __FILE__, __LINE__, ""); } else { - glDisableVertexAttribArray(SHAD_TEXM); + glDisableVertexAttribArray(SHAD_TEXA); } if (gc->pipe[i].array.use_texsam) { @@ -3240,7 +3258,7 @@ shader_array_flush(Evas_Engine_GL_Context *gc) if (gc->pipe[i].array.vertex) free(gc->pipe[i].array.vertex); if (gc->pipe[i].array.color) free(gc->pipe[i].array.color); if (gc->pipe[i].array.texuv) free(gc->pipe[i].array.texuv); - if (gc->pipe[i].array.texm) free(gc->pipe[i].array.texm); + 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); @@ -3251,13 +3269,13 @@ shader_array_flush(Evas_Engine_GL_Context *gc) gc->pipe[i].array.use_texuv = 0; gc->pipe[i].array.use_texuv2 = 0; gc->pipe[i].array.use_texuv3 = 0; - gc->pipe[i].array.use_texm = 0; + gc->pipe[i].array.use_texa = 0; gc->pipe[i].array.use_texsam = 0; gc->pipe[i].array.vertex = NULL; gc->pipe[i].array.color = NULL; gc->pipe[i].array.texuv = NULL; - gc->pipe[i].array.texm = NULL; + gc->pipe[i].array.texa = NULL; gc->pipe[i].array.texuv2 = NULL; gc->pipe[i].array.texuv3 = NULL; gc->pipe[i].array.texsam = NULL; 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 3f16040..35201af 100644 --- a/src/modules/evas/engines/gl_common/evas_gl_shader.c +++ b/src/modules/evas/engines/gl_common/evas_gl_shader.c @@ -885,7 +885,7 @@ _evas_gl_common_shader_program_binary_init(Evas_GL_Program *p, glBindAttribLocation(p->prog, SHAD_TEXUV, "tex_coord"); glBindAttribLocation(p->prog, SHAD_TEXUV2, "tex_coord2"); glBindAttribLocation(p->prog, SHAD_TEXUV3, "tex_coord3"); - glBindAttribLocation(p->prog, SHAD_TEXM, "tex_coordm"); + glBindAttribLocation(p->prog, SHAD_TEXA, "tex_coorda"); glBindAttribLocation(p->prog, SHAD_TEXSAM, "tex_sample"); glGetProgramiv(p->prog, GL_LINK_STATUS, &ok); @@ -1008,7 +1008,7 @@ _evas_gl_common_shader_program_source_init(Evas_GL_Program *p, GLERR(__FUNCTION__, __FILE__, __LINE__, ""); glBindAttribLocation(p->prog, SHAD_TEXUV3, "tex_coord3"); GLERR(__FUNCTION__, __FILE__, __LINE__, ""); - glBindAttribLocation(p->prog, SHAD_TEXM, "tex_coordm"); + glBindAttribLocation(p->prog, SHAD_TEXA, "tex_coorda"); GLERR(__FUNCTION__, __FILE__, __LINE__, ""); glBindAttribLocation(p->prog, SHAD_TEXSAM, "tex_sample"); GLERR(__FUNCTION__, __FILE__, __LINE__, ""); diff --git a/src/modules/evas/engines/gl_common/shader/rgb_a_pair_frag.h b/src/modules/evas/engines/gl_common/shader/rgb_a_pair_frag.h index 168709d..1a440dc 100644 --- a/src/modules/evas/engines/gl_common/shader/rgb_a_pair_frag.h +++ b/src/modules/evas/engines/gl_common/shader/rgb_a_pair_frag.h @@ -6,13 +6,12 @@ "#endif\n" "#endif\n" "uniform sampler2D tex;\n" -"uniform sampler2D texm;\n" +"uniform sampler2D texa;\n" "varying vec4 col;\n" -"varying vec2 tex_c;\n" -"varying vec2 tex_a;\n" +"varying vec2 coord_c;\n" +"varying vec2 coord_a;\n" "void main()\n" "{\n" -" gl_FragColor.rgb = texture2D(tex, tex_c.xy).rgb * col.rgb * texture2D(texm, tex_a).g;\n" -" gl_FragColor.a = col.a * texture2D(texm, tex_a).g;\n" +" gl_FragColor.rgb = texture2D(tex, coord_c.xy).rgb * col.rgb * texture2D(texa, coord_a).g;\n" +" gl_FragColor.a = col.a * texture2D(texa, coord_a).g;\n" "}\n" -"\n" diff --git a/src/modules/evas/engines/gl_common/shader/rgb_a_pair_frag.shd b/src/modules/evas/engines/gl_common/shader/rgb_a_pair_frag.shd index 5dab4d0..5a352e8 100644 --- a/src/modules/evas/engines/gl_common/shader/rgb_a_pair_frag.shd +++ b/src/modules/evas/engines/gl_common/shader/rgb_a_pair_frag.shd @@ -6,13 +6,12 @@ precision mediump float; #endif #endif uniform sampler2D tex; -uniform sampler2D texm; +uniform sampler2D texa; varying vec4 col; -varying vec2 tex_c; -varying vec2 tex_a; +varying vec2 coord_c; +varying vec2 coord_a; void main() { - gl_FragColor.rgb = texture2D(tex, tex_c.xy).rgb * col.rgb * texture2D(texm, tex_a).g; - gl_FragColor.a = col.a * texture2D(texm, tex_a).g; + gl_FragColor.rgb = texture2D(tex, coord_c.xy).rgb * col.rgb * texture2D(texa, coord_a).g; + gl_FragColor.a = col.a * texture2D(texa, coord_a).g; } - diff --git a/src/modules/evas/engines/gl_common/shader/rgb_a_pair_nomul_frag.h b/src/modules/evas/engines/gl_common/shader/rgb_a_pair_nomul_frag.h index c48aee4..4ebaf14 100644 --- a/src/modules/evas/engines/gl_common/shader/rgb_a_pair_nomul_frag.h +++ b/src/modules/evas/engines/gl_common/shader/rgb_a_pair_nomul_frag.h @@ -6,11 +6,11 @@ "#endif\n" "#endif\n" "uniform sampler2D tex;\n" -"uniform sampler2D texm;\n" -"varying vec2 tex_c;\n" -"varying vec2 tex_a;\n" +"uniform sampler2D texa;\n" +"varying vec2 coord_c;\n" +"varying vec2 coord_a;\n" "void main()\n" "{\n" -" gl_FragColor.rgb = texture2D(tex, tex_c.xy).rgb * texture2D(texm, tex_a).g;\n" -" gl_FragColor.a = texture2D(texm, tex_a).g;\n" +" gl_FragColor.rgb = texture2D(tex, coord_c.xy).rgb * texture2D(texa, coord_a).g;\n" +" gl_FragColor.a = texture2D(texa, coord_a).g;\n" "}\n" diff --git a/src/modules/evas/engines/gl_common/shader/rgb_a_pair_nomul_frag.shd b/src/modules/evas/engines/gl_common/shader/rgb_a_pair_nomul_frag.shd index 6baba6c..68be9d4 100644 --- a/src/modules/evas/engines/gl_common/shader/rgb_a_pair_nomul_frag.shd +++ b/src/modules/evas/engines/gl_common/shader/rgb_a_pair_nomul_frag.shd @@ -6,11 +6,11 @@ precision mediump float; #endif #endif uniform sampler2D tex; -uniform sampler2D texm; -varying vec2 tex_c; -varying vec2 tex_a; +uniform sampler2D texa; +varying vec2 coord_c; +varying vec2 coord_a; void main() { - gl_FragColor.rgb = texture2D(tex, tex_c.xy).rgb * texture2D(texm, tex_a).g; - gl_FragColor.a = texture2D(texm, tex_a).g; + gl_FragColor.rgb = texture2D(tex, coord_c.xy).rgb * texture2D(texa, coord_a).g; + gl_FragColor.a = texture2D(texa, coord_a).g; } diff --git a/src/modules/evas/engines/gl_common/shader/rgb_a_pair_nomul_vert.h b/src/modules/evas/engines/gl_common/shader/rgb_a_pair_nomul_vert.h index a0685be..aeb19cb 100644 --- a/src/modules/evas/engines/gl_common/shader/rgb_a_pair_nomul_vert.h +++ b/src/modules/evas/engines/gl_common/shader/rgb_a_pair_nomul_vert.h @@ -3,14 +3,13 @@ "#endif\n" "attribute vec4 vertex;\n" "attribute vec2 tex_coord;\n" -"attribute vec2 tex_coordm;\n" +"attribute vec2 tex_coorda;\n" "uniform mat4 mvp;\n" -"varying vec2 tex_c;\n" -"varying vec2 tex_a;\n" +"varying vec2 coord_c;\n" +"varying vec2 coord_a;\n" "void main()\n" "{\n" " gl_Position = mvp * vertex;\n" -" tex_c = tex_coord;\n" -" tex_a = tex_coordm;\n" +" coord_c = tex_coord;\n" +" coord_a = tex_coorda;\n" "}\n" -"\n" diff --git a/src/modules/evas/engines/gl_common/shader/rgb_a_pair_nomul_vert.shd b/src/modules/evas/engines/gl_common/shader/rgb_a_pair_nomul_vert.shd index bf2c242..1c0af0a 100644 --- a/src/modules/evas/engines/gl_common/shader/rgb_a_pair_nomul_vert.shd +++ b/src/modules/evas/engines/gl_common/shader/rgb_a_pair_nomul_vert.shd @@ -3,14 +3,13 @@ precision highp float; #endif attribute vec4 vertex; attribute vec2 tex_coord; -attribute vec2 tex_coordm; +attribute vec2 tex_coorda; uniform mat4 mvp; -varying vec2 tex_c; -varying vec2 tex_a; +varying vec2 coord_c; +varying vec2 coord_a; void main() { gl_Position = mvp * vertex; - tex_c = tex_coord; - tex_a = tex_coordm; + coord_c = tex_coord; + coord_a = tex_coorda; } - diff --git a/src/modules/evas/engines/gl_common/shader/rgb_a_pair_vert.h b/src/modules/evas/engines/gl_common/shader/rgb_a_pair_vert.h index e8158d1..816f96e 100644 --- a/src/modules/evas/engines/gl_common/shader/rgb_a_pair_vert.h +++ b/src/modules/evas/engines/gl_common/shader/rgb_a_pair_vert.h @@ -4,16 +4,15 @@ "attribute vec4 vertex;\n" "attribute vec4 color;\n" "attribute vec2 tex_coord;\n" -"attribute vec2 tex_coordm;\n" +"attribute vec2 tex_coorda;\n" "uniform mat4 mvp;\n" "varying vec4 col;\n" -"varying vec2 tex_c;\n" -"varying vec2 tex_a;\n" +"varying vec2 coord_c;\n" +"varying vec2 coord_a;\n" "void main()\n" "{\n" " gl_Position = mvp * vertex;\n" " col = color;\n" -" tex_c = tex_coord;\n" -" tex_a = tex_coordm;\n" +" coord_c = tex_coord;\n" +" coord_a = tex_coorda;\n" "}\n" -"\n" diff --git a/src/modules/evas/engines/gl_common/shader/rgb_a_pair_vert.shd b/src/modules/evas/engines/gl_common/shader/rgb_a_pair_vert.shd index 4a57c52..06ab513 100644 --- a/src/modules/evas/engines/gl_common/shader/rgb_a_pair_vert.shd +++ b/src/modules/evas/engines/gl_common/shader/rgb_a_pair_vert.shd @@ -4,16 +4,15 @@ precision highp float; attribute vec4 vertex; attribute vec4 color; attribute vec2 tex_coord; -attribute vec2 tex_coordm; +attribute vec2 tex_coorda; uniform mat4 mvp; varying vec4 col; -varying vec2 tex_c; -varying vec2 tex_a; +varying vec2 coord_c; +varying vec2 coord_a; void main() { gl_Position = mvp * vertex; col = color; - tex_c = tex_coord; - tex_a = tex_coordm; + coord_c = tex_coord; + coord_a = tex_coorda; } - --
