WebGL2RenderingContext: phương thức copyBufferSubData()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021.
Note: This feature is available in Web Workers.
Phương thức WebGL2RenderingContext.copyBufferSubData() của WebGL 2 API sao chép một phần dữ liệu từ bộ đệm này sang bộ đệm khác.
Cú pháp
js
copyBufferSubData(readTarget, writeTarget, readOffset, writeOffset, size)
Tham số
readTarget,writeTarget-
Một
GLenumchỉ định điểm liên kết (target) từ nơi dữ liệu sẽ được đọc hoặc ghi. 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 độ texture hoặc dữ liệu màu đỉnh.gl.ELEMENT_ARRAY_BUFFER: Bộ đệm dùng cho chỉ mục phần tử.gl.COPY_READ_BUFFER: Bộ đệm để sao chép từ một đối tượng bộ đệm sang bộ đệm khác (cung cấp cụ thể cho các hoạt động sao chép).gl.COPY_WRITE_BUFFER: Bộ đệm để sao chép từ một đối tượng bộ đệm sang bộ đệm khác (cung cấp cụ thể cho các hoạt động sao chép).gl.TRANSFORM_FEEDBACK_BUFFER: Bộ đệm cho các hoạt động transform feedback.gl.UNIFORM_BUFFER: Bộ đệm dùng để lưu trữ các khối uniform.gl.PIXEL_PACK_BUFFER: Bộ đệm dùng cho các hoạt động chuyển pixel.gl.PIXEL_UNPACK_BUFFER: Bộ đệm dùng cho các hoạt động chuyển pixel.
readOffset,writeOffset-
Một
GLintptrchỉ định offset byte từ nơi bắt đầu đọc hoặc ghi vào bộ đệm. size-
Một
GLsizeitính bằng byte chỉ định kích thước dữ liệu sẽ được sao chép từreadTargetsangwriteTarget.
Giá trị trả về
None (undefined).
Ví dụ
js
const srcBuffer = gl.createBuffer();
const dstBuffer = gl.createBuffer();
const data = new Float32Array(vertices);
const length = vertices.length * 4;
gl.bindBuffer(gl.ARRAY_BUFFER, srcBuffer);
gl.bufferData(gl.ARRAY_BUFFER, data, gl.STATIC_DRAW);
gl.bindBuffer(gl.COPY_READ_BUFFER, srcBuffer);
gl.bindBuffer(gl.ARRAY_BUFFER, dstBuffer);
gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(length), gl.STATIC_DRAW);
gl.copyBufferSubData(gl.COPY_READ_BUFFER, gl.ARRAY_BUFFER, 0, 0, length);
Đặc tả kỹ thuật
| Specification |
|---|
| WebGL 2.0 Specification> # 3.7.3> |