Esempio n. 1
0
        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);
        }