27次发布
0.1.26 | 2020年10月10日 |
---|---|
0.1.25 | 2020年4月16日 |
0.1.24 | 2020年2月12日 |
0.1.22 | 2019年7月28日 |
0.1.18 | 2018年3月4日 |
#61 in #direct
每月下载量107
用于 3 crate
47KB
635 代码行
direct-gui
简单直接渲染GUI控件
文档
使用方法
将此内容添加到您的 Cargo.toml
[dependencies]
direct-gui = "0.1"
并将此内容添加到您的crate根目录
extern crate direct_gui;
运行示例
在Linux上,您需要安装 xkb
和 wayland
软件包,这是由 minifb
所要求的 -- sudo apt install libwayland-cursor0 libxkbcommon-dev libwayland-dev
cargo run --example button
cargo run --example label
cargo run --example sprite
示例
use direct_gui::*;
use direct_gui::controls::*;
let screen_size = (800i32, 600i32);
// Create a buffer where we will render to
let mut buffer: Vec<u32> = vec![0; (screen_size.0 * screen_size.1) as usize];
// Create a new instance of the gui
let mut gui = Gui::new(screen_size);
// Load the sprite of a button
let button_img = gui.load_sprite_from_file("examples/button.png", 0xFF00FF).unwrap();
// Create a new button using the sprite loaded before at pixel (20, 10)
gui.register(Button::new(button_img).pos(20, 10));
// Handle "input events" by pretending that the mouse is hovering over the button.
let cs = ControlState {
mouse_pos: (22, 12),
..ControlState::default()
};
gui.update(&cs);
// Finally render the current gui state to the buffer
gui.draw_to_buffer(&mut buffer);
致谢
精灵功能由 Hammster 提供
默认字体由 usr_share 提供
依赖项
~7.5MB
~123K SLoC