Skip to main content

lumen_engine/gpu/
mod.rs

1//! GPU-native graph compiler and renderer.
2//!
3//! Nodes compile into stable GPU resources and pass templates; frame-varying
4//! values bind through uniform/uploads without rebuilding the render graph.
5
6mod binding;
7pub(crate) mod compiler;
8#[cfg(feature = "ffmpeg")]
9mod media;
10mod params;
11mod renderer;
12#[cfg(any(
13    all(target_os = "macos", feature = "ffmpeg", feature = "metal"),
14    all(
15        target_os = "linux",
16        feature = "ffmpeg",
17        feature = "cuda",
18        feature = "vulkan"
19    )
20))]
21mod target;
22mod types;
23
24pub use binding::FrameBindContext;
25pub use compiler::{CompileContext, GpuCompileNode};
26pub use renderer::GpuCompositionRenderer;
27#[cfg(all(
28    target_os = "linux",
29    feature = "ffmpeg",
30    feature = "cuda",
31    feature = "vulkan"
32))]
33pub use target::{CudaNvencTarget, CudaNvencTargetPool};
34#[cfg(all(target_os = "macos", feature = "ffmpeg", feature = "metal"))]
35pub use target::{MetalVideoToolboxTarget, MetalVideoToolboxTargetPool};
36pub use types::{
37    AlphaMode, BoundFrame, CompiledComposition, CompiledOutput, FramePortRef, GpuCompiledNode,
38    MediaTextureKey, RasterHandle, RasterMetadata,
39};