ANGLE_instanced_arrays: phương thức drawElementsInstancedANGLE()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since June 2016.
Phương thức ANGLE_instanced_arrays.drawElementsInstancedANGLE() của WebGL API kết xuất các nguyên thủy từ dữ liệu mảng giống như phương thức gl.drawElements(). Ngoài ra, nó có thể thực thi nhiều thể hiện của một tập phần tử.
Note:
Khi dùng WebGL2, phương thức này mặc định có sẵn dưới dạng gl.drawElementsInstanced().
Cú pháp
drawElementsInstancedANGLE(mode, count, type, offset, primcount)
Tham số
mode-
Một
GLenumchỉ định kiểu nguyên thủy cần kết xuất. Các giá trị có thể là:gl.POINTS: Vẽ một chấm đơn.gl.LINE_STRIP: Vẽ một đường thẳng tới đỉnh tiếp theo.gl.LINE_LOOP: Vẽ một đường thẳng tới đỉnh tiếp theo, và nối đỉnh cuối trở lại đỉnh đầu.gl.LINES: Vẽ một đường giữa một cặp đỉnh.gl.TRIANGLE_STRIPgl.TRIANGLE_FANgl.TRIANGLES: Vẽ một tam giác cho một nhóm ba đỉnh.
count-
Một
GLsizeichỉ định số phần tử sẽ được kết xuất. type-
Một
GLenumchỉ định kiểu của các giá trị trong bộ đệm mảng phần tử. Các giá trị có thể là:gl.UNSIGNED_BYTEgl.UNSIGNED_SHORTgl.UNSIGNED_INTkhi dùng tiện ích mở rộngOES_element_index_uint.
offset-
Một
GLintptrchỉ định độ lệch trong bộ đệm mảng phần tử. Phải là một bội số hợp lệ của kích thước kiểu đã cho. primcount-
Một
GLsizeichỉ định số thể hiện của tập phần tử cần thực thi.
Giá trị trả về
Không có (undefined).
Ngoại lệ
- Nếu
modekhông phải là một trong các giá trị được chấp nhận, lỗigl.INVALID_ENUMsẽ được ném ra. - Nếu
offsetkhông phải là bội số hợp lệ của kích thước kiểu đã cho, lỗigl.INVALID_OPERATIONsẽ được ném ra. - Nếu
counthoặcprimcountlà số âm, lỗigl.INVALID_VALUEsẽ được ném ra.
Ví dụ
const ext = gl.getExtension("ANGLE_instanced_arrays");
ext.drawElementsInstancedANGLE(gl.POINTS, 2, gl.UNSIGNED_SHORT, 0, 4);
Thông số kỹ thuật
| Specification |
|---|
| WebGL ANGLE_instanced_arrays Khronos Ratified Extension Specification> |
Tương thích trình duyệt
Xem thêm
ext.drawArraysInstancedANGLE()ext.vertexAttribDivisorANGLE()WebGLRenderingContext.drawArrays()WebGLRenderingContext.drawElements()WebGL2RenderingContext.drawArraysInstanced()WebGL2RenderingContext.drawElementsInstanced()WebGL2RenderingContext.vertexAttribDivisor()WEBGL_multi_draw.multiDrawElementsInstancedWEBGL()