Guide for using gfx-rs's wgpu library.
Go to file
Gwenhwyfar Hartshaw 55c9a7f44c
Add missing fields in PrimitiveState
The render pipeline page was missing the `clamp_depth` and `conservative` fields of the `wgpu::PrimitiveState` struct, added with wgpu 0.8.  These were correct in the full code, but not the snippets in the doc.
2021-06-18 13:59:09 -04:00
code fixed broken demos 2021-06-06 11:13:38 -06:00
docs Add missing fields in PrimitiveState 2021-06-18 13:59:09 -04:00
.gitignore debugging tutorials 9 and 10 2021-05-01 20:26:28 -06:00
.travis.yml travis now installs libasound2-dev 2020-12-20 00:49:02 -07:00
Cargo.lock fixed broken demos 2021-06-06 11:13:38 -06:00
Cargo.toml fixed broken demos 2021-06-06 11:13:38 -06:00
deploy.sh updated deploy.sh to cleanup dist git repo 2020-11-23 23:43:35 -07:00
FEATURES.md tutorial4-buffer 2019-10-25 01:57:14 -06:00
LICENSE.md license 2020-09-02 12:59:22 -06:00
package-lock.json Merge pull request #166 from sotrh/dependabot/npm_and_yarn/ssri-6.0.2 2021-05-24 14:46:27 -06:00
package.json finished lighting rewrite 2020-04-17 21:23:19 -06:00
run-all.sh Remove unnecessary comment 2020-11-30 14:55:41 +11:00
rustfmt.toml rustfmt 2020-09-27 23:24:43 -06:00

Introduction

What is wgpu?

Wgpu is a Rust implementation of the WebGPU API spec. WebGPU is a specification published by the GPU for the Web Community Group. It aims to allow web code access to GPU functions in a safe and reliable manner. It does this by mimicking the Vulkan API, and translating that down to whatever API the host hardware is using (ie. DirectX, Metal, Vulkan).

Wgpu is still in development, so some of this doc is subject to change.

Why Rust?

Wgpu actually has C bindings to allow you to write C/C++ code with it, as well as use other languages that interface with C. That being said, wgpu is written in Rust, and it has some convenient Rust bindings that don't have to jump through any hoops. On top of that, I've been enjoying writing in Rust.

You should be fairly familiar with Rust before using this tutorial as I won't go into much detail on Rust syntax. If you're not super comfortable with Rust you can review the Rust tutorial. You should also be familiar about Cargo.

I'm using this project as a way to learn wgpu myself, so I might miss some important details, or explain things wrong. I'm always open to constructive feedback.

Contribution and Support

  • I accept pull requests (GitHub repo) for fixing issues with this tutorial such as typos, incorrect information, and other inconsistencies.
  • Due to wgpu's rapidly changing api, I'm not accepting any new pull requests for showcase demos.
  • If you want to support me directly, check out my patreon!

Special thanks to these patrons!

In no particular order

  • Ben Anderson
  • Ian Gowen
  • Eliot Bolduc
  • Paul E Hansen
  • Lennart
  • Gunstein Vatnar
  • yutani
  • David Laban