aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugene Sandulenko2016-10-12 23:27:50 +0200
committerEugene Sandulenko2016-10-12 23:27:50 +0200
commitce89406b9a7e68acefae307281dc98e97a7bca88 (patch)
treed6d2315b2cd65f0ea43eab8978610631333cc436
parentb5d4c302d0661fe1bfd5144a5eab4d1e3b02ffab (diff)
downloadscummvm-rg350-ce89406b9a7e68acefae307281dc98e97a7bca88.tar.gz
scummvm-rg350-ce89406b9a7e68acefae307281dc98e97a7bca88.tar.bz2
scummvm-rg350-ce89406b9a7e68acefae307281dc98e97a7bca88.zip
GRAPHICS: Fix BDF font referencing on font generation
-rw-r--r--graphics/fonts/bdf.cpp6
-rw-r--r--graphics/macgui/macfontmanager.cpp8
-rw-r--r--graphics/macgui/macfontmanager.h2
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;