Re: Stroke adjust for filled rectangles?
Andreas Lobinger <[email protected]>
| Newsgroups | gmane.comp.lib.cairo |
|---|---|
| Message-ID | <CAFfexC2a9XLLfJMKQFEVN3e6diehKgMpXhm6vLq-guL_O611zg@mail.gmail.com> |
Hello colleague, first to your question, if it would be possible to detect the case; closely looking at the rendering model which consecutively puts paint onto a surface it think it would be hard to do. The detection would need to look at consecutive stroke and fill operations and delaying the rendering until decision. Traditionally the concept of stroke adjustment is considered in rendering lines and in the first place i'd rather try to find a path construction of stems that is essentially a line stroked, that would have the bonus that you can at least ask the PDF viewer to apply stroke adjustment and see what it tries to forward to cairo path construction. Because if i understand 10.6.5 of the PDF spec (iso version) correctly stroke adjustment happens before rendering (so in pdf interpretation) and not in rendering (cairo). Putting the stems into a font would also be an idea. Usually the font rendering (to bitmap) is more advanced in handling pixel problems for line widths. On Fri, Jul 24, 2015 at 10:06 AM, David Kastrup <[email protected]> wrote: > > Hi, > > I encountered the problem in the past that note stems in LilyPond render > rather inconsistently and generally too thick in PDF viewers using Cairo. > > Now the stems are rounded rectangles, and they are unsurprisingly done > by stroking a closed rectangle with a circular pen (or rather with a > given line thickness and rounded corners) and then filling the path. > > Now what happens is that the stroke adjustment for the left and right > edges of the note stem is applied independently, based on the visual > thickness of the outline rather than of the resulting filled shape. > Which causes more rather than less jitter on the overall thickness of > the stem. Also the antialiasing considers left stroke, right stroke, > and filling as independent applications of ink, resulting in too much > ink applied when the scale of the stem would make it cover a breadth of > 2 pixels or less. > > So the basic question is whether it would be possible to detect the case > of slender and/or filled rectangular shapes to a sufficient degree to > make their edges and innards render like one coherent entity rather than > five independent ones (4 edges and one inner rectangle). > > -- > David Kastrup > > -- > cairo mailing list > [email protected] > http://lists.cairographics.org/mailman/listinfo/cairo -- cairo mailing list [email protected] http://lists.cairographics.org/mailman/listinfo/cairo