#framebuffer #windowing #window

minifb

跨平台窗口设置,可选位图渲染

58 个版本

0.27.0 2024年5月20日
0.25.0 2023年8月2日
0.24.0 2023年2月18日
0.23.0 2022年4月19日
0.5.0 2016年3月4日

#56渲染 分类中

Download history 2213/week @ 2024-05-03 2419/week @ 2024-05-10 2567/week @ 2024-05-17 2284/week @ 2024-05-24 2506/week @ 2024-05-31 1590/week @ 2024-06-07 2504/week @ 2024-06-14 2712/week @ 2024-06-21 1331/week @ 2024-06-28 1212/week @ 2024-07-05 2248/week @ 2024-07-12 2250/week @ 2024-07-19 2337/week @ 2024-07-26 2131/week @ 2024-08-02 2686/week @ 2024-08-09 2028/week @ 2024-08-16

9,556 每月下载量
不到 72 crate 中使用

MIT/Apache 协议

335KB
8K SLoC

Rust 6.5K SLoC // 0.0% comments Objective-C 1K SLoC // 0.2% comments C 205 SLoC // 0.0% comments

Build Status Crates.io Documentation

minifb 是一个用 Rust 编写的跨平台库,它使设置窗口和(可选)显示 32 位像素缓冲区变得容易。它还使从键盘和鼠标获取输入变得容易。请注意,minifb 主要设计用于原型设计,可能不包括完整窗口处理库中的所有功能。示例是最好的展示它如何工作的方式

变更日志

用法

# Cargo.toml
[dependencies]
minifb = "0.27"

示例

use minifb::{Key, Window, WindowOptions};

const WIDTH: usize = 640;
const HEIGHT: usize = 360;

fn main() {
    let mut buffer: Vec<u32> = vec![0; WIDTH * HEIGHT];

    let mut window = Window::new(
        "Test - ESC to exit",
        WIDTH,
        HEIGHT,
        WindowOptions::default(),
    )
    .unwrap_or_else(|e| {
        panic!("{}", e);
    });

    // Limit to max ~60 fps update rate
    window.set_target_fps(60);

    while window.is_open() && !window.is_key_down(Key::Escape) {
        for i in buffer.iter_mut() {
            *i = 0; // write something more funny here!
        }

        // We unwrap here as we want this code to exit if it fails. Real applications may want to handle this in a different way
        window
            .update_with_buffer(&buffer, WIDTH, HEIGHT)
            .unwrap();
    }
}

状态

目前支持的平台有 macOS、Linux 和 Windows(64 位和 32 位)。在 Ubuntu(x64)上已测试过 X11(Linux/FreeBSD 等)支持。Linux Wayland 支持也是可用的。欢迎提交其他操作系统/处理器的错误报告!注意:在 0.13 版本之后,Redox 没有更新,需要一些工作才能再次使其工作。欢迎 PR。

构建说明

在 Linux 上,您可能需要先安装以下依赖项

sudo apt install libxkbcommon-dev libwayland-cursor0 libwayland-dev
cargo build
cargo run --example noise

这将运行 noise 示例

许可证

根据您选择的协议许可

贡献

除非您明确声明,否则根据 Apache-2.0 许可证定义的,您有意提交的工作,将按照上述协议双重许可,不附加任何其他条款或条件。

依赖关系

~0–12MB
~139K SLoC