2021.3
vvvv gamma 2021.3.3
(vvvv beta42 使用的版本) 2021 年 5 月 20 日发布
修复
- 修复了着色器被多次加进生成的 C# 项目文件的问题 —— 论坛
VL.Stride与 VL 本身用同一个版本号- 修复了通过反射询问可空类型的默认值时,它不是 null 的问题
- 修复了目录引用上的相等判断 —— 这会导致带类型标注的针脚组针脚被不停地改动
- NuGet 还原的消息会记录到导出窗口
- 修复了使用带
parameter = default(T)的方法时的空指针 —— 论坛 - 显式打开 UseStrongCrypto 和 SystemDefaultTls 开关 —— 修复了论坛上报告的几个与导出相关、连接 nuget.org 失败的问题
- Stride:修复了 Plane 闪烁的 bug —— 论坛
- 修复了 Spread IOBox 的一处线程问题 —— 论坛
- 修复了 Skia Layer 类型的值导致提示框崩溃的问题。LayerWidget 现在默认在调用线程上渲染到一个临时渲染目标里。
- 修复了一个编译器 bug,它会导致编译无休止地进行下去,使某份草图打不开
变动
- 给导出器加了 Is32Bit、IsConsoleApp、CleanBuildDirectory 等选项
vvvv gamma 2021.3.2
2021 年 4 月 7 日发布
修复
- 修复了使用没有定义 ToString 方法的 ref struct 时的 emit 异常。现在改为发出一条警告 —— 论坛
- 修复了 Cache 区块导致 emit 错误的问题 —— 有效控制点的选取在各个调用处并不一致
- 自适应接口声明现在一律通过 out 参数传递输出针脚,以避免目标代码里的名字冲突 —— 修复了在 Kairos 里看到的一处崩溃
- 修复了 Skia ImageReader 的 Filename 针脚默认值,并加了 FileExists 检查,以免 Filename 没设时抛异常
- 修复了 CoreLibBasic Playhead 的 Operation 顺序
vvvv gamma 2021.3.1
2021 年 2 月 27 日发布
变动
- 泛化 IOBox 不再显示值编辑器 —— 指用 Link-ALT-点击手势创建的那种
RegisterServices现在在 stop&run 时也会被调用(不只在热替换时)- 减少了 VL.IO.OSC 里的内存分配量
ToFloat32/ToFloat64等(Spread<byte> -> T)节点更快且不再分配内存(比如 VL.IO.OSC 就用它们)- 把项目目录路径加进了节点工厂 API 用的
ExportContext。这样节点工厂就不必再为了把文件复制到输出目录而引用Microsoft.Build了。
修复
- 修复了 Cache 区块的性能问题(内部辅助类分配得太频繁,而且输入变化检查引发了一次装箱转换)
- 修复了带静态槽(比如 IOBox)的草图被当作有状态、因而需要一个私有辅助类型的问题。这对运行时性能影响很坏,因为循环区块会因此生成一条更昂贵的代码路径。
- 当类型必须具备默认构造函数时,类型统一不再用抽象类型去替换参数。这修复了
2021.3引入、在VL.Devices.RealSense中出现的回归 —— 论坛 - 修复了把嵌套泛化类型符号映射到 CLR 类型时的崩溃 —— 在
VL.Kairos里悬停某些针脚时会遇到 - 系统一旦生成编译失败就再也恢复不过来
- 修复了对「约束到多个接口的 splicer」用 Repeat 循环时生成无效目标代码的问题 —— 论坛
- 修复了自适应节点参数解析到同一个实参时的后端崩溃
- 修复了 @readme 报告的后端随机 emit 崩溃
vvvv gamma 2021.3.0
2021 年 2 月 16 日发布
新增
- VL.Stride,基于 Stride 的 3D 渲染节点库
- Int IOBox 现在能解析 0x8f 或 #8f 这样的十六进制字符串
- 加了 Quaternion IOBox
- HTTPGet 节点
- JSONReader/Writer、ParseJSON 和 Parse 现在返回 XElement 而不是 XDocument。返回 XDocument 的那些节点转为 advanced
- Kill、Shutdown 和 PID 节点
- MainLoop 有了增量模式
- 作为汇点连到某个 Pad 时,会移除同一 Operation 上先前的连线
- 一个 process 现在从模型里相应的参数取得它的 Aspect
- 自适应的 AsReadOnlyMemory 和 AsMemory,整理了 Memory 相关节点,并加了 Reinterpret memory 节点
- 布尔运算:NOR、NAND……
- Rectangle 运算:SetSize、SetPosition
- Rectangle 与 Vector2 运算:FixAspectRatio
- Skia:Trim PathEffect,处理图像宽高比的新模式
- 加了一种运行外部节点库测试草图的办法。在 VL.Elementa 库里做了演示。
- 节点浏览器:加了创建 Toggle、Bang 和 Press IOBox 的便捷方式
- Spread 化的布尔 IOBox:配置 ButtonMode 可用了(Toggle、Bang 和 Press)
变动
- 重做并简化了 OSC 和 TUIO 节点的用法
- 把 Enttec、Spacemouse、TheEyetribe、QRCode、ArtNet、Midi、OSC、TUIO 和 Firmata 节点挪进了各自的公开仓库
- 移除了现已废弃的实验性 TCPServer/Client 和 WebSocketServer,改用 VL.IO.TCP 和 VL.IO.WebSocket
- 对 ref struct 的支持更好了 —— 论坛
- ref struct 不再以 object 为基类型 —— 不装箱
- 不再能把 ref struct 连进 Delegate 区块 —— ref 局部变量没法被捕获
- 不再能用 ref struct 实例化泛化类型或节点 —— 类型实参列表里不允许它们
- Trace 调用会对它们调用 ToString(对 span 是 ToArray)—— 修复了 emit 错误
- 给 System.Memory.vl 加上了 Span 和 ReadOnlySpan 的转发(此前是被注释掉的)
- 查找 MSBuild(导出应用需要它)时,要求至少 16.8 版
- 导出器现在会先建一张预定义包的映射表(基于 VL.Skia 和 VL.Stride),然后用它来替换程序集引用,从而得到一个带 NuGet 包引用的规整方案
- 用 AnyCPU 导出(修复 Stride 资源编译器找不到程序集的问题),并把日志详细度设为 minimal
- 去掉了提示框里生成的 “Element not in use” 消息,也去掉了「不显示 Create/Update 时刻」那个补丁。两者合起来,现在处理分片节点的体验好得多 —— 某个针脚用没用,看时刻指派标记就能很快看出来。
- 给 TreeNodeParentManager 加了一个功能,可以配置「连到同一个父节点两次」是否允许(比如两条连线连到同一个 group 节点)。这对 Elementa 之类很有用 —— 那种情况下你会希望收到警告。
- 调优了启动时的文档加载。帮助面板也会一并加载,这样按 F1 时它启动得更快。
修复
- 用节点结束连线时,不会连到过程节点的 “Create” 片段上
- 给
FromBytes [String]加了 BOM 检查 - 修复了区块内部空子草图的移除 —— 论坛
- 修复了针脚名含 & 符号时生成无效目标代码的问题
- 修复了热替换时的一处栈溢出 —— 论坛
- 全局搜索现在也能找到被转发的类型
- 修复了帮助面板的定位
- Skia:修复了 SamplePath(仅位置的版本)正确返回成功状态
- 关闭对话框不再询问是否保存来自已下载 NuGet 包的外部文档
- 修复了 Pad 没有用类型默认值初始化的问题(在 Elementa 里出现)
- 修复了类型统一的一处回归(在 Kairos 里出现)
- 未激活的 IOBox 不再订阅值追踪 —— 论坛