From 653d3cfcc995a70c0e215058fa6d9b77d332b02b Mon Sep 17 00:00:00 2001 From: andy <1414772332@qq.com> Date: Sun, 12 Oct 2025 17:01:37 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=AD=97=E4=BD=93=E5=A4=A7?= =?UTF-8?q?=E5=B0=8F=E5=BC=82=E5=B8=B8=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Project/Src/MyWin/MyWinCore/mywin_font.c | 8 ++++---- Project/Src/MyWin/mywin_cfg.c | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Project/Src/MyWin/MyWinCore/mywin_font.c b/Project/Src/MyWin/MyWinCore/mywin_font.c index 9ca1e1c..758452e 100644 --- a/Project/Src/MyWin/MyWinCore/mywin_font.c +++ b/Project/Src/MyWin/MyWinCore/mywin_font.c @@ -103,7 +103,7 @@ int WIN_AddFontData(WIN_FontBuffStruct *font, u8 size, int word, u8 *buff, u32 buff_size) { if (font) { _font_data font_data = {0}; - font_data.word = (size << 16) | word; + font_data.word = (size << 24) | word; font_data.data = buff; font_data.data_size = buff_size; if (WIN_InsertFont(font, &font_data, font->buff_used / 2) == 0) @@ -132,7 +132,7 @@ u8 *WIN_SearchFontData(WIN_FontBuffStruct *font, u8 size, int word, u32 *buff_size) { u8 *ret = 0; if (font) { - int temp = (size << 16) | word; // 定义字形数据 + int temp = (size << 24) | word; // 定义字形数据 for (int i = 0; i < font->buff_used; i++) { int index = i; _font_data *font_data = 0; @@ -261,7 +261,7 @@ static u32 WIN_DrawWordAtCommon(char *c, int x, int y) { if (g_font == 0) g_font = WIN_CreatFontBuff(FONT_NUM); // 汉字utf8一般是3个字节 - buff = WIN_GetFontData(g_font, (c[0] << 16) | (c[1] << 8) | c[2], &all_byte); + buff = WIN_GetFontData(g_font, (c[0] << 8) | (c[1] << 0), &all_byte); wid = buff[all_byte - 5]; hit = buff[all_byte - 4]; @@ -334,7 +334,7 @@ static u32 WIN_DrawWordAtNormal(char *c, int x, int y) { // 获取字模 if (g_font == 0) g_font = WIN_CreatFontBuff(FONT_NUM); - buff = WIN_GetFontData(g_font, (c[0] << 16) | (c[1] << 8) | c[2], &all_byte); + buff = WIN_GetFontData(g_font, (c[0] << 8) | (c[1] << 0), &all_byte); wid = buff[all_byte - 5]; hit = buff[all_byte - 4]; diff --git a/Project/Src/MyWin/mywin_cfg.c b/Project/Src/MyWin/mywin_cfg.c index 028da9e..2eb4468 100644 --- a/Project/Src/MyWin/mywin_cfg.c +++ b/Project/Src/MyWin/mywin_cfg.c @@ -307,8 +307,8 @@ int WIN_GetWordData(u8 size, u8 type, unsigned char *buff, int word, u8 uni[3] = {0}; if (word > 0x80) { - gbk[0] = (word >> 16) & 0xff; - gbk[1] = (word >> 8) & 0xff; + gbk[0] = (word >> 8) & 0xff; + gbk[1] = (word >> 0) & 0xff; // gbk[2]=word&0xff; } else { gbk[0] = word;