#graph #graphics #color

minifb_wrapper

围绕minifb的包装,使窗口管理比以往任何时候都更容易

2个版本

0.1.3 2023年4月30日
0.1.2 2023年4月25日
0.1.1 2023年4月25日
0.1.0 2023年4月24日

#756 in 图像

每月 45次下载

MIT/Apache

15KB
250 代码行

围绕minifb的包装,使打开和管理窗口尽可能简单,使用十六进制RGB而不是原始的u32。

这是一个示例代码,将生成一个UV坐标图

use miniwrap::*;

fn main() -> Result<(), WinErr> {
    let mut window = window!(?255, 255, "Window", "FFFFFF");

    //iterates with the value and position
    for (_, pos) in window.iter() {
        let r = to_hex2(pos.0 as u8).unwrap();
        let g = to_hex2(pos.1 as u8).unwrap();
        let string = format!("{r}{g}00");

        window.set(pos, &string)?;
    }

    //pressing escape will close the window
    loop {
        window.update();
    }    
}


lib.rs:

围绕[minifb]的包装,使窗口管理尽可能简单,使用十六进制RGB而不是原始的u32。

窗口元素(如缓冲区和尺寸)在[WindowContainer]结构中链接在一起。要使窗口保持活动状态,请在循环中调用update()。可以通过按ESC键进行内置的优雅退出。

let window = window!(?500, 500, "Window", "FFFFFF");

loop {
    window.update();
}

以下是一个从像素坐标生成的UV图的示例

let window = window!(?500, 500, "Window", "FFFFFF");

//iterates with the value and position
for (_, pos) in window.iter() {
    let r = to_hex2(pos.0 as u8).unwrap();
    let g = to_hex2(pos.1 as u8).unwrap();
    let string = format!("{r}{g}00");

    window.set(pos, &string)?;
}

//pressing escape will close the window
loop {
    window.update();
}

注意:使用十六进制转换:接受十六进制的函数将接受一个 &str 以方便起见,但返回十六进制的函数将返回一个[String]。

依赖关系

~0.4–2.5MB
~43K SLoC