3个版本
0.1.2 | 2022年3月8日 |
---|---|
0.1.1 | 2021年11月28日 |
0.1.0 | 2021年11月16日 |
在图形API中排名第343
165KB
3.5K SLoC
agpu
是一个针对 wgpu 库的抽象库,旨在为小型应用程序和大型引擎 alike 提供GPU框架,同时最大限度地减少样板代码和提高可读性。
快速入门
要开始编写将渲染到屏幕的程序
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();
})
}
更多示例在 examples 文件夹中。
目标
- 最简单的GPU库
- 不损失底层库的API功能
- 零(理想)运行时成本
非目标
- 托管渲染引擎
- 严格遵循WebGPU标准
状态
agpu
处于非常早期的开发阶段。它努力与底层 wgpu 库一样稳定,但某些功能可能不完整或缺失。
当前目标是使用最少的代码复制所有 wgpu 示例。
风格
使用构建器风格的API
- 避免样板代码和结构地狱
- 允许用户选择功能
- 使用合理的默认值,默认构造函数是一行代码
Deref
被滥用以向 wgpu 类型添加冗余/便利函数。这目前比添加函数到底层类型的实用特性更受欢迎,以避免需要包含各种未直接使用的特性。
集成
一些集成作为此crate的默认功能提供
您可以通过放弃默认功能来禁用它们,以及使用此库创建自己的集成。
许可证
根据您的选择,在 Apache License,版本2.0 或 MIT许可证 下授权。除非您明确说明,否则您根据Apache-2.0许可证定义的,有意提交以包含在本crate中的任何贡献,都将采用上述双授权方式,不附加任何其他条款或条件。
依赖项
~15–28MB
~427K SLoC