Re: [PATCH] Use the new pixman_glyph_cache_t API that will be in pixman 0.28.0

[email protected] (Søren Sandmann)
Newsgroups gmane.comp.lib.cairo
Message-ID <[email protected]>
Behdad Esfahbod <[email protected]> writes:

>> The *current* code - master as of today - doesn't do this, but I do
>> remember that the code used to do this, and I agree it's the right thing
>> to do.
>
> I see. I see the code is commented out.  Not sure where image show_glyphs is
> happening these days.

It eventually ends up in composite_glyphs() in cairo-image-compositor.c.
If you look at composite_glyphs_via_mask() you'll see that when the mask
is "upgraded" from a8 to a8r8g8b8, what happens is that first the
original a8 mask is SRCed to the new mask (basically losing the
content), and then new glyphs are ADDed directly without a white source.

So unless I am totally misreading that code, mixing a8 and a8r8g8b8
fonts doesn't work with current master.

>> It's easy enough to fix in the pixman code; the only concern is how
>> seriously we need to take the Render spec. It does seem to call for the
>> behavior of directly adding the glyphs, but that behavior is so useless
>> that I can't imagine how anyone could actually rely on it. So I guess
>
> I'm not sure I follow.  What behavior of Render are you referring to?

The spec for CompositeGlyphs* says:

    When mask-format is not None, glyphs are rendered in the following
    way with the effective mask computed in mask-format:

        tmp = temporary alpha picture
        Combine (Zero, tmp, tmp, None)
            for each glyph
                Combine (Add, tmp, glyph, None)
            Combine (op, dst, source, tmp)

which (a) allows for glyphsets to have a format of a8, and (b) allows
the mask to have a format of a8r8g8b8, and (c) doesn't say anything
about white sources.

On the other hand the spec also doesn't mention component alpha at all,
and the dst-x and dst-y that it has don't actually exist in the code, so
I'm not too worried about it. I don't think any sane applications are
relying on their glyphs being invisible.


Søren
--
cairo mailing list
[email protected]
http://lists.cairographics.org/mailman/listinfo/cairo
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.