Caches a compiled render pipeline for the path-clip mask shader (donner/gpu/shader/programs/SlugMaskSource.h) plus its bind-group layout. More...
#include "donner/svg/renderer/geode/GeodePipeline.h"
Public Member Functions | |
| GeodeMaskPipeline (gpu::Device &device) | |
| Create a Slug mask pipeline for the given device. | |
| GeodeMaskPipeline (const GeodeMaskPipeline &)=delete | |
| GeodeMaskPipeline & | operator= (const GeodeMaskPipeline &)=delete |
| GeodeMaskPipeline (GeodeMaskPipeline &&other) noexcept=default | |
| Construct by moving another instance's state. | |
| GeodeMaskPipeline & | operator= (GeodeMaskPipeline &&other) noexcept=default |
| Replace this object's state by moving another instance. | |
| const gpu::RenderPipeline & | pipeline () const |
| The compiled render pipeline. | |
| const gpu::BindGroupLayout & | bindGroupLayout () const |
| The bind group layout used by the pipeline. | |
| gpu::TextureFormat | colorFormat () const |
| The color format the pipeline targets. Always RGBA8Unorm. | |
Caches a compiled render pipeline for the path-clip mask shader (donner/gpu/shader/programs/SlugMaskSource.h) plus its bind-group layout.
The mask pipeline is a stripped-down sibling of GeodePipeline - it reuses the same vertex shader and band/curve storage SSBOs. The fragment stage replicates scalar analytic coverage into an RGBA8Unorm color attachment. The resulting mask texture is then sampled by GeodePipeline and GeodeGradientPipeline as a clip coverage multiplier.
The bind group layout is:
Multiple paths belonging to a single clip layer are unioned on the hardware side via BlendOperation::Max.
|
explicit |
Create a Slug mask pipeline for the given device.
Renders into a single-sampled RGBA8Unorm texture.
| device | Runtime device the pipeline and its layouts are created on. |
|
defaultnoexcept |
Construct by moving another instance's state.
| other | Source object. |
|
defaultnoexcept |
Replace this object's state by moving another instance.
| other | Source object. |