summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/renderer/tr_font.c21
1 files changed, 12 insertions, 9 deletions
diff --git a/src/renderer/tr_font.c b/src/renderer/tr_font.c
index 54a832d8..78a9c6e9 100644
--- a/src/renderer/tr_font.c
+++ b/src/renderer/tr_font.c
@@ -291,10 +291,10 @@ static glyphInfo_t *RE_ConstructGlyphInfo(unsigned char *imageOut, int *xOut, in
glyph.t2 = glyph.t + (float)scaled_height / 256;
*xOut += scaled_width + 1;
- }
- ri.Free(bitmap->buffer);
- ri.Free(bitmap);
+ ri.Free(bitmap->buffer);
+ ri.Free(bitmap);
+ }
return &glyph;
}
@@ -341,13 +341,12 @@ void RE_RegisterFont(const char *fontName, int pointSize, fontInfo_t *font) {
image_t *image;
qhandle_t h;
float max;
+ float glyphScale;
#endif
void *faceData;
int i, len;
char name[1024];
- float dpi = 72; //
- float glyphScale = 72.0f / dpi; // change the scale to be relative to 1 based on 72 dpi ( so dpi of 144 means a scale of .5 )
-
+ float dpi = 72;
if (!fontName) {
ri.Printf(PRINT_ALL, "RE_RegisterFont: called with empty name\n");
@@ -357,8 +356,6 @@ void RE_RegisterFont(const char *fontName, int pointSize, fontInfo_t *font) {
if (pointSize <= 0) {
pointSize = 12;
}
- // we also need to adjust the scale based on point size relative to 48 points as the ui scaling is based on a 48 point font
- glyphScale *= 48.0f / pointSize;
// make sure the render thread is stopped
R_SyncRenderThread();
@@ -450,7 +447,7 @@ void RE_RegisterFont(const char *fontName, int pointSize, fontInfo_t *font) {
maxHeight = 0;
for (i = GLYPH_START; i < GLYPH_END; i++) {
- glyph = RE_ConstructGlyphInfo(out, &xOut, &yOut, &maxHeight, face, (unsigned char)i, qtrue);
+ RE_ConstructGlyphInfo(out, &xOut, &yOut, &maxHeight, face, (unsigned char)i, qtrue);
}
xOut = 0;
@@ -515,6 +512,12 @@ void RE_RegisterFont(const char *fontName, int pointSize, fontInfo_t *font) {
}
}
+ // change the scale to be relative to 1 based on 72 dpi ( so dpi of 144 means a scale of .5 )
+ glyphScale = 72.0f / dpi;
+
+ // we also need to adjust the scale based on point size relative to 48 points as the ui scaling is based on a 48 point font
+ glyphScale *= 48.0f / pointSize;
+
registeredFont[registeredFontCount].glyphScale = glyphScale;
font->glyphScale = glyphScale;
Com_Memcpy(&registeredFont[registeredFontCount++], font, sizeof(fontInfo_t));