ANGLE_instanced_arrays: drawElementsInstancedANGLE() 方法

Baseline 已廣泛支援

此功能已成熟,可跨多種裝置和瀏覽器版本正常執行。自 2016 年 6 月起,所有瀏覽器均已支援。

WebGL API 的 ANGLE_instanced_arrays.drawElementsInstancedANGLE() 方法與 gl.drawElements() 方法一樣,可以從陣列資料渲染圖元。此外,它還可以執行一組元素的多個例項。

注意: 使用 WebGL2 時,此方法預設可用作 gl.drawElementsInstanced()

語法

js
drawElementsInstancedANGLE(mode, count, type, offset, primcount)

引數

模式

一個 GLenum,指定要渲染的圖元型別。可能的值有:

  • gl.POINTS:繪製一個點。
  • gl.LINE_STRIP:繪製一條連線到下一個頂點的直線。
  • gl.LINE_LOOP:繪製一條連線到下一個頂點的直線,並將最後一個頂點連接回第一個頂點。
  • gl.LINES:在兩個頂點之間繪製一條線。
  • gl.TRIANGLE_STRIP
  • gl.TRIANGLE_FAN
  • gl.TRIANGLES:為一組三個頂點繪製一個三角形。
計數

一個指定要渲染的元素數量的 GLsizei

type

一個 GLenum,指定元素陣列緩衝區中值的型別。可能的值為:

offset

一個指定元素陣列緩衝區中偏移量的 GLintptr。必須是給定 type 大小的有效倍數。

primcount

一個 GLsizei,指定要執行的元素集合的例項數量。

返回值

無(undefined)。

異常

  • 如果 mode 不是接受的值之一,則會丟擲 gl.INVALID_ENUM 錯誤。
  • 如果 offset 是給定型別大小的無效倍數,則會丟擲 gl.INVALID_OPERATION 錯誤。
  • 如果 countprimcount 為負數,則會丟擲 gl.INVALID_VALUE 錯誤。

示例

js
const ext = gl.getExtension("ANGLE_instanced_arrays");
ext.drawElementsInstancedANGLE(gl.POINTS, 2, gl.UNSIGNED_SHORT, 0, 4);

規範

規範
WebGL ANGLE_instanced_arrays Khronos 批准的擴充套件規範

瀏覽器相容性

另見