freetype
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Google's NotoColorEmoji-Regular.ttf not rending


From: Paul Sheer
Subject: Google's NotoColorEmoji-Regular.ttf not rending
Date: Thu, 15 Sep 2022 12:47:58 -0500

Hi!

I have had great success with Google's older NotoColorEmoji.ttf and
NotoEmoji-Regular.ttf released by Google in 2019.

However they have since updated their fonts. They now have a font
NotoColorEmoji-Regular.ttf

My freetype 2.12.1 configure completes with,

       Library configuration:
         external zlib: yes (pkg-config)
         bzip2:         yes (autoconf test)
         libpng:        yes (pkg-config)
         harfbuzz:      yes (HARFBUZZ_CFLAGS and HARFBUZZ_LIBS)
         brotli:        yes (BROTLI_CFLAGS and BROTLI_LIBS)
         pthread:       yes


I use the code below to load 😀 0x1f600. Further below is the gdb dump
of the glyph struct with the non-working and working font when trying
to load the same unicode code-point.

As you can see the bitmap struct is not populated.

Can anyone help?

Kind regards,

Paul

---------------------------

        if ((g = FT_Get_Char_Index(face, t))) {
            error = FT_Load_Glyph(face, g, FT_LOAD_COLOR);
            if (!error && face->glyph) {
                error = FT_Render_Glyph(face->glyph, FT_RENDER_MODE_NORMAL);
                if (!error && face->glyph->bitmap.width) {
                    found = 1;
                }
            }
        }


---------------------------


(gdb) p *face->glyph

$5 = {
    library = 0x5555558d35e0,
    face = 0x5555559e02e0,
    next = 0x0,
    reserved = 0,
    generic = {
        data = 0x0,
        finalizer = 0x0,
    }
    metrics = {
        width = 0,
        height = 0,
        horiBearingX = 0,
        horiBearingY = 0,
        horiAdvance = 1024,
        vertBearingX = -576,
        vertBearingY = 0,
        vertAdvance = 1024,
    }
    linearHoriAdvance = 1060800,
    linearVertAdvance = 1040000,
    advance = {
        x = 1024,
        y = 0,
    }
    format = FT_GLYPH_FORMAT_BITMAP,
    bitmap = {
        rows = 0,
        width = 0,
        pitch = 0,
        buffer = 0x0,
        num_grays = 256,
        pixel_mode = 2 '\002',
        palette_mode = 0 '\000',
        palette = 0x0,
    }
    bitmap_left = 0,
    bitmap_top = 0,
    outline = {
        n_contours = 0,
        n_points = 0,
        points = 0x0,
        tags = 0x0,
        contours = 0x0,
        flags = 0,
    }
    num_subglyphs = 0,
    subglyphs = 0x0,
    control_data = 0x0,
    control_len = 0,
    lsb_delta = 0,
    rsb_delta = 0,
    other = 0x0,
    internal = 0x555555945790,
}


(gdb) p *face->glyph

$1 = {
    library = 0x5555558d35e0,
    face = 0x5555559e02a0,
    next = 0x0,
    reserved = 0,
    generic = {
        data = 0x0,
        finalizer = 0x0,
    }
    metrics = {
        width = 8704,
        height = 8192,
        horiBearingX = 0,
        horiBearingY = 6464,
        horiAdvance = 8704,
        vertBearingX = 0,
        vertBearingY = 0,
        vertAdvance = 0,
    }
    linearHoriAdvance = 0,
    linearVertAdvance = 0,
    advance = {
        x = 8704,
        y = 0,
    }
    format = FT_GLYPH_FORMAT_BITMAP,
    bitmap = {
        rows = 128,
        width = 136,
        pitch = 544,
        buffer = 0x555555a566a0 "",
        num_grays = 256,
        pixel_mode = 7 '\a',
        palette_mode = 0 '\000',
        palette = 0x0,
    }
    bitmap_left = 0,
    bitmap_top = 101,
    outline = {
        n_contours = 0,
        n_points = 0,
        points = 0x0,
        tags = 0x0,
        contours = 0x0,
        flags = 0,
    }
    num_subglyphs = 0,
    subglyphs = 0x0,
    control_data = 0x0,
    control_len = 0,
    lsb_delta = 0,
    rsb_delta = 0,
    other = 0x0,
    internal = 0x555555945790,
}



reply via email to

[Prev in Thread] Current Thread [Next in Thread]