Nodos Broadcast Bundle Changelog
Changelogs from version 1.2.6 to 1.3.0.
Nodos Engine
- New:
- Nodos is now able to run on Linux
- Frame Profiler
- A command line parameter for loading a graph at startup for Launcher
--disable-beacon
and--beacon-ip-address
command line arguments- Ability to edit & save plugin defined (class-named) graph nodes
- Trigger node now has
exe
typed input pin scheduling_type
field to Node fbs (Regular, Function, Event)file_picker_type
to Visualizer fbs (OPEN, SAVE)- Support for UTF-8 file paths
- Changed:
- Portal pins created on other portal pins now inherit their information from the source portal
- Nodes with unknown typed pins will not be activated and will stay orphan
- When saving a graph, empty fields are removed to reduce graph size
- Improved execution timing logic
- Rejecting connections that might result in illegal execution flow
- Deprecated
has_responsive_module
of Node fbs; addedinactivity_reasons
instead - Provided more descriptive error logging when scanning modules
- Updates from nodes are now accepted in live mode
- Fixed:
- Modules are now able to be reliably unloaded/loaded while graph is running
- Increase stability for single-input to multi-out scenarios
- Crash on compilation of long graphs by increasing the stack size
- Potential crashes or hangs when a process node's application is closed/killed or hanged
- Crash during engine restart when a graph contained a Process Node
- Crash on function node calls after a module reload
- Importing a graph inside another graph
- Nodes with orphan pins being assigned to Idle Runner forever during scheduling
- Leaking string buffer resources when a module is unloaded
- Possible race condition when accessing pin data from non-runner threads
- Editor and app service reconnection issues
- Patch number not being respected during module dependency resolution
- Pin data being invalidated twice during module unload
- Crash when unloading/loading types of portal pins of class-named graphs
- Issue with path restart coming from an input when multiple inputs are present
- Issue with loading/creating class-named graphs inside of class-named graphs
- Not removing unloaded nodes from the node list
- Converting collapsed graphs with a pin to portal pins (for pre-1.2 graphs)
- Template resolving of class-named graphs
- Optimized cycle validation during graph compilation for scheduling
- Optimized cycle validation when creating pin connections
- Undo/Redo stack not being sent to new editor connections
Editor
- New:
- Action History pane
- Variables pane for Set/Get variable nodes
- Native file dialogs for Open/Save graph actions
- Option to sort properties in Property Pane in editors
- Portal On Parent: A single property on parent graph controls multiple child node properties
- Option to sort categories in Property Pane in editors
- Option to add new categories in Property Pane in editors
- "Recently opened graphs" pulldown menu
- Drag-drop of nodes from the Modules Pane to the graph
- Aliases for nodes in the context menu (e.g.,
png
redirects toReadImage
)
- Changed:
- Engines Pane now has detailed info and a revisited look and feel
- Actions now return result descriptions
- De-duplicated outer connections when collapsing nodes into a graph
- Module status messages are now shown at the top
- Revamped the Apps pane
- Limited max node width & added a configuration option
- Fixed:
- Unable to change a portal pin's display name
- Engine module status text getting stuck at "unloading"
- Crash when the Nodos engine restarted
- No other version was listed in Modules Pane if the current version depended on an incompatible API version
- Open or closed panes not being saved
- Crash when a log larger than 4096 characters was received
- Unable to navigate in node graph during live mode
- Incorrectly showing a property as modified/unmodified in Property Pane sometimes
SDK
- New:
RequestSubsystemForNode
API for managing dependencies at node-level- Various methods to the node helper base class in C++ SDK
- MSVC visualizer for
nosName
. EngineBuffer
andEngineString
C++ helper classes for managing Nodos allocated buffers- Helper macro (
NOS_DECLARE_FUNCTIONS
&NOS_ADD_FUNCTION
) for function nodes - Nodos app sample for OpenGL texture sharing
- Nodos CLI can now be extended by plugins
- Partial named-value updates for both modules and editors
- Removed (Breaking Changes):
- Removed deprecated
OnNodeUpdated
and renamedOnPartialNodeUpdated
toOnNodeUpdated
- Removed
AsyncRequestSubsystem
- Removed
CopyTo
fromnosNodeFunctions
; useExecuteNode
instead - Removed
OnOrphanPinRemoved
- Removed
CanCreateNode
. - Renamed
nos.fb.Void
tonos.Generic
- Renamed
GetCurrentItemId
API toGetCurrentRunnerItemId
- Removed deprecated
- Changed:
- New major versions for plugin (37), subsystem (11), and process (18) SDKs
- Plugin SDK version updated from 36.1.1 to 37.5.0
- Subsystem SDK version updated from 10.1.1 to 11.6.0
- Process SDK version updated from 15.0.0 to 18.1.0
- Redesigned Node definition & plugin configuration file structures
TemplateParameters
struct now has aname
fieldnos.fb.Track
andnos.fb.LensDistortion
were removed from built-in types (now innos.track
)nos.fb.CaptureData
andnos.fb.CaptureDataArray
types were deleted from built-in typesallows_cyclic
field in node definitions was removed- Changed how pin values are loaded in node definition files for class-named graphs
- Deprecated
nosFbNode
and similar typedefs; usenosFbNodePtr
instead - Changed
SendCustomEditorMessage
API toSendEditorMessage
- Buffer returned by
nosEngine.GetDefaultValueOfType
now needs freeing - Improved deadlock avoidance for Process nodes
- New major versions for plugin (37), subsystem (11), and process (18) SDKs
- Fixed
- Enums were not included in
Modules
- New Modules
- nos.animation: Nodes for animating values on node graph:
Animate
,AnimationCurve
,Interpolate
- Support for custom interpolators
- nos.sys.variables: Nodes for managing named variables on node graph:
GetVariable
,SetVariable
- nos.decklink: Support for Blackmagic Design Decklink SDI I/O
- nos.sys.decklink: Subsystem for managing DeckLink devices
- nos.sys.device: For managing devices on the system
- nos.display:
DisplayOut
Node using HDMI ports - nos.sys.settings: Subsystem for helping plugins persist their settings
- nos.str: String nodes like
Tokenizer
,Regex
,Json2Pin
,Pin2Json
- nos.rive (Experimental): For rendering Rive artboards
- nos.animation: Nodes for animating values on node graph:
- nos.aja:
- New: A new pin manage acquire/release state of the device for exclusive use
- Changed: Device pin now uses
nos.sys.device
for better device management
- nos.math:
- Changed: Removed
Add_f32
and similar nodes & added migrations tonos.reflect
for Arithmetic nodes
- Changed: Removed
- nos.mediaio:
- New
RGBA
toRGB24
conversion nodeGetLumaCoeffs
graph.
- New
- nos.reflect:
- New
- Enum arrays
- Generic
LessThan
andGreaterThan
nodes
- Changed:
SetVariable
node now hasOnVariableUpdated
event - Fixed: Array nodes crash or malfunction occasionally
- New
- nos.sys.vulkan:
- New
- Missing image formats for swapchain
- GPU device selection & validation layer settings
- C++ helpers for managing resources & commands
- Black stock texture option for plugins
- Option to use dedicated transfer queues for copy operations over PCI
- Changed
- Shader nodes now accept array types
CreateResource
now requires a mandatory tagSetResourceTag
is removedBegin
functions now require anosCmdBeginParams
andBegin2
was removedRegisterShader
replaced withRegisterShader2
- Fixed
- Crash on device lost
- Possible race conditions when accessing swapchain
- Unable to load plugins with runtime-compiled shaders without
glslc
on PATH
- New
- nos.track:
- New:
Track
,CaptureData
, andLensDistortion
data types (moved from built-in) - Changed
- Track output pin becomes orphan when UDP data is not available
- Moved
AddTrack
fromnos.math
tonos.track
- New:
- nos.utilities:
- New
- New String utility nodes:
Regex
,Json2Pin
,Pin2Json
- Option to use host-cached buffers in
UploadBufferProvider
SwitchTrigger
nodeConditionalTrigger
nodeTriggerOnAnyInput
nodeTextureMonitor
nodeHost
node to use host device information in node graph- Layout nodes (experimental)
- New String utility nodes:
- Fixed:
ReadImage
trying to load network file info in Nodos thread
- New
- nos.webcam:
- New: Webcam output node
- Fixed: Black screen when two same channels are opened
- nos.webrtc:
- New: HTTPS support