using Ghost.Core; using Ghost.Graphics.Contracts; namespace Ghost.Graphics.RHI; public interface IShaderPipeline { /// /// Pipeline type /// PipelineType Type { get; } } public interface IPipelineLibrary : IDisposable { /// /// Load pipeline library from disk. /// /// File path. If null, load default library. void InitializeLibrary(string? filePath); void SaveLibraryToDisk(string filePath); Result CompilePSO(ref readonly GraphicsPSODescriptor descriptor, ref readonly GraphicsCompiledResult compiled); }