vvvv gamma 2021.3.1
released on 27 02 21
Changes
- Don't show value-editor for generic ioboxes - when created via Link-ALT-click gesture
RegisterServices
will now also be called on stop&run (not just on hot swap)- Reduced amount of memory allocations in VL.IO.OSC
- Faster and allocation free
ToFloat32
/ToFloat64
/etc. (Spread<byte> -> T
) nodes (used for example by VL.IO.OSC) - Added the project directory path to
ExportContext
used in the node factory API. That way node factories no longer need to referenceMicrosoft.Build
to copy files to the output directory.
Fixes
- Fixed performance issues of cache region (internal helper class was allocated too often and the input change check caused a boxing conversion)
- Fixed patches with static slots (like IO box) being considered stateful and in need of a private helper type. This had a bad impact on the runtime performance because loop regions would emit a more expensive code path.
- Type unification will no longer substitute a parameter with an abstract type if the type must have a default constructor. Fixes regression introduced in
2021.3
and seen inVL.Devices.RealSense
- forum - Fixed crash when mapping a nested generic type symbol to a CLR type - seen in
VL.Kairos
when hovering a certain pins - The system didn't recover once it failed to emit a compilation.
- Fixed invalid target code when using Repeat loop on splicers constraint to multiple interfaces - forum
- Fixed backend crash when adaptive node parameters resolve to the same argument
- Fixed random emit crash in backend as reported by @readme
vvvv gamma 2021.3
released on 16 02 21
New
- VL.Stride 3d rendering library based on Stride
- Int IOBoxes now can parse hex strings like 0x8f or #8f
- added Quaternion IOBox
- HTTPGet node
- JSONReader/Writer, ParseJSON and Parse that return XElement instead of XDocument. The nodes returing XDocument are now advanced
- Kill, Shutdown and PID nodes
- MainLoop has incremental mode
- Connecting to a Pad as sink will remove previous link on same operation
- A process now takes its aspect from the respective property in the model
- Adaptive AsReadOnlyMemory and AsMemory and cleanup of Memory related nodes and added Reinterpret memory node
- Boolean operations: NOR, NAND..
- Rectangle operations: SetSize, SetPosition
- Rectangle & Vector2 operations: FixAspectRatio
- Skia: Trim PathEffect, new modes how to deal with aspect ratio of images
- Added a way to run a test patch of an external library. Shown off in VL.Elementa library.
- NodeBrowser: added convenient ways to create Toggle, Bang & Press IOBoxes
- Spreaded Boolean IOBoxes: Configurating ButtonMode works (Toggle, Bang & Press)
Changes
- Reworked and simplified usage of OSC and TUIO nodes
- Moved Enttec, Spacemouse, TheEyetribe, QRCode, ArtNet, Midi, OSC, TUIO and Firmata nodes in their own public repositories
- Removed now obsolete experimental TCPServer/Client and WebSocketServer use VL.IO.TCP and VL.IO.WebSocket instead
- Better support for ref structs forum
- A ref struct will no longer have object has a base type - no boxing
- It's no longer possible to link ref structs into delegate region - ref locals can't be captured.
- It's no longer possible to instantiate generic types or nodes using ref structs - they're not allowed in type argument lists.
- Trace calls will call ToString (ToArray for spans) on them - fixes emit error.
- Adds forwards for Span and ReadOnlySpan to System.Memory.vl (was out-commented before)
- When looking for MSBuild (which is needed to export apps) require at least version 16.8
- Exporter will first build a map of pre-defined packages (based on VL.Skia and VL.Stride) it will then use to replace assembly references so we get a proper solution with nuget package references
- Export using AnyCPU (fixes Stride asset compiler not finding assemblies) and use verbosity = minimal for logger
- Removed tooltip generated "Element not in use" message and removed hack that Create/Update moments weren't shown. In combination this now gives a much easier experience when working with fragmented nodes as whether or not a pin is in use can quickly be observed with the moment assignment tag.
- Added a feature to TreeNodeParentManager that allows to configure whether it's ok to connect to one parent twice (e.g. two links to one group node). Helpful for e.g. Elementa, where you'd want to be warned about that.
- Tuned startup document loading. Help browser will also be loaded so it starts up faster when pressing F1.
Fixes
- Finish link with node will not connect to the "Create" fragment of a process node
- Added BOM check to
FromBytes [String]
- Fixed removal of empty sub patches inside regions forum
- Fixed invalid target code in case a pin name contained an ampersand
- Fixed a stack overflow in hot swap forum
- Global search now also finds forwarded types
- Fixed help browser positioning
- Skia: Fixed SamplePath (only position version) to return success correctly.
- Shutdown dialog not asking to save foreign documents from downloaded NuGet packages anylonger
- Fixed pads not getting initialized with the type's default value (seen in Elementa)
- Fixed regression in type unification (seen in Kairos)
- Inactive IO boxes will no longer subscribe to value tracing forum