GPURenderPassEncoder: setScissorRect() 方法

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

安全上下文: 此功能僅在安全上下文(HTTPS)中可用,且支援此功能的瀏覽器數量有限。

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

GPURenderPassEncoder 介面的 setScissorRect() 方法用於設定光柵化階段使用的剪裁矩形。轉換成視口座標後,落入剪裁矩形外的任何片段都將被丟棄。

語法

js
setScissorRect(x, y, width, height)

引數

x

一個數字,表示剪裁矩形的最小 X 值(以畫素為單位)。

y

一個數字,表示剪裁矩形的最小 Y 值(以畫素為單位)。

width

一個數字,表示剪裁矩形的寬度(以畫素為單位)。

height

一個數字,表示剪裁矩形的高度(以畫素為單位)。

注意: 如果沒有呼叫 setScissorRect(),則每個渲染通道的預設值為 (0, 0, attachment width, attachment height)

返回值

無 (Undefined)。

驗證

呼叫 setViewport() 時必須滿足以下標準,否則會生成 GPUValidationError,並且 GPURenderPassEncoder 會失效

  • x + width 小於或等於渲染通道的渲染附件的寬度(見下文說明)。
  • y + height 小於或等於渲染通道的渲染附件的高度(見下文說明)。

注意: 請參閱 GPUCommandEncoder.beginRenderPass() 描述符中指定的顏色和深度/模板附件;寬度和高度基於它們 view 源自的 GPUTexture 的寬度和高度。

示例

基本程式碼片段

在典型的畫布渲染中,以下程式碼可用於丟棄畫布左上角四分之一區域之外的任何渲染

js
passEncoder.setScissorRect(0, 0, canvas.width / 2, canvas.height / 2);

規範

規範
WebGPU
# dom-gpurenderpassencoder-setscissorrect

瀏覽器相容性

另見