create static method

GpuShader create(
  1. String source
)

Implementation

static GpuShader create(String source) {
  final wgpu = WebgpuRend.instance.wgpu;
  return using((arena) {
    final wgslDesc = arena<WGPUShaderSourceWGSL>();
    wgslDesc.ref.chain.sType = WGPUSType.WGPUSType_ShaderSourceWGSL;
    wgslDesc.ref.chain.next = nullptr;
    wgslDesc.ref.code = _createStringView(arena, source);
    final desc = arena<WGPUShaderModuleDescriptor>();
    desc.ref.nextInChain = wgslDesc.cast();
    desc.ref.label.data = nullptr;
    desc.ref.label.length = 0;
    final handle =
        wgpu.wgpuDeviceCreateShaderModule(WebgpuRend.instance.device, desc);
    return GpuShader._(handle.cast());
  });
}