all repos — mgba @ 14c6239579a6d2dba3e3d988cd3239c7b737e21a

mGBA Game Boy Advance Emulator

3DS: Scale font based on glyph heights (fixes #961)
Vicki Pfau vi@endrift.com
Mon, 15 Jan 2018 05:48:19 -0800
commit

14c6239579a6d2dba3e3d988cd3239c7b737e21a

parent

e344e2efa5fb7766e12cd72317b677da9c39936b

2 files changed, 7 insertions(+), 8 deletions(-)

jump to
M CHANGESCHANGES

@@ -20,6 +20,7 @@ - GBA I/O: Fix writing to DISPCNT CGB flag (fixes mgba.io/i/902)

Misc: - GBA: Improve multiboot image detection - GB MBC: Remove erroneous bank 0 wrapping + - 3DS: Scale font based on glyph heights (fixes mgba.io/i/961) 0.6.1: (2017-10-01) Bugfixes:
M src/platform/3ds/gui-font.csrc/platform/3ds/gui-font.c

@@ -11,13 +11,12 @@ #include "icons.h"

#include "ctr-gpu.h" -#define CELL_HEIGHT 16 -#define CELL_WIDTH 16 -#define FONT_SIZE 0.52f +#define FONT_SIZE 15.6f struct GUIFont { C3D_Tex* sheets; C3D_Tex icons; + float size; }; struct GUIFont* GUIFontCreate(void) {

@@ -29,6 +28,7 @@ }

C3D_Tex* tex; TGLP_s* glyphInfo = fontGetGlyphInfo(); + guiFont->size = FONT_SIZE / glyphInfo->cellHeight; guiFont->sheets = malloc(sizeof(*guiFont->sheets) * glyphInfo->nSheets); int i;

@@ -59,16 +59,14 @@ free(font);

} unsigned GUIFontHeight(const struct GUIFont* font) { - UNUSED(font); - return fontGetInfo()->lineFeed * FONT_SIZE; + return fontGetInfo()->lineFeed * font->size; } unsigned GUIFontGlyphWidth(const struct GUIFont* font, uint32_t glyph) { - UNUSED(font); int index = fontGlyphIndexFromCodePoint(glyph); charWidthInfo_s* info = fontGetCharWidthInfo(index); if (info) { - return info->charWidth * FONT_SIZE; + return info->charWidth * font->size; } return 0; }

@@ -108,7 +106,7 @@ u16 u = tex->width * data.texcoord.left;

u16 v = tex->height * data.texcoord.bottom; ctrAddRectEx(color, x, y, - tex->width * width * FONT_SIZE, tex->height * height * -FONT_SIZE, + tex->width * width * font->size, tex->height * height * -font->size, u, v, tex->width * width, tex->height * height, 0); }