all repos — mgba @ 9fac945e1c46f332acad6dcab3ff31dd8ba7216d

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

9fac945e1c46f332acad6dcab3ff31dd8ba7216d

parent

67e03bda91d1ffd0162a545d91f819fd56195923

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

jump to
M CHANGESCHANGES

@@ -58,6 +58,7 @@ - GBA Cheats: Allow multiple ROM patches in the same slot

- GB: Skip BIOS option now works - Libretro: Add frameskip option - GBA Memory: 64 MiB GBA Video cartridge support + - 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); }