Skip to main content

Crate alpha2_engine

Crate alpha2_engine 

Source
Expand description

Player and exporter public API.

§wgpu interop

The API names no wgpu type by default: a host lends source frames as alpha2_render::SourceViews through FrameProvider, and frames come back as alpha2_render::RenderedTextures and readbacks. Rendering straight into a hardware encoder’s NV12 planes takes wgpu textures and is interop, documented with the wgpu-interop feature and following wgpu’s major version. Without the feature those items are hidden.

Re-exports§

pub use exporter::ExportAudioWindow;
pub use exporter::ExportFrameNeeds;
pub use exporter::ExportProgress;
pub use exporter::ExportStep;
pub use exporter::ExportStepTimings;
pub use exporter::ExportTextureStep;
pub use exporter::Exporter;
pub use exporter::MAX_EXPORT_FRAMES;
pub use exporter::export_audio_window;
pub use frame::FrameGraph;
pub use frame::FrameProvider;
pub use frame::FrameRender;
pub use frame::FrameRenderer;
pub use frame::FrameYuv420pRender;
pub use frame::RenderReport;

Structs§

AudioNeed
A source interval a host decodes before a render reads it.
AudioRenderStatus
Outcome of mixing one block.
AudioRenderer
Mixes a project’s audio tracks into one project-rate block.
CanvasRect
A rectangle as fractions of the canvas, y down.
CapabilityReport
What a runtime can do.
ClockStep
What the clock asks for at one moment.
ColorReport
How color is handled.
EngineProject
An immutable project snapshot and its reusable evaluation index.
ExportAudioWindow
The project-rate samples an export’s audio covers.
ExportFrameNeeds
Decode requirements for one scheduled export frame.
ExportProgress
Completed and total frame counts for deterministic export.
ExportStepTimings
Where one Exporter::render_next_timed step spent its time.
Exporter
Deterministic, retryable frame-sequence runner.
Feature
One feature: whether it is available, and why not.
FrameGraph
One evaluated frame compiled into a render graph, not yet submitted.
FrameRender
Result of attempting to render one evaluated timeline frame.
FrameYuv420pRender
Result of rendering and scheduling one frame for planar YUV420 readback.
FramesWithText
A host’s frame provider together with its text store: frames come from the one and text from the other.
GpuReport
The GPU the renderer drives.
LayoutBounds
Where a layout’s nodes lie (measure_layout), in preorder.
NodeBounds
Where one layout node lies, before its clip’s transform and before node visuals: its layout boxes, not where it is drawn.
PassthroughPlan
What an export range copies: its segments in timeline order, and its audio.
PassthroughSegment
One clip’s share of a copied range.
PlaybackClock
The playback clock of one run of playback: asked each display refresh which timeline time to show.
PlaybackFrame
Result of one real-time presentation attempt.
PlaybackReport
How real-time playback behaves.
Player
Stateful real-time runner.
PreparedLayout
A layout resolved and drawn at one render size: its paint list, and the store key of each text node’s texture (None for empty text).
QualityProfile
Runtime quality controls shared by real-time playback and export.
RenderReport
Outcome of one render attempt when sources may arrive asynchronously.
TextBounds
Where a text lies, as fractions of the canvas, (0, 0) top-left to (1, 1) bottom-right, as its style’s position is: on the picture a text generator draws, before its clip’s transform and effects, and on the canvas for a caption. measure_text measures it.
TextTexture
One prepared text: its texture, pixel size, and where its layout box lies in it.
TextTextures
Fonts and the texts rasterized with them, keyed by content and render size.

Enums§

AudioContinuity
What AudioRenderer::render does with a block that does not start where the previous one ended.
EngineError
Failure produced by an engine runner.
ErrorCode
A failure’s protocol code.
ExportStep
Outcome of one non-blocking exporter step.
ExportTextureStep
One step of an export that leaves its picture as a rendered texture.
MissingFramePolicy
The action a host should take after its renderer reports missing frames.
PassthroughAudio
What an export’s audio is over a copied range. The picture decides whether a range can be copied; the audio only decides whether it is copied too or encoded from the mix beside the copied video.
PlaybackPolicy
Which frame real-time playback shows, and whether sound plays.
Runtime
Where the engine runs.
TextError
Why text could not be prepared.

Constants§

CAPABILITY_SCHEMA
The report’s schema name.
CAPABILITY_VERSION
The report’s schema version.
LAYOUT_WRAP_SLACK
What a text node’s wrapping width adds to its content width, in pixels: float summation order cannot then break a text sized to its own max-content width again. A line it lets through overflows its box by under this much, and a text taller than its box by under this much still fits it.
MAX_AUDIO_BLOCK
Largest block a renderer will mix in one call.
MAX_EXPORT_FRAMES
Largest frame schedule accepted by one export operation.
MAX_SETTLING_SECONDS
Longest a stage replays to settle before a seek target, in seconds.

Traits§

FrameProvider
Supplies decoded source frames as GPU textures to the renderer.
FrameRenderer
Timeline-frame rendering on top of a Renderer.

Functions§

color_policy
The renderer’s color policy for a project’s color pipeline: tone-map HDR sources from its peak, or refuse them.
export_audio_window
The samples an export over range writes as audio: both ends are the samples nearest the range’s ends, half a sample rounding up.
gpu_error_of
The class of error the GPU reported when it rejected a frame’s work (RenderError::Gpu), for the first such error in error’s source chain. Out of memory and validation have no protocol code of their own; this is the evidence a failure report classifies them by.
gpu_fault_of
What the platform’s status for a failed GPU call said about the device, for the first error in error’s source chain that carries one: a native synchronization the renderer met, or a decoder’s or encoder’s GPU call. A memory fault has no protocol code of its own; this is the evidence a failure report classifies it by.
layout_key
A layout’s identity at a render size: its evaluated key and the size. Equal keys lay out and draw alike with the same fonts.
measure_layout
Where each node of a valid layout tree lies on a picture of size, at picture time time, laid out with rasterizer’s fonts as a frame lays it out. canvas is the project canvas, which the tree’s pixel lengths are pixels of (the picture’s own size when they are measured at it). Rects are before the clip’s transform and before node visuals: layout boxes, not where they are drawn. An invalid tree gives unspecified rects, but never panics.
measure_text
Where text in style lies on a canvas of size (TextBounds), laid out with rasterizer’s fonts as TextTextures::prepare lays it out and placed as a frame places it, without drawing it. Measured at the size a frame is drawn at, it agrees with that frame to the pixel; text laid out at another size can break its lines elsewhere.
passthrough_plan
Whether range of project shows its sources untouched.
text_key
A text’s identity at a render size: the text, its style, and the size, hashed (FNV-1a). Never zero.