Exemplo n.º 1
0
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;
}
Exemplo n.º 2
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);
    }
}