#字体 #图形 #文本

sys allegro_font-sys

Allegro 5 字体插件 Rust 绑定

43 个版本

使用旧的 Rust 2015

0.0.46 2024 年 5 月 26 日
0.0.45 2023 年 11 月 24 日
0.0.44 2022 年 8 月 23 日
0.0.43 2022 年 7 月 21 日
0.0.13 2015 年 3 月 31 日

143数据格式

Download history 22/week @ 2024-04-29 7/week @ 2024-05-06 8/week @ 2024-05-13 141/week @ 2024-05-20 41/week @ 2024-05-27 44/week @ 2024-06-03 23/week @ 2024-06-10 6/week @ 2024-06-17 12/week @ 2024-06-24 1/week @ 2024-07-01 9/week @ 2024-07-08 27/week @ 2024-07-22 14/week @ 2024-07-29 2/week @ 2024-08-05 26/week @ 2024-08-12

每月 69 次下载
4 包中使用 (2 直接)

Zlib 许可证

74KB
1.5K SLoC

RustAllegro

Build Status

Allegro 5 的 Rust 封装。

游戏循环示例

extern crate allegro;
extern crate allegro_font;

use allegro::*;
use allegro_font::*;

allegro_main!
{
    let core = Core::init().unwrap();
    let font_addon = FontAddon::init(&core).unwrap();

    let display = Display::new(&core, 800, 600).unwrap();
    let timer = Timer::new(&core, 1.0 / 60.0).unwrap();
    let font = Font::new_builtin(&font_addon).unwrap();

    let queue = EventQueue::new(&core).unwrap();
    queue.register_event_source(display.get_event_source());
    queue.register_event_source(timer.get_event_source());

    let mut redraw = true;
    timer.start();
    'exit: loop
    {
        if redraw && queue.is_empty()
        {
            core.clear_to_color(Color::from_rgb_f(0.0, 0.0, 0.0));
            core.draw_text(&font, Color::from_rgb_f(1.0, 1.0, 1.0),
                (display.get_width() / 2) as f32, (display.get_height() / 2) as f32,
                FontAlign::Centre, "Welcome to RustAllegro!");
            core.flip_display();
            redraw = false;
        }

        match queue.wait_for_event()
        {
            DisplayClose{..} => break 'exit,
            TimerTick{..} => redraw = true,
            _ => (),
        }
    }
}

文档

docs.rs。请注意,它非常不完整。你很可能需要在此期间大量参考 Allegro 的 文档

包含的包有

封装器

绑定

示例

通用使用说明

allegro-sys 包(以及由此依赖的其他包)通过解析 C 头文件来确定要绑定的 Allegro 版本。构建脚本将在一些常见位置查找它,但有时您需要在调用 cargo build 时通过指定 ALLEGRO_INCLUDE_DIR 环境变量来帮助它。此目录应包含所有头文件的 allegro5 目录。构建脚本将定义以下两个元数据条目,依赖它的包可以使用它们来确定使用哪个版本

  • sub_version - Allegro 的子版本(例如,对于 5.1.10,子版本是 1)

  • wip_version - Allegro的wip版本(例如,对于5.1.10,wip版本是10)。

请注意,Core::init()将尝试验证绑定是否与您链接的库版本对应。

有一些可能有用的特性

  • link_none - 不要尝试链接标准Allegro库,如果您想链接单体库或其他需求。
  • link_debug - 链接到Allegro库的调试版本。可以与link_static一起使用。
  • link_static - 链接到Allegro库的静态版本。请注意,您必须自己链接各种依赖库。可以与link_debug一起使用。

此外,您可以通过设置ALLEGRO_LINK_DIR来指定链接目录。

Windows注意事项

RustAllegro与官方预编译的二进制文件配合良好。首先,从http://liballeg.org下载官方二进制文件。您需要匹配Rust安装的ABI。32位GNU ABI可以加载Allegro 32位MSVC二进制文件,但其他情况下您需要完全匹配平台和ABI。假设您将二进制文件提取到C:/allegro。该目录将包含include、bin和lib目录。要从RustAllegro的examples目录编译和运行RustAllegro示例,请按照以下步骤操作

  • 如果您使用MSYS
export ALLEGRO_INCLUDE_DIR=C:/allegro/include
export ALLEGRO_LINK_DIR=C:/allegro/lib
cargo build
  • 如果您直接使用cmd
set ALLEGRO_INCLUDE_DIR=C:/allegro/include
set ALLEGRO_LINK_DIR=C:/allegro/lib
cargo build

现在您需要将Allegro DLL复制到生成的可执行文件旁边(这些可执行文件可能位于target/debug目录下)。现在您应该能够运行示例(确保从RustAllegro的examples目录运行它们,这样它们可以找到所需的各种数据文件)。

依赖关系