Player icon indicating copy to clipboard operation
Player copied to clipboard

FreeType: Issues with Colored Fonts

Open ghost opened this issue 1 year ago • 5 comments

Player platform:

Windows, Android

Describe the issue in detail and how to reproduce it:

Windows: Using colored fonts results in the following error:

Debug: Couldn't load FreeType character 0x1f4d0
Error: Broken color font for glyph 0x1f4d0

Android: The font is completely ignored (although during startup, you can see that the console no longer prompts that the font was not found).

On Windows, I have tried other fonts (such as Google Noto), but the same issue occurred. Below are the main test fonts I used.

Attach files

Font.ttf.zip

I wrote a script to convert Minecraft's emojipack into TTF. See ttf_cbdt_mc_create.py.

Although the font works properly on the player versions for macOS, web, and Linux, I do not rule out the possibility of a data format error.

ghost avatar Sep 23 '24 10:09 ghost

image Windows can't open font.ttf, it tells that it's not a valid font file.

jetrotal avatar Sep 23 '24 14:09 jetrotal

I have been troubled by the font's data definition for a long time, and I still don't understand it. The current Font.ttf likely has many errors because I completely ignored the relationships between each field and only know that it can render in some Player builds.

ghost avatar Sep 23 '24 16:09 ghost

I had exactly the same problem when trying to understand colour fonts. There is no documentation and no tools :/

Ghabry avatar Sep 23 '24 17:09 Ghabry

Have you guys tested a tool called nanoemoji? https://github.com/googlefonts/nanoemoji

I read about it when researching about Serenity OS emojis: https://github.com/linusg/serenityos-emoji-font Idk if the input must be SVG files or if it can work with png as well.

jetrotal avatar Sep 23 '24 17:09 jetrotal

FreeType can only handle color fonts if appropriate backend is available and linked at compile time. That could be libPNG, rsvg, or what not. Something else has to decode or render color. Fonts with PNG are fairly trivial, other formats are major ordeal. For example FreeType can serve an embedded SVG document. Then you are on your own.

apodtele avatar Oct 23 '24 02:10 apodtele