void handleFilePages(char *fname, int pgc, PgInfo *pgv) { FILE *infile; int i; infile = fopen(fname, "r"); if (infile == NULL) { fprintf(stderr, "%s: Cannot read file %s\n", progName, fname); exit(1); } for (i = 0; i < pgc; i++) handlePage(infile, pgv + i); fclose(infile); }
FontFace * FontImporter::loadFont(const std::string & filename) { std::ifstream in(filename, std::ios::in | std::ios::binary); if (!in) { return nullptr; } FontFace * font = new FontFace(); std::string line; std::string identifier; while (std::getline(in, line)) { std::stringstream ss(line); if (std::getline(ss, identifier, ' ')) { if (identifier == "info") { handleInfo(ss, font); } else if (identifier == "common") { handleCommon(ss, font); } else if (identifier == "page") { handlePage(ss, font, filename); } else if (identifier == "chars") { handleChars(ss, font); } else if (identifier == "char") { handleChar(ss, font); } else if (identifier == "kernings") { handleKernings(ss, font); } else if (identifier == "kerning") { handleKerning(ss, font); } else { assert(false); } } else { assert(false); } } if (!font->glyphTexture()) { delete font; return nullptr; } return font; }