jpeg pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=740995e089c3318585875ed000490426e22bfc11

commit 740995e089c3318585875ed000490426e22bfc11
Author: Jean-Philippe Andre <jp.an...@samsung.com>
Date:   Wed Apr 1 09:58:05 2015 +0900

    Evas GL generic: Simplify "scaled" images (used for masking)
    
    Invert the meaning of scaled (w,h), so that im->(w,h) corresponds
    to the final scaled size, and the original size is stored directly
    in the texture itself.
    
    This simplifies code a little bit.
    
    Also, lift the limitation on the maximum texture size, as those
    virtual textures are not limited by GPU texture size.
---
 .../evas/engines/gl_common/evas_gl_common.h        |  1 -
 src/modules/evas/engines/gl_common/evas_gl_font.c  | 18 +++--------
 src/modules/evas/engines/gl_common/evas_gl_image.c | 37 +++++-----------------
 .../evas/engines/gl_common/evas_gl_rectangle.c     | 14 ++------
 src/modules/evas/engines/gl_generic/evas_engine.c  | 12 ++-----
 5 files changed, 19 insertions(+), 63 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 4556093..fe11183 100644
--- a/src/modules/evas/engines/gl_common/evas_gl_common.h
+++ b/src/modules/evas/engines/gl_common/evas_gl_common.h
@@ -619,7 +619,6 @@ struct _Evas_GL_Image
 
    struct {
       Evas_GL_Image *origin;
-      int            w, h;
       Eina_Bool      smooth : 1;
    } scaled;
 
diff --git a/src/modules/evas/engines/gl_common/evas_gl_font.c 
b/src/modules/evas/engines/gl_common/evas_gl_font.c
index 95ac669..f7001fb 100644
--- a/src/modules/evas/engines/gl_common/evas_gl_font.c
+++ b/src/modules/evas/engines/gl_common/evas_gl_font.c
@@ -85,19 +85,11 @@ evas_gl_font_texture_draw(void *context, void *surface 
EINA_UNUSED, void *draw_c
    if (mtex && mtex->pt && mtex->pt->w && mtex->pt->h)
      {
         // canvas coords
-        mx = dc->clip.mask_x;
-        my = dc->clip.mask_y;
-        if (mask->scaled.origin)
-          {
-             mw = mask->scaled.w;
-             mh = mask->scaled.h;
-             mask_smooth = mask->scaled.smooth;
-          }
-        else
-          {
-             mw = mask->w;
-             mh = mask->h;
-          }
+        mx = gc->dc->clip.mask_x;
+        my = gc->dc->clip.mask_y;
+        mw = mask->w;
+        mh = mask->h;
+        mask_smooth = mask->scaled.smooth;
      }
    else mtex = NULL;
 
diff --git a/src/modules/evas/engines/gl_common/evas_gl_image.c 
b/src/modules/evas/engines/gl_common/evas_gl_image.c
index 24b156b..1541afd 100644
--- a/src/modules/evas/engines/gl_common/evas_gl_image.c
+++ b/src/modules/evas/engines/gl_common/evas_gl_image.c
@@ -960,24 +960,11 @@ evas_gl_common_image_map_draw(Evas_Engine_GL_Context *gc, 
Evas_GL_Image *im,
    if (mtex && mtex->pt && mtex->pt->w && mtex->pt->h)
      {
         // canvas coords
-        mx = dc->clip.mask_x;
-        my = dc->clip.mask_y;
-        if (mask->scaled.origin)
-          {
-             mw = mask->scaled.w;
-             mh = mask->scaled.h;
-             //scalex = mask->w / (double)mask->scaled.w;
-             //scaley = mask->h / (double)mask->scaled.h;
-             mask_smooth = mask->scaled.smooth;
-          }
-        else
-          {
-             mw = mask->w;
-             mh = mask->h;
-          }
-        //if (c) RECTS_CLIP_TO_RECT(mx, my, mw, mh, cx, cy, cw, ch);
-        //mx = mx - dc->clip.mask_x;
-        //my = my - dc->clip.mask_y;
+        mx = gc->dc->clip.mask_x;
+        my = gc->dc->clip.mask_y;
+        mw = mask->w;
+        mh = mask->h;
+        mask_smooth = mask->scaled.smooth;
      }
    else mtex = NULL;
 
@@ -1016,17 +1003,9 @@ _evas_gl_common_image_push(Evas_Engine_GL_Context *gc, 
Evas_GL_Image *im,
         // canvas coords
         mx = gc->dc->clip.mask_x;
         my = gc->dc->clip.mask_y;
-        if (mask->scaled.origin)
-          {
-             mw = mask->scaled.w;
-             mh = mask->scaled.h;
-             mask_smooth = mask->scaled.smooth;
-          }
-        else
-          {
-             mw = mask->w;
-             mh = mask->h;
-          }
+        mw = mask->w;
+        mh = mask->h;
+        mask_smooth = mask->scaled.smooth;
      }
    else mtex = NULL;
 
diff --git a/src/modules/evas/engines/gl_common/evas_gl_rectangle.c 
b/src/modules/evas/engines/gl_common/evas_gl_rectangle.c
index c13252a..d0042c9 100644
--- a/src/modules/evas/engines/gl_common/evas_gl_rectangle.c
+++ b/src/modules/evas/engines/gl_common/evas_gl_rectangle.c
@@ -35,17 +35,9 @@ evas_gl_common_rect_draw(Evas_Engine_GL_Context *gc, int x, 
int y, int w, int h)
         // canvas coords
         mx = gc->dc->clip.mask_x;
         my = gc->dc->clip.mask_y;
-        if (mask->scaled.origin)
-          {
-             mw = mask->scaled.w;
-             mh = mask->scaled.h;
-             mask_smooth = mask->scaled.smooth;
-          }
-        else
-          {
-             mw = mask->w;
-             mh = mask->h;
-          }
+        mw = mask->w;
+        mh = mask->h;
+        mask_smooth = mask->scaled.smooth;
      }
    else mtex = NULL;
 
diff --git a/src/modules/evas/engines/gl_generic/evas_engine.c 
b/src/modules/evas/engines/gl_generic/evas_engine.c
index 627e5c0..dac9232 100644
--- a/src/modules/evas/engines/gl_generic/evas_engine.c
+++ b/src/modules/evas/engines/gl_generic/evas_engine.c
@@ -989,12 +989,8 @@ eng_image_scaled_update(void *data EINA_UNUSED, void 
*scaled, void *image,
    if (!src) return NULL;
 
    gc = src->gc;
-   if ((dst_w > gc->shared->info.max_texture_size) ||
-       (dst_h > gc->shared->info.max_texture_size))
-     return NULL;
-
    if (dst && (dst->scaled.origin == src) &&
-       (dst->scaled.w == dst_w) && (dst->scaled.h == dst_h))
+       (dst->w == dst_w) && (dst->h == dst_h))
      return dst;
 
    if (dst)
@@ -1020,16 +1016,14 @@ eng_image_scaled_update(void *data EINA_UNUSED, void 
*scaled, void *image,
    dst->gc = gc;
    dst->cs.space = src->cs.space;
    dst->alpha = alpha;
-   dst->w = src->w;
-   dst->h = src->h;
+   dst->w = dst_w;
+   dst->h = dst_h;
    dst->tex = src->tex;
    dst->tex->references++;
    dst->tex_only = 1;
 
    if (!reffed) src->references++;
    dst->scaled.origin = src;
-   dst->scaled.w = dst_w;
-   dst->scaled.h = dst_h;
    dst->scaled.smooth = smooth;
 
    return dst;

-- 


Reply via email to