Add example
This commit is contained in:
parent
88b1ac077d
commit
d667e58358
17
README.md
17
README.md
|
@ -82,6 +82,23 @@ Builders implement `Deref` targeting their corresponding Vulkan struct, so refer
|
||||||
to Vulkan functions. This is encouraged as doing so allows Rust to check the lifetimes of captured objects are valid,
|
to Vulkan functions. This is encouraged as doing so allows Rust to check the lifetimes of captured objects are valid,
|
||||||
whereas calling `build` discards lifetime information, making inadvertent use-after-free errors more likely.
|
whereas calling `build` discards lifetime information, making inadvertent use-after-free errors more likely.
|
||||||
|
|
||||||
|
### Pointer chains
|
||||||
|
|
||||||
|
```Rust
|
||||||
|
let mut variable_pointers = vk::PhysicalDeviceVariablePointerFeatures::builder();
|
||||||
|
let mut corner =
|
||||||
|
vk::PhysicalDeviceCornerSampledImageFeaturesNV::builder();
|
||||||
|
;
|
||||||
|
let mut device_create_info = vk::DeviceCreateInfo::builder()
|
||||||
|
.push_next(&mut corner)
|
||||||
|
.push_next(&mut variable_pointers);
|
||||||
|
```
|
||||||
|
|
||||||
|
Pointer chains in builders differ from raw Vulkan. Instead of chaining every struct manually, you instead use `.push_next` on the struct that you are going to pass into the function. Those structs then get *pepended* into the chain.
|
||||||
|
|
||||||
|
`push_next` is also type checked, you can only add valid structs to the chain. Both the structs and the builders can be passed into `push_next`. Only builders for structs that can be passed into functions will implement a `push_next`.
|
||||||
|
|
||||||
|
|
||||||
### Flags and constants as associated constants
|
### Flags and constants as associated constants
|
||||||
|
|
||||||
```Rust
|
```Rust
|
||||||
|
|
Loading…
Reference in a new issue