diff options
author | Daniel Stone <daniel@fooishbar.org> | 2006-07-19 18:03:58 -0400 |
---|---|---|
committer | Daniel Stone <daniels@endtroducing.fooishbar.org> | 2006-07-19 18:03:58 -0400 |
commit | fead0fa3bae0ba5a4744d6a2aee1caa08019f344 (patch) | |
tree | 41c20853fe4d6e1085fb026890f11acbd8eb9f3f /src/fontfile | |
parent | 13422d0e0468f2ddf7cb74cbf925e5bcf4551ae7 (diff) |
use OpenBitmap when available
Don't just use OpenScalable unconditionally. Fixes builtin fonts.
Diffstat (limited to 'src/fontfile')
-rw-r--r-- | src/fontfile/fontfile.c | 23 |
1 files 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); |