[webkit-dev] restructuring, kwq and QPainter
Maciej Stachowiak
mjs at apple.com
Fri Feb 24 12:11:45 PST 2006
Hi Leo,
On Feb 24, 2006, at 9:23 AM, Leo Savernik wrote:
> Due to the latest restructurings of WebCore am I right of the
> impression that
> Apple is going to outphase kwq completely?
Yes, that's our current plan.
> In this case I have to remark that painting is a speed-critical
> path in khtml
> used under KDE. Therefore I propose that the painting routines of
> the render
> tree are not replaced by another abstraction layer, but staying as
> close as
> possible to Qt4's QPainter (with provisions for platform-dependent
> extensions, of course).
I understand your concern. But I don't think the abstraction layer
will introduce a performance penalty. On Mac OS X we've had an
abstraction layer from QPainter to CoreGraphics since we started the
project. Earlier, much of the code actually went through double
indirection, from QPainter to AppKit Objective-C classes, to
CoreGraphics.
We regularly do detailed profiling and we have never found the
abstraction layer to incur a speed penalty. There are practically no
samples in the wrapper functions. All the time for graphics
operations is spent in the actual low-level graphics code, doing
things like blitting, drawing glyphs, measuring text, etc.
It may be that for KDE the abstraction layer will actually incur a
speed penalty, whereas on Mac OS X it doesn't. But I think this is
highly unlikely. If we saw actual measuements to that effect we could
reconsider.
Another thing to keep in mind is that having the abstraction layer
makes it easier to experiment with other graphics systems. For
example, it may be that even for the KDE port using a library like
Amarinth or Cairo would be faster than the native QPainter. The
graphics abstraction will make it easier to try this while still
linking to Qt.
Regards,
Maciej
More information about the webkit-dev
mailing list