#字体 #sdl #字体渲染 #Unicode #文本 #unifont

sdl2-unifont

嵌入式 GNU Unifont 用于 Rust SDL 程序,用于简单的字体渲染任务

3 个稳定版本

使用旧的 Rust 2015

1.0.2 2021年4月24日
1.0.1 2018年10月14日

#391 in GUI


simple-game-engine 使用

GPL-3.0-or-later

1MB
406 代码行

sdl2-unifont 最新版本 文档

有时,你只需要在 SDL 应用程序中绘制一些文本,而不需要任何高级渲染功能。你不想分发单独的字体文件,依赖系统字体(系统字体位置经常变化),或者不得不使用 SDL_ttf,只是为了显示几行文本。

这个库将 xzipped 的 GNU Unifont 嵌入应用程序的二进制文件中,并在使用前自动解压。该库试图最大限度地减少其磁盘和内存大小。

入门指南

在此处查看 sdl2-unifont 的最新版本。

或者将以下内容添加到你的 Cargo.toml

[dependencies]
sdl2-unifont = "1.0.2"

示例


示例程序的输出

使用以下命令运行包含的示例,以生成上面的屏幕:cargo run --example demo --features plane-1

示例

extern crate sdl2_unifont;

use sdl2_unifont::renderer::SurfaceRenderer;

use sdl2::pixels::Color;

fn main() {
    // Red text with transparent background
    let mut renderer =
        SurfaceRenderer::new(Color::RGB(255, 0, 0), Color::RGBA(0, 0, 0, 0));

    // Draw text to a surface, which can be used like any other. .draw() returns
    // an error result if the string contains a character which is not in the
    // Unifont.
    let surface = renderer.draw("Sample Text").unwrap();

    // Renderer simply holds state for producing new text surfaces
    renderer.bg_color = Color::RGB(255, 255, 0);
    renderer.bold = true;
    renderer.scale = 2;
    let example2 = renderer.draw("Big and bold").unwrap();
}

有关其他示例代码,请参阅 examples/demo.rs

依赖项

~16MB
~346K SLoC