aboutsummaryrefslogtreecommitdiff
path: root/devtools
diff options
context:
space:
mode:
authorEugene Sandulenko2016-10-05 23:24:53 +0200
committerEugene Sandulenko2016-10-05 23:24:53 +0200
commit15e499772032ae050627e1558904f119815ec51f (patch)
tree64c0a244ea14ec94a2f4789d8a4d85006d617167 /devtools
parent3f30e2dd06dbdf0d12849a9850a21e84b60f2b6c (diff)
downloadscummvm-rg350-15e499772032ae050627e1558904f119815ec51f.tar.gz
scummvm-rg350-15e499772032ae050627e1558904f119815ec51f.tar.bz2
scummvm-rg350-15e499772032ae050627e1558904f119815ec51f.zip
GRAPHICS: Load Face Name from BDF files
Also adjust the devtools and built-in fonts accordingly.
Diffstat (limited to 'devtools')
-rw-r--r--devtools/convbdf.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/devtools/convbdf.cpp b/devtools/convbdf.cpp
index 59ea5cc4e5..c84907659d 100644
--- a/devtools/convbdf.cpp
+++ b/devtools/convbdf.cpp
@@ -38,6 +38,7 @@ struct BdfBoundingBox {
};
struct BdfFont {
+ char *faceName;
int maxAdvance;
int height;
BdfBoundingBox defaultBox;
@@ -62,6 +63,7 @@ struct BdfFont {
delete[] bitmaps;
delete[] advances;
delete[] boxes;
+ delete[] faceName;
}
};
@@ -159,6 +161,15 @@ int main(int argc, char *argv[]) {
memset(font.bitmaps, 0, sizeof(unsigned char *) * font.numCharacters);
font.advances = new unsigned char[font.numCharacters];
font.boxes = new BdfBoundingBox[font.numCharacters];
+ } else if (hasPrefix(line, "FACE_NAME \"")) {
+ font.faceName = new char[line.size()]; // We will definitely fit here
+ strncpy(font.faceName, &line.c_str()[11], line.size() - 1);
+ char *p = &font.faceName[strlen(font.faceName)];
+ while (p != font.faceName && *p != '"')
+ p--;
+ if (p == font.faceName)
+ error("Invalid FACE_NAME");
+ *p = '\0'; // Remove last quote
} else if (hasPrefix(line, "FONT_ASCENT ")) {
if (sscanf(line.c_str(), "FONT_ASCENT %d", &font.ascent) != 1)
error("Invalid FONT_ASCENT");
@@ -481,6 +492,7 @@ int main(int argc, char *argv[]) {
printf("// Font structure\n"
"static const BdfFontData desc = {\n"
+ "\"%s\", // Face name\n"
"\t%d, // Max advance\n"
"\t%d, // Height\n"
"\t{ %d, %d, %d, %d }, // Bounding box\n"
@@ -491,7 +503,7 @@ int main(int argc, char *argv[]) {
"\t%d, // Characters\n"
"\n"
"\tbitmapTable, // Bitmaps\n",
- font.maxAdvance, font.height, font.defaultBox.width,
+ font.faceName, font.maxAdvance, font.height, font.defaultBox.width,
font.defaultBox.height, font.defaultBox.xOffset, font.defaultBox.yOffset,
font.ascent, font.firstCharacter, font.defaultCharacter, font.numCharacters);