WebGL2RenderingContext: clientWaitSync() 方法

Baseline 已廣泛支援

此功能已成熟,並可在多種裝置和瀏覽器版本上執行。自 2021 年 9 月起,所有瀏覽器均已支援此功能。

注意:此功能在 Web Workers 中可用。

WebGL2RenderingContext.clientWaitSync() 方法是 WebGL 2 API 的一部分,它會阻塞並等待一個 WebGLSync 物件被觸發訊號,或者達到設定的超時時間。

語法

js
clientWaitSync(sync, flags, timeout)

引數

sync

要等待的 WebGLSync 物件。

flags

一個 GLbitfield,指定了控制重新整理行為的標誌位的按位組合。可以是 gl.SYNC_FLUSH_COMMANDS_BIT

超時

一個 GLint64,指定了等待 sync 物件被觸發訊號的超時時間(以納秒為單位)。不得大於 gl.MAX_CLIENT_WAIT_TIMEOUT_WEBGL

返回值

一個 GLenum,指示 sync 物件的狀態。

  • gl.ALREADY_SIGNALED:表示在呼叫此方法時 sync 物件已被觸發訊號。
  • gl.TIMEOUT_EXPIRED:表示 timeout 時間已過,但 sync 物件未被觸發訊號。
  • gl.CONDITION_SATISFIED:表示在 timeout 過期之前 sync 物件已被觸發訊號。
  • gl.WAIT_FAILED:表示在執行過程中發生了錯誤。

示例

js
const sync = gl.fenceSync(gl.SYNC_GPU_COMMANDS_COMPLETE, 0);
const status = gl.clientWaitSync(sync, 0, 0);

規範

規範
WebGL 2.0 規範
# 3.7.14

瀏覽器相容性

另見