1 个不稳定版本
0.1.0 | 2023年7月20日 |
---|
#175 在 渲染
7KB
80 代码行
sdl2_wallpaper
使用SDL2将图形渲染到桌面背景。使用简单函数访问桌面背景窗口或绑定到其上的Rust-SDL2画布。然后,您可以渲染任何您想要的,以实现终极自定义。
注意
目前,仅支持Windows。sdl2_wallpaper只与Windows 10一起开发,因此这是唯一预期可以工作的操作系统。我还没有看到MinGW SDL2开发库是否与此兼容。为了设置Rust-SDL2,我已经成功使用了cargo-vcpkg和“捆绑”功能。
安装
前提条件:确保已安装Rust-SDL2,并且它正在运行。
对于sdl2_wallpaper有两种简单的安装选项。
- 从终端使用Cargo
cargo add sdl2_wallpaper
- 将依赖项添加到您的
Cargo.toml
文件中
[dependencies]
sdl2_wallpaper = "0.1.0"
用法
(基于Rust-SDL2 示例)
use sdl2::pixels::Color;
use sdl2::event::Event;
use std::time::Duration;
fn main() {
let sdl = sdl2::init().unwrap();
let video_subsystem = sdl.video().unwrap();
// The only real difference here from the Rust-SDL2 example is
// how we get the window/canvas.
let mut canvas = sdl2_wallpaper::get_canvas(video_subsystem).unwrap();
// If you'd rather get the window and then build the canvas from that:
// let window = sdl2_wallpaper::get_window(video_subsystem).unwrap();
// [maybe do something to your window]
// let mut canvas = window.into_canvas().build().unwrap()
canvas.set_draw_color(Color::RGB(0, 64, 255));
canvas.clear();
canvas.present();
let mut event_pump = sdl.event_pump().unwrap();
let mut i = 0;
'running: loop {
i = (i + 1) % 255;
canvas.set_draw_color(Color::RGB(i, 64, 255 - i));
canvas.clear();
for event in event_pump.poll_iter() {
match event {
Event::Quit { .. } => break 'running,
_ => {}
}
}
canvas.present();
std::thread::sleep(Duration::new(0, 1_000_000_000u32 / 60));
}
}
贡献
欢迎Pull请求。请随时使这个项目更加“Rusty”!对于重大更新,例如支持其他操作系统,请首先提交一个问题来讨论您想要的内容以及行动方案。
由于这是一个新包,还有很多可以添加的内容,我相信我们会发现一些错误。让我们一起工作吧!
许可
依赖项
~16MB
~348K SLoC