www.pudn.com > uC-GUI-V3-98.zip > 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 
* 
*              µC/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); 
  } 
}