On Thursday 28 August 2008 15:43:34 Alexis Ménard wrote: > I'm quite interrested by understand the difference of the two types QPen, i > mean uses cases and so > > On Thu, Aug 28, 2008 at 9:30 PM, Diego Iastrubni wrote: > > can any one of you graphics ninjas explain to us n00bz the difference > > between a cosmetic pen and a non cosmetic pen...? I think there's a lot of documentation for them in the Qt documentation of QPen. Instead of paraphrasing it here, I'm going to add some thing about it here. So 1) check the QPen docs, 2) read the below :) In vector graphics cosmetic pens are known as the "non-scaling stroke" (in the SVG spec and in the OpenVG spec). When stroking (or in Qt terms "when drawing the path with a QPen") the rendering engine actually generates a second path. The path is essentially an outline of the path that we want to stroke. The generation of the outline is governed by some parameters of the stroke/QPen, in particular those are end caps, join style and the width. When rendering a path the path is decomposed and each point is transformed by a transformation matrix. So if the stroke is not transformable that means that for all vector graphics api, you'll avoid a matrix multiplication for every element in a path (which for larger paths will be visible). More over the cosmetic pen of width 0 has a special meaning in Qt because it means that as long as round join and caps aren't used instead of a complex path the outline can be imitated with a set of line (a polyline). That means that rendering a stroke equals rendering a few lines, versus rendering a very complex polygon (e.g. on X11 Qt uses XDrawLine instead of tessellating the path and using XRenderCompositeTrapezoids when it's rendering a opaque cosmetic pen). Hope that helps. z _______________________________________________ Plasma-devel mailing list Plasma-devel@kde.org https://mail.kde.org/mailman/listinfo/plasma-devel