Re: [cairo] Color fonts

Right. In the future we would want to make it show glyphs in the input order, ie. not separate color vs non-color. That's the order required by CSS for example. In a show-text-glyphs call with CAIRO_TEXT_CLUSTER_FLAG_BACKWARD, it might be desirable to show back-to-front.

On 07.07.2017 15:23, Matthias Clasen wrote:
> On Sat, Jul 1, 2017 at 2:25 AM, Uli Schlachter <psychon@xxxxxx> wrote:
>> On 30.06.2017 17:29, Behdad Esfahbod wrote:
>>> On Jun 30, 2017 7:51 PM, "Matthias Clasen" <mclasen@xxxxxxxxxx> wrote:
>>> On Fri, 2017-06-30 at 17:02 +0200, Uli Schlachter wrote:>>>> On 28.06.2017 14:23, Behdad Esfahbod wrote:
>>>>> All of you have asked me about the status of color fonts in
>>>>> cairo. There's
>>>>> some discussion here:
>>>>
>>>> what was the solution to make this fit into cairo's drawing model?
>>>> Text
>>>> / glyphs are used as a mask and a mask does not have colors.
>>>>
>>>
>>> There is no solution to that. The assumption in cairo's drawing model
>>> about glyphs/fonts has simply been invalidated by reality.
>>>
>>>
>>> Correct.
>>
>> Okay... so what is the new model? What happens when I draw a color glyph
>> with operator XOR and a red source?
>
>
> The red source is ignored for color glyphs because they are used as the
> source.

Hi again,

I just came up with another question: How are overlapping glyphs handled?

Let's say I have a red glyph and a blue glyph and I draw them in such a
way that they overlap. Let's say this additionally overlaps with a
non-colored glyph in the same position and I use a green source with 50%
alpha (cairo_set_source_rgba(cr, 0, 1, 0, 0.5)).

What's the visible result?

Here is what my implementation does: It renders the color glyphs, in order, followed by the non-color glyphs.

In practice, I don't think the case of mixed color and non-color glyphs in the same call will be all that common.Most apps will explicitly set a color font just for the emoji and they won't render regular text with an emoji font,with the result that runs of color glyphs and non-color glyphs will typically be in separate calls.