kernelBundle function

ShaderBundle kernelBundle(
  1. String name,
  2. Iterable<ComputeKernel> kernels
)

A bundle named name that carries kernels in its kernel section, each claimed as a stage of its name: what GraphicsDevice.loadShaders takes on any device with compute.

Implementation

ShaderBundle kernelBundle(String name, Iterable<ComputeKernel> kernels) {
  final list = kernels.toList();
  return ShaderBundle(
    name: name,
    sdk: '',
    stages: <ShaderBundleStage>[
      for (final k in list)
        ShaderBundleStage(k.name, kind: ShaderStageKind.compute),
    ],
    sections: <String, ByteData>{
      ShaderBundle.kernelSection: encodeKernelSection(<String, String>{
        for (final k in list) k.name: k.source,
      }),
    },
  );
}