From fead0fa3bae0ba5a4744d6a2aee1caa08019f344 Mon Sep 17 00:00:00 2001 From: Daniel Stone Date: Wed, 19 Jul 2006 18:03:58 -0400 Subject: [PATCH] use OpenBitmap when available Don't just use OpenScalable unconditionally. Fixes builtin fonts. --- src/fontfile/fontfile.c | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/src/fontfile/fontfile.c b/src/fontfile/fontfile.c index 6bfee87..914f8cd 100644 --- a/src/fontfile/fontfile.c +++ b/src/fontfile/fontfile.c @@ -353,6 +353,7 @@ FontFileOpenFont (pointer client, FontPathElementPtr fpe, Mask flags, tmpName.ndashes = entry->name.ndashes; } } + if (entry) { noSpecificSize = FALSE; /* TRUE breaks XLFD enhancements */ @@ -436,9 +437,16 @@ FontFileOpenFont (pointer client, FontPathElementPtr fpe, Mask flags, } else { strcpy (fileName, dir->directory); strcat (fileName, scalable->fileName); - ret = (*scalable->renderer->OpenScalable) (fpe, pFont, - flags, entry, fileName, &vals, format, fmask, - non_cachable_font); + if (scalable->renderer->OpenScalable) { + ret = (*scalable->renderer->OpenScalable) (fpe, pFont, + flags, entry, fileName, &vals, format, fmask, + non_cachable_font); + } + else if (scalable->renderer->OpenBitmap) { + ret = (*scalable->renderer->OpenBitmap) (fpe, pFont, + flags, entry, fileName, format, fmask, + non_cachable_font); + } } /* In case rasterizer does something bad because of @@ -1007,8 +1015,13 @@ FontFileListOneFontWithInfo (pointer client, FontPathElementPtr fpe, } else { strcpy (fileName, dir->directory); strcat (fileName, scalable->fileName); - ret = (*scalable->renderer->GetInfoScalable) - (fpe, *pFontInfo, entry, &tmpName, fileName, &vals); + if (scalable->renderer->GetInfoScalable) + ret = (*scalable->renderer->GetInfoScalable) + (fpe, *pFontInfo, entry, &tmpName, fileName, + &vals); + else if (scalable->renderer->GetInfoBitmap) + ret = (*scalable->renderer->GetInfoBitmap) + (fpe, *pFontInfo, entry, fileName); } if (ranges) { xfree(ranges);