[Scummvm-git-logs] scummvm master -> ce89406b9a7e68acefae307281dc98e97a7bca88

sev- sev at scummvm.org
Wed Oct 12 23:28:54 CEST 2016


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
ce89406b9a GRAPHICS: Fix BDF font referencing on font generation


Commit: ce89406b9a7e68acefae307281dc98e97a7bca88
    https://github.com/scummvm/scummvm/commit/ce89406b9a7e68acefae307281dc98e97a7bca88
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2016-10-12T23:27:50+02:00

Commit Message:
GRAPHICS: Fix BDF font referencing on font generation

Changed paths:
    graphics/fonts/bdf.cpp
    graphics/macgui/macfontmanager.cpp
    graphics/macgui/macfontmanager.h



diff --git a/graphics/fonts/bdf.cpp b/graphics/fonts/bdf.cpp
index 34155fc..93b64d8 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 52e8258..21f9c08 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 3e90818..38ea3f3 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;





More information about the Scummvm-git-logs mailing list