pub struct Compositor { /* private fields */ }Expand description
Stateful high-level multi-layer GPU compositor.
Accepts a list of FrameLayers, sorts them by FrameLayer::z_order,
uploads each frame to the GPU, applies per-layer transforms and blend modes,
and returns the composited wgpu::Texture.
The wgpu render pipeline is built on the first call to
composite and reused across frames. It is rebuilt only
when the number of layers changes.
§Thread safety
Compositor is Send and can be moved to a background thread. When
multiple threads need to share a compositor, wrap it in
Arc<Mutex<Compositor>>.
Requires the wgpu feature.
Implementations§
Source§impl Compositor
impl Compositor
Sourcepub fn new(ctx: Arc<RenderContext>, width: u32, height: u32) -> Self
pub fn new(ctx: Arc<RenderContext>, width: u32, height: u32) -> Self
Create a compositor targeting the given output resolution.
Sourcepub fn composite(
&mut self,
layers: &mut [FrameLayer],
) -> Result<Texture, RenderError>
pub fn composite( &mut self, layers: &mut [FrameLayer], ) -> Result<Texture, RenderError>
Composite layers into a single wgpu::Texture.
Layers are sorted by FrameLayer::z_order before compositing
(ascending — lowest z_order is the bottom layer).
The wgpu pipeline is built on the first call and cached; it is rebuilt
only when layers.len() changes between calls.
§Errors
Returns RenderError on GPU texture
creation failure, unsupported pixel format, or render failure.