summaryrefslogtreecommitdiffhomepage
path: root/src/rtext.c
diff options
context:
space:
mode:
authormegagrump <[email protected]>2022-03-01 11:26:48 +0100
committerGitHub <[email protected]>2022-03-01 11:26:48 +0100
commit7584ce6f48ae58c625fce1718319d7d046503c41 (patch)
tree9c3168bedc15a264d9ae3691058971681efbb4af /src/rtext.c
parent7bbaba38e4b42cf00719c17832669e5d6dd96229 (diff)
downloadraylib-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.c16
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;
+ }
}
}
}