207 lines
3.5 KiB
C
207 lines
3.5 KiB
C
#ifndef __FONT_OUT_H__
|
|
#define __FONT_OUT_H__
|
|
|
|
#include "generic/typedef.h"
|
|
#include "font/font_all.h"
|
|
#include "font/font_unic.h"
|
|
|
|
/**
|
|
* @brief 打开字库
|
|
*
|
|
* @param info:字库信息
|
|
* @param language:语言id
|
|
*
|
|
* @returns TRUE:打开成功 FALSE:打开失败
|
|
*/
|
|
struct font_info *font_open(struct font_info *info, u8 language);
|
|
|
|
|
|
/**
|
|
* @brief 关闭字库,释放相关资源
|
|
*
|
|
* @param info
|
|
*/
|
|
void font_close(struct font_info *info);
|
|
|
|
|
|
/**
|
|
* @brief 获取内码字符宽度
|
|
*
|
|
* @param info
|
|
* @param str
|
|
* @param strlen
|
|
*
|
|
* @returns 字符串宽度
|
|
*/
|
|
u16 font_text_width(struct font_info *info, u8 *str, u16 strlen);
|
|
|
|
|
|
/**
|
|
* @brief 获取unicode编码字符宽度
|
|
*
|
|
* @param info
|
|
* @param str
|
|
* @param strlen
|
|
*
|
|
* @returns 字符串宽度
|
|
*/
|
|
u16 font_textw_width(struct font_info *info, u8 *str, u16 strlen);
|
|
|
|
|
|
/**
|
|
* @brief 获取utf8编码字符宽度
|
|
*
|
|
* @param info
|
|
* @param str
|
|
* @param strlen
|
|
*
|
|
* @returns 字符串宽度
|
|
*/
|
|
u16 font_textu_width(struct font_info *info, u8 *str, u16 strlen);
|
|
|
|
|
|
/**
|
|
* @brief 设置字库语言id
|
|
*
|
|
* @param language
|
|
*
|
|
* @returns
|
|
*/
|
|
void font_lang_set(int language);
|
|
|
|
|
|
/**
|
|
* @brief 获取字库语言id *
|
|
*
|
|
* @returns 字库语言id
|
|
*/
|
|
int font_lang_get();
|
|
|
|
|
|
// 字库换行方式 value == 1:换行时考虑单词整体性, value == 0:强制换行; 默认为1
|
|
void font_smart_line_break_set(u8 value);
|
|
|
|
|
|
/**
|
|
* @brief 字库内码显示接口
|
|
*
|
|
* @param info
|
|
* @param str
|
|
* @param strlen
|
|
*
|
|
* @returns 实际显示的编码长度
|
|
*/
|
|
u16 font_textout(struct font_info *info, u8 *str, u16 strlen, u16 x, u16 y);
|
|
|
|
|
|
/**
|
|
* @brief 字库unicode显示接口
|
|
*
|
|
* @param info
|
|
* @param str
|
|
* @param strlen
|
|
* @param x 显示起始x坐标
|
|
* @param y 显示起始Y坐标
|
|
*
|
|
* @returns 实际显示的编码长度
|
|
*/
|
|
u16 font_textout_unicode(struct font_info *info, u8 *str, u16 strlen, u16 x, u16 y);
|
|
|
|
|
|
/**
|
|
* @brief 字库utf8显示接口
|
|
*
|
|
* @param info
|
|
* @param str
|
|
* @param strlen
|
|
* @param x 显示起始x坐标
|
|
* @param y 显示起始Y坐标
|
|
*
|
|
* @returns 实际显示的编码长度
|
|
*/
|
|
u16 font_textout_utf8(struct font_info *info, u8 *str, u16 strlen, u16 x, u16 y);
|
|
|
|
|
|
/**
|
|
* @brief utf8转内码
|
|
*
|
|
* @param info
|
|
* @param utf8
|
|
* @param utf8len
|
|
* @param ansi
|
|
*
|
|
* @returns 内码长度
|
|
*/
|
|
u16 font_utf8toansi(struct font_info *info, u8 *utf8, u16 utf8len, u8 *ansi);
|
|
|
|
|
|
/**
|
|
* @brief utf16转内码
|
|
*
|
|
* @param info
|
|
* @param utf
|
|
* @param len
|
|
* @param ansi
|
|
*
|
|
* @returns 内码长度
|
|
*/
|
|
u16 font_utf16toansi(struct font_info *info, u8 *utf, u16 len, u8 *ansi);
|
|
|
|
|
|
/**
|
|
* @brief utf8转utf16
|
|
*
|
|
* @param info
|
|
* @param utf8
|
|
* @param utf8len
|
|
* @param utf16
|
|
*
|
|
* @returns utf16长度
|
|
*/
|
|
u16 font_utf8toutf16(struct font_info *info, u8 *utf8, u16 utf8len, u16 *utf16);
|
|
|
|
|
|
/**
|
|
* @brief 字库层malloc接口,弱函数,用户可自定义
|
|
*
|
|
* @param size 申请大小(byte)
|
|
* @returns buf地址
|
|
*/
|
|
void *font_malloc(size_t size);
|
|
|
|
|
|
/**
|
|
* @brief 字库层zalloc接口,弱函数,用户可自定义
|
|
*
|
|
* @param size 申请大小(byte)
|
|
* @returns buf地址
|
|
*/
|
|
void *font_zalloc(size_t size);
|
|
|
|
|
|
/**
|
|
* @brief 字库层free接口,弱函数,用户可自定义
|
|
*
|
|
* @param pv 待释放内存地址
|
|
*/
|
|
void font_free(void *pv);
|
|
|
|
|
|
/**
|
|
* @brief 字库多行显示时用于记录每行宽度信息,多行居中的功能需要
|
|
*
|
|
* @param info 字库结构体
|
|
*/
|
|
int font_create_each_line_width_info(struct font_info *info);
|
|
|
|
|
|
/**
|
|
* @brief 字库释放多行信息
|
|
*
|
|
* @param info 字库结构体
|
|
*/
|
|
void font_release_each_line_width_info(struct font_info *info);
|
|
|
|
|
|
#endif
|