mirror of
https://github.com/ClassiCube/ClassiCube.git
synced 2025-09-11 08:36:38 -04:00
Webclient: Make system fonts render closer to how they are rendered on desktop/mobile
This commit is contained in:
parent
465771e2ec
commit
cfb6f11dfe
@ -696,7 +696,7 @@ void Font_GetNames(struct StringsBuffer* buffer) {
|
||||
cc_result Font_Make(struct FontDesc* desc, const cc_string* fontName, int size, int flags) {
|
||||
desc->size = size;
|
||||
desc->flags = flags;
|
||||
desc->height = size;
|
||||
desc->height = Drawer2D_AdjHeight(size);
|
||||
|
||||
desc->handle = Mem_TryAlloc(fontName->length + 1, 1);
|
||||
if (!desc->handle) return 0;
|
||||
@ -738,6 +738,9 @@ static void Font_SysTextDraw(struct DrawTextArgs* args, struct Bitmap* bmp, int
|
||||
char buffer[NATIVE_STR_LEN];
|
||||
int len = Platform_EncodeUtf8(buffer, &args->text);
|
||||
|
||||
/* adjust y position to more closely match FreeType drawn text */
|
||||
y += (args->font->height - args->font->size) / 2;
|
||||
|
||||
interop_SetFont(font->handle, font->size, font->flags);
|
||||
interop_TextDraw(buffer, len, bmp, x, y, shadow);
|
||||
}
|
||||
|
@ -828,6 +828,7 @@ mergeInto(LibraryManager.library, {
|
||||
|
||||
var prefix = '';
|
||||
if (flags & 1) prefix += 'Bold ';
|
||||
size += 4; // adjust font size so text appears more like FreeType
|
||||
|
||||
var font = UTF8ToString(fontStr);
|
||||
var ctx = window.FONT_CONTEXT;
|
||||
@ -891,11 +892,12 @@ mergeInto(LibraryManager.library, {
|
||||
{
|
||||
var xx = x + dstX;
|
||||
if (xx < 0 || xx >= dst_width) continue;
|
||||
var I = src_pixels[src_row + (x<<2)+3], invI = 255 - I|0;
|
||||
|
||||
HEAPU8[dst_row + (x<<2)+0] = src_pixels[src_row + (x<<2)+0];
|
||||
HEAPU8[dst_row + (x<<2)+1] = src_pixels[src_row + (x<<2)+1];
|
||||
HEAPU8[dst_row + (x<<2)+2] = src_pixels[src_row + (x<<2)+2];
|
||||
HEAPU8[dst_row + (x<<2)+3] = src_pixels[src_row + (x<<2)+3];
|
||||
HEAPU8[dst_row + (x<<2)+0] = ((src_pixels[src_row + (x<<2)+0] * I) >> 8) + ((HEAPU8[dst_row + (x<<2)+0] * invI) >> 8);
|
||||
HEAPU8[dst_row + (x<<2)+1] = ((src_pixels[src_row + (x<<2)+1] * I) >> 8) + ((HEAPU8[dst_row + (x<<2)+1] * invI) >> 8);
|
||||
HEAPU8[dst_row + (x<<2)+2] = ((src_pixels[src_row + (x<<2)+2] * I) >> 8) + ((HEAPU8[dst_row + (x<<2)+2] * invI) >> 8);
|
||||
HEAPU8[dst_row + (x<<2)+3] = I + ((HEAPU8[dst_row + (x<<2)+3] * invI) >> 8);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
Loading…
x
Reference in New Issue
Block a user