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

vulkano_text

Render text with the DejaVu font using the Vulkano library

21 releases (breaking)

0.15.0 Jul 27, 2021
0.13.0 Jan 17, 2021
0.12.0 Feb 12, 2020
0.11.0 Jul 3, 2019
0.1.1 Feb 25, 2017

#3 in #vulkano

Download history 14/week @ 2024-02-26 272/week @ 2024-04-01

272 downloads per month
Used in 2 crates

MIT license

425KB
266 lines

Vulkano Text

dependency status

This library is useful if you are building a game prototype with Vulkano and want a quick way to add basic text rendering:

  • You can only use the DejaVu font
  • The text is rendered on top of the contents of your swapchain image (no depthbuffer or draw ordering)

Usage

Below are relevant lines taken from the triangle.rs example.

Import the library:

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

Create DrawText:

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

Specify text to draw by calling 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");

Call draw_text on the AutoCommandBufferBuilder after your game render pass:

.draw_text(&mut draw_text, image_num)

You will also need to recreate DrawText when you recreate your swapchain e.g. due to window resize

Example Render

Result:

Dependencies

~42MB
~1M SLoC