closing the VL editor via CTRL+W now immediately asks for saving (not only when closing vvvv)
Fixed initialization issue when plugin was set multiple times during patch loading
Removed nupkg files from vvvv zip (reduced download size)
save all (alt-s) vs. save all + layout (ctrl-alt-s). now also ctrl-alt-s only saves patches that somehow got marked as dirty. Self (VVVV) node outputs layout changed info.
enum consuming nodes like Enum2Ord make sure to be aware of all user created enums. They also auto-evaluate to make sure that the enum reported to ioboxes upstream is up to date, even if the output might not be needed. New explicit versions of Enum2String, Enum2Ord, Ord2Enum and String2Enum now allow to adjust enum subtype with own configuration pin. Null node got legacy. CreateEnum now comes with a hidden input that allows to propagate the enum type upstream.
fixed resetting enums to default where default entry has a space inside.
regarding infamous "defaced IOBoxes" bug:
patches now refresh after panning and when vvvv is deactivated
added 2 commandline options: /refreshonf5 and /norefreshonscroll
NodeBrowsers ClonePanel now uses new directory chooser dialog
all nodes come with an Evaluate pin now; "Evaluate" pins are reserved to us and get red when created via plugin, hlsl or vl. They still should work. Added a test case for both assumptions
You now can write plugins that are aware of if they get evaluated or not. FrameDelay serves an example of how to make use of that feature.
tweaked mouse and keyboard .. notifications: sender is now attached to each notification. additionally VL got its own notifications, so they get converted on the way to VL.
the windows form Application.Idle event will now be raised by vvvv - useful to drive mainloops of other UI libraries
AllowFeedback attribute is obsolete. Implement IPluginFeedbackLoop to specify which ouput pins depend on which input pins.
Fixed deadlock when hitting breakpoint inside VS 2017
node meta info (summary, remarks,..) now combines info from .xml with info saved in .vl document
PatchExplorer now updates correctly on UNDO
added hover style for comments
SaveAs in vl now references the newly saved file for its vvvv-nodes
use CTRL+2 to make a snapshot of a patch (also goes to clipboard)
toggle CTRL+4 to capture an animated gif of the current patch
tab history navigation now also via CTRL + < and CTRL + >
LineUp commands lines up patch elements: ALT+L
ALT+F1 searches for the nodes name on MSDN
Color IOBoxes now parse colors in different formats
values can now be edited on pins directly
the settings file is now only written when its content actually changed
pin tooltips now show values in more cases
indicator (top left of patch) now shows when compiler is preparing new build in the background
removed auto generated node definitions for enum entries - use IO box instead
the default value for a type can be defined with "CreateDefault" operation
value inspection will now also differentiate between the inner and outer parts of accumulators (all border control points for that matter)
do not mark unconnected pins in pin group as unused anymore
added Recompile command to context menu
synchronization of a patch with its symbol will now be done in background
links going into a region will now also act as seeds for the default moment inside the region.
the default value of an observable is now Never (instead of Empty) - that way one can nicely wait on values to come in. Needed for network nodes which pull in background
speed of patch tracing much improved by using a fixed sized array instead of concurrent dictionary to ask for a tracer
new region called Anonymous similar to Delegate primarily used by stateful lifting mechanism.
major rework of compiler which allowed us to write all primitive regions (Repeat, Foreach, If, Delegate, Anonymous) as plugins and put them into VL.CoreLib. This rework also exposed a couple of bugs related to apply pin and input group liftings.
improved support for interfaces
once user adds an interface to class/record the interface will be implemented immediatly using default implementations
implementing generic interfaces should work now
defining interfaces should work now
Run, Stop, Pause modes added
new settings "RuntimePauseOnError" in combination with "RuntimeAutoJumpToError" to control wheter or not VL will stop executing nodes and jump to the node which triggered the last exception as well as "RuntimeDisableJITOptimizations" to make it more precise. The graph will also be colored based on whether a node was executed or not.
importing types, nested types, events to observable, forward all nodes etc.
Many many more little bug fixes and performance improvements
added easy base classes to write DynamicEnums
press CTRL+SHIFT+J to open .NET Dependencies in SolutioExplorer directly
Nested types show up correctly in SolutionExplorer
drag & drop types and nodes from the SolutionExplorer
reactive nodes throw their exceptions on the main loop for better debugging
dynamic enum switches to default entry un definition update when it was empty before
dynamic enums are sorted alphabetically, can opt out via property setter
added ManualDynamicEnumBase for dynamic enums that will be modified in VL patch
dynamic enum has a 'Tag' field to pass data along per entry
SolutionExplorer navigates to inport when a corresponding node clicked in patch
double click in vector editors works per component
patches can now be nested into each other
"Restructure Document" menu entry added. It reorganizes all patches by category and name.
node browser improvements:
node browser allows to browse foreign symbols (nodes, types and categories) from assemblies and nugets. They get colored differently. This feature is only available when .NET nugets or dlls are directly referenced. For if this is distracting or too slow, you can temporarily hide those foreign symbols by clicking the button on the right of the search box.
for when nodes are ambiguous, multiple choice questions for categories and pins pop up to select the exact overload. the followup choices concerning categories are displayed in a way that you can distinguish between the actual choice and the full category info (black versus grey)
simplified logic when to show "Node" or "Region" choices: at the end of the decision process
Primitives like ForEach get rendered in a special way and don't lead to further questions.
Ok button now always closes node browser. Within the multiple choice browsing process a user can click OK at any time (most likely resulting in a red node, saying that it is somewhat ambigous. you can go back to the browsing process at any time by double clicking on the node)
better tooltips
many compiler tests added
type inference improved
node and type references resolve/bind mechanism improved:
now can deal with .NET type forwarding
adaptive nodes: now version gets checked when still ambiguous. ToString (Hex) [Adaptive] and alike now working
improved performance of lookup algorithm.
better tooltip for if node or type is not found: we now distinguish two infos: the "last dependency" and the "last file" the symbol was found in. The user now can see over which reference the symbol was found last, which should be easier to understand than where it was found.
types get searched in extended scope (e.g. in all dlls that are somehow referenced by docs referenced by the current doc). By that type annotations in ioboxes are still resolveable. For nodes this is not done to keep the node browser clean.
cylcic graph checks improved
Edit->Expose Pins on a node creates inputs/outputs for all its pins
menu now shows documents red if they have missing dependencies
missing nugets can now be removed or installed via menu (if they are available on nuget.org)
newly added nugets can be used right away without a restart.
new source package format PACKAGENAME/PACKAGENAME.vl
backup files now have the same relative paths than the original file
backup files now have the file extension .vlb
added shortcut Ctrl+Shift+I to copy GUID of currently selected element
reporting why very old files couldn't be loaded and how to work around
performance fix for enum pins on node with huge spreadcounts. Calculating error status of pin took to long.
fixes
fixed laggy feeling on machines with high double click area in windows system settings
dynamic enums initialize correctly
improved resize cursor on regions and it shows correct arrows
allowing '_' for type annotations
debug timer will not call into native COM code anymore
time difference of IFrameClock will not be negative
renaming generic types also updates it's type annotations
importing enums sts them to immutable by default
double click while linking works in all regions
middle click while linking from any generic/adaptive/object input opens NodeBrowser with IOBox type choice
bool IOBoxes display bangs much better
regions with only pins as content have a min size
bang IOBoxes don't stop upstream values anymore
no more ToolTip flickers with wrong content
fixed jumps while dragging nodes caused by finished compilation from the background
fixed many redraw bugs after compilation is finished
improved alignment of CLR and VL symbol information so selection of which node to draw pink given a runtime exception should be better
got rid of a few special flags so replacing regions in a patch should behave better
added a safety mechanism to our serialization so ids are always unique which should allow the system to also load "broken" patches
fixed coloring of apply pins on process nodes
fixed Surround menu entry not creating full node reference so resulting region could be ambiguous.
fixed certain assemblies from GAC not showing up in reference dialog
fixed loading of GAC assemblies with dots in their name
fixed RAW input from vvvv to VL
couple of fixes regarding referenced documents:
paths will be made absolute on deserialization and relative on serialization
removed lookup magic of unresolvable VL documents through installed packages and added converter for old patches
Fixed creating a new VL document if reference couldn't be found
couple of fixes related to imported and user written documentation of operations and pins not showing up in the node browser
fixed dummy types propagating in patches and should they appear in patches the tooltip will read "No type"
fixed empty sub patches being created on copy paste
fixed hot swap to run over all entry points at once and not individually for each of them.
in case there's no Update in a stateful higher order region one of the other subpatches will be chosen as default.
fixed vectors and colors being deserialized randomly
fixed links inside regions not being added to default patch
fixed type annotation on pads not getting picked up anymore after assign a slot to it.
changing the default category of a canvas wasn't picked up by incremental compilation.
fixed default value for IResourceProvider<T> by taking VL generated default resource into account.
fixed memory leak when using Spread<Resource<Stream>> as VL output in integration
fixed link assignments being lost after copy/paste