// can't unload TTFs, so we'll need to make sure we don't keep reloading them, sadly void* TTF_Load(Asset &asset) { TTFFont_t *fnt = new TTFFont_t(); if (ctx == nullptr) { ctx = glfonsCreate(512, 512, FONS_ZERO_TOPLEFT); } int found = fonsGetFontByName(ctx, asset.name); if (found != FONS_INVALID) { fnt->valid = true; fnt->hnd = found; found++; return fnt; } unsigned char *font; auto sz = FS_ReadFile(asset.path, (void **)&font); if (sz == -1) { Con_Errorf(ERR_GAME, "couldn't load file %s", asset.path); return nullptr; } int hnd = fonsAddFontMem(ctx, asset.name, font, sz, 1); if (hnd < 0) { return nullptr; } fnt->valid = true; fnt->hnd = hnd; return (void*)fnt; }
bool GLHelper::initFont() { if (myFont == nullptr) { myFont = glfonsCreate(2048, 2048, FONS_ZERO_BOTTOMLEFT); if (myFont != nullptr) { const int fontNormal = fonsAddFontMem(myFont, "medium", data_font_Roboto_Medium_ttf, data_font_Roboto_Medium_ttf_len, 0); fonsSetFont(myFont, fontNormal); fonsSetSize(myFont, (float)myFontSize); } } return myFont != nullptr; }