diff options
author | Jorge Arellano Cid <jcid@dillo.org> | 2014-05-14 20:21:27 -0400 |
---|---|---|
committer | Jorge Arellano Cid <jcid@dillo.org> | 2014-05-14 20:21:27 -0400 |
commit | c039ea12dd95e358b2aff826971d73fa0c170d63 (patch) | |
tree | 8959df77b99c4fce37f5d89ceed14a7f4f11b1f1 /dw/widget.cc | |
parent | 4681bc69ac265fae7f6f84cb834ec87ea5bec271 (diff) |
Avoid removing imgbuf and decoding the whole image again for reloads.
Using the same testing files as the previous patch,
the results are:
.---------------------------------------------.
|imgbufs | No patch | Patch #1 | Patch #2 |
|----------------------------------------------
|1imgA.html | 2/1 | 1/1 | 1/0 |
|2imgSA.html | 3/2 | 1/2 | 1/0 |
|3imgSA.html | 4/3 | 1/3 | 1/0 |
|----------------------------------------------
|2imgA.html | 4/2 | 2/2 | 2/0 |
|3imgA.html | 6/3 | 3/3 | 3/0 |
'---------------------------------------------'
n1/n2 means:
n1 imgbufs were created for first load (empty cache)
n2 imgbufs were created for reload (cached image)
Notes:
* Rendering is much faster. Easy to notice with Back operation.
* Between four to five times on www.welt.de.
* Corner cases can be more than ten times. Usually, it *feels* faster.
Diffstat (limited to 'dw/widget.cc')
-rw-r--r-- | dw/widget.cc | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/dw/widget.cc b/dw/widget.cc index 82677cc8..e6c2aa76 100644 --- a/dw/widget.cc +++ b/dw/widget.cc @@ -164,6 +164,10 @@ void Widget::queueDrawArea (int x, int y, int width, int height) x, y, width, height); DBG_OBJ_MSG_START (); + _MSG("Widget::queueDrawArea alloc(%d %d %d %d) wid(%d %d %d %d)\n", + allocation.x, allocation.y, + allocation.width, allocation.ascent + allocation.descent, + x, y, width, height); if (layout) layout->queueDraw (x + allocation.x, y + allocation.y, width, height); |