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.
Be the first to post a comment about this news item