GPURenderBundleEncoder: phương thức setPipeline()

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

Note: This feature is available in Web Workers.

Phương thức setPipeline() của giao diện GPURenderBundleEncoder đặt GPURenderPipeline để sử dụng cho các lệnh gói kết xuất tiếp theo.

Note: Phương thức này về mặt chức năng giống hệt với phương thức tương đương trên GPURenderPassEncodersetPipeline().

Cú pháp

js
setPipeline(pipeline)

Tham số

pipeline

GPURenderPipeline để sử dụng cho các lệnh gói kết xuất tiếp theo.

Giá trị trả về

Không có (Undefined).

Xác thực

Các tiêu chí sau phải được đáp ứng khi gọi setPipeline(), nếu không GPUValidationError sẽ được tạo ra và GPURenderBundleEncoder sẽ không hợp lệ:

Ví dụ

js
function recordRenderPass(passEncoder) {
  if (settings.dynamicOffsets) {
    passEncoder.setPipeline(dynamicPipeline);
  } else {
    passEncoder.setPipeline(pipeline);
  }
  passEncoder.setVertexBuffer(0, vertexBuffer);
  passEncoder.setBindGroup(0, timeBindGroup);
  const dynamicOffsets = [0];
  for (let i = 0; i < numTriangles; ++i) {
    if (settings.dynamicOffsets) {
      dynamicOffsets[0] = i * alignedUniformBytes;
      passEncoder.setBindGroup(1, dynamicBindGroup, dynamicOffsets);
    } else {
      passEncoder.setBindGroup(1, bindGroups[i]);
    }
    passEncoder.draw(3, 1, 0, 0);
  }
}

Đoạn mã trên được lấy từ ví dụ WebGPU Samples Animometer example.

Thông số kỹ thuật

Specification
WebGPU
# dom-gpurendercommandsmixin-setpipeline

Tương thích trình duyệt

Xem thêm