欢迎光临散文网 会员登陆 & 注册

宣布发行面向C++开发的Visindigo版本0.11.0

2023-08-27 13:33 作者:Visindigo开发组  | 我要投稿

针对C++ Qt5.15开发者,我们今天向您宣布发行Visindigo 0.11版本。

此版本和上个正式版本有大量更改,在您从0.10更新之前,请务必注意如下变化:

新功能和重要修复

  1. 引入了VIUJ模块。此模块适用于从JSON脚本动态生成窗体,并且可以和C++代码绑定以为窗体增加逻辑。VIUJ和QML的思路大体是一样的,但VIUJ规定了一系列解析JSON的标准以供用户自行拓展。使用VIUJ意味着在动态生成窗体这件事上不必像QML那样大规模的引入动态链接库,从而能够在获得便利的同时不必增加太多程序发行文件大小。

  2. 初步引入VIWave模块。此模块适用于操作WAVE音频。例如变更音量、音频合成等。此模块目前处于技术预览阶段,暂时不可靠,请不要用于生产环境。目前已知的问题是此模块对于样本宽度64Bit的音频不兼容,并且占用内存不合理,这些问题会在后续版本修复。

  3. 针对刻主机的增强:对于刻主机,现在引入了主机暂停和手动运行模式,并修复了部分问题

  4. 针对Visindigo JS主机的修复:修复了VIECMA中在执行JS脚本前挂载到引擎作为JS模块的C++对象的内部初始化策略不正确的问题

  5. 针对VISettings的增强:VISettings弃用CES作为内部存取键值对的方案,现在已经改为JSON

  6. 针对Visindigo Translator的增强:VITranslationHost弃用了原来的调用模式,现在需要翻译的对象应该声明实现VITranslatableObject接口。并且现在实际保存翻译数据的为各抽象包,不再使用全局翻译主机。这样一来各抽象包对翻译有更强的掌控能力。这项更改为将来的Visindigo JSPlugin和Visindigo DLLPlugin做准备。

其他更改、修复和弃用详见下文

Project Config & Visindigo Template

  1. 修复了一个Visual Studio 项目编译配置Debug的行为不正确的问题。

  2. 新增适用于Visual Studio C++中开发Visindigo程序的VS项目模板和项模板(文件模板)。项目模板由PyTools的PackMake自动管理,跟随最新的Visindigo C++代码更新,可用于Visindigo桌面应用程序开发和动态链接库开发。项模板(文件模板)目前可用于快速创建VIBasicBehavior、VIAnimationBehavior、VIObject派生类的定义文件。

  3. 支持以动态链接方式使用Visindigo

  4. 引入新的组件VIUJ,允许您以JSON声明窗体结构,并在C++中绑定窗体以添加功能

  5. 在默认的Debug和Release编译方案(称为Everywhere方案)上新增DllDebug和DllRelease编译方案(称为Developer方案)。相关方案控制部分Visindigo宏关键字的映射行为。

Visindigo PyTools & VICore

  1. 按计划弃用了0.10版本中的部分宏和API。

  2. 新增Visindigo Deployer部署程序Python源代码,可用于编译为Visindigo部署器。

  3. 新增Visindigo PackMake打包程序Python源代码,可用于从VSC++项目生成Visindigo C++库。也可用于其他Visindigo C++项目的库生成

  4. 新增Visindigo Installer部署程序Python源代码,可用于生成随PackMake一起发布的Visindigo部署程序,以便在目标计算机上部署Visindigo。

  5. 重新整理了VIECMAScripts的源代码,并修复了一个内建模块由于初始化时间错误而导致VIJS上不可用的问题。

  6. 编译版本信息现在固定为Visindigo编译信息,而非用户编译信息

  7. VISettings被重构为VIDocument::VIJSON。

  8. VIPackageInfo被重命名为VIPackageMeta。

  9. 修复了VIPackage和VIPackageMeta单例初始化位置错误导致的单例冲突问题。

  10. 在VIPackageMeta中内建了一个VIJSON实例,可用于存取包配置。

  11. 调整了VI_Singleton_Init宏的用法——从初始化static变量变更为类内初始化判断。针对原用法新增VI_Singleton_StaticInit宏。

  12. 修复了定量刻在特殊情况下可能暴毙的问题,此问题发生在当前刻实际用时恰好是定量时间的两倍时。

  13. 修改了若干枚举量的位置,现在统一位于Visindigo命名空间下

  14. 在定量刻主机中引入主机的暂停模式和手动跑刻接口

  15. 引入若干有关颜色的辅助函数

  16. 调整定量刻初始化行为

  17. 完善VIECMA报错信息

  18. Framework被剥离为CoreFramework和Framework,与其对应的,也有CoreProgram和Program的剥离

  19. 翻译系统已经重构,由原来的全局三文档改为每包双文档的模式

  20. 拓展抽象包的内容和接口

  21. 对部分VIException异常增加检查宏和起爆宏

  22. 新增快速缩写标记“静态类”、“必须派生”、“已经继承”等、允许VI_NULLPTR缩写为VI_NULL

  23. 跨平台统一接口提供类不再是VIObject派生类

  24. 原VIDocument现在称为VIPathInfo,现在VIDocument是命名空间,其中包含所有Visindigo自定义格式文档的读取方法

  25. 移除全部远古Behavior残余

  26. 新增Visindigo Core抽象包,用于承载部分Core内部需求

VIWidgets

  1. 旧版本的VIPalette和VIPaletteGroup已经全部重构,并完全不兼容

  2. 更改了VIPalette中内建颜色的字符串名称。

  3. VIPalette中的静态函数getDefaultColorName从私有变为公开。

  4. 补充了VIPaletteGroup中缺失的通过内建颜色名设置颜色的setColorToPalette重载函数。

  5. VIPaletteGroup现在会在内部初始化时内建一个名为Default的颜色板并设置为当前颜色板,其中提供一个由内建颜色名VIPalette::DefaultColorName::Foreground定义的内建颜色紫色作为Visindigo程序的默认主题色

  6. 新增Visindigo Widget抽象包,用于承载部分Widget内部需求

  7. 移除VIMainWindow

  8. 新增PSOD(Purple Screen of Death)作为默认的异常捕获显示器

  9. 初步新增一个WinUI3逻辑的IOButton(SwitchButton)


此更新已经于两周前在Github发布,经过测试后认为符合公开发布的要求,故今日宣布更新。

此更新在Github中附带可用于Windows_x86(64)开发的Visindigo 动态链接库和部署程序包。您也可以克隆仓库之后手动编译并生成 Visindigo 动态链接库和部署程序包。


Visindigo开发组

23年8月27日


宣布发行面向C++开发的Visindigo版本0.11.0的评论 (共 条)

分享到微博请遵守国家法律