public GraphicsPipeline(Device device, GraphicsPipelineCreateInfo info, PipelineCache cache) { if (device == null) { throw new ArgumentNullException(nameof(device)); } if (info == null) { throw new ArgumentNullException(nameof(info)); } Device = device; VkPipelineCache nativeCache = VkPipelineCache.Null; if (cache != null) { nativeCache = cache.Native; } pipeline = CreatePipelinesInternal(device, new GraphicsPipelineCreateInfo[] { info }, nativeCache)[0]; }
public static ComputePipeline[] CreatePipelines(Device device, ComputePipelineCreateInfo[] infos, PipelineCache cache) { if (device == null) { throw new ArgumentNullException(nameof(device)); } if (infos == null) { throw new ArgumentNullException(nameof(infos)); } VkPipelineCache nativeCache = VkPipelineCache.Null; if (cache != null) { nativeCache = cache.Native; } var pipelines = new ComputePipeline[infos.Length]; var natives = ComputePipeline.CreatePipelinesInternal(device, infos, nativeCache); for (int i = 0; i < infos.Length; i++) { pipelines[i] = new ComputePipeline(device, natives[i]); } return(pipelines); }