Skip to main content

Module plugin_api

Module plugin_api 

Source
Expand description

Plugin substrate: target descriptors, shared bind layouts, WGSL helpers, pipeline builders. See plugin_api for the published extension surface. Plugin substrate: target descriptors, shared bind layouts, WGSL helpers, and pipeline builders.

This module publishes the pieces a plugin needs to build pipelines that drop into the lib’s existing render passes. A plugin reuses:

  • Target descriptors ([OpaqueTargetDesc], [OitTargetDesc], [MaskTargetDesc], [PickTargetDesc], [ShadowTargetDesc]) describe the render-target formats, blend states, and depth-stencil state each lib pass expects. Pipelines built against these are compatible with the corresponding pass.
  • [SharedBindings] is the group-0 bind layout (camera, lights, shadows, clip, IBL) shared by every scene pipeline. Plugin pipeline layouts list it as group 0.
  • [shared_wgsl] holds string constants with the standard bind declarations and shading helpers (viewport_pbr_shade, viewport_oit_pack, viewport_sample_csm, etc.) so plugin shaders stay in lockstep with the lib’s lighting and transparency contracts.
  • Pipeline builders on crate::resources::ViewportGpuResources (build_opaque_pipeline, build_oit_pipeline, …) construct the common variants in one call. Plugins ship one shader and call a builder per variant.

All accessors live on crate::resources::ViewportGpuResources.

Re-exports§

pub use cull::BatchMeta;
pub use cull::CullSubmission;
pub use cull::InstanceAabb;
pub use cull::SingleMeshDraw;
pub use item_type::ItemFrameContext;
pub use item_type::ItemTypePlugin;
pub use item_type::OutlineMaskContext;
pub use item_type::PaintContext;
pub use item_type::PickRay;
pub use item_type::PluginItemCollection;
pub use item_type::ShadowCastContext;
pub use target_desc::MaskTargetDesc;
pub use target_desc::OIT_ACCUM_BLEND;
pub use target_desc::OIT_REVEAL_BLEND;
pub use target_desc::OitTargetDesc;
pub use target_desc::OpaqueTargetDesc;
pub use target_desc::PickTargetDesc;
pub use target_desc::ShadowTargetDesc;

Modules§

cull
GPU-driven culling service published to plugins.
item_type
ItemTypePlugin trait and supporting types.
shared_wgsl
WGSL helper catalog.
target_desc
Render-target descriptors published for plugin pipeline construction.

Structs§

SharedBindings
Group-0 bind layout shared by every scene pipeline.