亚洲熟妇av一区二区三区,久久久久久精品观看sss,免费观看四虎精品国产永久,国产成人精品一区二三区熟女,天堂网在线最新版www资源网

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

前言

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

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

MiniGUI 5.0 主要帶來(lái)了三項(xiàng)全新特性:

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

合成圖式

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

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

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

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

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

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

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

    八種主窗口 Z 序級(jí)別

    MiniGUI 5.0 版本還增強(qiáng)了 MiniGUI 的窗口管理器以支持某些特殊的主窗口類(lèi)型。

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

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

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

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

    虛擬窗口

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

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

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

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

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

    最后,附上 MiniGUI 5.0 的入口倉(cāng)庫(kù):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),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請(qǐng)發(fā)送郵件至 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。