viewport-lib 0.18.1

3D viewport rendering library
Documentation
/// Clustered-shading GPU resources (cluster grid + light index list + clear pass).
pub mod clustered;
/// Built-in colourmap LUT data.
pub mod colourmap_data;
/// Screen-space decal pipeline (D1).
pub(crate) mod decal;
/// Dynamic resolution intermediate render target.
pub(crate) mod dyn_res;
/// IBL precomputation and environment map upload.
pub mod environment;
mod extra_impls;
/// Font atlas and single-line text layout for overlay rendering.
pub(crate) mod font;
/// GPU marching cubes compute pipeline.
pub mod gpu_marching_cubes;
/// GPU particle systems: compute-driven emit + sim with sprite draw.
pub mod gpu_particles;
mod highlight;
/// GPU compute path for IBL precomputation (selected at runtime when supported).
mod ibl_compute;
/// GPU implicit surface types and pipeline.
pub mod implicit;
mod init;
mod instancing;
/// Built-in matcap texture data (procedurally generated).
pub mod matcap_data;
/// Slotted GPU mesh storage with free-list removal.
pub mod mesh_store;
/// Factory functions for the mesh-family pipelines that share a single
/// shader source. Used at init time and on `register_deformer` rebuild.
pub(crate) mod mesh_pipelines;
mod meshes;
mod overlay_shape;
mod overlay_text;
mod overlays;
mod plugin_builders;
mod postprocess;
/// Scatter-volume participating-media pipeline state and uploads.
pub mod scatter_volume;
mod scivis;
pub(crate) mod mesh_sidecar;
/// Sparse voxel grid topology processing (boundary face extraction).
pub mod sparse_volume;
mod textures;
mod types;
/// Background runner for long-running uploads.
pub mod upload_jobs;
/// Unstructured volume mesh topology processing (tet / hex boundary extraction).
pub mod volume_mesh;
mod volumes;

pub use self::extra_impls::{ComputeFilterResult, lerp_attributes};
use self::extra_impls::{
    build_glyph_arrow, build_glyph_sphere, build_unit_cube, generate_edge_indices,
};
pub use self::font::{FontError, FontHandle};
pub use self::gpu_marching_cubes::{GpuMarchingCubesJob, VolumeGpuId};
pub use self::gpu_particles::{GpuParticleSystemConfig, GpuParticleSystemId, ParticleRender};
pub use self::implicit::{
    GpuImplicitItem, GpuImplicitOptions, ImplicitBlendMode, ImplicitPrimitive,
};
pub use self::plugin_builders::{
    HDR_COLOR_FORMAT, MASK_COLOR_FORMAT, PICK_COLOR_FORMAT, PluginPipelineOpts, SCENE_DEPTH_FORMAT,
    SHADOW_DEPTH_FORMAT,
};
pub use self::scivis::curve_store::{
    GlyphSetId, PointCloudId, PolylineId, RibbonId, SpriteInstanceSetId, SpriteSetId, StreamtubeId,
    TensorGlyphSetId, TubeId,
};
pub(crate) use self::scivis::curve_store::{
    GlyphSetStore, PointCloudStore, PolylineStore, RibbonStore, SpriteInstanceSetStore,
    SpriteSetStore, StreamtubeStore, TensorGlyphSetStore, TubeStore,
};
pub use self::mesh_sidecar::deform::{
    DEFORM_SLOT_PARAMS_BYTES, DeformSlotHandle, deform_slot_params_byte_offset,
};
pub use self::mesh_sidecar::registry::{
    DEFORM_PARAMS_PER_SLOT_PUB, DEFORM_SLOT_COUNT_PUB, DeformStage, DeformerDesc, DeformerId,
};
pub use self::sparse_volume::SparseVolumeGridData;
pub use self::types::BatchMeta;
#[allow(deprecated)]
pub use self::types::ClipVolumeUniform;
pub(crate) use self::types::ScatterViewportState;
pub(crate) use self::types::{
    AtlasBlitUniform, BackdropBlurState, BloomUniform, ClipPlanesUniform, ContactShadowUniform,
    CurveMeshOutlineItem, DofUniform, DualPipeline, FrustumPlane, FrustumUniform,
    GaussianSplatDrawData, GlyphBaseMesh, GlyphGpuData, GpuProjectedTetMesh, GridUniform,
    GroundPlaneUniform, ImageSliceGpuData, InstanceAabb, InstanceData, LabelGpuData,
    LicAdvectUniform, LicObjectUniform, LicSurfaceGpuData, MeshInstanceGpuData, ObjectUniform,
    OutlineEdgeUniform, OutlineObjectBuffers, OutlineUniform, OverlayShapeGpuData,
    OverlayShapeTexBatch, OverlayShapeTexVertex, OverlayShapeVertex, OverlayTextVertex,
    OverlayUniform, PickInstance, ProjectedTetUniform, RawGeomOutlineBuffers, SHADOW_ATLAS_SIZE,
    ScreenRectOutlineBuffers, ShadowAtlasUniform, SplatOutlineBuffers, SplatOutlineMaskUniform,
    SpriteGpuData, SsaoUniform, StreamtubeGpuData, SubHighlightGpuData, TensorGlyphGpuData,
    ToneMapUniform, ViewportHdrState, VolumeSurfaceSliceGpuData,
};
pub use self::types::{
    AttributeData, AttributeKind, AttributeRef, BuiltinColourmap, BuiltinMatcap, CLIP_VOLUME_MAX,
    CameraUniform, ClipVolumeEntry, ClipVolumesUniform, ColourmapId, GpuMesh, GpuTexture,
    LightUniform, LightsUniform, MAX_SCENE_LIGHTS, MatcapId, MeshData, OverlayVertex,
    PointCloudGpuData, PolylineGpuData, ProjectedTetId, ScreenImageGpuData, SingleLightUniform,
    TextureMemoryStats, Vertex, ViewportGpuResources, VolumeGpuData, VolumeId,
};
#[cfg(feature = "future")]
pub use self::upload_jobs::JobHandle;
pub use self::upload_jobs::{FrameBudget, JobId, Jobs, ProgressHandle, ResultSlot, UploadStatus};
#[allow(deprecated)]
pub use self::volume_mesh::{
    CELL_SENTINEL, TET_SENTINEL, VolumeMeshData, extract_clipped_volume_faces,
};