Windows 11 Edge Ink API:手寫輸入延遲最高改善240%
在 Microsoft Edge 的最新 Dev 頻道版本中,微軟放出了增強(qiáng)手寫輸入的預(yù)覽版。在 Build 2021 開發(fā)者大會(huì)上,微軟首次介紹了這些增強(qiáng)功能,展示了這個(gè)全新網(wǎng)絡(luò) API(已在 Chromium 開源項(xiàng)目的上游實(shí)現(xiàn))是如何大大減少物理手寫筆的筆尖和手寫在屏幕上繪制時(shí)的延遲。
在 Windows 11 最新預(yù)覽版中,微軟表示手寫延遲改善了 240%,下面動(dòng)圖中綠色部分為增強(qiáng)手寫輸入,可以看到延遲得到了明顯改進(jìn),讓屏幕響應(yīng)更快更跟手寫筆輸入。
技術(shù)細(xì)節(jié)
微軟解釋道目前基于 Chromium 的瀏覽器中,手寫筆事件首先發(fā)送到瀏覽器進(jìn)程,而瀏覽器進(jìn)程又將這些事件轉(zhuǎn)發(fā)到 Web 應(yīng)用程序的 JavaScript 事件循環(huán)。瀏覽器進(jìn)程收到這些事件和它們到達(dá)應(yīng)用程序之間的時(shí)間延遲有時(shí)會(huì)很明顯,這取決于主線程的其他部分,從而導(dǎo)致在手寫時(shí)出現(xiàn)延遲。
為了改善這一點(diǎn),在 Windows 11 上的 InkPresenter 實(shí)現(xiàn)的基礎(chǔ)上,Microsoft Edge 正在使用一個(gè)新的 Windows API,它將直接與操作系統(tǒng)的合成器合作,在 Microsoft Edge 的應(yīng)用程序循環(huán)之外繪制額外的筆觸。由于這個(gè)API,我們不用等待通過JavaScript將事件傳遞給網(wǎng)絡(luò)應(yīng)用,而是可以在收到這些點(diǎn)后立即將其提供給操作系統(tǒng)的合成器。然后,合成器可以用墨水筆畫將這些點(diǎn)連接起來,并在要呈現(xiàn)在屏幕上的下一幀中繪制這些筆畫,大大減少了延遲。
對(duì)于像 Windows 10 和 Linux 這樣沒有這個(gè) API 的操作系統(tǒng),在 Microsoft Edge 中直接實(shí)現(xiàn)的 polyfill 將接管并為最后一個(gè)已知的可信任的PointerEvent之外的墨水筆觸提供預(yù)測(cè)性渲染。這個(gè)實(shí)現(xiàn)的目的是與Windows 11的API類似--它利用瀏覽器所知道的點(diǎn),以及一些預(yù)測(cè)的點(diǎn),在最后一刻為應(yīng)用程序的筆跡畫出一個(gè)擴(kuò)展。雖然效果沒有Windows 11 API那么強(qiáng)大,但它仍然可以為用戶提供更多的體驗(yàn)!