--- deliantra/Deliantra-Client/Client.xs 2006/05/12 01:47:03 1.78 +++ deliantra/Deliantra-Client/Client.xs 2006/05/14 22:24:14 1.79 @@ -1,5 +1,7 @@ #ifdef _WIN32 +# define _WIN32_WINNT 0x0500 // needed to get win2000 api calls # include +# include # pragma warning(disable:4244) #endif @@ -83,7 +85,7 @@ substitute_func (FcPattern *pattern, gpointer data) { FcPatternAddBool (pattern, FC_HINTING , 1); - FcPatternAddBool (pattern, FC_AUTOHINT, 0); + FcPatternAddBool (pattern, FC_AUTOHINT, 1); } static void @@ -406,13 +408,19 @@ for (civ = const_iv + sizeof (const_iv) / sizeof (const_iv [0]); civ-- > const_iv; ) newCONSTSUB (stash, (char *)civ->name, newSViv (civ->iv)); +} - ft2_fontmap = pango_ft2_font_map_new (); - pango_ft2_font_map_set_default_substitute ((PangoFT2FontMap *)ft2_fontmap, substitute_func, 0, 0); - ft2_context = pango_ft2_font_map_create_context ((PangoFT2FontMap *)ft2_fontmap); +void +pango_init () + CODE: +{ + // delayed, so it can pick up new fonts added by AddFontResourceEx + ft2_fontmap = pango_ft2_font_map_new (); + pango_ft2_font_map_set_default_substitute ((PangoFT2FontMap *)ft2_fontmap, substitute_func, 0, 0); + ft2_context = pango_ft2_font_map_create_context ((PangoFT2FontMap *)ft2_fontmap); - cairo_fontmap = pango_cairo_font_map_get_default (); - cairo_context = pango_cairo_font_map_create_context ((PangoCairoFontMap *)cairo_fontmap); + cairo_fontmap = pango_cairo_font_map_get_default (); + cairo_context = pango_cairo_font_map_create_context ((PangoCairoFontMap *)cairo_fontmap); } int @@ -561,6 +569,10 @@ add_font (char *file) CODE: FcConfigAppFontAddFile (0, (const FcChar8 *)file); /* no idea wether this is required */ +#ifdef _WIN32 + // cairo... sigh... requires win2000 + AddFontResourceEx (file, FR_PRIVATE, 0); +#endif void load_image_inline (SV *image_)