Skip to main content

molgfx_render/
lib.rs

1//! The render graph, passes and the engine that drives a frame.
2//!
3//! Public surface: the engine, its configuration, render targets and typed
4//! outcomes. Graph internals, passes, pipelines and culling are not exposed;
5//! callers drive rendering entirely through [`Engine`].
6
7#![forbid(unsafe_code)]
8
9mod engine;
10mod error;
11mod graph;
12mod passes;
13mod residency;
14mod residency_machine;
15mod scene_gpu;
16
17#[inline]
18fn fallback<T>(candidate: impl IntoIterator<Item = T>, fallback: T) -> T {
19    candidate.into_iter().fold(fallback, |_, value| value)
20}
21
22#[cfg(test)]
23mod testing;
24
25pub use engine::{
26    AdaptiveQuality, AdaptiveQualityConfig, AntiAliasingStyle, AttributeChunkWindow, BackdropStyle,
27    BloomStyle, BondChunkPlacement, ChunkPlacementError, ChunkPlacementId, ChunkPlacementStatus,
28    ChunkRepresentation, ChunkResidencyError, ChunkResidencyMetrics, DepthCue, DepthOfField,
29    DerivedCacheBudget, DerivedCacheUsage, DisplayGamut, DisplayTransform, EffectLayer, Engine,
30    EngineConfig, FocusTarget, FrameCompleteness, FrameDegradation, FrameMetrics, FrameReport,
31    FrameStatus, FrameTiming, HdrImage, IllustrationStyle, Image, ImageConfig,
32    InstanceChunkPlacement, InstanceChunkWindow, LigandPoseStats, LightingEnvironment, MotionBlur,
33    PICK_READBACK_BYTES, Pick, PickEntity, PointChunkPlacement, PresentationEffect, QualityTier,
34    RelationChunkPlacement, RenderMode, RenderProfile, RenderSession, ResidentGenericChunk,
35    ResidentStructureChunk, ResidentTrajectoryChunk, ResolvedRenderPlan, StructureChunkPlacement,
36    ToneMapping, TrajectoryChunkWindow, TransferFunction,
37};
38pub(crate) use engine::{
39    DerivedCache, DerivedCacheClass, DerivedCacheKey, DerivedFootprint, MaterializationPlan,
40};
41#[cfg(not(target_arch = "wasm32"))]
42pub use engine::{FrameTicket, SequenceConfig, SequenceFrame, SequenceRenderer};
43pub use error::RenderError;
44pub use molgfx_geometry::PackingError;
45pub use residency::{
46    ImmutableArenaMetrics, ResidencyConfig, ResidencyCounters, ResidencyInitError,
47    ResidencyMetrics, ResidencyWorkspace,
48};
49pub use residency_machine::{
50    ResidencyMachine, ResidencyMachineError, ResidencyMachineMetrics, ResidencyState,
51    ResidencyTicket,
52};
53pub use scene_gpu::brick_atlas::types::{
54    BrickAtlasConfig, BrickAtlasError, BrickAtlasKind, BrickAtlasMetrics, BrickAtlasPoll,
55    BrickAtlasUpload,
56};
57pub use scene_gpu::brick_atlas::upload::GpuBrickAtlas;