Hi Jorge, On Thu, Oct 11, 2007 at 03:22:50PM -0400, Johannes Hofmann wrote:
Hi There!
Once again, thanks for the patches and keep them flowing.
The new CVS repository is up and updated with the patches:
e.g. (with "-cur" terminated directories being the working directories)
alias dcvs='cvs -z3 -djcid@auriga.wearlab.de:/sfhome/cvs/dillo' dcvs co dillo2 dcvs co dw2 cp -r dillo2 dillo2-cur cp -r dw2 dw2-cur ln -s dw2-cur dw-testbed find dw2-cur -name CVS -exec rm \{\} \; find dillo2-cur -name CVS -exec rm \{\} \; cd dw2-cur ./autogen.sh make cd ../dillo2-cur ./autogen.sh make
Great, but it keeps asking for a password, am I missing something?
Here follow my comments on the patches. Please test this CVS code and send feedback:
[Johannes wrote] * the namespace "signal" in dw-testbed/lout/signal.hh conflicts with the declaration in /usr/include/sys/signal.h: __sighandler_t *signal (int, __sighandler_t *); I renamed the namespace to loutsignal.
Johannes: please send me the patch for this.
As only I seem to have these problems it might well be a problem of DragonFly BSD. So I would like to check that first before changing the nice an simple names in the lout library.
[Johannes wrote] here is a new version of dillo-fltk scroll performance improvements. This patch is against vanilla dillo-fltk.
New in this patch:
* Hotkey bindings for arrow keys, Home- and EndKey. This only works when the focus is on the display area.
* Only unclipped area is exposed which improves performance on large pages (e.g. http://www.w3.org/TR/xslt).
* Limit scrolling to reasonable values.
It improves not only performance on large pages but also avoids overlapped rendering. Applied.
Great. I will try to add some more performance improvements.
[Matthias wrote] Fine! Only using the arrow keys is quite slow and consumes all CPU time on my machine. In contrast, srolling with the old Dillo was quick and produced almost no CPU load.
A question: Would it be difficult to add mouse wheel support as well? On my machine that does not work. (Or is thia a configuration issue regarding FLTK?)
Dillo1 didn't render antialiased text, and was heavily optimized. The optimization phase of rendering in dillo2 has just started (thanks Johannes :). I hope we can tune it to a dillo1 similar CPU-consumtion.
Yes, for me my patch improves performance, but we are not yet at the level of dillo1.
[Matthias wrote] Compilation on Debian Etch worked well. I had to use the "--x-includes" and "--x-libraries" options when configuring FLTK, and the test glpuzzle did not compile.
I'm also using Etch here and didn't need those options. I also have a running glpuzzle. The CPU, hogs when scrolling on vanilla but not with the scrolling patch, and entities work. I also don't experience CPU-hogs from the over-link-quick-switch-from arrow-to-hand test. Maybe this is related to something not installed or not configured in your machine... (This system has: x11proto-gl-dev, freeglut3, freeglut3-dev, libxft2, libxft2-dev, libgl1-mesa-{dev,dri,glx} among others that I don't know whether relevant or not! ;).
BTW, I'm testing on a fast machine. It will be interesting to see what the old one produces.
[Johannes wrote] Mouse wheel is a matter of binding. Place your mouse pointer over the scroll bar and use the mouse wheel (it needs to be bound to the viewport).
It is slow, because the default linesize (the amount a scrollbar scrolls when pushing on the arrow is 1. I could change that, but what would be a reasonable value?
The height of a word in normal text (i.e. line height). We know the font and font factor from dillorc2 (or defaults). This number is a good candidate.
Ok, I will try to add this.
---------------- Side Note to all: Have you right-clicked over the search button? :-)
Hey cool! Is nobody else experiencing the problems with negative hash-values? Anyway, here is the small patch again: diff -r a9312b9e22c6 dw-testbed-0.0.43j/lout/container.hh --- a/dw-testbed-0.0.43j/lout/container.hh Mon Oct 01 18:37:12 2007 +0200 +++ b/dw-testbed-0.0.43j/lout/container.hh Mon Oct 01 19:35:34 2007 +0200 @@ -212,7 +212,7 @@ private: private: inline int calcHashValue(object::Object *key) { - return key->hashValue() % tableSize; + return abs(key->hashValue()) % tableSize; } protected: Cheers, Johannes