int main(int argc, char *argv[]) { flubStbFont_t font; FILE *fp; int pixelBufLength; int mono; int monoIndex; if((fp = fopen(STRINGIFY(FONT2BIN_STB_BIN_FILE), "wb")) == NULL) { fprintf(stderr, "ERROR: Failed to open output file \"%s\".\n", STRINGIFY(FONT2BIN_STB_BIN_FILE)); return 1; } printf("INFO: Generating [%s]...\n", STRINGIFY(FONT2BIN_STB_BIN_FILE)); memset(&font, 0, sizeof(flubStbFont_t)); font.version = FLUB_STB_BIN_FONT_VERSION; font.name = STRINGIFY(FONT2BIN_FONT_NAME); font.namelen = strlen(font.name) + 1; font.size = FONT2BIN_FONT_SIZE; font.bold = FONT2BIN_FONT_BOLD; font.bmpWidth = STB_SOMEFONT_BITMAP_WIDTH; font.bmpHeight = STB_SOMEFONT_BITMAP_HEIGHT; font.bmpHeightPow2 = STB_SOMEFONT_BITMAP_HEIGHT_POW2; font.firstChar = STB_SOMEFONT_FIRST_CHAR; font.numChars = STB_SOMEFONT_NUM_CHARS; font.lineSpacing = STB_SOMEFONT_LINE_SPACING; pixelBufLength = calculatePixelBufLength(); monoIndex = writeFontHeader(&font, fp); writeFontPixels(pixelBufLength, fp); mono = writeFontMetrics(fp); if(FONT2BIN_FONT_MONO) { writeMonoWidth(monoIndex, mono, fp); } fclose(fp); printf("INFO: Generated binary STB font file for %s.\n", STRINGIFY(FONT2BIN_BASE)); return 0; }
static void writeBuiltinFont(FILE * const ofP) { unsigned int relativeCodePoint; struct ppmd_fontHeader fontHeader; memcpy(fontHeader.signature, "ppmdfont", sizeof(fontHeader.signature)); fontHeader.format = 0x01; fontHeader.characterCount = 95; fontHeader.firstCodePoint = 32; writeFontHeader(ofP, fontHeader); for (relativeCodePoint = 0; relativeCodePoint < fontHeader.characterCount; ++relativeCodePoint) { writeBuiltinCharacter(ofP,relativeCodePoint); } }