pub struct NodeManifest {Show 14 fields
pub api_version: u32,
pub display_name: String,
pub version: String,
pub author: String,
pub description: String,
pub category: NodeCategory,
pub tags: Vec<String>,
pub model: ExecutionModel,
pub parameters: Vec<ShaderParam>,
pub ports: Vec<NodePort>,
pub output_resolution_scale: f32,
pub output_hint: Option<OutputHint>,
pub actions: Vec<ActionDef>,
pub embedded_textures: Vec<EmbeddedTexture>,
}Expand description
§========================================================================== Node Manifest
Complete node definition manifest
This is returned by get-manifest() and contains all metadata needed for the host to:
- Calculate GPU memory layout (std140)
- Build UI widgets
- Validate shader bindings
- Allocate resources
- Register available actions
- Display plugin information in marketplace/browser
Fields§
§api_version: u32API version (must match host’s expected version)
display_name: StringDisplay name shown in node palette/graph
version: StringPlugin metadata for distribution Version string (e.g., “1.0.0”, “2.1.3-beta”)
Author/organization name
description: StringHuman-readable description
category: NodeCategoryCategory for UI organization
Searchable tags (e.g., [“glitch”, “retro”, “vhs”])
model: ExecutionModelExecution model (fragment or compute)
parameters: Vec<ShaderParam>List of parameters Host calculates std140 layout from this list Order matters for struct field layout!
ports: Vec<NodePort>Port definitions (texture + control) Texture ports map to @group(2) @binding(N) in shader
output_resolution_scale: f32Output resolution scale relative to input 1.0 = same size, 0.5 = half size, 2.0 = double size
output_hint: Option<OutputHint>Output format hint (optional) Default (None/auto): Rgba8Unorm for all intermediate textures Use hdr/high-precision only for effects requiring wider dynamic range See output-hint variant documentation for details
actions: Vec<ActionDef>List of available actions Standard actions (reset, randomize) are handled by host Custom actions require execute-custom-action implementation
embedded_textures: Vec<EmbeddedTexture>Embedded textures bundled in this plugin (optional)
These textures are decoded and registered by the host at load time. Use this for asset packs, LUT collections, or fallback images that should be distributed together with the plugin.
Each texture is identified by its key and can be referenced via the TextureSource node or parameter-driven texture switching.
Trait Implementations§
Source§impl Clone for NodeManifest
impl Clone for NodeManifest
Source§fn clone(&self) -> NodeManifest
fn clone(&self) -> NodeManifest
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more