system/lib/lcd/gui/Core/GUI_SIF.c

70 lines
2.4 KiB
C

/*
*********************************************************************************************************
* uC/GUI
* 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 : GUI_SIF.c
Purpose : Implementation of system independend fonts
---------------------------END-OF-HEADER------------------------------
*/
#include "GUI_Private.h"
/*********************************************************************
*
* Exported code
*
**********************************************************************
*/
/*********************************************************************
*
* GUI_SIF_CreateFont
*/
void GUI_SIF_CreateFont(void * pFontData, GUI_FONT * pFont, const GUI_SIF_TYPE * pFontType) {
const U8 * pSrc = (const U8 *)pFontData;
U32 ID;
/* Set pFontData of GUI_FONT structure to the first byte */
pFont->p.pFontData = pFontData;
/* Check ID */
ID = GUI__Read32(&pSrc);
if (ID != 0x50495547) { /* 'GUIP' */
GUI_DEBUG_ERROROUT("ID of downloaded font wrong!");
return;
}
/* Read properties of the font */
pFont->YSize = GUI__Read16(&pSrc);
pFont->YDist = GUI__Read16(&pSrc);
pFont->Baseline = GUI__Read16(&pSrc);
pFont->LHeight = GUI__Read16(&pSrc);
pFont->CHeight = GUI__Read16(&pSrc);
/* Magnification is always 1 */
pFont->XMag = 1;
pFont->YMag = 1;
/* Set function pointers */
pFont->pfDispChar = pFontType->pDispChar;
pFont->pfGetCharDistX = pFontType->pGetCharDistX;
pFont->pfGetFontInfo = pFontType->pGetFontInfo;
pFont->pfIsInFont = pFontType->pIsInFont;
pFont->pafEncode = 0;
/* Use the new font */
GUI_SetFont(pFont);
}
/*********************************************************************
*
* GUI_SIF_DeleteFont
*/
void GUI_SIF_DeleteFont(GUI_FONT * pFont) {
GUI_USE_PARA(pFont);
}