mirror of
https://github.com/RT-Thread/rt-thread.git
synced 2026-08-28 08:38:43 +08:00
ToolsCI / Tools (push) Has been cancelled
RT-Thread BSP Static Build Check / 🔍 Summary of Git Diff Changes (push) Has been cancelled
RT-Thread BSP Static Build Check / ${{ matrix.legs.RTT_BSP }} (push) Has been cancelled
RT-Thread BSP Static Build Check / collect-artifacts (push) Has been cancelled
pkgs_test / change (push) Has been cancelled
utest_auto_run / A9 :components/dfs.cfg (push) Has been cancelled
utest_auto_run / A9 :components/lwip.cfg (push) Has been cancelled
utest_auto_run / A9 :components/netdev.cfg (push) Has been cancelled
utest_auto_run / A9 :components/sal.cfg (push) Has been cancelled
utest_auto_run / A9 :cpp11/cpp11.cfg (push) Has been cancelled
utest_auto_run / AARCH64-rtsmart :default.cfg (push) Has been cancelled
utest_auto_run / A9-rtsmart :default.cfg (push) Has been cancelled
utest_auto_run / RISCV-rtsmart :default.cfg (push) Has been cancelled
utest_auto_run / XUANTIE-rtsmart :default.cfg (push) Has been cancelled
utest_auto_run / AARCH64 :default.cfg (push) Has been cancelled
utest_auto_run / AARCH64-smp :default.cfg (push) Has been cancelled
utest_auto_run / A9 :default.cfg (push) Has been cancelled
utest_auto_run / A9-smp :default.cfg (push) Has been cancelled
utest_auto_run / RISCV :default.cfg (push) Has been cancelled
utest_auto_run / RISCV-smp :default.cfg (push) Has been cancelled
utest_auto_run / A9 :kernel/atomic_c11.cfg (push) Has been cancelled
utest_auto_run / RISCV :kernel/atomic_c11.cfg (push) Has been cancelled
utest_auto_run / A9 :kernel/ipc.cfg (push) Has been cancelled
utest_auto_run / A9 :kernel/kernel_basic.cfg (push) Has been cancelled
utest_auto_run / A9 :kernel/mem.cfg (push) Has been cancelled
Weekly CI Scheduler / Trigger and Monitor CIs (push) Has been cancelled
Weekly CI Scheduler / Create Discussion Report (push) Has been cancelled
1. 8250 serila family (OFW, PCI, DWC, early) 2. Virtual serial (by graphic and input) 3. HVC early serial 4. ARM PL011 serial Signed-off-by: GuEe-GUI <2991707448@qq.com>
93 lines
2.2 KiB
C
93 lines
2.2 KiB
C
/*
|
|
* Copyright (c) 2006-2023, RT-Thread Development Team
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*
|
|
* Change Logs:
|
|
* Date Author Notes
|
|
* 2023-02-25 GuEe-GUI the first version
|
|
*/
|
|
|
|
#ifndef __PSF_H__
|
|
#define __PSF_H__
|
|
|
|
#include <rtthread.h>
|
|
|
|
#define PSF1_MAGIC0 0x36
|
|
#define PSF1_MAGIC1 0x04
|
|
|
|
#define PSF1_MODE512 0x01
|
|
#define PSF1_MODEHASTAB 0x02
|
|
#define PSF1_MODEHASSEQ 0x04
|
|
#define PSF1_MAXMODE 0x05
|
|
|
|
#define PSF1_SEPARATOR 0xffff
|
|
#define PSF1_STARTSEQ 0xfffe
|
|
|
|
struct psf1_header
|
|
{
|
|
rt_uint8_t magic[2]; /* Magic number */
|
|
rt_uint8_t mode; /* PSF font mode */
|
|
rt_uint8_t charsize; /* Character size */
|
|
};
|
|
|
|
#define PSF2_MAGIC0 0x72
|
|
#define PSF2_MAGIC1 0xb5
|
|
#define PSF2_MAGIC2 0x4a
|
|
#define PSF2_MAGIC3 0x86
|
|
|
|
/* bits used in flags */
|
|
#define PSF2_HAS_UNICODE_TABLE 0x01
|
|
|
|
/* max version recognized so far */
|
|
#define PSF2_MAXVERSION 0
|
|
|
|
/* UTF8 separators */
|
|
#define PSF2_SEPARATOR 0xff
|
|
#define PSF2_STARTSEQ 0xfe
|
|
|
|
struct psf2_header
|
|
{
|
|
rt_uint8_t magic[4];
|
|
rt_uint32_t version;
|
|
rt_uint32_t headersize; /* offset of bitmaps in file */
|
|
rt_uint32_t flags;
|
|
rt_uint32_t length; /* number of glyphs */
|
|
rt_uint32_t charsize; /* number of bytes for each character, charsize = height * ((width + 7) / 8) */
|
|
rt_uint32_t height, width; /* max dimensions of glyphs */
|
|
};
|
|
|
|
enum psf_type
|
|
{
|
|
PSF_TYPE_1,
|
|
PSF_TYPE_2,
|
|
PSF_TYPE_UNKNOW,
|
|
};
|
|
|
|
struct psf_font
|
|
{
|
|
union
|
|
{
|
|
const rt_uint8_t *raw_data;
|
|
struct psf1_header *header1;
|
|
struct psf2_header *header2;
|
|
};
|
|
const rt_uint8_t *font_map;
|
|
const rt_uint8_t *font_data;
|
|
|
|
enum psf_type type;
|
|
|
|
rt_uint32_t count; /* fonts count */
|
|
rt_uint32_t size;
|
|
rt_uint32_t height;
|
|
rt_uint32_t width;
|
|
rt_uint32_t glyph; /* height * width */
|
|
};
|
|
|
|
rt_err_t psf_initialize(const void *psf_data, struct psf_font *out_psf);
|
|
rt_err_t psf_parse(struct psf_font *psf, const rt_uint8_t *font_data,
|
|
rt_uint8_t *tmpglyph, rt_uint32_t color_size,
|
|
rt_uint32_t foreground, rt_uint32_t background);
|
|
|
|
#endif /* __PSF_H__ */
|