WebGpuBindingLayouts.of constructor

WebGpuBindingLayouts.of(
  1. GPUDevice gpu,
  2. WebGpuPipeline pipeline
)

The layouts for pipeline, built against gpu.

Implementation

factory WebGpuBindingLayouts.of(GPUDevice gpu, WebGpuPipeline pipeline) {
  final shapes = pipeline.groups;
  final groups = <GPUBindGroupLayout>[
    for (var group = 0; group < shapes.length; group++)
      gpu.createBindGroupLayout(
        GPUBindGroupLayoutDescriptor(
          label: '${pipeline.name} group $group',
          entries: _entriesOf(shapes[group]).toJS,
        ),
      ),
  ];
  return WebGpuBindingLayouts._(
    gpu.createPipelineLayout(
      GPUPipelineLayoutDescriptor(
        label: pipeline.name,
        bindGroupLayouts: groups.toJS,
      ),
    ),
    groups,
    shapes,
  );
}