- 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
- Fixed various memory leaks related to
- 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
- Plugin nodes are colored red in debug mode
(ctrl+F9) if they throw runtime errors.
- Debug mode now consistently colors nodes
- 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
- 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
- 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.
- Better performance when deleting plugin/dynamic
nodes (no more forcing of garbage collection).
- Fixed memory leak in reloading of dynamic
- 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
- Colorpins are now using their subtypes
- Texture-output-pins are now spreadable.
- ISpread shouldn't lose data if slicecount is
increased or decreased.
- Added new argument IPin to
- 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
- Fix: SetRenderState/SetSamplerState and
SetTextureStageState crashed since beta24. Text
(EX9) used those methods so hopefully this fixes
some strange behaviours reported by various
- 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: http://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
- 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
- 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
- Introduced new INode2 interface which can be
used by plugin writers to inspect the graph of
vvvv. see IHDEHost.RootNode.
- Frac (Value) can output whole parts up to
- QRCodeTexture (EX9.Texture) now only
computes when one of its input changes and its
textures are now accepted in Queue
- 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
vvvv is a toolkit
for real time video synthesis. It is designed to
facilitate the handling of large media environments
with physical interfaces, real-time motion graphics,
audio and video that can interact with many users
vvvv is free for non-commercial use.
Commercial use requires a license.