diff options
| author | megagrump <[email protected]> | 2022-03-01 11:26:48 +0100 |
|---|---|---|
| committer | GitHub <[email protected]> | 2022-03-01 11:26:48 +0100 |
| commit | 7584ce6f48ae58c625fce1718319d7d046503c41 (patch) | |
| tree | 9c3168bedc15a264d9ae3691058971681efbb4af /src/rtext.c | |
| parent | 7bbaba38e4b42cf00719c17832669e5d6dd96229 (diff) | |
| download | raylib-7584ce6f48ae58c625fce1718319d7d046503c41.tar.gz raylib-7584ce6f48ae58c625fce1718319d7d046503c41.zip | |
Increase atlas size guesstimate; print warnings if atlas size is too small (#2365)
Diffstat (limited to 'src/rtext.c')
| -rw-r--r-- | src/rtext.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/rtext.c b/src/rtext.c index 8c536633..590a8c03 100644 --- a/src/rtext.c +++ b/src/rtext.c @@ -683,7 +683,7 @@ Image GenImageFontAtlas(const GlyphInfo *chars, Rectangle **charRecs, int glyphC // so image size would result bigger than default font type float requiredArea = 0; for (int i = 0; i < glyphCount; i++) requiredArea += ((chars[i].image.width + 2*padding)*(chars[i].image.height + 2*padding)); - float guessSize = sqrtf(requiredArea)*1.3f; + float guessSize = sqrtf(requiredArea)*1.4f; int imageSize = (int)powf(2, ceilf(logf((float)guessSize)/logf(2))); // Calculate next POT atlas.width = imageSize; // Atlas bitmap width @@ -730,7 +730,19 @@ Image GenImageFontAtlas(const GlyphInfo *chars, Rectangle **charRecs, int glyphC // height is bigger than fontSize, it could be up to (fontSize + 8) offsetY += (fontSize + 2*padding); - if (offsetY > (atlas.height - fontSize - padding)) break; + if (offsetY > (atlas.height - fontSize - padding)) + { + for(int j = i + 1; j < glyphCount; j++) + { + TRACELOG(LOG_WARNING, "FONT: Failed to package character (%i)", j); + // make sure remaining recs contain valid data + recs[j].x = 0; + recs[j].y = 0; + recs[j].width = 0; + recs[j].height = 0; + } + break; + } } } } |
