#vulkano #text-rendering #font-rendering #font #text

vulkano_text

使用Vulkano库和DejaVu字体渲染文本

21个版本 (破坏性更新)

0.15.0 2021年7月27日
0.13.0 2021年1月17日
0.12.0 2020年2月12日
0.11.0 2019年7月3日
0.1.1 2017年2月25日

#2 in #vulkano

Download history 50/week @ 2024-03-28 26/week @ 2024-04-04

每月140次下载
2 crates 中使用

MIT 许可

425KB
266 代码行数(不包括注释)

Vulkano Text

dependency status

如果你在用Vulkano构建游戏原型并希望快速添加基本的文本渲染,这个库很有用

  • 只能使用DejaVu字体
  • 文本将渲染在swapchain图像的内容之上(没有深度缓冲区或绘制顺序)

用法

以下是从triangle.rs示例中提取的相关行。

导入库

extern crate vulkano_text;
use vulkano_text::{DrawText, DrawTextTrait};

创建DrawText

let mut draw_text = DrawText::new(device.clone(), queue.clone(), swapchain.clone(), &images);

通过调用queue_text指定要绘制的文本

draw_text.queue_text(200.0, 50.0, 20.0, [1.0, 1.0, 1.0, 1.0], "The quick brown fox jumps over the lazy dog.");
draw_text.queue_text(20.0, 200.0, 190.0, [0.0, 1.0, 1.0, 1.0], "Hello world!");
draw_text.queue_text(x, 350.0, 70.0, [0.51, 0.6, 0.74, 1.0], "Lenny: ( ͡° ͜ʖ ͡°)");
draw_text.queue_text(50.0, 350.0, 70.0, [1.0, 1.0, 1.0, 1.0], "Overlap");

在游戏渲染流程之后调用AutoCommandBufferBuilder上的draw_text

.draw_text(&mut draw_text, image_num)

当你重建swapchain时,例如由于窗口大小调整,也需要重建DrawText

示例渲染

Result:

依赖项

~42MB
~1M SLoC