diff options
Diffstat (limited to 'native')
-rw-r--r-- | native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c b/native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c index d1370bdc1..bc3beeb77 100644 --- a/native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c +++ b/native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c @@ -385,8 +385,22 @@ Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_getGlyphOutlineNative } FT_Get_Glyph( ft_face->glyph, &glyph ); - FT_Outline_Decompose (&(((FT_OutlineGlyph)glyph)->outline), - &ftCallbacks, path); + if (glyph->format == FT_GLYPH_FORMAT_OUTLINE) + { + FT_Outline_Decompose (&(((FT_OutlineGlyph)glyph)->outline), + &ftCallbacks, path); + } + else + { + char format[4]; + + format[0] = (glyph->format & 0xFF000000) >> 24; + format[1] = (glyph->format & 0x00FF0000) >> 16; + format[2] = (glyph->format & 0x0000FF00) >> 8; + format[3] = (glyph->format & 0x000000FF); + printf("WARNING: Unable to create outline for font %s %s of format %s\n", + ft_face->family_name, ft_face->style_name, format); + } FT_Done_Glyph( glyph ); pango_fc_font_unlock_face( font ); |