summaryrefslogtreecommitdiff
path: root/dw/fltkimgbuf.cc
diff options
context:
space:
mode:
authorJorge Arellano Cid <jcid@dillo.org>2014-05-14 19:48:33 -0400
committerJorge Arellano Cid <jcid@dillo.org>2014-05-14 19:48:33 -0400
commit4681bc69ac265fae7f6f84cb834ec87ea5bec271 (patch)
treec599fd3b01f640507f58217463c6289011e05efa /dw/fltkimgbuf.cc
parentb3e3c51d554c3b5146ea23e7074e29c6c4817823 (diff)
Avoid creation of unnecessary image bufs (at alt-text to img switch)
This is the first of a patch series for image code bugs that have severe impact on performance. With these testing files: 1imgA.html = <img src="maj00s.png" alt="img1"> 2imgSA.html = <img src="maj00s.png" alt="img1"> <img src="maj00s.png" alt="img12"> 3imgSA.html = <img src="maj00s.png" alt="img1"> <img src="maj00s.png" alt="img12"> <img src="maj00s.png" alt="img123"> 2imgA.html = <img src="maj00s.png" alt="img1"> <img src="maj21s.png" alt="img12"> 3imgA.html = <img src="maj00s.png" alt="img1"> <img src="maj21s.png" alt="img12"> <img src="c10s.png" alt="img123"> This are the results: .------------------------------------------------------------------. |imgbufs | No patch | Patched #1 | | | first time | upon reload | first time | upon reload | |------------------------------------------------------------------- |1imgA.html | 2 | 1 | 1 | 1 | |2imgSA.html | 3 | 2 | 1 | 2 | |3imgSA.html | 4 | 3 | 1 | 3 | |------------------------------------------------------------------- |2imgA.html | 4 | 2 | 2 | 2 | |3imgA.html | 6 | 3 | 3 | 3 | '------------------------------------------------------------------'
Diffstat (limited to 'dw/fltkimgbuf.cc')
-rw-r--r--dw/fltkimgbuf.cc10
1 files changed, 6 insertions, 4 deletions
diff --git a/dw/fltkimgbuf.cc b/dw/fltkimgbuf.cc
index 26b46969..01bce455 100644
--- a/dw/fltkimgbuf.cc
+++ b/dw/fltkimgbuf.cc
@@ -80,7 +80,7 @@ FltkImgbuf::FltkImgbuf (Type type, int width, int height, double gamma)
{
DBG_OBJ_CREATE ("dw::fltk::FltkImgbuf");
- _MSG("FltkImgbuf: new root %p\n", this);
+ _MSG ("FltkImgbuf::FltkImgbuf: new root %p\n", this);
init (type, width, height, gamma, NULL);
}
@@ -89,7 +89,7 @@ FltkImgbuf::FltkImgbuf (Type type, int width, int height, double gamma,
{
DBG_OBJ_CREATE ("dw::fltk::FltkImgbuf");
- _MSG("FltkImgbuf: new scaled %p, root is %p\n", this, root);
+ _MSG ("FltkImgbuf::FltkImgbuf: new scaled %p, root is %p\n", this, root);
init (type, width, height, gamma, root);
}
@@ -135,8 +135,8 @@ void FltkImgbuf::init (Type type, int width, int height, double gamma,
case RGB: bpp = 3; break;
default: bpp = 1; break;
}
- _MSG("FltkImgbuf::init width=%d height=%d bpp=%d gamma=%g\n",
- width, height, bpp, gamma);
+ _MSG("FltkImgbuf::init this=%p width=%d height=%d bpp=%d gamma=%g\n",
+ this, width, height, bpp, gamma);
rawdata = new uchar[bpp * width * height];
// Set light-gray as interim background color.
memset(rawdata, 222, width*height*bpp);
@@ -163,6 +163,8 @@ void FltkImgbuf::init (Type type, int width, int height, double gamma,
FltkImgbuf::~FltkImgbuf ()
{
+ _MSG ("FltkImgbuf::~FltkImgbuf\n");
+
if (!isRoot())
root->detachScaledBuf (this);