跳到主要内容

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 里的内存分配量
  • ToFloat32ToFloat64 等(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.TCPVL.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 不再订阅值追踪 —— 论坛