vvvv group has released vvvv 45 beta 25.
                
                
General changes:
- Caching now saves only one file into the application data/temp dir.
 - Slightly better startup performance due to lazy loading of dynamic plugins.
 - Fixed a crash of vvvv if a plugin tried to log from a different thread than the main thread.
 - Fixed various memory leaks related to plugins.
 - Dynamic plugins copy locally referenced assemblies to the output directory on compile, so it should not be necessary anymore to put external dependencies in the bin/managed or plugins folder of vvvv.
 - Fixed a few threading issues regarding background parsing of c# projects and documents.
 - Plugin windows now hide correctly when sent to box (ALT+2) while their parent window is hidden.
 - Plugin nodes are colored red in debug mode (ctrl+F9) if they throw runtime errors.
 - Debug mode now consistently colors nodes throwing errors.
 - Only IOBox is selected after creating it with middle-click while making a connection.
 - Duplicate within context added for patcheditor (keeps input links on duplicated nodes).
 - File/dir open/save dialogs now open with the correct initial file/dir again.
 - Better integration of code editor by using vvvv’s window management for tabbing.
 - Ctrl+click on a dynamic node brings up a dialog to choose which source file to open.
 - Code editor opens up on a per node basis. so it only shows runtime errors of a specific node.
 - String pins of subtype filename/directory now resolve environment variables like %USERPROFILE%.
 - New window: Finder (Ctrl+F).
 - Window switcher now based on Finder and also opens with ctrl+shift+tab.
 - New window: ProjectExplorer (Ctrl+J).
 - Project explorer displays project files of dynamic plugins and effects. it can be used to add/remove documents/references to a dynamic plugin and set the build configuration in order to debug a dynamic plugin in an external IDE like sharp develop or visual studio.
 - Optimized queue node.
 - Dynamic plugins don’t need to be in vvvv/plugins anymore.
 - Cloning a template will use the path of the active patch suffixed with plugins/effects depending on the type of template.
 - Fix: cloning a dynamic plugin should handle illegal c# class name characters properly.
 - If not necessary project files of dynamic plugins are not loaded by vvvv on node creation.
 - Fix: code editor should show errors in included fxh files too.
 - If a node referenced by a v4p file can’t be found or in case of dynamic plugins can’t be compiled it should show up as a red node. see nodes and paths.
 - Fix: it shouldn’t be a problem anymore to change the plugin info of a dynamic plugin during runtime. changing the system name will result in a red node.
 
Plug-in interface:
- Better performance when deleting plugin/dynamic nodes (no more forcing of garbage collection).
 - Fixed memory leak in reloading of dynamic nodes.
 - Generic output pin of type T registers GUIDs of T and all implemented interfaces and subclasses. for example an output of type Apple should be connectable to an input of type Fruit now.
 - Colorpins are now using their subtypes correctly.
 - Texture-output-pins are now spreadable.
 - ISpread shouldn’t lose data if slicecount is increased or decreased.
 - Added new argument IPin to IPinUpdater.Connect/Disconnect methods.
 - Fix: setting slice count of GenericOutputPin to 0 didn’t have any effect.
 - Fix: divide by zero in InputBinSpread.
 - Introduced new IPluginHost2 which implements IPluginHost and INode.
 - Removed all wrapper pin classes in V2. reduces overhead a little and should therefore bring little performance improvements.
 - Moved Pin and DiffPin from VVVV.Hosting to VVVV.PluginInterfaces.V2. it’s now possible to import Pin instead of ISpread if advanced features like Connected / Disconnected events are required.
 - Fix: SetRenderState/SetSamplerState and SetTextureStageState crashed since beta24. Text (EX9) used those methods so hopefully this fixes some strange behaviours reported by various users.
 - Methods of IPinUpdater weren’t called if used in conjunction with V1 plugin.
 - Reduced overhead a little in call to Evaluate method of plugin.
 - Fix: if a plugin only implemented IPluginBase Update on Config pins wasn’t called.
 - Fix: plugin input pins were deleted on recompile if plugin was evaluated each frame (for example if it was selected by inspektor), causing runtime exceptions.
 - Fix: https://vvvv.org/forum/enum-pin-in-v2-always-only-slicecount-of-1.
 - Added extension method ISpread.Clone() and added extension method ISpread.AssignFrom(IList).
 - Added property Buffer to Spread (use with caution).
 - Did a complete overhaul of the v2 pin implementations. much better memory management, far less garbage collections necessary -> hopefully far less glitches.
 - Added pin attribute Lazy to ISpread>. should be used in case one is only interested in a subset of the input. good example would be a getslice node.
 - Fix: v2 plugins use plugin host to log instead of default logger.
 - Fixed overflow exception in RGBAColor when converting to System.Drawing.Color.
 - Fix: ISpread> should handle spread of negative bin sizes correctly.
 - Fix: v1 plugins weren’t properly disposed if SetPluginHost method crashed.
 - StringOutput pin only writes to internal pin if necessary in order to avoid expensive marshalling costs.
 - Introduced new INode2 interface which can be used by plugin writers to inspect the graph of vvvv. see IHDEHost.RootNode.
 
Fixed nodes:
- Frac (Value) can output whole parts up to MaxFloat.
 - QRCodeTexture (EX9.Texture) now only computes when one of its input changes and its textures are now accepted in Queue (EX9.Texture).
 - Cons (EX9.Texture) now evaluates correctly if first pins are nil.
 - Mesh (EX9.Geometry Split now reports vertexbuffer downstream correctly if input has empty or nil mesh.
 - AsString (Value) now deals with a spreaded enum correctly.
 
Comment on this news item