The latest version of the OpenType specification introduced few tables that allow for having multi-colored glyphs.
The simplest of them is COLR/CPAL (https://www.microsoft.com/typography/otspec/colr.htm, https://www.microsoft.com/typography/otspec/cpal.htm) which uses layers of normal glyphs and color palettes to assign colors to each.
It shouldn’s be hard to parse the tables in SalGraphics::DrawTextLayout() and draw each layer glyph with its assigned color. We might want to wait until HarfBuzz supports these fonts to avoid parsing the tables on our own.
This would allow supporting fonts like Amiri Quran Colored or several of the new Emoji fonts cross-platform (Windows 8.1+ already supports this format, though I don’t think we make use of that support).
Steps to Reproduce:
Try using Amiri Quran Colored font with Arabic text.
Text comes out using the foreground color.
Text should use the colors defined in the font.
User Profile Reset:
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:50.0) Gecko/20100101 Firefox/50.0
We can expect this pull request will be merged to get support for CPAL table.
We can also explore how Firefox implemented.