增加drawtext() 函数,在一个矩形框中绘制文本。
/**
在矩形区域内输出文本,支持自动换行和多行对齐。
@param[in] X 矩形左上角 X 坐标。
@param[in] Y 矩形左上角 Y 坐标。
@param[in] W 矩形宽度(像素)。
@param[in] H 矩形高度(像素)。
@param[in] Text ASCII 文本(\n 为换行符)。
@param[in] Format 对齐选项(DT_LEFT/CENTER/RIGHT | DT_TOP/VCENTER/BOTTOM |
DT_WORDBREAK/SINGLELINE 的组合)。
@return 返回实际绘制的文本高度(像素);若文本超出矩形则返回所需高度。
说明:
- 默认不自动换行,文本超过矩形宽度被裁剪。
- DT_WORDBREAK 启用自动换行:遇矩形边界或 \n 则换行。
- DT_SINGLELINE 不处理 \n,忽略多行。
- 文本超过矩形高度不再绘制但仍计算高度返回(便于调整高度)。
**/
INT32
EFIAPI
drawtext (
IN INT32 X,
IN INT32 Y,
IN INT32 W,
IN INT32 H,
IN CONST CHAR8 *Text,
IN UINT32 Format
);
效果如下:

完整的代码和编译后的 EFI 在这里下载: