📄 tft_font.c
字号:
//====================================================================================//文 件 名:TFT_Font.c//功能描述: TFT字库管理//维护记录: 2007年8月20日// 2007.08.20 更新日志// First Version//====================================================================================#include "TFT_Config.h"#include "TFT_Font.h"STR_FONT g_SysAsciiFontList[TFT_MAXFONT];STR_FONT g_SysChineseFontList[TFT_MAXFONT];//=============================================================//语法格式: static FONT TFT_AllocChineseFont(void)//实现功能: 申请可用的英文字体信息//参数: 无//返回值: 字体编号//=============================================================static FONT TFT_AllocAsciiFont(void){ int i; for(i = 0; i < TFT_MAXFONT; i++) { if(g_SysAsciiFontList[i].FontBuf == FONT_UNUSE_FLAG) { g_SysAsciiFontList[i].FontBuf = FONT_USE_FLAG; return i; } } return NO_FREE_FONT;}//=============================================================//语法格式: static FONT TFT_AllocChineseFont(void)//实现功能: 申请可用的中文字体信息//参数: 无//返回值: 字体编号//=============================================================static FONT TFT_AllocChineseFont(void){ int i; for(i = 0; i < TFT_MAXFONT; i++) { if(g_SysChineseFontList[i].FontBuf == FONT_UNUSE_FLAG) { g_SysChineseFontList[i].FontBuf = FONT_USE_FLAG; return i; } } return NO_FREE_FONT;}//=============================================================//语法格式: static void TFT_FreeAsciiFont(FONT Handle)//实现功能: 销毁英文字体信息//参数: Handle - 字体编号//返回值: 无//=============================================================static void TFT_FreeAsciiFont(FONT Handle){ if((Handle >= 0) && (Handle < TFT_MAXFONT)) { g_SysAsciiFontList[Handle].FontBuf = FONT_UNUSE_FLAG; g_SysAsciiFontList[Handle].CharWidth = g_SysAsciiFontList[Handle].CharHeight = 0; }}//=============================================================//语法格式: static void TFT_FreeChineseFont(FONT Handle)//实现功能: 销毁中文字体信息//参数: Handle - 字体编号//返回值: 无//=============================================================static void TFT_FreeChineseFont(FONT Handle){ if((Handle >= 0) && (Handle < TFT_MAXFONT)) { g_SysChineseFontList[Handle].FontBuf = FONT_UNUSE_FLAG; g_SysChineseFontList[Handle].CharWidth = g_SysChineseFontList[Handle].CharHeight = 0; }}//=============================================================//语法格式: void TFT_FontInit(void)//实现功能: 初始化字库//参数: 无//返回值: 无//=============================================================void TFT_FontInit(void){ int i; for(i = 0; i < TFT_MAXFONT; i++) { g_SysChineseFontList[i].FontBuf = g_SysAsciiFontList[i].FontBuf = FONT_UNUSE_FLAG; g_SysChineseFontList[i].CharWidth = g_SysAsciiFontList[i].CharWidth = g_SysChineseFontList[i].CharHeight = g_SysAsciiFontList[i].CharHeight = 0; }}//=============================================================//语法格式: unsigned short TFT_GetAsciiFontWidth(FONT Handle)//实现功能: 获取英文字体宽度//参数: Handle - 字体编号//返回值: 字体宽度//=============================================================unsigned short TFT_GetAsciiFontWidth(FONT Handle){ if(g_SysAsciiFontList[Handle].FontBuf != FONT_UNUSE_FLAG) return g_SysAsciiFontList[Handle].CharWidth; return 0;}//=============================================================//语法格式: unsigned short TFT_GetChineseFontWidth(FONT Handle)//实现功能: 获取中文字体宽度//参数: Handle - 字体编号//返回值: 字体宽度//=============================================================unsigned short TFT_GetChineseFontWidth(FONT Handle){ if(g_SysChineseFontList[Handle].FontBuf != FONT_UNUSE_FLAG) return g_SysChineseFontList[Handle].CharWidth; return 0;}//=============================================================//语法格式: unsigned short TFT_GetAsciiFontHeight(FONT Handle)//实现功能: 获取英文字体高度//参数: Handle - 字体编号//返回值: 字体高度//=============================================================unsigned short TFT_GetAsciiFontHeight(FONT Handle){ if(g_SysAsciiFontList[Handle].FontBuf != FONT_UNUSE_FLAG) return g_SysAsciiFontList[Handle].CharHeight; return 0;}//=============================================================//语法格式: unsigned short TFT_GetChineseFontHeight(FONT Handle)//实现功能: 获取中文字体高度//参数: Handle - 字体编号//返回值: 字体高度//=============================================================unsigned short TFT_GetChineseFontHeight(FONT Handle){ if(g_SysChineseFontList[Handle].FontBuf != FONT_UNUSE_FLAG) return g_SysChineseFontList[Handle].CharHeight; return 0;}//=============================================================//语法格式: unsigned char *TFT_GetAsciiFontBuf(FONT Handle)//实现功能: 获取英文字体缓冲区地址//参数: Handle - 字体编号//返回值: 缓冲区地址//=============================================================unsigned char *TFT_GetAsciiFontBuf(FONT Handle){ return g_SysAsciiFontList[Handle].FontBuf;}//=============================================================//语法格式: unsigned char *TFT_GetChineseFontBuf(FONT Handle)//实现功能: 获取中文字体缓冲区地址//参数: Handle - 字体编号//返回值: 缓冲区地址//=============================================================unsigned char *TFT_GetChineseFontBuf(FONT Handle){ return g_SysChineseFontList[Handle].FontBuf;}//=============================================================//语法格式: int TFT_GetAsciiFontInfo(FONT Handle, STR_FONT *FontInfo)//实现功能: 获取英文字体信息//参数: Handle - 字体编号// FontInfo - 字库信息结构体地址//返回值: 1:成功; 0:失败//=============================================================int TFT_GetAsciiFontInfo(FONT Handle, STR_FONT *FontInfo){ if(g_SysAsciiFontList[Handle].FontBuf == FONT_UNUSE_FLAG) return 0; FontInfo->FontBuf = g_SysAsciiFontList[Handle].FontBuf; FontInfo->CharWidth = g_SysAsciiFontList[Handle].CharWidth; FontInfo->CharHeight = g_SysAsciiFontList[Handle].CharHeight; return 1;}//=============================================================//语法格式: int TFT_GetChineseFontInfo(FONT Handle, STR_FONT *FontInfo)//实现功能: 获取中文字体信息//参数: Handle - 字体编号// FontInfo - 字库信息结构体地址//返回值: 1:成功; 0:失败//=============================================================int TFT_GetChineseFontInfo(FONT Handle, STR_FONT *FontInfo){ if(g_SysChineseFontList[Handle].FontBuf == FONT_UNUSE_FLAG) return 0; FontInfo->FontBuf = g_SysChineseFontList[Handle].FontBuf; FontInfo->CharWidth = g_SysChineseFontList[Handle].CharWidth; FontInfo->CharHeight = g_SysChineseFontList[Handle].CharHeight; return 1;}//=============================================================//语法格式: short TFT_LoadAsciiFont(STR_FONT *FontInfo)//实现功能: 加载英文字库//参数: FontInfo - 字库信息结构体地址//返回值: 新添加的字库序号, -1表示加载失败//=============================================================FONT TFT_LoadAsciiFont(STR_FONT *FontInfo){ FONT Handle; if((Handle = TFT_AllocAsciiFont()) == NO_FREE_FONT) return NO_FREE_FONT; g_SysAsciiFontList[Handle].FontBuf = FontInfo->FontBuf; g_SysAsciiFontList[Handle].CharWidth = FontInfo->CharWidth; g_SysAsciiFontList[Handle].CharHeight = FontInfo->CharHeight; return Handle;}//=============================================================//语法格式: FONT TFT_LoadChineseFont(STR_FONT *FontInfo)//实现功能: 加载中文字库//参数: FontInfo - 字库信息结构体地址//返回值: 新添加的字库序号, -1表示加载失败//=============================================================FONT TFT_LoadChineseFont(STR_FONT *FontInfo){ FONT Handle; if((Handle = TFT_AllocChineseFont()) == NO_FREE_FONT) return NO_FREE_FONT; g_SysChineseFontList[Handle].FontBuf = FontInfo->FontBuf; g_SysChineseFontList[Handle].CharWidth = FontInfo->CharWidth; g_SysChineseFontList[Handle].CharHeight = FontInfo->CharHeight; return Handle;}//=============================================================//语法格式: void TFT_UnLoadAsciiFont(unsigned short FontID)//实现功能: 卸载指定序号的英文字库//参数: FontID - 字库序号//返回值: 无//=============================================================void TFT_UnLoadAsciiFont(FONT Handle){ if(g_SysAsciiFontList[Handle].FontBuf == FONT_UNUSE_FLAG) return; TFT_FreeAsciiFont(Handle);}//=============================================================//语法格式: void TFT_UnLoadChineseFont(unsigned short FontID)//实现功能: 卸载指定序号的中文字库//参数: FontID - 字库序号//返回值: 无//=============================================================void TFT_UnLoadChineseFont(FONT Handle){ if(g_SysChineseFontList[Handle].FontBuf == FONT_UNUSE_FLAG) return; TFT_FreeChineseFont(Handle);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -