summaryrefslogtreecommitdiff
path: root/native
diff options
context:
space:
mode:
Diffstat (limited to 'native')
-rw-r--r--native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c18
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 );