Become a member
Become a member

or
Log in
Log in

or
News

vvvv 45 beta 25

Agrandir
vvvv group
Articles
Tutorials
Reviews
Classified Ads
Forums

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

    Viewers of this article also read...

    cookies
    We are using cookies!

    Yes, Audiofanzine is using cookies. Since the last thing that we want is disturbing your diet with too much fat or too much sugar, you'll be glad to learn that we made them ourselves with fresh, organic and fair ingredients, and with a perfect nutritional balance. What this means is that the data we store in them is used to enhance your use of our website as well as improve your user experience on our pages and show you personalised ads (learn more). To configure your cookie preferences, click here.

    We did not wait for a law to make us respect our members and visitors' privacy. The cookies that we use are only meant to improve your experience on our website.

    Our cookies
    Cookies not subject to consent
    These are cookies that guarantee the proper functioning of Audiofanzine and allow its optimization. The website cannot function properly without these cookies. Example: cookies that help you stay logged in from page to page or that help customizing your usage of the website (dark mode or filters).
    Google Analytics
    We are using Google Analytics in order to better understand the use that our visitors make of our website in an attempt to improve it.
    Advertising
    This information allows us to show you personalized advertisements thanks to which Audiofanzine is financed. By unchecking this box you will still have advertisements but they may be less interesting :) We are using Google Ad Manager to display part of our ads, or tools integrated to our own CMS for the rest. We are likely to display advertisements from our own platform, from Google Advertising Products or from Adform.

    We did not wait for a law to make us respect our members and visitors' privacy. The cookies that we use are only meant to improve your experience on our website.

    Our cookies
    Cookies not subject to consent

    These are cookies that guarantee the proper functioning of Audiofanzine. The website cannot function properly without these cookies. Examples: cookies that help you stay logged in from page to page or that help customizing your usage of the website (dark mode or filters).

    Google Analytics

    We are using Google Analytics in order to better understand the use that our visitors make of our website in an attempt to improve it. When this parameter is activated, no personal information is sent to Google and the IP addresses are anonymized.

    Advertising

    This information allows us to show you personalized advertisements thanks to which Audiofanzine is financed. By unchecking this box you will still have advertisements but they may be less interesting :) We are using Google Ad Manager to display part of our ads, or tools integrated to our own CMS for the rest. We are likely to display advertisements from our own platform, from Google Advertising Products or from Adform.


    You can find more details on data protection in our privacy policy.
    You can also find information about how Google uses personal data by following this link.