[Kst] view object painting needs a rework
George Staikos
staikos at kde.org
Wed Dec 21 14:23:41 CET 2005
After a long frustrating battle with view object painting, I think we have
to rework it before this release. There are way too many hacks and way too
many broken things in there now. Fixing one thing breaks another. I have
some initial thoughts, but basically I think it should work something like
this:
ViewObject has two paint methods, one virtual, one not.
The non-virtual, called first, paints the children, subtracts them from the
mask, and passes the mask to the virtual one.
The virtual one calls all the base classes.
A mask is passed downward on the base class calls to avoid the double paint
flicker problem.
ViewBox no longer inherits from BorderedViewObject since it's not using
anything from there anyway.
Background painting and background transparency is done by KstViewObject.
There is only one transparent flag and it applies to the background.
Therefore the paint code in each object would look something like:
Base::paint(p, inMask - myMask);
setClipRegion(inMask & myMask);
paintMe(p);
This could further be simplified by putting it into KstViewObject and having
the Print/Export test in there to bypass clipping. The important question
is, do we lose flexibility that we might need by forcing this algorithm on
all objects?
--
George Staikos
KDE Developer http://www.kde.org/
Staikos Computing Services Inc. http://www.staikos.net/
More information about the Kst
mailing list