diff options
author | Eugene Sandulenko | 2016-10-12 23:27:50 +0200 |
---|---|---|
committer | Eugene Sandulenko | 2016-10-12 23:27:50 +0200 |
commit | ce89406b9a7e68acefae307281dc98e97a7bca88 (patch) | |
tree | d6d2315b2cd65f0ea43eab8978610631333cc436 /graphics | |
parent | b5d4c302d0661fe1bfd5144a5eab4d1e3b02ffab (diff) | |
download | scummvm-rg350-ce89406b9a7e68acefae307281dc98e97a7bca88.tar.gz scummvm-rg350-ce89406b9a7e68acefae307281dc98e97a7bca88.tar.bz2 scummvm-rg350-ce89406b9a7e68acefae307281dc98e97a7bca88.zip |
GRAPHICS: Fix BDF font referencing on font generation
Diffstat (limited to 'graphics')
-rw-r--r-- | graphics/fonts/bdf.cpp | 6 | ||||
-rw-r--r-- | graphics/macgui/macfontmanager.cpp | 8 | ||||
-rw-r--r-- | graphics/macgui/macfontmanager.h | 2 |
3 files changed, 10 insertions, 6 deletions
diff --git a/graphics/fonts/bdf.cpp b/graphics/fonts/bdf.cpp index 34155fcec1..93b64d8225 100644 --- a/graphics/fonts/bdf.cpp +++ b/graphics/fonts/bdf.cpp @@ -706,7 +706,7 @@ BdfFont *BdfFont::scaleFont(BdfFont *src, int newSize) { return NULL; } - if (src->getFontSize()) { + if (src->getFontSize() == 0) { warning("Requested to scale 0 size font"); return NULL; } @@ -735,11 +735,13 @@ BdfFont *BdfFont::scaleFont(BdfFont *src, int newSize) { boxes[i].xOffset = src->_data.boxes[i].xOffset; boxes[i].yOffset = src->_data.boxes[i].yOffset; } + data.boxes = boxes; byte *advances = new byte[data.numCharacters]; for (int i = 0; i < data.numCharacters; ++i) { advances[i] = src->_data.advances[i]; } + data.advances = advances; byte **bitmaps = new byte *[data.numCharacters]; @@ -758,8 +760,6 @@ BdfFont *BdfFont::scaleFont(BdfFont *src, int newSize) { } data.bitmaps = bitmaps; - data.advances = advances; - data.boxes = boxes; return new BdfFont(data, DisposeAfterUse::YES); } diff --git a/graphics/macgui/macfontmanager.cpp b/graphics/macgui/macfontmanager.cpp index 52e82584c7..21f9c08160 100644 --- a/graphics/macgui/macfontmanager.cpp +++ b/graphics/macgui/macfontmanager.cpp @@ -257,15 +257,19 @@ void MacFontManager::generateFontSubstitute(MacFont &macFont) { } // Now next smaller font, which is the biggest we have - generateFont(macFont, MacFont(macFont.getId(), maxSize, macFont.getSlant())); + generateFont(macFont, *_fontRegistry[getFontName(macFont.getId(), maxSize, macFont.getSlant())]); } -void MacFontManager::generateFont(MacFont toFont, MacFont fromFont) { +void MacFontManager::generateFont(MacFont &toFont, MacFont &fromFont) { debugN("Found font substitute for font '%s' ", getFontName(toFont)); debug("as '%s'", getFontName(fromFont)); Graphics::BdfFont *font = Graphics::BdfFont::scaleFont(fromFont.getBdfFont(), toFont.getSize()); + if (!font) { + warning("Failed to generate font '%s'", getFontName(toFont)); + } + toFont.setGenerated(true); toFont.setBdfFont(font); diff --git a/graphics/macgui/macfontmanager.h b/graphics/macgui/macfontmanager.h index 3e90818cda..38ea3f342c 100644 --- a/graphics/macgui/macfontmanager.h +++ b/graphics/macgui/macfontmanager.h @@ -104,7 +104,7 @@ private: const char *getFontName(MacFont &font); void generateFontSubstitute(MacFont &macFont); - void generateFont(MacFont toFont, MacFont fromFont); + void generateFont(MacFont &toFont, MacFont &fromFont); private: bool _builtInFonts; |