/********************************************************************* * SEGGER MICROCONTROLLER SYSTEME GmbH * * Solutions for real time microcontroller applications * ********************************************************************** * * * (c) 1996 - 2004 SEGGER Microcontroller Systeme GmbH * * * * Internet: www.segger.com Support: support@segger.com * * * ********************************************************************** ***** emWin - Graphical user interface for embedded applications ***** emWin 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 re- distributed 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); } }