2021-08-10 15:02:33 +08:00
|
|
|
|
//<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>
|
2021-08-04 10:46:24 +08:00
|
|
|
|
|
2021-09-28 14:24:41 +08:00
|
|
|
|
#include "stdio.h"
|
|
|
|
|
|
|
2021-08-04 10:46:24 +08:00
|
|
|
|
#include "sys.h"
|
|
|
|
|
|
#include "lcd.h"
|
|
|
|
|
|
#include "GameEngine.h"
|
|
|
|
|
|
|
|
|
|
|
|
#include "GE_Font.h"
|
|
|
|
|
|
|
2021-09-28 14:24:41 +08:00
|
|
|
|
/**************************************** ˽<>ж<EFBFBD><D0B6><EFBFBD> ****************************************/
|
|
|
|
|
|
|
|
|
|
|
|
#define GE_Font_GetACSIIDataSize(__font_size__) ((__font_size__ / 8 + ((__font_size__ % 8) ? 1 : 0)) * (__font_size__ / 2))
|
|
|
|
|
|
#define GE_Font_GetGBKDataSize(__font_size__) ((__font_size__ / 8 + ((__font_size__ % 8) ? 1 : 0)) * (__font_size__))
|
|
|
|
|
|
|
|
|
|
|
|
/*****************************************************************************************/
|
2021-08-04 10:46:24 +08:00
|
|
|
|
|
|
|
|
|
|
/**************************************** ˽<>к<EFBFBD><D0BA><EFBFBD> ****************************************/
|
|
|
|
|
|
|
|
|
|
|
|
uint8_t GE_Font_GetACSII(uint8_t *font, uint8_t *ch, uint8_t font_size);
|
|
|
|
|
|
uint8_t GE_Font_PrintACSII(uint16_t x, uint16_t y, uint8_t *ch, uint8_t font_size, uint16_t font_color, uint16_t back_color, uint8_t is_transparent);
|
|
|
|
|
|
|
|
|
|
|
|
uint8_t GE_Font_GetGBK(uint8_t *font, uint8_t *ch, uint8_t font_size);
|
|
|
|
|
|
uint8_t GE_Font_PrintGBK(uint16_t x, uint16_t y, uint8_t *ch, uint8_t font_size, uint16_t font_color, uint16_t back_color, uint8_t is_transparent);
|
|
|
|
|
|
|
|
|
|
|
|
/*****************************************************************************************/
|
|
|
|
|
|
|
|
|
|
|
|
_ge_font_print_set ge_font_print_set;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* @brief <EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD> GE_Font
|
|
|
|
|
|
*/
|
|
|
|
|
|
void GE_Font_Init(void)
|
|
|
|
|
|
{
|
|
|
|
|
|
//<2F><><EFBFBD>ƺ<EFBFBD><C6BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
ge_font_print_set.font_size = FONT_12;
|
|
|
|
|
|
ge_font_print_set.font_color = BLACK;
|
|
|
|
|
|
ge_font_print_set.back_color = WHITE;
|
|
|
|
|
|
ge_font_print_set.is_transparent = TRUE;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* @brief <EFBFBD><EFBFBD><EFBFBD>ֿ<EFBFBD><EFBFBD><EFBFBD> ACSII <EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
*/
|
|
|
|
|
|
uint8_t GE_Font_GetACSII(uint8_t *font, uint8_t *ch, uint8_t font_size)
|
|
|
|
|
|
{
|
|
|
|
|
|
uint32_t addr, offset;
|
|
|
|
|
|
uint16_t data_size = GE_Font_GetACSIIDataSize(font_size);
|
|
|
|
|
|
|
|
|
|
|
|
offset = (uint32_t)data_size * (*ch);
|
|
|
|
|
|
|
|
|
|
|
|
switch (font_size)
|
|
|
|
|
|
{
|
|
|
|
|
|
case FONT_12:
|
|
|
|
|
|
addr = offset + ADDR_ASCII12;
|
|
|
|
|
|
break;
|
|
|
|
|
|
case FONT_16:
|
|
|
|
|
|
addr = offset + ADDR_ASCII16;
|
|
|
|
|
|
break;
|
|
|
|
|
|
case FONT_24:
|
|
|
|
|
|
addr = offset + ADDR_ASCII24;
|
|
|
|
|
|
break;
|
|
|
|
|
|
case FONT_32:
|
|
|
|
|
|
addr = offset + ADDR_ASCII32;
|
|
|
|
|
|
break;
|
|
|
|
|
|
case FONT_48:
|
|
|
|
|
|
addr = offset + ADDR_ASCII48;
|
|
|
|
|
|
break;
|
|
|
|
|
|
case FONT_64:
|
|
|
|
|
|
addr = offset + ADDR_ASCII64;
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
|
|
default:
|
|
|
|
|
|
return 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
LCD_Font_ReadAddr(font, addr, data_size); //<2F><><EFBFBD>ֿ<EFBFBD><D6BF><EFBFBD>ȡ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> font
|
|
|
|
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* @brief <EFBFBD><EFBFBD>ʾ ACSII <EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
*/
|
|
|
|
|
|
uint8_t GE_Font_PrintACSII(uint16_t x, uint16_t y, uint8_t *ch, uint8_t font_size, uint16_t font_color, uint16_t back_color, uint8_t is_transparent)
|
|
|
|
|
|
{
|
|
|
|
|
|
uint16_t data_size = GE_Font_GetACSIIDataSize(font_size);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>ֿ<EFBFBD><D6BF><EFBFBD>ȡ<EFBFBD>ַ<EFBFBD>
|
|
|
|
|
|
uint8_t font[256]; //ʹ<><CAB9> FONT_64 ʱ<><CAB1>Ҫ 256 <20><>С
|
|
|
|
|
|
if (GE_Font_GetACSII(font, ch, font_size) != 0)
|
|
|
|
|
|
return 1;
|
|
|
|
|
|
|
|
|
|
|
|
uint8_t temp8;
|
|
|
|
|
|
uint16_t x0 = x, y0 = y;
|
|
|
|
|
|
|
|
|
|
|
|
//ѭ<><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
for (uint16_t i = 0; i < data_size; i++)
|
|
|
|
|
|
{
|
|
|
|
|
|
temp8 = font[i];
|
|
|
|
|
|
|
|
|
|
|
|
for (uint16_t j = 0; j < 8; j++)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (temp8 & 0x80)
|
|
|
|
|
|
GE_Draw_Point(x, y, font_color);
|
|
|
|
|
|
else if (is_transparent == FALSE) //<2F><><EFBFBD><CDB8>ʱʹ<CAB1>ñ<EFBFBD><C3B1><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>
|
|
|
|
|
|
GE_Draw_Point(x, y, back_color);
|
|
|
|
|
|
|
|
|
|
|
|
temp8 <<= 1;
|
|
|
|
|
|
|
|
|
|
|
|
y++;
|
|
|
|
|
|
if ((y - y0) == font_size)
|
|
|
|
|
|
{
|
|
|
|
|
|
y = y0;
|
|
|
|
|
|
x++;
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* @brief <EFBFBD><EFBFBD><EFBFBD>ֿ<EFBFBD><EFBFBD><EFBFBD> GBK <EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
*/
|
|
|
|
|
|
uint8_t GE_Font_GetGBK(uint8_t *font, uint8_t *ch, uint8_t font_size)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (font_size >= FONT_48)
|
|
|
|
|
|
return 1;
|
|
|
|
|
|
|
|
|
|
|
|
uint32_t addr, offset;
|
|
|
|
|
|
uint16_t data_size = GE_Font_GetGBKDataSize(font_size);
|
|
|
|
|
|
|
|
|
|
|
|
uint8_t qh = *ch;
|
|
|
|
|
|
uint8_t ql = *(++ch);
|
|
|
|
|
|
|
|
|
|
|
|
if (qh < 0x81 || ql < 0x40 || ql == 0xff || qh == 0xff) //<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
return 1;
|
|
|
|
|
|
|
|
|
|
|
|
if (ql < 0x7f)
|
|
|
|
|
|
ql -= 0x40;
|
|
|
|
|
|
else
|
|
|
|
|
|
ql -= 0x41;
|
|
|
|
|
|
|
|
|
|
|
|
qh -= 0x81;
|
|
|
|
|
|
|
|
|
|
|
|
offset = (uint32_t)data_size * (190 * (uint32_t)qh + ql);
|
|
|
|
|
|
|
|
|
|
|
|
switch (font_size)
|
|
|
|
|
|
{
|
|
|
|
|
|
case FONT_12:
|
|
|
|
|
|
addr = offset + ADDR_GBK12;
|
|
|
|
|
|
break;
|
|
|
|
|
|
case FONT_16:
|
|
|
|
|
|
addr = offset + ADDR_GBK16;
|
|
|
|
|
|
break;
|
|
|
|
|
|
case FONT_24:
|
|
|
|
|
|
addr = offset + ADDR_GBK24;
|
|
|
|
|
|
break;
|
|
|
|
|
|
case FONT_32:
|
|
|
|
|
|
addr = offset + ADDR_GBK32;
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
|
|
default:
|
|
|
|
|
|
return 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
LCD_Font_ReadAddr(font, addr, data_size); //<2F><><EFBFBD>ֿ<EFBFBD><D6BF><EFBFBD>ȡ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> font
|
|
|
|
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* @brief <EFBFBD><EFBFBD>ʾ GBK <EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
*/
|
|
|
|
|
|
uint8_t GE_Font_PrintGBK(uint16_t x, uint16_t y, uint8_t *ch, uint8_t font_size, uint16_t font_color, uint16_t back_color, uint8_t is_transparent)
|
|
|
|
|
|
{
|
|
|
|
|
|
uint16_t data_size = GE_Font_GetGBKDataSize(font_size);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>ֿ<EFBFBD><D6BF><EFBFBD>ȡ<EFBFBD>ַ<EFBFBD>
|
|
|
|
|
|
uint8_t font[128]; //ʹ<><CAB9> FONT_32 ʱ<><CAB1>Ҫ 128 <20><>С
|
|
|
|
|
|
if (GE_Font_GetGBK(font, ch, font_size) != 0)
|
|
|
|
|
|
return 1;
|
|
|
|
|
|
|
|
|
|
|
|
uint8_t temp8;
|
|
|
|
|
|
uint16_t x0 = x, y0 = y;
|
|
|
|
|
|
|
|
|
|
|
|
//ѭ<><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
for (uint16_t i = 0; i < data_size; i++)
|
|
|
|
|
|
{
|
|
|
|
|
|
temp8 = font[i];
|
|
|
|
|
|
|
|
|
|
|
|
for (uint16_t j = 0; j < 8; j++)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (temp8 & 0x80)
|
|
|
|
|
|
GE_Draw_Point(x, y, font_color);
|
|
|
|
|
|
else if (is_transparent == FALSE) //<2F><><EFBFBD><CDB8>ʱʹ<CAB1>ñ<EFBFBD><C3B1><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>
|
|
|
|
|
|
GE_Draw_Point(x, y, back_color);
|
|
|
|
|
|
|
|
|
|
|
|
temp8 <<= 1;
|
|
|
|
|
|
|
|
|
|
|
|
y++;
|
|
|
|
|
|
if ((y - y0) == font_size)
|
|
|
|
|
|
{
|
|
|
|
|
|
y = y0;
|
|
|
|
|
|
x++;
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* @brief <EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD><EFBFBD> ASCII<EFBFBD><EFBFBD>GBK <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
* @param x_start
|
|
|
|
|
|
* @param y_start
|
|
|
|
|
|
* @param width: <EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD>
|
|
|
|
|
|
* @param height: <EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD>ڵĸ<EFBFBD>
|
2021-09-28 14:24:41 +08:00
|
|
|
|
* @param font_size: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD>ע<EFBFBD>⣺<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֣<EFBFBD>ֻ<EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD> FONT_12 16 24 32
|
2021-08-04 10:46:24 +08:00
|
|
|
|
* @param font_color: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
|
|
|
|
|
|
* @param back_color: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>Ч
|
|
|
|
|
|
* @param is_transparent: <EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD>
|
2021-09-28 14:24:41 +08:00
|
|
|
|
* @param format: <EFBFBD><EFBFBD>ʽ<EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
* @param arg: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
* @retval <EFBFBD><EFBFBD>ӡ<EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1<EFBFBD><EFBFBD>δ<EFBFBD><EFBFBD>ӡ<EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>0
|
2021-08-04 10:46:24 +08:00
|
|
|
|
*/
|
2021-09-28 14:24:41 +08:00
|
|
|
|
uint8_t GE_Font_Print_Va(
|
|
|
|
|
|
int16_t x_start,
|
|
|
|
|
|
int16_t y_start,
|
2021-08-04 10:46:24 +08:00
|
|
|
|
uint16_t width,
|
|
|
|
|
|
uint16_t height,
|
|
|
|
|
|
uint8_t font_size,
|
|
|
|
|
|
uint16_t font_color,
|
|
|
|
|
|
uint16_t back_color,
|
|
|
|
|
|
uint8_t is_transparent,
|
2021-09-28 14:24:41 +08:00
|
|
|
|
uint8_t *format,
|
|
|
|
|
|
va_list arg)
|
2021-08-04 10:46:24 +08:00
|
|
|
|
{
|
2021-09-28 14:24:41 +08:00
|
|
|
|
int16_t x_end_plus_1;
|
|
|
|
|
|
int16_t y_end_plus_1;
|
|
|
|
|
|
int16_t x = x_start;
|
|
|
|
|
|
int16_t y = y_start;
|
2021-08-04 10:46:24 +08:00
|
|
|
|
|
|
|
|
|
|
if (width == BORDER_MAX)
|
|
|
|
|
|
x_end_plus_1 = LCD_WIDTH;
|
|
|
|
|
|
else
|
|
|
|
|
|
x_end_plus_1 = x_start + width;
|
|
|
|
|
|
|
|
|
|
|
|
if (height == BORDER_MAX)
|
|
|
|
|
|
y_end_plus_1 = LCD_HEIGHT;
|
|
|
|
|
|
else
|
|
|
|
|
|
y_end_plus_1 = y_start + height;
|
|
|
|
|
|
|
|
|
|
|
|
uint8_t is_print_all = FALSE;
|
|
|
|
|
|
|
2021-09-28 14:24:41 +08:00
|
|
|
|
uint8_t temp_str[1040];
|
|
|
|
|
|
uint8_t *str = temp_str;
|
|
|
|
|
|
|
|
|
|
|
|
vsprintf(str, format, arg);
|
|
|
|
|
|
|
2021-08-04 10:46:24 +08:00
|
|
|
|
while (1)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (*(str) <= 0x80) //ASCII <20>ַ<EFBFBD>
|
|
|
|
|
|
{
|
|
|
|
|
|
if (*str == '\0')
|
|
|
|
|
|
{
|
|
|
|
|
|
is_print_all = TRUE;
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2021-08-10 15:02:33 +08:00
|
|
|
|
if (*str == '\r')
|
|
|
|
|
|
{
|
|
|
|
|
|
str++;
|
|
|
|
|
|
continue;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2021-08-04 10:46:24 +08:00
|
|
|
|
if ((x + font_size / 2 > x_end_plus_1) || (*str == '\n'))
|
|
|
|
|
|
{
|
|
|
|
|
|
x = x_start;
|
|
|
|
|
|
y += font_size;
|
|
|
|
|
|
|
|
|
|
|
|
if (y + font_size > y_end_plus_1)
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (*str != '\n')
|
|
|
|
|
|
{
|
|
|
|
|
|
GE_Font_PrintACSII(x, y, str, font_size, font_color, back_color, is_transparent);
|
|
|
|
|
|
x += font_size / 2;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
str++;
|
|
|
|
|
|
}
|
|
|
|
|
|
else if (*(str) > 0x80) //GBK <20>ַ<EFBFBD>
|
|
|
|
|
|
{
|
|
|
|
|
|
if (x + font_size > x_end_plus_1)
|
|
|
|
|
|
{
|
|
|
|
|
|
x = x_start;
|
|
|
|
|
|
y += font_size;
|
|
|
|
|
|
|
|
|
|
|
|
if (y + font_size > y_end_plus_1)
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
GE_Font_PrintGBK(x, y, str, font_size, font_color, back_color, is_transparent);
|
|
|
|
|
|
x += font_size;
|
|
|
|
|
|
str++;
|
|
|
|
|
|
str++;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return is_print_all;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2021-09-28 14:24:41 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* @brief <EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD><EFBFBD> ASCII<EFBFBD><EFBFBD>GBK <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
* @param x_start
|
|
|
|
|
|
* @param y_start
|
|
|
|
|
|
* @param width: <EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD>
|
|
|
|
|
|
* @param height: <EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD>ڵĸ<EFBFBD>
|
|
|
|
|
|
* @param font_size: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD>ע<EFBFBD>⣺<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֣<EFBFBD>ֻ<EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD> FONT_12 16 24 32
|
|
|
|
|
|
* @param font_color: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
|
|
|
|
|
|
* @param back_color: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>Ч
|
|
|
|
|
|
* @param is_transparent: <EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
* @param format: <EFBFBD><EFBFBD>ʽ<EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>÷<EFBFBD><EFBFBD><EFBFBD> printf <EFBFBD><EFBFBD>ͬ
|
|
|
|
|
|
* @param ...
|
|
|
|
|
|
* @retval <EFBFBD><EFBFBD>ӡ<EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1<EFBFBD><EFBFBD>δ<EFBFBD><EFBFBD>ӡ<EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>0
|
|
|
|
|
|
*/
|
|
|
|
|
|
uint8_t GE_Font_Print(
|
|
|
|
|
|
int16_t x_start,
|
|
|
|
|
|
int16_t y_start,
|
|
|
|
|
|
uint16_t width,
|
|
|
|
|
|
uint16_t height,
|
|
|
|
|
|
uint8_t font_size,
|
|
|
|
|
|
uint16_t font_color,
|
|
|
|
|
|
uint16_t back_color,
|
|
|
|
|
|
uint8_t is_transparent,
|
|
|
|
|
|
uint8_t *format,
|
|
|
|
|
|
...)
|
|
|
|
|
|
{
|
|
|
|
|
|
va_list aptr;
|
|
|
|
|
|
va_start(aptr, format);
|
|
|
|
|
|
|
|
|
|
|
|
uint8_t ret = GE_Font_Print_Va(
|
|
|
|
|
|
x_start,
|
|
|
|
|
|
y_start,
|
|
|
|
|
|
width,
|
|
|
|
|
|
height,
|
|
|
|
|
|
font_size,
|
|
|
|
|
|
font_color,
|
|
|
|
|
|
back_color,
|
|
|
|
|
|
is_transparent,
|
|
|
|
|
|
format,
|
|
|
|
|
|
aptr);
|
|
|
|
|
|
|
|
|
|
|
|
va_end(aptr);
|
|
|
|
|
|
return ret;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2021-08-04 10:46:24 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* @brief <EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>á<EFBFBD>֧<EFBFBD><EFBFBD> ASCII<EFBFBD><EFBFBD>GBK <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
* @param x_start
|
|
|
|
|
|
* @param y_start
|
|
|
|
|
|
* @param width: <EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD>
|
|
|
|
|
|
* @param height: <EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD>ڵĸ<EFBFBD>
|
2021-09-28 14:24:41 +08:00
|
|
|
|
* @param format: <EFBFBD><EFBFBD>ʽ<EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
* @param arg: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
* @retval <EFBFBD><EFBFBD>ӡ<EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1<EFBFBD><EFBFBD>δ<EFBFBD><EFBFBD>ӡ<EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>0
|
2021-08-04 10:46:24 +08:00
|
|
|
|
*/
|
2021-09-28 14:24:41 +08:00
|
|
|
|
uint8_t GE_Font_Print_WithSet_Va(
|
|
|
|
|
|
int16_t x_start,
|
|
|
|
|
|
int16_t y_start,
|
|
|
|
|
|
uint16_t width,
|
|
|
|
|
|
uint16_t height,
|
|
|
|
|
|
uint8_t *format,
|
|
|
|
|
|
va_list arg)
|
2021-08-04 10:46:24 +08:00
|
|
|
|
{
|
2021-09-28 14:24:41 +08:00
|
|
|
|
return GE_Font_Print_Va(
|
2021-08-04 10:46:24 +08:00
|
|
|
|
x_start,
|
|
|
|
|
|
y_start,
|
|
|
|
|
|
width,
|
|
|
|
|
|
height,
|
|
|
|
|
|
ge_font_print_set.font_size,
|
|
|
|
|
|
ge_font_print_set.font_color,
|
|
|
|
|
|
ge_font_print_set.back_color,
|
|
|
|
|
|
ge_font_print_set.is_transparent,
|
2021-09-28 14:24:41 +08:00
|
|
|
|
format,
|
|
|
|
|
|
arg);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* @brief <EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>á<EFBFBD>֧<EFBFBD><EFBFBD> ASCII<EFBFBD><EFBFBD>GBK <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
* @param x_start
|
|
|
|
|
|
* @param y_start
|
|
|
|
|
|
* @param width: <EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD>
|
|
|
|
|
|
* @param height: <EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD>ڵĸ<EFBFBD>
|
|
|
|
|
|
* @param format: <EFBFBD><EFBFBD>ʽ<EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>÷<EFBFBD><EFBFBD><EFBFBD> printf <EFBFBD><EFBFBD>ͬ
|
|
|
|
|
|
* @param ...
|
|
|
|
|
|
* @retval <EFBFBD><EFBFBD>ӡ<EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1<EFBFBD><EFBFBD>δ<EFBFBD><EFBFBD>ӡ<EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>0
|
|
|
|
|
|
*/
|
|
|
|
|
|
uint8_t GE_Font_Print_WithSet(
|
|
|
|
|
|
int16_t x_start,
|
|
|
|
|
|
int16_t y_start,
|
|
|
|
|
|
uint16_t width,
|
|
|
|
|
|
uint16_t height,
|
|
|
|
|
|
uint8_t *format,
|
|
|
|
|
|
...)
|
|
|
|
|
|
{
|
|
|
|
|
|
va_list aptr;
|
|
|
|
|
|
va_start(aptr, format);
|
|
|
|
|
|
|
|
|
|
|
|
uint8_t ret = GE_Font_Print_WithSet_Va(
|
|
|
|
|
|
x_start,
|
|
|
|
|
|
y_start,
|
|
|
|
|
|
width,
|
|
|
|
|
|
height,
|
|
|
|
|
|
format,
|
|
|
|
|
|
aptr);
|
|
|
|
|
|
|
|
|
|
|
|
va_end(aptr);
|
|
|
|
|
|
return ret;
|
2021-08-04 10:46:24 +08:00
|
|
|
|
}
|