WebGLRenderingContext: bufferSubData() method

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Note: This feature is available in Web Workers.

Phương thức WebGLRenderingContext.bufferSubData() của WebGL API cập nhật một tập hợp con kho dữ liệu của đối tượng đệm.

Cú pháp

js
bufferSubData(target, offset)
bufferSubData(target, offset, srcData)

Thông số

target

A GLenum chỉ định điểm liên kết (đích). Các giá trị có thể:

gl.ARRAY_BUFFER

Bộ đệm chứa các thuộc tính đỉnh, chẳng hạn như tọa độ đỉnh, dữ liệu tọa độ kết cấu hoặc dữ liệu màu đỉnh.

gl.ELEMENT_ARRAY_BUFFER

Bộ đệm được sử dụng cho các chỉ số phần tử.

offset

Một GLintptr chỉ định độ lệch tính theo byte nơi việc thay thế dữ liệu sẽ bắt đầu.

srcData Optional

Một TypedArray hoặc DataView xem một ArrayBuffer hoặc SharedArrayBuffer sẽ được sao chép vào kho dữ liệu.

Giá trị trả về

Không có (undefined).

Ngoại lệ

  • Một lỗi gl.INVALID_VALUE sẽ được đưa ra nếu dữ liệu được ghi vào cuối bộ đệm hoặc nếu datanull.
  • Một lỗi gl.INVALID_ENUM sẽ xuất hiện nếu target không phải là một trong các enum được phép.

Ví dụ

Sử dụng bufferSubData

js
const canvas = document.getElementById("canvas");
const gl = canvas.getContext("webgl");
const buffer = gl.createBuffer();
const data = new Float32Array([1, 2, 3, 4]);
gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
gl.bufferData(gl.ARRAY_BUFFER, 1024, gl.STATIC_DRAW);
gl.bufferSubData(gl.ARRAY_BUFFER, 512, data);

Thông số kỹ thuật

Specification
WebGL Specification
# 5.14.5

Khả năng tương thích của trình duyệt

Xem thêm