Crates.io | agpu |
lib.rs | agpu |
version | 0.1.2 |
source | src |
created_at | 2021-11-16 23:10:08.992358 |
updated_at | 2022-03-08 04:37:50.411835 |
description | Abstract GPU Project |
homepage | https://github.com/lyricwulf/agpu |
repository | https://github.com/lyricwulf/agpu |
max_upload_size | |
id | 483036 |
size | 273,927 |
agpu
is an abstraction library to the wgpu library, with the goal of providing a GPU framework for both small applications and large engines alike, with minimal boilerplate and maximum readability.
To get started with a program that renders to the screen:
fn main() -> Result<(), agpu::BoxError> {
let program = agpu::GpuProgram::builder().build()?;
let example_pipeline = program.gpu.create_pipeline().build();
program.run_draw(move |mut frame| {
frame
.render_pass("Example render pass")
.with_pipeline(&example_pipeline)
.begin()
.draw_triangle();
})
}
More examples are available in the examples folder.
agpu
is in a very early stage of development. It strives to be as stable as the underlying wgpu library, but some features will be incomplete or missing.
The current goal is to replicate all wgpu examples using minimal code.
Builder-style API is used:
Deref
is abused(?) to add redundant/convenience functions to wgpu types. This is currently preferred to utility traits that add functions to the underlying types to avoid needing to include various traits that are not used directly.
Some integrations are provided as default features to this crate:
You can (not yet!) disable them by opting out of default features, as well as create your own integration using this library.