📄 aa_text.c
字号:
/*
*********************************************************************************************************
* uC/GUI V3.98
* Universal graphic software for embedded applications
*
* (c) Copyright 2002, Micrium Inc., Weston, FL
* (c) Copyright 2002, SEGGER Microcontroller Systeme GmbH
*
* 礐/GUI is protected by international copyright laws. Knowledge of the
* source code may not be used to write a similar product. This file may
* only be used in accordance with a license and should not be redistributed
* in any way. We appreciate your understanding and fairness.
*
----------------------------------------------------------------------
File : AA_Text.c
Purpose : Shows text with different antialiasing qualities
----------------------------------------------------------------------
*/
#include "GUI.h"
/*********************************************************************
*
* Static data
*
**********************************************************************
*/
/*********************************************************************
*
* Not antialiased font
*/
static GUI_CONST_STORAGE unsigned char acGUI_Font1bpp_0041[ 54] = { /* code 0041 */
______XX,XXX_____,________,
______XX,XXX_____,________,
______XX,XXX_____,________,
_____XXX,_XXX____,________,
_____XXX,_XXX____,________,
_____XXX,_XXX____,________,
____XXX_,__XXX___,________,
____XXX_,__XXX___,________,
___XXXX_,__XXXX__,________,
___XXX__,___XXX__,________,
___XXX__,___XXX__,________,
__XXXXXX,XXXXXXX_,________,
__XXXXXX,XXXXXXX_,________,
__XXXXXX,XXXXXXX_,________,
_XXX____,_____XXX,________,
_XXX____,_____XXX,________,
_XXX____,_____XXX,________,
XXX_____,______XX,X_______};
static GUI_CONST_STORAGE unsigned char acGUI_Font1bpp_0042[ 54] = { /* code 0042 */
__XXXXXX,XXXXX___,________,
__XXXXXX,XXXXXXX_,________,
__XXXXXX,XXXXXXXX,________,
__XXX___,____XXXX,________,
__XXX___,_____XXX,________,
__XXX___,_____XXX,________,
__XXX___,____XXXX,________,
__XXXXXX,XXXXXXX_,________,
__XXXXXX,XXXXXXX_,________,
__XXXXXX,XXXXXXXX,________,
__XXX___,_____XXX,X_______,
__XXX___,______XX,X_______,
__XXX___,______XX,X_______,
__XXX___,______XX,X_______,
__XXX___,_____XXX,X_______,
__XXXXXX,XXXXXXXX,________,
__XXXXXX,XXXXXXX_,________,
__XXXXXX,XXXXXX__,________};
static GUI_CONST_STORAGE unsigned char acGUI_Font1bpp_0043[ 54] = { /* code 0043 */
______XX,XXXXX___,________,
____XXXX,XXXXXXX_,________,
___XXXXX,XXXXXXXX,________,
__XXXXX_,____XXXX,________,
__XXX___,_____XXX,X_______,
__XXX___,______XX,________,
_XXX____,________,________,
_XXX____,________,________,
_XXX____,________,________,
_XXX____,________,________,
_XXX____,________,________,
_XXX____,______XX,________,
_XXXX___,_____XXX,X_______,
__XXX___,_____XXX,________,
__XXXXX_,___XXXXX,________,
___XXXXX,XXXXXXX_,________,
____XXXX,XXXXXX__,________,
______XX,XXXX____,________};
static GUI_CONST_STORAGE GUI_CHARINFO GUI_Font1bpp_CharInfo[3] = {
{ 17, 17, 3, acGUI_Font1bpp_0041 } /* code 0041 */
,{ 18, 18, 3, acGUI_Font1bpp_0042 } /* code 0042 */
,{ 18, 18, 3, acGUI_Font1bpp_0043 } /* code 0043 */
};
static GUI_CONST_STORAGE GUI_FONT_PROP GUI_Font1bpp_Prop1 = {
0x0041 /* first character */
,0x0043 /* last character */
,&GUI_Font1bpp_CharInfo[ 0] /* address of first character */
,(GUI_CONST_STORAGE GUI_FONT_PROP*)0 /* pointer to next GUI_FONT_PROP */
};
static GUI_CONST_STORAGE GUI_FONT GUI_Font1bpp = {
GUI_FONTTYPE_PROP /* type of font */
,18 /* height of font */
,18 /* space of font y */
,1 /* magnification x */
,1 /* magnification y */
,{&GUI_Font1bpp_Prop1}
,18 /* Baseline */
,9 /* LHeight */
,0 /* CHeight */
};
/*********************************************************************
*
* Antialiased font, 2bpp
*/
static GUI_CONST_STORAGE unsigned char acGUI_Font2bpp_0041[ 90] = { /* code 0041 */
0x00, 0x0B, 0xF8, 0x00, 0x00,
0x00, 0x0F, 0xFC, 0x00, 0x00,
0x00, 0x1F, 0xFD, 0x00, 0x00,
0x00, 0x2F, 0xBE, 0x00, 0x00,
0x00, 0x3F, 0x3F, 0x00, 0x00,
0x00, 0xBE, 0x2F, 0x40, 0x00,
0x00, 0xBD, 0x1F, 0x80, 0x00,
0x01, 0xF8, 0x0B, 0xD0, 0x00,
0x02, 0xF8, 0x0B, 0xE0, 0x00,
0x03, 0xF0, 0x03, 0xF0, 0x00,
0x07, 0xE0, 0x02, 0xF4, 0x00,
0x0B, 0xFF, 0xFF, 0xF8, 0x00,
0x0F, 0xFF, 0xFF, 0xFC, 0x00,
0x1F, 0xFF, 0xFF, 0xFD, 0x00,
0x2F, 0x40, 0x00, 0x7E, 0x00,
0x3F, 0x00, 0x00, 0x3F, 0x00,
0x7E, 0x00, 0x00, 0x2F, 0x40,
0xBD, 0x00, 0x00, 0x1F, 0x80
};
static GUI_CONST_STORAGE unsigned char acGUI_Font2bpp_0042[ 90] = { /* code 0042 */
0x0F, 0xFF, 0xFF, 0x90, 0x00,
0x0F, 0xFF, 0xFF, 0xF8, 0x00,
0x0F, 0xFF, 0xFF, 0xFE, 0x00,
0x0F, 0xC0, 0x01, 0xBE, 0x00,
0x0F, 0xC0, 0x00, 0x3F, 0x00,
0x0F, 0xC0, 0x00, 0x3F, 0x00,
0x0F, 0xC0, 0x01, 0xBE, 0x00,
0x0F, 0xFF, 0xFF, 0xFC, 0x00,
0x0F, 0xFF, 0xFF, 0xF8, 0x00,
0x0F, 0xFF, 0xFF, 0xFE, 0x00,
0x0F, 0xC0, 0x00, 0x7F, 0x80,
0x0F, 0xC0, 0x00, 0x1F, 0x80,
0x0F, 0xC0, 0x00, 0x0F, 0xC0,
0x0F, 0xC0, 0x00, 0x0F, 0xC0,
0x0F, 0xC0, 0x00, 0x6F, 0x80,
0x0F, 0xFF, 0xFF, 0xFF, 0x40,
0x0F, 0xFF, 0xFF, 0xFD, 0x00,
0x0F, 0xFF, 0xFF, 0xA4, 0x00
};
static GUI_CONST_STORAGE unsigned char acGUI_Font2bpp_0043[ 90] = { /* code 0043 */
0x00, 0x0A, 0xFE, 0x90, 0x00,
0x00, 0xBF, 0xFF, 0xF8, 0x00,
0x02, 0xFF, 0xFF, 0xFE, 0x00,
0x0B, 0xF9, 0x01, 0xBF, 0x40,
0x0F, 0xD0, 0x00, 0x2F, 0x80,
0x1F, 0x80, 0x00, 0x0A, 0x40,
0x2F, 0x40, 0x00, 0x00, 0x00,
0x3F, 0x00, 0x00, 0x00, 0x00,
0x3F, 0x00, 0x00, 0x00, 0x00,
0x3F, 0x00, 0x00, 0x00, 0x00,
0x3F, 0x00, 0x00, 0x00, 0x00,
0x2F, 0x40, 0x00, 0x0A, 0x40,
0x2F, 0x80, 0x00, 0x2F, 0x80,
0x0F, 0xD0, 0x00, 0x7F, 0x80,
0x0B, 0xF9, 0x02, 0xFF, 0x00,
0x02, 0xFF, 0xFF, 0xFD, 0x00,
0x00, 0xBF, 0xFF, 0xF4, 0x00,
0x00, 0x0A, 0xFE, 0x40, 0x00
};
static GUI_CONST_STORAGE GUI_CHARINFO GUI_Font2bpp_CharInfo[3] = {
{ 17, 17, 5, acGUI_Font2bpp_0041 } /* code 0041 */
,{ 18, 18, 5, acGUI_Font2bpp_0042 } /* code 0042 */
,{ 18, 18, 5, acGUI_Font2bpp_0043 } /* code 0043 */
};
static GUI_CONST_STORAGE GUI_FONT_PROP GUI_Font2bpp_Prop1 = {
0x0041 /* first character */
,0x0043 /* last character */
,&GUI_Font2bpp_CharInfo[ 0] /* address of first character */
,(GUI_CONST_STORAGE GUI_FONT_PROP*)0 /* pointer to next GUI_FONT_PROP */
};
static GUI_CONST_STORAGE GUI_FONT GUI_Font2bpp = {
GUI_FONTTYPE_PROP_AA2 /* type of font */
,18 /* height of font */
,18 /* space of font y */
,1 /* magnification x */
,1 /* magnification y */
,{&GUI_Font2bpp_Prop1}
,18 /* Baseline */
,9 /* LHeight */
,0 /* CHeight */
};
/*********************************************************************
*
* Antialiased font, 4bpp
*/
static GUI_CONST_STORAGE unsigned char acGUI_Font4bpp_0041[162] = { /* code 0041 */
0x00, 0x00, 0x00, 0xBF, 0xFF, 0xB0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x06, 0xFF, 0xFF, 0xF6, 0x00, 0x00, 0x00,
0x00, 0x00, 0x0C, 0xFF, 0xAF, 0xFC, 0x00, 0x00, 0x00,
0x00, 0x00, 0x2F, 0xFE, 0x0E, 0xFF, 0x20, 0x00, 0x00,
0x00, 0x00, 0x8F, 0xFA, 0x0A, 0xFF, 0x70, 0x00, 0x00,
0x00, 0x00, 0xDF, 0xF3, 0x03, 0xFF, 0xD0, 0x00, 0x00,
0x00, 0x03, 0xFF, 0xD0, 0x00, 0xDF, 0xF3, 0x00, 0x00,
0x00, 0x09, 0xFF, 0x90, 0x00, 0x8F, 0xF9, 0x00, 0x00,
0x00, 0x0E, 0xFF, 0x20, 0x00, 0x2F, 0xFE, 0x00, 0x00,
0x00, 0x5F, 0xFC, 0x00, 0x00, 0x0C, 0xFF, 0x50, 0x00,
0x00, 0xAF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xA0, 0x00,
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00,
0x06, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF6, 0x00,
0x0B, 0xFF, 0x60, 0x00, 0x00, 0x00, 0x6F, 0xFB, 0x00,
0x2F, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0x20,
0x7F, 0xFB, 0x00, 0x00, 0x00, 0x00, 0x0B, 0xFF, 0x70,
0xCF, 0xF5, 0x00, 0x00, 0x00, 0x00, 0x05, 0xFF, 0xC0
};
static GUI_CONST_STORAGE unsigned char acGUI_Font4bpp_0042[162] = { /* code 0042 */
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC7, 0x00, 0x00,
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00,
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x00,
0x00, 0xFF, 0xF0, 0x00, 0x00, 0x03, 0xBF, 0xFD, 0x00,
0x00, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0x00,
0x00, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x0F, 0xFE, 0x00,
0x00, 0xFF, 0xF0, 0x00, 0x00, 0x03, 0xCF, 0xFA, 0x00,
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE2, 0x00,
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00,
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x00,
0x00, 0xFF, 0xF0, 0x00, 0x00, 0x02, 0x6E, 0xFF, 0xA0,
0x00, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x04, 0xFF, 0xD0,
0x00, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xF0,
0x00, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x02, 0xFF, 0xE0,
0x00, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x5C, 0xFF, 0xB0,
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x40,
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF6, 0x00,
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDB, 0x40, 0x00
};
static GUI_CONST_STORAGE unsigned char acGUI_Font4bpp_0043[162] = { /* code 0043 */
0x00, 0x00, 0x02, 0x9C, 0xFF, 0xFC, 0xA3, 0x00, 0x00,
0x00, 0x00, 0x9F, 0xFF, 0xFF, 0xFF, 0xFF, 0x90, 0x00,
0x00, 0x0A, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x00,
0x00, 0x8F, 0xFF, 0xB5, 0x00, 0x06, 0xDF, 0xFF, 0x60,
0x02, 0xFF, 0xF6, 0x00, 0x00, 0x00, 0x0C, 0xFF, 0xD0,
0x07, 0xFF, 0xB0, 0x00, 0x00, 0x00, 0x02, 0xD9, 0x30,
0x0C, 0xFF, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0E, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0F, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0F, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0F, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0C, 0xFF, 0x50, 0x00, 0x00, 0x00, 0x02, 0xD9, 0x30,
0x09, 0xFF, 0xB0, 0x00, 0x00, 0x00, 0x09, 0xFF, 0xD0,
0x02, 0xFF, 0xF6, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0x80,
0x00, 0x9F, 0xFF, 0xA4, 0x00, 0x28, 0xFF, 0xFE, 0x00,
0x00, 0x0C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF5, 0x00,
0x00, 0x00, 0x9F, 0xFF, 0xFF, 0xFF, 0xFE, 0x50, 0x00,
0x00, 0x00, 0x02, 0x9C, 0xFF, 0xFC, 0x70, 0x00, 0x00
};
static GUI_CONST_STORAGE GUI_CHARINFO GUI_Font4bpp_CharInfo[3] = {
{ 17, 17, 9, acGUI_Font4bpp_0041 } /* code 0041 */
,{ 18, 18, 9, acGUI_Font4bpp_0042 } /* code 0042 */
,{ 18, 18, 9, acGUI_Font4bpp_0043 } /* code 0043 */
};
static GUI_CONST_STORAGE GUI_FONT_PROP GUI_Font4bpp_Prop1 = {
0x0041 /* first character */
,0x0043 /* last character */
,&GUI_Font4bpp_CharInfo[ 0] /* address of first character */
,(GUI_CONST_STORAGE GUI_FONT_PROP*)0 /* pointer to next GUI_FONT_PROP */
};
static GUI_CONST_STORAGE GUI_FONT GUI_Font4bpp = {
GUI_FONTTYPE_PROP_AA4 /* type of font */
,18 /* height of font */
,18 /* space of font y */
,1 /* magnification x */
,1 /* magnification y */
,{&GUI_Font4bpp_Prop1}
,18 /* Baseline */
,14 /* LHeight */
,0 /* CHeight */
};
/*********************************************************************
*
* Static code
*
**********************************************************************
*/
static void _ShowAntialiasedText(void) {
/* Label the sample */
GUI_SetFont(&GUI_Font24_ASCII);
GUI_DispStringHCenterAt("Antialiased Text", 160, 10);
GUI_SetFont(&GUI_Font6x8);
GUI_DispStringHCenterAt("Not\nantialiased", 60, 130);
GUI_DispStringHCenterAt("Antialiased\nusing\n2bpp", 160, 130);
GUI_DispStringHCenterAt("Antialiased\nusing\n4bpp", 260, 130);
/* Not antialiased */
GUI_SetFont(&GUI_Font1bpp);
GUI_DispStringHCenterAt("ABC", 60, 80);
/* Antialiased, 2bpp */
GUI_SetFont(&GUI_Font2bpp);
GUI_DispStringHCenterAt("ABC", 160, 80);
/* Antialiased, 4bpp */
GUI_SetFont(&GUI_Font4bpp);
GUI_DispStringHCenterAt("ABC", 260, 80);
}
/*********************************************************************
*
* Public code
*
**********************************************************************
*/
void MainTask(void) {
GUI_Init();
_ShowAntialiasedText();
while (1) {
GUI_Delay(100);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -