public static RenderPackage? LoadFromXml(ComputeContext computeContext, KernelXmlFile kernelXml, IParameterSet oldParameterSetCache) { var kernel = RenderKernel.Create(computeContext, kernelXml.Files.Select(File.ReadAllText).ToArray()); if (kernel == null) return null; var controls = kernelXml.ControlsFunc(); if (oldParameterSetCache != null && controls.GetType() == oldParameterSetCache.GetType()) controls = oldParameterSetCache; return new RenderPackage(kernel, controls); }
public static void SaveProgram(this RenderWindow renderWindow, KernelXmlFile kernel, string filename) { if (renderWindow.Renderer.Kernel == null) return; var kernelOptions = renderWindow.Renderer.Kernel.SerializeOptions("KernelOptions"); var serializableParams = renderWindow.Renderer.Parameters as ISerializableParameterSet; var controlOptions = serializableParams == null ? null : serializableParams.Save("ControlOptions"); var element = new XElement("ClamConfig", kernel.Save("Kernel"), kernelOptions); if (controlOptions != null) element.Add(controlOptions); element.Save(filename); }