99re热视频这里只精品,久久久天堂国产精品女人,国产av一区二区三区,久久久精品成人免费看片,99久久精品免费看国产一区二区三区

Electron 離屏渲染

2023-02-16 17:15 更新

概覽

離屏渲染允許你以位圖的方式來獲取 BrowserWindow 中的內(nèi)容,所以它可以在任何地方被渲染,例如在3D場景中的紋理。 Electron中的離屏渲染使用與 Chromium Embedded Framework 項目類似的方法。

注意

  • 有兩種渲染模式可以使用(見下),只有未渲染區(qū)域傳遞到 繪圖 事件才能提高效率。
  • 您可以停止/繼續(xù)渲染并設(shè)置幀速率。
  • 最高幀速率為 240,因為更高的值只會帶來性能上的損失而沒有任何收益。
  • 當網(wǎng)頁上沒有發(fā)生任何情況時,不會生成幀。
  • 屏幕窗口始終創(chuàng)建為 無邊框窗口..

渲染模式?

GPU加速?

GPU加速渲染意味著使用GPU用于合成。 這也就意味著幀必須從GPU拷貝過來,從而需求更多的資源,因此這會比軟件輸出設(shè)備更慢。 這種模式的優(yōu)點是支持WebGL和3D CSS動畫.

軟件輸出設(shè)備?

此模式使用軟件輸出設(shè)備在 CPU 中渲染,因此幀 生成的速度要快得多。 因此,此模式優(yōu)先于 GPU 加速模式。

要啟用此模式,必須通過調(diào)用 app.disableHardwareAcceleration() API 來禁用GPU加速。

示例

const { app, BrowserWindow } = require('electron')
const fs = require('fs')
const path = require('path')

app.disableHardwareAcceleration()

let win

app.whenReady().then(() => {
  win = new BrowserWindow({ webPreferences: { offscreen: true } })
  win.loadURL('https://github.com')
  win.webContents.on('paint', (event, dirty, image) => {
    fs.writeFileSync('ex.png', image.toPNG())
  })
  win.webContents.setFrameRate(60)
  console.log(`The screenshot has been successfully saved to ${path.join(process.cwd(), 'ex.png')}`)
})

app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') {
    app.quit()
  }
})

app.on('activate', () => {
  if (BrowserWindow.getAllWindows().length === 0) {
    createWindow()
  }
})

DOCS/FIDDLES/FEATURES/OFFSCREEN-RENDERING (22.0.3)

Open in Fiddle

在運行Electron應(yīng)用后,進入你的應(yīng)用的工作目錄,你會在里面找到渲染的圖片。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號