summaryrefslogtreecommitdiff
path: root/src/fontfile
diff options
context:
space:
mode:
authorDaniel Stone <daniel@fooishbar.org>2006-07-19 18:03:58 -0400
committerDaniel Stone <daniels@endtroducing.fooishbar.org>2006-07-19 18:03:58 -0400
commitfead0fa3bae0ba5a4744d6a2aee1caa08019f344 (patch)
tree41c20853fe4d6e1085fb026890f11acbd8eb9f3f /src/fontfile
parent13422d0e0468f2ddf7cb74cbf925e5bcf4551ae7 (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.c23
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);