jpeg pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=9eaadb2eb764d1a9fac0ebdabca5432d0b0edf7d

commit 9eaadb2eb764d1a9fac0ebdabca5432d0b0edf7d
Author: Jean-Philippe Andre <jp.an...@samsung.com>
Date:   Wed Feb 11 21:32:15 2015 +0900

    Evas GL common: Simplify GL pipe code with macros
    
    A lot of the code was just brutal copy & paste.
    Reduced by using simpler macros, which I believe are even
    more readable.
---
 .../evas/engines/gl_common/evas_gl_context.c       | 189 +++++----------------
 1 file changed, 39 insertions(+), 150 deletions(-)

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 4ad661d..1a8df2f 100644
--- a/src/modules/evas/engines/gl_common/evas_gl_context.c
+++ b/src/modules/evas/engines/gl_common/evas_gl_context.c
@@ -1251,6 +1251,27 @@ 
evas_gl_common_context_target_surface_set(Evas_Engine_GL_Context *gc,
    gc->pipe[n].array.texm[nm++] = u; \
    gc->pipe[n].array.texm[nm++] = v; } while(0)
 
+#define PUSH_6_VERTICES(pn, x, y, w, h) do { \
+   PUSH_VERTEX(pn, x    , y    , 0); PUSH_VERTEX(pn, x + w, y    , 0); \
+   PUSH_VERTEX(pn, x    , y + h, 0); PUSH_VERTEX(pn, x + w, y    , 0); \
+   PUSH_VERTEX(pn, x + w, y + h, 0); PUSH_VERTEX(pn, x    , y + h, 0); \
+   } while (0)
+#define PUSH_6_TEXUV(pn, x1, y1, x2, y2) do { \
+   PUSH_TEXUV(pn, x1, y1); PUSH_TEXUV(pn, x2, y1); PUSH_TEXUV(pn, x1, y2); \
+   PUSH_TEXUV(pn, x2, y1); PUSH_TEXUV(pn, x2, y2); PUSH_TEXUV(pn, x1, y2); \
+   } while (0)
+#define PUSH_6_TEXUV2(pn, x1, y1, x2, y2) do { \
+   PUSH_TEXUV2(pn, x1, y1); PUSH_TEXUV2(pn, x2, y1); PUSH_TEXUV2(pn, x1, y2); \
+   PUSH_TEXUV2(pn, x2, y1); PUSH_TEXUV2(pn, x2, y2); PUSH_TEXUV2(pn, x1, y2); \
+   } while (0)
+#define PUSH_6_TEXUV3(pn, x1, y1, x2, y2) do { \
+   PUSH_TEXUV3(pn, x1, y1); PUSH_TEXUV3(pn, x2, y1); PUSH_TEXUV3(pn, x1, y2); \
+   PUSH_TEXUV3(pn, x2, y1); PUSH_TEXUV3(pn, x2, y2); PUSH_TEXUV3(pn, x1, y2); \
+   } while (0)
+#define PUSH_6_TEXA(pn, x1, y1, x2, y2) do { \
+   PUSH_TEXA(pn, x1, y1); PUSH_TEXA(pn, x2, y1); PUSH_TEXA(pn, x1, y2); \
+   PUSH_TEXA(pn, x2, y1); PUSH_TEXA(pn, x2, y2); PUSH_TEXA(pn, x1, y2); \
+   } 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)
 
@@ -1821,17 +1842,8 @@ again:
 
    pipe_region_expand(gc, pn, x, y, w, h);
    PIPE_GROW(gc, pn, 6);
-
-   PUSH_VERTEX(pn, x    , y    , 0);
-   PUSH_VERTEX(pn, x + w, y    , 0);
-   PUSH_VERTEX(pn, x    , y + h, 0);
-
-   PUSH_VERTEX(pn, x + w, y    , 0);
-   PUSH_VERTEX(pn, x + w, y + h, 0);
-   PUSH_VERTEX(pn, x    , y + h, 0);
-
+   PUSH_6_VERTICES(pn, x, y, w, h);
    PUSH_MASK(pn, mtex, mx, my, mw, mh);
-
    PUSH_6_COLORS(pn, r, g, b, a);
 }
 
@@ -2089,21 +2101,8 @@ evas_gl_common_context_image_push(Evas_Engine_GL_Context 
*gc,
         ty2 = ((double)(offsety) + sy + sh) / (double)pt->h;
      }
 
-   PUSH_VERTEX(pn, x    , y    , 0);
-   PUSH_VERTEX(pn, x + w, y    , 0);
-   PUSH_VERTEX(pn, x    , y + h, 0);
-
-   PUSH_TEXUV(pn, tx1, ty1);
-   PUSH_TEXUV(pn, tx2, ty1);
-   PUSH_TEXUV(pn, tx1, ty2);
-
-   PUSH_VERTEX(pn, x + w, y    , 0);
-   PUSH_VERTEX(pn, x + w, y + h, 0);
-   PUSH_VERTEX(pn, x    , y + h, 0);
-
-   PUSH_TEXUV(pn, tx2, ty1);
-   PUSH_TEXUV(pn, tx2, ty2);
-   PUSH_TEXUV(pn, tx1, ty2);
+   PUSH_6_VERTICES(pn, x, y, w, h);
+   PUSH_6_TEXUV(pn, tx1, ty1, tx2, ty2);
 
    if (sam)
      {
@@ -2181,24 +2180,9 @@ evas_gl_common_context_font_push(Evas_Engine_GL_Context 
*gc,
         ty2 = ((double)(tex->y) + sy + sh) / (double)tex->pt->h;
      }
 
-   PUSH_VERTEX(pn, x    , y    , 0);
-   PUSH_VERTEX(pn, x + w, y    , 0);
-   PUSH_VERTEX(pn, x    , y + h, 0);
-
-   PUSH_TEXUV(pn, tx1, ty1);
-   PUSH_TEXUV(pn, tx2, ty1);
-   PUSH_TEXUV(pn, tx1, ty2);
-
-   PUSH_VERTEX(pn, x + w, y    , 0);
-   PUSH_VERTEX(pn, x + w, y + h, 0);
-   PUSH_VERTEX(pn, x    , y + h, 0);
-
-   PUSH_TEXUV(pn, tx2, ty1);
-   PUSH_TEXUV(pn, tx2, ty2);
-   PUSH_TEXUV(pn, tx1, ty2);
-
+   PUSH_6_VERTICES(pn, x, y, w, h);
+   PUSH_6_TEXUV(pn, tx1, ty1, tx2, ty2);
    PUSH_MASK(pn, mtex, mx, my, mw, mh);
-
    PUSH_6_COLORS(pn, r, g, b, a);
 }
 
@@ -2269,40 +2253,11 @@ evas_gl_common_context_yuv_push(Evas_Engine_GL_Context 
*gc,
    t2x2 = ((sx + sw) / 2) / (double)tex->ptu->w;
    t2y2 = ((sy + sh) / 2) / (double)tex->ptu->h;
 
-   PUSH_VERTEX(pn, x    , y    , 0);
-   PUSH_VERTEX(pn, x + w, y    , 0);
-   PUSH_VERTEX(pn, x    , y + h, 0);
-
-   PUSH_TEXUV(pn, tx1, ty1);
-   PUSH_TEXUV(pn, tx2, ty1);
-   PUSH_TEXUV(pn, tx1, ty2);
-
-   PUSH_TEXUV2(pn, t2x1, t2y1);
-   PUSH_TEXUV2(pn, t2x2, t2y1);
-   PUSH_TEXUV2(pn, t2x1, t2y2);
-
-   PUSH_TEXUV3(pn, t2x1, t2y1);
-   PUSH_TEXUV3(pn, t2x2, t2y1);
-   PUSH_TEXUV3(pn, t2x1, t2y2);
-
-   PUSH_VERTEX(pn, x + w, y    , 0);
-   PUSH_VERTEX(pn, x + w, y + h, 0);
-   PUSH_VERTEX(pn, x    , y + h, 0);
-
-   PUSH_TEXUV(pn, tx2, ty1);
-   PUSH_TEXUV(pn, tx2, ty2);
-   PUSH_TEXUV(pn, tx1, ty2);
-
-   PUSH_TEXUV2(pn, t2x2, t2y1);
-   PUSH_TEXUV2(pn, t2x2, t2y2);
-   PUSH_TEXUV2(pn, t2x1, t2y2);
-
-   PUSH_TEXUV3(pn, t2x2, t2y1);
-   PUSH_TEXUV3(pn, t2x2, t2y2);
-   PUSH_TEXUV3(pn, t2x1, t2y2);
-
+   PUSH_6_VERTICES(pn, x, y, w, h);
+   PUSH_6_TEXUV(pn, tx1, ty1, tx2, ty2);
+   PUSH_6_TEXUV2(pn, t2x1, t2y1, t2x2, t2y2);
+   PUSH_6_TEXUV3(pn, t2x1, t2y1, t2x2, t2y2);
    PUSH_MASK(pn, mtex, mx, my, mw, mh);
-
    PUSH_6_COLORS(pn, r, g, b, a);
 }
 
@@ -2372,32 +2327,10 @@ evas_gl_common_context_yuy2_push(Evas_Engine_GL_Context 
*gc,
    t2x2 = (sx + sw) / (double)tex->ptuv->w;
    t2y2 = (sy + sh) / (double)tex->ptuv->h;
 
-   PUSH_VERTEX(pn, x    , y    , 0);
-   PUSH_VERTEX(pn, x + w, y    , 0);
-   PUSH_VERTEX(pn, x    , y + h, 0);
-
-   PUSH_TEXUV(pn, tx1, ty1);
-   PUSH_TEXUV(pn, tx2, ty1);
-   PUSH_TEXUV(pn, tx1, ty2);
-
-   PUSH_TEXUV2(pn, t2x1, t2y1);
-   PUSH_TEXUV2(pn, t2x2, t2y1);
-   PUSH_TEXUV2(pn, t2x1, t2y2);
-
-   PUSH_VERTEX(pn, x + w, y    , 0);
-   PUSH_VERTEX(pn, x + w, y + h, 0);
-   PUSH_VERTEX(pn, x    , y + h, 0);
-
-   PUSH_TEXUV(pn, tx2, ty1);
-   PUSH_TEXUV(pn, tx2, ty2);
-   PUSH_TEXUV(pn, tx1, ty2);
-
-   PUSH_TEXUV2(pn, t2x2, t2y1);
-   PUSH_TEXUV2(pn, t2x2, t2y2);
-   PUSH_TEXUV2(pn, t2x1, t2y2);
-
+   PUSH_6_VERTICES(pn, x, y, w, h);
+   PUSH_6_TEXUV(pn, tx1, ty1, tx2, ty2);
+   PUSH_6_TEXUV2(pn, t2x1, t2y1, t2x2, t2y2);
    PUSH_MASK(pn, mtex, mx, my, mw, mh);
-
    PUSH_6_COLORS(pn, r, g, b, a);
 }
 
@@ -2469,32 +2402,10 @@ evas_gl_common_context_nv12_push(Evas_Engine_GL_Context 
*gc,
    t2x2 = (sx + sw) / (double)tex->ptuv->w;
    t2y2 = (sy + sh) / (double)tex->ptuv->h;
 
-   PUSH_VERTEX(pn, x    , y    , 0);
-   PUSH_VERTEX(pn, x + w, y    , 0);
-   PUSH_VERTEX(pn, x    , y + h, 0);
-
-   PUSH_TEXUV(pn, tx1, ty1);
-   PUSH_TEXUV(pn, tx2, ty1);
-   PUSH_TEXUV(pn, tx1, ty2);
-
-   PUSH_TEXUV2(pn, t2x1, t2y1);
-   PUSH_TEXUV2(pn, t2x2, t2y1);
-   PUSH_TEXUV2(pn, t2x1, t2y2);
-
-   PUSH_VERTEX(pn, x + w, y    , 0);
-   PUSH_VERTEX(pn, x + w, y + h, 0);
-   PUSH_VERTEX(pn, x    , y + h, 0);
-
-   PUSH_TEXUV(pn, tx2, ty1);
-   PUSH_TEXUV(pn, tx2, ty2);
-   PUSH_TEXUV(pn, tx1, ty2);
-
-   PUSH_TEXUV2(pn, t2x2, t2y1);
-   PUSH_TEXUV2(pn, t2x2, t2y2);
-   PUSH_TEXUV2(pn, t2x1, t2y2);
-
+   PUSH_6_VERTICES(pn, x, y, w, h);
+   PUSH_6_TEXUV(pn, tx1, ty1, tx2, ty2);
+   PUSH_6_TEXUV2(pn, t2x1, t2y1, t2x2, t2y2);
    PUSH_MASK(pn, mtex, mx, my, mw, mh);
-
    PUSH_6_COLORS(pn, r, g, b, a);
 }
 
@@ -2573,32 +2484,10 @@ 
evas_gl_common_context_rgb_a_pair_push(Evas_Engine_GL_Context *gc,
    t2x2 = (tex->x + sx + sw) / (double)tex->pta->w;
    t2y2 = (tex->y + sy + sh) / (double)tex->pta->h;
 
-   PUSH_VERTEX(pn, x    , y    , 0);
-   PUSH_VERTEX(pn, x + w, y    , 0);
-   PUSH_VERTEX(pn, x    , y + h, 0);
-
-   PUSH_TEXUV(pn, tx1, ty1);
-   PUSH_TEXUV(pn, tx2, ty1);
-   PUSH_TEXUV(pn, tx1, ty2);
-
-   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);
-   PUSH_VERTEX(pn, x    , y + h, 0);
-
-   PUSH_TEXUV(pn, tx2, ty1);
-   PUSH_TEXUV(pn, tx2, ty2);
-   PUSH_TEXUV(pn, tx1, ty2);
-
-   PUSH_TEXA(pn, t2x2, t2y1);
-   PUSH_TEXA(pn, t2x2, t2y2);
-   PUSH_TEXA(pn, t2x1, t2y2);
-
+   PUSH_6_VERTICES(pn, x, y, w, h);
+   PUSH_6_TEXUV(pn, tx1, ty1, tx2, ty2);
+   PUSH_6_TEXA(pn, t2x1, t2y1, t2x2, t2y2);
    PUSH_MASK(pn, mtex, mx, my, mw, mh);
-
    PUSH_6_COLORS(pn, r, g, b, a);
 }
 

-- 


Reply via email to