Skip to content

Commit

Permalink
Add Image! docs to book (#652)
Browse files Browse the repository at this point in the history
  • Loading branch information
khyperia committed Jun 9, 2021
1 parent 0b23a42 commit 64380d6
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 0 deletions.
1 change: 1 addition & 0 deletions docs/src/SUMMARY.md
Expand Up @@ -10,5 +10,6 @@
- [Features]()
- [Attribute syntax](./attributes.md)
- [Inline Assembly](./inline-asm.md)
- [Image type syntax](./image.md)
- [RFCs]()
- [001. Resource Binding Syntax](./rfcs/001-resource-binding-syntax.md)
26 changes: 26 additions & 0 deletions docs/src/image.md
@@ -0,0 +1,26 @@
# Image type syntax

There are a huge number of combinations of image types in SPIR-V. They are represented by a const
generic type called `spirv_std::image::Image`, however, specifying the generic parameters of this
type is incredibly tedious, so a wrapper macro, `spirv_std::Image!` can be used to write the type
instead.

The specific syntax and meaning of the arguments to the `Image!` macro can be found in
[rustdoc](https://embarkstudios.github.io/rust-gpu/api/spirv_std/macro.Image.html).

Some type aliases for common image formats can be found in the
[`spirv_std::image`](https://embarkstudios.github.io/rust-gpu/api/spirv_std/image/index.html)
module. For example, `Image2d` is a very commonly used type, corresponding to `texture2D` in GLSL,
and is likely what you want if you want a regular old sampled texture.

```rust,no_run
type Image2d = Image!(2D, type=f32, sampled);
```

Note that the `const-generics` cargo feature in spirv-std must be enabled to use the `Image!` macro
at the moment. This will likely change in the near future.

```toml
[dependencies]
spirv-std = { ..., features = ["const-generics"] }
```

0 comments on commit 64380d6

Please sign in to comment.