feat(oakplugin): wire OpenFX plugins into the node graph and renderer
- oaknode: dynamic node factory registration, PluginNode value model pushing PluginJobPayload, traverser texture passthrough for texture inputs, type-stamped RefBox::get_checked. - oakrender: PluginExecutor dependency-inversion slot; eval resolves and executes plugin jobs, purple frame on failure. - oakplugin: node_factory with full OFX param -> node input translation (15 types, color semantics heuristic, combo ordering, secret/ui_group/ui_page, clip inputs), plugin instance registry, render executor + duplicator installation, progress reporter and active-viewer provider injection points, U8/U16/F16 input conversion with NaN scrubbing, in-place output frame writeback fix. - gl_bridge.rs documents the wgpu<->GL interop spike: Metal-first on macOS rules out wgpu-hal GL interop; offscreen GL context deferred. End-to-end tests cover registration, param translation, CPU render pixel assertions, identity passthrough and NaN fallback.
This commit is contained in:
@@ -627,6 +627,12 @@ impl NodeValueTable {
|
||||
pub fn rows(&self) -> &[(ValueType, NodeValue, Option<String>)] {
|
||||
&self.rows
|
||||
}
|
||||
|
||||
/// Mutable row access (the render seam resolves job payloads into
|
||||
/// finished textures in place).
|
||||
pub fn rows_mut(&mut self) -> &mut Vec<(ValueType, NodeValue, Option<String>)> {
|
||||
&mut self.rows
|
||||
}
|
||||
}
|
||||
|
||||
/// Structural equality: `Texture` compares by handle address, `Samples`
|
||||
|
||||
Reference in New Issue
Block a user