第2步:创建16点阵,24点阵和32点阵的XBF格式字体
复制代码
/*
*********************************************************************************************************
* 函 数 名: _cbGetData16
* 功能说明: XBF字体的回调函数, 16点阵
* 形 参: Off - 地址偏移
* NumBytes - 需要读出的字节数
* pVoid - 指针变量,一般用于带文件系统时的FIL类型变量
* pBuffer - 获取字体的点阵数据
* 返 回 值: 0 表示成功 1 表示失败
*********************************************************************************************************
*/
static int _cbGetData16(U32 Off, U16 NumBytes, void * pVoid, void * pBuffer)
{
/* 读取点阵数据 */
sf_ReadBuffer(pBuffer, XBF_Font16BaseAdd + Off, NumBytes);
return 0;
}
/*
*********************************************************************************************************
* 函 数 名: _cbGetData24
* 功能说明: XBF字体的回调函数, 24点阵
* 形 参: Off - 地址偏移
* NumBytes - 需要读出的字节数
* pVoid - 指针变量,一般用于带文件系统时的FIL类型变量
* pBuffer - 获取字体的点阵数据
* 返 回 值: 0 表示成功 1 表示失败
*********************************************************************************************************
*/
static int _cbGetData24(U32 Off, U16 NumBytes, void * pVoid, void * pBuffer)
{
/* 读取点阵数据 */
sf_ReadBuffer(pBuffer, XBF_Font24BaseAdd + Off, NumBytes);
return 0;
}
/*
*********************************************************************************************************
* 函 数 名: _cbGetData32
* 功能说明: XBF字体的回调函数, 32点阵
* 形 参: Off - 地址偏移
* NumBytes - 需要读出的字节数
* pVoid - 指针变量,一般用于带文件系统时的FIL类型变量
* pBuffer - 获取字体的点阵数据
* 返 回 值: 0 表示成功 1 表示失败
*********************************************************************************************************
*/
static int _cbGetData32(U32 Off, U16 NumBytes, void * pVoid, void * pBuffer)
{
/* 读取点阵数据 */
sf_ReadBuffer(pBuffer, XBF_Font32BaseAdd + Off, NumBytes);
return 0;
}
/*
*********************************************************************************************************
* 函 数 名: GUI_SetXBF
* 功能说明: 创建XBF字体
* 形 参: 无
* 返 回 值: 无
*********************************************************************************************************
*/
static void GUI_SetXBF(void)
{
/* 创建16点阵字体 */
GUI_XBF_CreateFont(&XBF_Font16, /* GUI_FONT类型变量 */
&XBF_Data16, /* GUI_XBF_DATA类型变量 */
GUI_XBF_TYPE_PROP, /* 字体类型 */
_cbGetData16, /* 回调函数 */
&Fontfile16); /* 回调函数参数 */
/* 创建24点阵字体 */
GUI_XBF_CreateFont(&XBF_Font24, /* GUI_FONT类型变量 */
&XBF_Data24, /* GUI_XBF_DATA类型变量 */
GUI_XBF_TYPE_PROP, /* 字体类型 */
_cbGetData24, /* 回调函数 */
&Fontfile24); /* 回调函数参数 */
/* 创建32点阵字体 */
GUI_XBF_CreateFont(&XBF_Font32, /* GUI_FONT类型变量 */
&XBF_Data32, /* GUI_XBF_DATA类型变量 */
GUI_XBF_TYPE_PROP, /* 字体类型 */
_cbGetData32, /* 回调函数 */
&Fontfile32); /* 回调函数参数 */
} |