5 unstable releases
| 0.3.2 | Jul 27, 2025 |
|---|---|
| 0.3.1 | Jul 8, 2025 |
| 0.3.0 | May 31, 2025 |
| 0.2.0 | Jan 22, 2025 |
| 0.1.0 | Jul 27, 2024 |
#231 in Graphics APIs
290 downloads per month
35KB
151 lines
Softbuffer Quickstart
A wrapper that makes using Softbuffer as easy as using minifb.
Running the Softbuffer example in softbuffer-quickstart:
use softbuffer_quickstart::{SoftbufferWindow, WindowProperties};
use winit::event::WindowEvent;
fn main() {
let mut window = SoftbufferWindow::new(WindowProperties::default());
window
.run(move |window, event| match event {
WindowEvent::RedrawRequested => {
let (width, height) = window.inner_size();
let mut buffer = window.buffer_mut();
for index in 0..(width * height) {
let y = index / width;
let x = index % width;
let red = x % 255;
let green = y % 255;
let blue = (255 - (red + green).min(255)) % 255;
buffer[index] = (blue | (green << 8) | (red << 16)).try_into().unwrap();
}
}
_ => (),
})
.expect("window can't run :(");
}
I wanna know more!
cargo add softbuffer_quickstart and read the documentation at doc/!
Contributing
PRs are welcome! As with any of my other projects it might take a while for me to respond to issues/pull requests. I recommend not squashing your commits before you submit a PR as doing so makes it a bit harder to review your code.
I'm looking for any ways to boost performance as much as possible while making the library simpler and more intuitive.
Ideas:
- Adding icons to WindowProperties (probably good for new contributors)
- Supporting compiling to wasm (hell)
Dependencies
~1–20MB
~238K SLoC