国产粉嫩无码不卡在线观看,酒店大战丝袜高跟鞋人妻,特级精品毛片免费观看,欧美亚洲日本国产综合在线

【開源推薦】MiniGUI 5.0 正式發(fā)布,嵌入式 GUI 系統(tǒng)

前言

飛漫軟件于 2020 年 3 月 30 日宣布,正式發(fā)布 MiniGUI 5.0.0/4.0.7 版本,并同時更新 HybridOS 圖形棧。

MiniGUI 是一個自由軟件項目,其目標(biāo)是提供一個快速、穩(wěn)定、跨操作系統(tǒng)的圖形用戶界面(GUI)。它被廣泛應(yīng)用于 IoT 智能設(shè)備及實時嵌入式系統(tǒng),為 IoT 智能設(shè)備和嵌入式系統(tǒng)提供 GUI 及交互實現(xiàn),尤其是基于 Linux/uClinux、eCos 以及其他傳統(tǒng) RTOS(如 VxWorks、ThreadX、uC/OS-II、Nucleus 等)的實時嵌入式操作系統(tǒng)。

MiniGUI 5.0 主要帶來了三項全新特性:

  1. 合成圖式
  2. 八種主窗口 Z 序級別
  3. 虛擬窗口

合成圖式

自 MiniGUI 5.0.0 起,MiniGUI 的多進(jìn)程模式開始支持合成圖式(compositing schema)。合成圖式是現(xiàn)代桌面操作系統(tǒng)和智能手機操作系統(tǒng)的圖形及窗口系統(tǒng)使用的技術(shù),其基本原理很簡單:系統(tǒng)中所有進(jìn)程創(chuàng)建的每一個窗口都使用獨立的緩沖區(qū)來各自渲染其內(nèi)容,而系統(tǒng)中有一個扮演合成器(compositor)角色的進(jìn)程,負(fù)責(zé)將這些內(nèi)容根據(jù)窗口的 Z 序以及疊加效果(如半透明、模糊等)合成在一起并最終顯示在屏幕上。

合成圖式為窗口系統(tǒng)提供各種視覺效果和新奇交互效果帶來了可能。在合成圖式之前,大部分窗口系統(tǒng)使用共享緩沖區(qū)圖式,通過管理和維護窗口的層疊關(guān)系以及相互之間的剪切來實現(xiàn)多窗口的管理。傳統(tǒng)的共享緩沖區(qū)圖式很難在多進(jìn)程環(huán)境下實現(xiàn)不規(guī)則窗口、半透明或模糊疊加效果,而合成圖式則可以輕松解決這些問題,而且還可以方便實現(xiàn)窗口切換時的動畫效果。

合成圖式是 MiniGUI 5.0 最為重要的一項新特性。盡管這一特性的實現(xiàn)需要調(diào)整 MiniGUI 最為核心的窗口管理部分,但我們?nèi)匀槐WC了 API 的基本穩(wěn)定性:任何一個針對 MiniGUI 5.0 之前版本開發(fā)的應(yīng)用,都可以不用做任何修改,重新編譯即可運行在合成圖式下。要使用合成圖式帶來的激動人心的功能,也只需要做一些不多的改動。

合成圖式的支持讓 MiniGUI 的應(yīng)用領(lǐng)域得到了進(jìn)一步擴展。以前,MiniGUI 被主要用于不安裝第三方應(yīng)用的電子產(chǎn)品中,如功能手機、視頻監(jiān)控、工業(yè)控制、醫(yī)療儀器等。而有了合成圖式,MiniGUI 還可以應(yīng)用在桌面電腦、智能手機等可能支持第三方應(yīng)用的設(shè)備中。因為合成圖式不僅僅便于實現(xiàn)各種圖形及交互效果,還可以充分利用多進(jìn)程環(huán)境的安全性:除了服務(wù)器進(jìn)程之外,沒有任何一個進(jìn)程可以訪問其他進(jìn)程創(chuàng)建的窗口內(nèi)容。

合成圖式的實現(xiàn)涉及到進(jìn)程間通訊技術(shù)、共享緩沖區(qū)技術(shù)、圖形加速技術(shù)等多項技術(shù),而筆者只花了三個月就實現(xiàn)了這個功能(還包括其他增強)。這得益于飛漫軟件在長達(dá)二十年的開發(fā)周期中對操作系統(tǒng)、圖形以及交互技術(shù)的深厚理解。這也從側(cè)面反應(yīng)了一個事實,基礎(chǔ)軟件的發(fā)展需要時間和積淀;或者說,長期的技術(shù)積累是基礎(chǔ)軟件可以快速迭代和發(fā)展的基礎(chǔ)。

除了實現(xiàn)了合成圖式,MiniGUI 5.0 同時提供了如下能力:

  • 客戶可定制自己的合成器(compositor),并通過加載動態(tài)庫的形式裝載自定義合成器或者第三方合成器。
  • MiniGUI 作為飛漫軟件發(fā)起的另外一個開源項目 HybridOS 的窗口系統(tǒng),隨著 5.0.0 版本的正式發(fā)布,飛漫軟件還同時更新了 HybridOS 的圖形棧,提供了開發(fā)加速圖形引擎的接口以及支持 OpenGL/ES 等 3D 圖形的完整軟件棧。
  • 【開源推薦】MiniGUI 5.0 正式發(fā)布,嵌入式 GUI 系統(tǒng)

    八種主窗口 Z 序級別

    MiniGUI 5.0 版本還增強了 MiniGUI 的窗口管理器以支持某些特殊的主窗口類型。

    在 MiniGUI 5.0 之前,我們可以創(chuàng)建一些特殊主窗口,以便在所有普通主窗口的上方顯示這些主窗口,如果使用 MiniGUI 的多進(jìn)程運行模式,則服務(wù)器(mginit)將始終創(chuàng)建全局主窗口,這些窗口顯示在所有客戶創(chuàng)建的主窗口之上。而從 5.0.0 開始,我們引入了主窗口 Z 序級別的概念,從上到下共有八個級別:

    1. 工具提示級別。
    2. 系統(tǒng)/全局級別。
    3. 屏幕鎖定級別。
    4. 泊塢窗級別。
    5. 更高級別。
    6. 普通級別。
    7. 啟動器級別。
    8. 桌面或墻紙。

    這項增強功能使我們可以創(chuàng)建一些特殊的應(yīng)用,該應(yīng)用可以作為鎖屏、通知欄、程序塢或者啟動器使用。

    【開源推薦】MiniGUI 5.0 正式發(fā)布,嵌入式 GUI 系統(tǒng)

    虛擬窗口

    MiniGUI 為基于消息的通訊機制提供了完整的支持。在 MiniGUI 的多線程運行模式下,我們可以在一個線程中向運行在其他線程中的窗口郵寄或發(fā)送消息。MiniGUI 消息傳遞函數(shù),如 PostMessage、SendMessage、SendNotifyMessage 以及窗口回調(diào)過程,為多線程應(yīng)用程序提供了靈活、高效、安全的數(shù)據(jù)傳輸和同步機制。使用這些接口,多線程應(yīng)用可避免自行維護復(fù)雜的線程鎖、信號量等東西,從而簡化編程模型。

    但在 MiniGUI 5.0 之前,以獨立進(jìn)程模式或者多進(jìn)程模式下運行的 MiniGUI 不支持線程間的消息傳遞能力。在 MiniGUI 5.0 中,我們?nèi)∠诉@一限制,并引入了虛擬窗口的概念。

    虛擬窗口是一個特殊的窗口對象,沒有可見的窗口區(qū)域。但是,在其他線程中創(chuàng)建虛擬窗口之后,可以使用 MiniGUI 的消息傳遞機制在可見的窗口線程和虛擬窗口所在的線程之間郵寄或發(fā)送消息。

    此增強功能為基于 MiniGUI 的應(yīng)用開發(fā)提供了非常有用的基礎(chǔ)設(shè)施,以開發(fā)設(shè)計良好的多線程應(yīng)用程序。

    除了以上三個主要的增強之外,MiniGUI 5.0 還調(diào)整了一些底層架構(gòu),重構(gòu)了一些底層模塊。有興趣的讀者可以閱讀完整的發(fā)布說明文檔:https://gitlab.fmsoft.cn/VincentWei/minigui/blob/rel-5-0/RELEASE-NOTES.md

    最后,附上 MiniGUI 5.0 的入口倉庫:https://gitlab.fmsoft.cn/VincentWei/build-minigui-5.0

    或者h(yuǎn)ttps://github.com/VincentWei/build-minigui-5.0

    版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報,一經(jīng)查實,本站將立刻刪除。