www.pudn.com > uC-GUI-V3-98.zip > 2DGL_BMPExport.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        : 2DGL_BMPExport.c 
Purpose     : Demonstrates the use of GUI_BMP_Serialize 
---------------------------END-OF-HEADER------------------------------ 
*/ 
 
#include  
#include "GUI.h" 
 
/********************************************************************* 
* 
*       Static data 
* 
********************************************************************** 
*/ 
 
//static HANDLE _hFile; 
 
static const GUI_POINT _aPointStar[] = { 
  {  0, -36}, 
  {  8,  -8}, 
  { 36,   0}, 
  {  8,   8}, 
  {  0,  36}, 
  { -8,   8}, 
  {-36,   0}, 
  { -8,  -8} 
}; 
 
static const GUI_POINT _aPointHexagon[] = { 
  {  0, -30}, 
  { 26, -15}, 
  { 26,  15}, 
  {  0,  30}, 
  {-26,  15}, 
  {-26, -15}, 
}; 
 
/********************************************************************* 
* 
*       Static code 
* 
********************************************************************** 
*/ 
 
/********************************************************************* 
* 
*       _DrawSomething 
* 
*  Draws something to LCD 
*/ 
static void _DrawSomething(void) { 
  int xSize = LCD_GetXSize(); 
  int ySize = LCD_GetYSize(); 
  GUI_SetFont(&GUI_Font24_ASCII); 
  GUI_SetTextMode(GUI_TM_TRANS); 
  GUI_DispStringHCenterAt("Demo of GUI_BMP_Serialize", xSize / 2, (ySize - GUI_GetFontSizeY()) / 2); 
  GUI_SetColor(GUI_GREEN); 
  GUI_FillPolygon (&_aPointHexagon[0], GUI_COUNTOF(_aPointHexagon), xSize / 2, ySize / 5); 
  GUI_SetColor(GUI_RED); 
  GUI_FillPolygon (&_aPointStar[0],    GUI_COUNTOF(_aPointStar),    xSize / 2, ySize / 5 * 4); 
} 
 
/********************************************************************* 
* 
*       _WriteByte2File 
* 
*  This function will be called by GUI_BMP_Serialize to write the 
*  bytes to the file 
*/ 
static void _WriteByte2File(U8 Data, void * p) { 
  U32 nWritten; 
  WriteFile(*((HANDLE *)p), &Data, 1, &nWritten, NULL); 
} 
 
/********************************************************************* 
* 
*       _ExportToFile 
* 
*  Demonstrates the use of GUI_BMP_Serialize 
*/ 
static void _ExportToFile(void) { 
  HANDLE hFile = CreateFile("C:\\GUI_BMP_Serialize.bmp",  
                            GENERIC_WRITE, 0, 0,  
                            CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0); 
  GUI_BMP_Serialize(_WriteByte2File, &hFile); 
  CloseHandle(hFile); 
} 
 
/********************************************************************* 
* 
*       MainTask 
* 
********************************************************************** 
*/ 
 
void MainTask(void) { 
  GUI_Init(); 
  _DrawSomething(); 
  _ExportToFile(); 
}