1 unstable release
0.1.0 | Jul 27, 2024 |
---|
#105 in Rendering
15KB
111 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};
fn main() {
let mut window = SoftbufferWindow::new(
// This is the "loop closure" -- called on every update loop
|window, buffer| {
let (width, height) = {
let size = window.inner_size();
(size.width, size.height)
};
for index in 0..(width * height) {
let y = index / width;
let x = index % width;
let red = x % 255;
let green = y % 255;
let blue = (x * y) % 255;
buffer[index as usize] = blue | (green << 8) | (red << 16);
}
},
// This is how we can set properties for the window when it's initially created.
WindowProperties::default()
);
window.run().expect("window can't run :(");
}
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:
- Handling Winit events (like resizing)
- Improving performance with the buffer (for loops in general are slow! there has to be a faster way to iterate over everything in the buffer)
- Adding icons to WindowProperties (probably good for new contributors)
Dependencies
~3–16MB
~226K SLoC