Skip to main content

alpha2_engine/
lib.rs

1//! Player and exporter public API.
2//!
3//! # `wgpu` interop
4//!
5//! The default API names no `wgpu` type: hosts lend frames as [`alpha2_render::SourceView`]s
6//! through [`FrameProvider`] and get back [`alpha2_render::RenderedTexture`]s and readbacks.
7//! Items taking `wgpu` textures (such as rendering into hardware encoder NV12 planes) are
8//! documented only with the `wgpu-interop` feature and follow `wgpu`'s major version.
9
10mod audio;
11mod capabilities;
12mod downmix;
13mod error;
14mod error_code;
15mod exporter;
16mod frame;
17mod generated;
18mod layout;
19mod passthrough;
20mod playback;
21mod player;
22mod policy;
23mod quality;
24mod schedule;
25mod snapshot;
26mod text;
27
28pub use alpha2_layout::{
29    Baselines, CanvasRect, LAYOUT_WRAP_SLACK, LayoutBounds, NodeBounds, PictureSize,
30    PictureSizeError, TextBounds, measure_layout, measure_text, text_key,
31};
32pub use audio::{
33    AudioContinuity, AudioNeed, AudioRenderStatus, AudioRenderer, MAX_AUDIO_BLOCK,
34    MAX_SETTLING_SECONDS,
35};
36pub use capabilities::{
37    CAPABILITY_SCHEMA, CAPABILITY_VERSION, CapabilityReport, ColorReport, Feature, GpuMemoryReport,
38    GpuReport, PlaybackReport, Runtime,
39};
40pub use error::EngineError;
41pub use error_code::{ErrorCode, gpu_error_of, gpu_fault_of};
42pub use exporter::{
43    ExportAudioWindow, ExportFrameNeeds, ExportPlaneStep, ExportProgress, ExportStep,
44    ExportStepTimings, ExportTextureStep, Exporter, MAX_EXPORT_FRAMES, export_audio_window,
45};
46pub use frame::{
47    FrameGraph, FrameNv12Render, FrameProvider, FrameRender, FrameRenderer, FrameYuv420pRender,
48    GpuFrameRenderer, RenderReport, check_frame_effects,
49};
50pub use layout::PreparedLayout;
51pub use passthrough::{PassthroughAudio, PassthroughPlan, PassthroughSegment, passthrough_plan};
52pub use playback::{ClockStep, PlaybackClock, PlaybackPolicy};
53pub use player::{PlaybackFrame, Player};
54pub use policy::{MissingFramePolicy, color_policy};
55pub use quality::QualityProfile;
56pub use snapshot::EngineProject;
57pub use text::{
58    FramesWithText, TextError, TextPixels, TextTexture, TextTextures, TextUpload, layout_key,
59};