国产基础软件的重大里程碑:MiniGUI 5.0 正式发布!

飞漫软件于 2020 年 3 月 30 日宣布,正式发布 MiniGUI 5.0.0/4.0.7 版本,并同时更新 HybridOS 图形栈。

对国内开源软件的发展稍有了解的人都知道,MiniGUI 是国人发起的最早几个开源项目之一,经历了开源软件在国内萌芽、发展、消沉,而后在近几年随国内自主可控的春风重装上阵的整个过程。

作为 MiniGUI 的项目发起人及主要开发者,笔者认为 MiniGUI 5.0 不仅仅是 MiniGUI 自身发展的一个重要里程碑,也代表着国产开源基础软件的质量提升到了一个全新的水平。

我们先来了解一下 MiniGUI 5.0 带来的三个全新特性。

1. 合成图式

自 MiniGUI 5.0.0 起,MiniGUI 的多进程模式开始支持合成图式(compositing schema)。合成图式是现代桌面操作系统和智能手机操作系统的图形及窗口系统使用的技术,其基本原理很简单:系统中所有进程创建的每一个窗口都使用独立的缓冲区来各自渲染其内容,而系统中有一个扮演合成器(compositor)角色的进程,负责将这些内容根据窗口的 Z 序以及叠加效果(如半透明、模糊等)合成在一起并最终显示在屏幕上。

合成图式为窗口系统提供各种视觉效果和新奇交互效果带来了可能。在合成图式之前,大部分窗口系统使用共享缓冲区图式,通过管理和维护窗口的层叠关系以及相互之间的剪切来实现多窗口的管理。传统的共享缓冲区图式很难在多进程环境下实现不规则窗口、半透明或模糊叠加效果,而合成图式则可以轻松解决这些问题,而且还可以方便实现窗口切换时的动画效果。

合成图式是 MiniGUI 5.0 最为重要的一项新特性。尽管这一特性的实现需要调整 MiniGUI 最为核心的窗口管理部分,但我们仍然保证了 API 的基本稳定性:任何一个针对 MiniGUI 5.0 之前版本开发的应用,都可以不用做任何修改,重新编译即可运行在合成图式下。要使用合成图式带来的激动人心的功能,也只需要做一些不多的改动。

合成图式的支持让 MiniGUI 的应用领域得到了进一步扩展。以前,MiniGUI 被主要用于不安装第三方应用的电子产品中,如功能手机、视频监控、工业控制、医疗仪器等。而有了合成图式,MiniGUI 还可以应用在桌面电脑、智能手机等可能支持第三方应用的设备中。因为合成图式不仅仅便于实现各种图形及交互效果,还可以充分利用多进程环境的安全性:除了服务器进程之外,没有任何一个进程可以访问其他进程创建的窗口内容。

合成图式的实现涉及到进程间通讯技术、共享缓冲区技术、图形加速技术等多项技术,而笔者只花了三个月就实现了这个功能(还包括其他增强)。这得益于飞漫软件在长达二十年的开发周期中对操作系统、图形以及交互技术的深厚理解。这也从侧面反应了一个事实,基础软件的发展需要时间和积淀;或者说,长期的技术积累是基础软件可以快速迭代和发展的基础。

如果只是实现了合成图式,还不算什么,MiniGUI 5.0 同时提供了如下能力:

  1. 客户可定制自己的合成器(compositor),并通过加载动态库的形式装载自定义合成器或者第三方合成器。

  2. MiniGUI 作为飞漫软件发起的另外一个开源项目 HybridOS 的窗口系统,随着 5.0.0 版本的正式发布,飞漫软件还同时更新了 HybridOS 的图形栈,提供了开发加速图形引擎的接口以及支持 OpenGL/ES 等 3D 图形的完整软件栈。

2. 八种主窗口 Z 序级别

在 MiniGUI 5.0 版本中,我们还增强了MiniGUI 的窗口管理器以支持某些特殊的主窗口类型。

在 MiniGUI 5.0 之前,我们可以创建一些特殊主窗口,以便在所有普通主窗口的上方显示这些主窗口,如果使用 MiniGUI 的多进程运行模式,则服务器(mginit)将始终创建全局主窗口,这些窗口显示在所有客户创建的主窗口之上。而从 5.0.0 开始,我们引入了主窗口 Z 序级别的概念,从上到下共有八个级别:

  1. 工具提示级别。

  2. 系统/全局级别。

  3. 屏幕锁定级别。

  4. 泊坞窗级别。

  5. 更高级别。

  6. 普通级别。

  7. 启动器级别。

  8. 桌面或墙纸。

这项增强功能使我们可以创建一些特殊的应用,该应用可以作为锁屏、通知栏、程序坞或者启动器使用。

3. 虚拟窗口

MiniGUI 为基于消息的通讯机制提供了完整的支持。在 MiniGUI 的多线程运行模式下,我们可以在一个线程中向运行在其他线程中的窗口邮寄或发送消息。MiniGUI 消息传递函数,如 PostMessage、SendMessage、SendNotifyMessage 以及窗口回调过程,为多线程应用程序提供了灵活、高效、安全的数据传输和同步机制。使用这些接口,多线程应用可避免自行维护复杂的线程锁、信号量等东西,从而简化编程模型。

但在 MiniGUI 5.0 之前,以独立进程模式或者多进程模式下运行的 MiniGUI 不支持线程间的消息传递能力。在 MiniGUI 5.0 中,我们取消了这一限制,并引入了虚拟窗口的概念。

虚拟窗口是一个特殊的窗口对象,没有可见的窗口区域。但是,在其他线程中创建虚拟窗口之后,可以使用 MiniGUI 的消息传递机制在可见的窗口线程和虚拟窗口所在的线程之间邮寄或发送消息。

此增强功能为基于 MiniGUI 的应用开发提供了非常有用的基础设施,以开发设计良好的多线程应用程序。

除了以上三个主要的增强之外,MiniGUI 5.0 还调整了一些底层架构,重构了一些底层模块。有兴趣的读者可以阅读完整的发布说明文档:

https://gitlab.fmsoft.cn/VincentWei/minigui/blob/rel-5-0/RELEASE-NOTES.md

作为 MinGUI 的主要开发者,笔者自信地认为,随着 MiniGUI 5.0 的发布,MiniGUI 以及 HybridOS 已经有了完整替代 Linux 操作系统上围绕传统 X Window 图形软件栈的能力。根据初步测试结果,MiniGUI 上 3D 应用渲染性能要比 X Window 高一个数量级。笔者可以自豪地说,MiniGUI 5.0 看起来是只是飞漫软件的重要一步,但未来一定是中国自主系统软件的一个重大突破。

最后,附上 MiniGUI 5.0 的入口仓库:

https://gitlab.fmsoft.cn/VincentWei/build-minigui-5.0

或者

https://github.com/VincentWei/build-minigui-5.0


还有一件事:欢迎请点击文章末尾的原文链接,赞助飞漫主持的开源项目 MiniGUI 和 HybridOS。

您的小小鼓励是我们不断前进的动力!

1.人工智能:嵌入式技术的机遇与挑战

2.厉害了!用6个芯片打造复古经典计算机

3.国产操作系统这盘棋不简单

4.做嵌入式必须知道的国产CPU之路,里面有良机!

5.Linux是否能在8位MCU上运行?

6.为了适合你的项目,rt-thread有时候需要裁剪!

免责声明:本文系网络转载,版权归原作者所有。如涉及作品版权问题,请与我们联系,我们将根据您提供的版权证明材料确认版权并支付稿酬或者删除内容。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: MiniGUI 用户手册是一本详细介绍 MiniGUI 软件使用方法和功能的手册。MiniGUI 是一个嵌入式图形用户界面开发框架,它提供了丰富的绘图和窗口管理功能,可以实现嵌入式设备上的图形界面显示和交互操作。 用户手册内容包括 MiniGUI 的基本概念和架构,如窗口、控件、绘图等。手册中详细介绍了如何安装和配置 MiniGUI,包括编译和移植 MiniGUI 到不同硬件平台的步骤。用户手册还提供了 MiniGUI 的主要 API 接口的详细说明,包括窗口和控件的创建、显示、隐藏和销毁等操作的函数调用方式和参数说明。 此外,用户手册还包含了一些示例代码,以帮助用户更好地理解 MiniGUI 的使用方法。用户可以通过阅读示例代码,学习如何创建窗口和控件,如何处理用户输入事件,如何绘制图像和文字等。用户手册还提供了一些常见问题的解答和故障排除的方法,帮助用户解决在使用 MiniGUI 过程中可能遇到的问题。 MiniGUI 用户手册对于初学者来说是一个很好的入门指南,它详细介绍了 MiniGUI 的各个方面,帮助用户快速上手并能够独立开发嵌入式图形界面应用。用户可以根据手册的指导,按照自己的需求进行 MiniGUI 的配置和开发,实现自己想要的图形界面效果。总之,MiniGUI 用户手册是理解和使用 MiniGUI 的重要参考资料,对于开发者来说,它是不可或缺的工具。 ### 回答2: Minigui用户手册是一本关于Minigui图形用户界面开发框架的指南。Minigui是一个基于C语言开发的轻量级、可定制的GUI开发工具包。它可以帮助开发者快速构建各种图形界面应用程序。 这本用户手册涵盖了Minigui的各个方面,从安装和配置开始,一直到开发和调试。手册中详细介绍了如何使用Minigui的各种功能和组件,如窗口、按钮、菜单、对话框等,以及使用不同控件实现用户交互。手册还提供了丰富的示例代码和演示,帮助开发者更好地理解和应用Minigui的功能。 此外,手册还介绍了Minigui的特性和优势。它可以运行在各种类型的嵌入式设备上,具有较低的资源占用和快速的响应速度。Minigui还支持跨平台开发,可以在多种操作系统上运行,如Windows、Linux等。它还支持多国语言和字符集,帮助开发者构建全球化的应用程序。 Minigui用户手册不仅提供了技术内容,还对开发过程中的常见问题进行了解答,以及开发者应该遵循的最佳实践和规范。手册的目的是帮助开发者更加高效地利用Minigui进行图形界面开发,提升开发效率,并最大限度地减少错误和调试时间。 总之,Minigui用户手册是Minigui开发框架的一本重要参考资料,它提供了详尽的技术指导和实例代码,帮助开发者快速上手并开发出高质量的图形界面应用程序。无论是初学者还是经验丰富的开发者,都可以从中受益并提升他们的开发技能。 ### 回答3: minigui 用户手册是一本介绍和指导用户如何使用 minigui 软件的手册。minigui 是一个开源的图形用户界面(GUI)开发框架,它提供了丰富的图形界面组件和功能,能够帮助开发人员快速构建跨平台的图形界面应用程序。 minigui 用户手册从基础开始,介绍了 minigui 开发环境的安装和配置方法,以及如何创建和编译一个 minigui 应用程序。接着,手册详细介绍了 minigui 的各种图形界面组件,如窗口、按钮、文本框等,以及它们的使用方法和属性设置。用户可以通过手册学习如何创建和布局这些组件,以及如何响应用户的交互事件。 除了组件的介绍,minigui 用户手册还提供了大量的示例代码和实践案例,让用户可以更好地理解和应用 minigui 的各种功能。手册还解释了 minigui 的一些高级特性,如绘图和图像处理,以及如何与后台服务进行通信,从而帮助用户开发更加复杂和实用的应用程序。 minigui 用户手册还对 minigui 的开发工具和调试方法进行了介绍,帮助用户更好地进行开发和调试工作。手册也提供了一些常见问题和解决方案,以及一些开发经验和技巧,供用户参考。 总而言之,minigui 用户手册是一本全面介绍 minigui 软件的指南,它帮助用户快速入门,掌握 minigui 的使用方法,并通过实践和示例代码提供了更深入的学习和开发体验。无论是初学者还是有经验的开发人员,都可以从 minigui 用户手册中获得帮助和指导,提升图形界面应用程序的开发效率和质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值