[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-10851-g50815da

commit-queue at webkit.org commit-queue at webkit.org
Wed Dec 22 18:31:29 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 8582ca5052d54d287d5ecbb9ad41e1c182d6e556
Author: commit-queue at webkit.org <commit-queue at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Mon Dec 13 17:56:46 2010 +0000

    2010-12-13  Alex Bredariol Grilo  <abgrilo at profusion.mobi>
    
            Reviewed by Andreas Kling.
    
            Remove one row/column of renderers.
            https://bugs.webkit.org/show_bug.cgi?id=50456
    
            This changes the algorithm in a way that it will require one less column
            and row of renderers to fill the viewport. The direct result of this is
            that now less tiles need to be rendered at once when displaying the
            viewport.
    
            * ewk/ewk_tiled_backing_store.c:
            (_ewk_tiled_backing_store_smart_add):
            (_ewk_tiled_backing_store_recalc_renderers):
            (_ewk_tiled_backing_store_view_wrap_up):
            (_ewk_tiled_backing_store_view_wrap_down):
            (_ewk_tiled_backing_store_view_wrap_left):
            (_ewk_tiled_backing_store_view_wrap_right):
            (_ewk_tiled_backing_store_smart_calculate_offset_force):
            (_ewk_tiled_backing_store_smart_calculate_offset):
            (_ewk_tiled_backing_store_smart_calculate):
            (_ewk_tiled_backing_store_zoom_set_internal):
            (ewk_tiled_backing_store_zoom_weak_set):
            (ewk_tiled_backing_store_fix_offsets):
            (ewk_tiled_backing_store_flush):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@73924 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKit/efl/ChangeLog b/WebKit/efl/ChangeLog
index 91c9327..64082d1 100644
--- a/WebKit/efl/ChangeLog
+++ b/WebKit/efl/ChangeLog
@@ -1,3 +1,30 @@
+2010-12-13  Alex Bredariol Grilo  <abgrilo at profusion.mobi>
+
+        Reviewed by Andreas Kling.
+
+        Remove one row/column of renderers.
+        https://bugs.webkit.org/show_bug.cgi?id=50456
+
+        This changes the algorithm in a way that it will require one less column
+        and row of renderers to fill the viewport. The direct result of this is
+        that now less tiles need to be rendered at once when displaying the
+        viewport.
+
+        * ewk/ewk_tiled_backing_store.c:
+        (_ewk_tiled_backing_store_smart_add):
+        (_ewk_tiled_backing_store_recalc_renderers):
+        (_ewk_tiled_backing_store_view_wrap_up):
+        (_ewk_tiled_backing_store_view_wrap_down):
+        (_ewk_tiled_backing_store_view_wrap_left):
+        (_ewk_tiled_backing_store_view_wrap_right):
+        (_ewk_tiled_backing_store_smart_calculate_offset_force):
+        (_ewk_tiled_backing_store_smart_calculate_offset):
+        (_ewk_tiled_backing_store_smart_calculate):
+        (_ewk_tiled_backing_store_zoom_set_internal):
+        (ewk_tiled_backing_store_zoom_weak_set):
+        (ewk_tiled_backing_store_fix_offsets):
+        (ewk_tiled_backing_store_flush):
+
 2010-10-28  MORITA Hajime  <morrita at google.com>
 
         Reviewed by Ojan Vafai.
diff --git a/WebKit/efl/ewk/ewk_tiled_backing_store.c b/WebKit/efl/ewk/ewk_tiled_backing_store.c
index 0e8898b..126bab8 100644
--- a/WebKit/efl/ewk/ewk_tiled_backing_store.c
+++ b/WebKit/efl/ewk/ewk_tiled_backing_store.c
@@ -914,11 +914,11 @@ static void _ewk_tiled_backing_store_smart_add(Evas_Object *o)
     priv->view.offset.cur.y = 0;
     priv->view.offset.old.x = 0;
     priv->view.offset.old.y = 0;
-    priv->view.offset.base.x = -TILE_W;
-    priv->view.offset.base.y = -TILE_H;
+    priv->view.offset.base.x = 0;
+    priv->view.offset.base.y = 0;
 
-    priv->model.base.col = -1;
-    priv->model.base.row = -1;
+    priv->model.base.col = 0;
+    priv->model.base.row = 0;
     priv->model.cur.cols = 1;
     priv->model.cur.rows = 1;
     priv->model.old.cols = 0;
@@ -1022,8 +1022,8 @@ static void _ewk_tiled_backing_store_recalc_renderers(Ewk_Tiled_Backing_Store_Da
     long cols, rows, old_rows, old_cols;
     INF("o=%p, new size: %dx%d", priv->self, w, h);
 
-    cols = 2 + (int)ceil((float)w / (float)tw);
-    rows = 2 + (int)ceil((float)h / (float)th);
+    cols = 1 + (int)ceil((float)w / (float)tw);
+    rows = 1 + (int)ceil((float)h / (float)th);
 
     INF("o=%p new grid size cols: %ld, rows: %ld, was %ld, %ld",
         priv->self, cols, rows, priv->view.cols, priv->view.rows);
@@ -1158,7 +1158,7 @@ static void _ewk_tiled_backing_store_view_wrap_up(Ewk_Tiled_Backing_Store_Data *
     unsigned int last_row = priv->view.rows - 1;
     Evas_Coord tw = priv->view.tile.w;
     Evas_Coord th = priv->view.tile.h;
-    Evas_Coord off_y = (priv->view.offset.base.y % th) - th;
+    Evas_Coord off_y = priv->view.offset.base.y + count * th;
     Evas_Coord oy = y + (last_row - count + 1) * th + off_y;
     Eina_Inlist **itr_start, **itr_end;
 
@@ -1205,7 +1205,7 @@ static void _ewk_tiled_backing_store_view_wrap_down(Ewk_Tiled_Backing_Store_Data
 {
     Evas_Coord tw = priv->view.tile.w;
     Evas_Coord th = priv->view.tile.h;
-    Evas_Coord off_y = (priv->view.offset.base.y % th) - th;
+    Evas_Coord off_y = priv->view.offset.base.y - count * th;
     Evas_Coord oy = y + off_y + (count - 1) * th;
     Eina_Inlist **itr_start, **itr_end;
 
@@ -1253,7 +1253,7 @@ static void _ewk_tiled_backing_store_view_wrap_left(Ewk_Tiled_Backing_Store_Data
     unsigned int r, last_col = priv->view.cols - 1;
     Evas_Coord tw = priv->view.tile.w;
     Evas_Coord th = priv->view.tile.h;
-    Evas_Coord off_x = (priv->view.offset.base.x % tw) - tw;
+    Evas_Coord off_x = priv->view.offset.base.x + count * tw;
     Evas_Coord oy = y + priv->view.offset.base.y;
     Eina_Inlist **itr;
     Eina_Inlist **itr_end;
@@ -1300,7 +1300,7 @@ static void _ewk_tiled_backing_store_view_wrap_right(Ewk_Tiled_Backing_Store_Dat
     unsigned int r;
     Evas_Coord tw = priv->view.tile.w;
     Evas_Coord th = priv->view.tile.h;
-    Evas_Coord off_x = (priv->view.offset.base.x % tw) - tw;
+    Evas_Coord off_x = priv->view.offset.base.x - count * tw;
     Evas_Coord oy = y + priv->view.offset.base.y;
     Eina_Inlist **itr, **itr_end;
 
@@ -1402,8 +1402,10 @@ static void _ewk_tiled_backing_store_smart_calculate_offset_force(Ewk_Tiled_Back
     tw = priv->view.tile.w;
     th = priv->view.tile.h;
 
-    step_x = (dx + priv->view.offset.base.x + tw) / tw;
-    step_y = (dy + priv->view.offset.base.y + th) / th;
+    long new_col = -priv->view.offset.cur.x / tw;
+    step_x = priv->model.base.col - new_col;
+    long new_row = -priv->view.offset.cur.y / th;
+    step_y = priv->model.base.row - new_row;
 
     priv->view.offset.old.x = priv->view.offset.cur.x;
     priv->view.offset.old.y = priv->view.offset.cur.y;
@@ -1435,8 +1437,10 @@ static void _ewk_tiled_backing_store_smart_calculate_offset(Ewk_Tiled_Backing_St
     tw = priv->view.tile.w;
     th = priv->view.tile.h;
 
-    step_x = (dx + priv->view.offset.base.x + tw) / tw;
-    step_y = (dy + priv->view.offset.base.y + th) / th;
+    long new_col = -priv->view.offset.cur.x / tw;
+    step_x = priv->model.base.col - new_col;
+    long new_row = -priv->view.offset.cur.y / th;
+    step_y = priv->model.base.row - new_row;
 
     priv->view.offset.old.x = priv->view.offset.cur.x;
     priv->view.offset.old.y = priv->view.offset.cur.y;
@@ -1569,10 +1573,10 @@ static void _ewk_tiled_backing_store_smart_calculate(Evas_Object *o)
 
     _ewk_tiled_backing_store_updates_process(priv);
 
-    if (priv->view.offset.base.x >= 0
-        || priv->view.offset.base.x <= -2 * priv->view.tile.w
-        || priv->view.offset.base.y >= 0
-        || priv->view.offset.base.y <= -2 * priv->view.tile.h)
+    if (priv->view.offset.base.x > 0
+        || priv->view.offset.base.x <= - priv->view.tile.w
+        || priv->view.offset.base.y > 0
+        || priv->view.offset.base.y <= - priv->view.tile.h)
         ERR("incorrect base offset %+4d,%+4d, tile=%dx%d, cur=%+4d,%+4d\n",
             priv->view.offset.base.x, priv->view.offset.base.y,
             priv->view.tile.w, priv->view.tile.h,
@@ -1700,8 +1704,8 @@ static Eina_Bool _ewk_tiled_backing_store_zoom_set_internal(Ewk_Tiled_Backing_St
     priv->view.tile.h = th;
 
     if (!priv->view.w || !priv->view.h) {
-        priv->view.offset.base.x = -tw;
-        priv->view.offset.base.y = -th;
+        priv->view.offset.base.x = 0;
+        priv->view.offset.base.y = 0;
         return EINA_TRUE;
     }
     Eina_Inlist **itr, **itr_end;
@@ -1725,10 +1729,10 @@ static Eina_Bool _ewk_tiled_backing_store_zoom_set_internal(Ewk_Tiled_Backing_St
     else if (-new_y + priv->view.h >= model_height)
         new_y = -model_height + priv->view.h;
 
-    bx = new_x % tw - tw;
-    priv->model.base.col = - new_x / tw - 1;
-    by = new_y % th - th;
-    priv->model.base.row = - new_y / th - 1;
+    bx = new_x % tw;
+    priv->model.base.col = - new_x / tw;
+    by = new_y % th;
+    priv->model.base.row = - new_y / th;
 
     priv->changed.size = EINA_TRUE;
     _ewk_tiled_backing_store_changed(priv);
@@ -1804,14 +1808,14 @@ Eina_Bool ewk_tiled_backing_store_zoom_weak_set(Evas_Object *o, float zoom, Evas
     evas_object_resize(priv->contents_clipper,
                        model_width, model_height);
 
-    int vrows = ceil((float)priv->view.h / (float)th) + 2;
-    int vcols = ceil((float)priv->view.w / (float)tw) + 2;
+    int vrows = ceil((float)priv->view.h / (float)th) + 1;
+    int vcols = ceil((float)priv->view.w / (float)tw) + 1;
     Evas_Coord new_x = cx + (priv->view.offset.cur.x - cx) * scale;
     Evas_Coord new_y = cy + (priv->view.offset.cur.y - cy) * scale;
-    Evas_Coord bx = new_x % tw - tw;
-    Evas_Coord by = new_y % th - th;
-    unsigned long base_row = -new_y / th - 1;
-    unsigned long base_col = -new_x / tw - 1;
+    Evas_Coord bx = new_x % tw;
+    Evas_Coord by = new_y % th;
+    unsigned long base_row = -new_y / th;
+    unsigned long base_col = -new_x / tw;
 
     if (base_row != priv->model.base.row || base_col != priv->model.base.col) {
         priv->model.base.row = base_row;
@@ -1869,24 +1873,24 @@ void ewk_tiled_backing_store_fix_offsets(Evas_Object *o, Evas_Coord w, Evas_Coor
 
     if (-new_x > w) {
         new_x = -w;
-        bx = new_x % tw - tw;
-        priv->model.base.col = -new_x / tw - 1;
+        bx = new_x % tw;
+        priv->model.base.col = -new_x / tw;
     }
 
     if (-new_y > h) {
         new_y = -h;
-        by = new_y % th - th;
-        priv->model.base.row = -new_y / th - 1;
+        by = new_y % th;
+        priv->model.base.row = -new_y / th;
     }
 
     if (bx >= 0 || bx <= -2 * priv->view.tile.w) {
-        bx = new_x % tw - tw;
-        priv->model.base.col = -new_x / tw - 1;
+        bx = new_x % tw;
+        priv->model.base.col = -new_x / tw;
     }
 
     if (by >= 0 || by <= -2 * priv->view.tile.h) {
-        by = new_y % th - th;
-        priv->model.base.row = -new_y / th - 1;
+        by = new_y % th;
+        priv->model.base.row = -new_y / th;
     }
 
     priv->view.offset.cur.x = new_x;
@@ -2006,10 +2010,10 @@ void ewk_tiled_backing_store_flush(Evas_Object *o)
     priv->view.offset.cur.y = 0;
     priv->view.offset.old.x = 0;
     priv->view.offset.old.y = 0;
-    priv->view.offset.base.x = -priv->view.tile.w;
-    priv->view.offset.base.y = -priv->view.tile.h;
-    priv->model.base.col = -1;
-    priv->model.base.row = -1;
+    priv->view.offset.base.x = 0;
+    priv->view.offset.base.y = 0;
+    priv->model.base.col = 0;
+    priv->model.base.row = 0;
     priv->changed.size = EINA_TRUE;
 
 #ifdef DEBUG_MEM_LEAKS

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list