Skip to main content

Module execute

Module execute 

Source
Expand description

Draw a recording into a texture this crate did not create.

Context::draw covers the case where the target came from Context::create_surface, and that is the ordinary one. This is the other: a swapchain hands out its own images, and drawing into one means naming a texture the caller got from somewhere else. Without this the presentation path re-exported above reached a swapchain and then had nothing to draw into its images with, which is a window a caller can open and not fill. Rendering a recording, pass by pass.

Here rather than in the crate that wraps a backend, because a recording is defined here and executing one is nothing more than reading it: a layer is a target allocated at that pass’s size, rendered into, and sampled by a later pass. Nothing about that is backend-specific, so it is written once and generic over the HAL. It had been private to the public crate, which left the test harness with the choice of duplicating it or staying at the batch level where layers cannot be expressed.

Structs§

Transient
The textures a recording needs that it did not arrive with.

Functions§

execute
Render every pass of a recording, layers first, root into the surface.
execute_deferred
Render a recording’s layers, then submit its root without waiting.
execute_layers
Render every pass except the root, returning the layer targets in order.
render_offscreen
Render a recording into a texture this function allocates, and read it back.
render_offscreen_into
The same, into a target of the caller’s choosing.
resolve_sources
Resolve one pass’s slot table against the caller’s images and the layers rendered so far.