diff --git a/src/fontstash.h b/src/fontstash.h index 0b07889..90b354a 100644 --- a/src/fontstash.h +++ b/src/fontstash.h @@ -797,6 +797,17 @@ int fonsAddFallbackFont(FONScontext* stash, int base, int fallback) return 0; } +void fonsResetFallbackFont(FONScontext* stash, int base) +{ + int i; + + FONSfont* baseFont = stash->fonts[base]; + baseFont->nfallbacks = 0; + baseFont->nglyphs = 0; + for (i = 0; i < FONS_HASH_LUT_SIZE; i++) + baseFont->lut[i] = -1; +} + void fonsSetSize(FONScontext* stash, float size) { fons__getState(stash)->size = size; diff --git a/src/nanovg.c b/src/nanovg.c index cfdb8d2..67482d0 100644 --- a/src/nanovg.c +++ b/src/nanovg.c @@ -2325,6 +2325,16 @@ int nvgAddFallbackFont(NVGcontext* ctx, const char* baseFont, const char* fallba return nvgAddFallbackFontId(ctx, nvgFindFont(ctx, baseFont), nvgFindFont(ctx, fallbackFont)); } +void nvgResetFallbackFontsId(NVGcontext* ctx, int baseFont) +{ + fonsResetFallbackFont(ctx->fs, baseFont); +} + +void nvgResetFallbackFonts(NVGcontext* ctx, const char* baseFont) +{ + nvgResetFallbackFontsId(ctx, nvgFindFont(ctx, baseFont)); +} + // State setting void nvgFontSize(NVGcontext* ctx, float size) { diff --git a/src/nanovg.h b/src/nanovg.h index 2c01ff9..48cc19f 100644 --- a/src/nanovg.h +++ b/src/nanovg.h @@ -565,6 +565,12 @@ int nvgAddFallbackFontId(NVGcontext* ctx, int baseFont, int fallbackFont); // Adds a fallback font by name. int nvgAddFallbackFont(NVGcontext* ctx, const char* baseFont, const char* fallbackFont); +// Resets fallback fonts by handle. +void nvgResetFallbackFontsId(NVGcontext* ctx, int baseFont); + +// Resets fallback fonts by name. +void nvgResetFallbackFonts(NVGcontext* ctx, const char* baseFont); + // Sets the font size of current text style. void nvgFontSize(NVGcontext* ctx, float size);