public void ShadersLibrary_SaveTo() { ShadersLibrary shadersLibrary = new ShadersLibrary(); shadersLibrary.Includes = new List <ShadersLibrary.Include>(); shadersLibrary.Includes.Add( new ShadersLibrary.Include() { Path = "/Absolute/Path/To/Include", Resource = "Some.Resource.Identifier" } ); shadersLibrary.Objects = new List <ShadersLibrary.Object>(); shadersLibrary.Objects.Add( new ShadersLibrary.Object() { Resource = "Some.Object.Resource", TestStage = "VertexShader" } ); shadersLibrary.Objects[0].Symbols = new ShadersLibrary.SymbolList(); shadersLibrary.Objects[0].Symbols.Add("DEFINE_SYMBOL"); shadersLibrary.Programs = new List <ShadersLibrary.Program>(); shadersLibrary.Programs.Add(new ShadersLibrary.Program() { Id = "TestProgram", }); shadersLibrary.Programs[0].Objects = new List <ShadersLibrary.Object>(); shadersLibrary.Programs[0].Objects.Add(new ShadersLibrary.Object() { Resource = "Some.Object.Resource", Stage = ShaderType.VertexShader, }); shadersLibrary.Programs[0].Attributes = new List <ShadersLibrary.Attribute>(); shadersLibrary.Programs[0].Attributes.Add(new ShadersLibrary.Attribute() { Name = "test_Attribute", Location = -1, Semantic = "Position" }); byte[] shaderLibraryBytes; using (MemoryStream memoryStream = new MemoryStream()) { shadersLibrary.Save(memoryStream); shaderLibraryBytes = memoryStream.ToArray(); } string shaderLibraryText = Encoding.UTF8.GetString(shaderLibraryBytes); }