1# 文本显示框架(textui) 2 3:::{note} 4作者: 周瀚杰 <2625553453@qq.com> 5::: 6  文本框架主要用于DragonOS的文本的窗口渲染显示,往屏幕窗口中输出打印文本信息,往窗口显示文本分成两种情况:一种是当内存管理单元(mm)未被初始化时,不能进行动态内存分配,限制颇多(例如不能使用vec,mpsc等),所以直接往窗口的帧缓冲区输出打印信息,不使用虚拟行等复杂结构体;另一种是当内存管理单元(mm)已经初始化,可以进行动态内存分配,便可以使用一些复杂的结构体来处理要打印的文本信息。 7 8 9## 主要API 10### rs_textui_init() -textui框架初始化 11#### 原型 12```rust 13pub extern "C" fn rs_textui_init() -> i32 14``` 15#### 说明 16  rs_textui_init()主要是初始化一些textui框架要使用到的一些全局变量信息(例如TEXTUIFRAMEWORK,TEXTUI_PRIVATE_INFO等),以及将textui框架注册到scm中。 17 18### textui_putchar() -往textui框架中的当前使用的窗口打印文本信息 19#### 原型 20```rust 21pub extern "C" fn rs_textui_putchar(character: u8, fr_color: u32, bk_color: u32) -> i32 22 23pub fn textui_putchar( 24 character: char, 25 fr_color: FontColor, 26 bk_color: FontColor, 27) -> Result<(), SystemError> 28``` 29#### 说明 30  textui_putchar()要处理两种情况:一种是当内存管理单元(mm)未被初始化时,不能进行动态内存分配,限制颇多(例如不能使用vec,mpsc等),所以直接往窗口的帧缓冲区输出打印信息,不使用虚拟行等复杂结构体;另一种是当内存管理单元(mm)已经初始化,可以进行动态内存分配,便可以使用一些复杂的结构体来处理要打印的文本信息。 31 32 33