做一个 UEFI 下的 EasyX 图形库(10)

增加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 在这里下载:

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注