Пример #1
0
        private void Init()
        {
            // Create and mount database file system
            var objDatabase          = ObjectDatabase.CreateDefaultDatabase();
            var databaseFileProvider = new DatabaseFileProvider(objDatabase);

            manager = new ShaderSourceManager(databaseFileProvider);
            manager.LookupDirectoryList.Add("shaders");
            logger = new Xenko.Core.Shaders.Utility.LoggerResult();
            loader = new ShaderLoader(manager);
        }
Пример #2
0
        public void TestLoadAst()
        {
            var log = new LoggerResult();

            var simple = shaderLoader.LoadClassSource(new ShaderClassSource("Simple"), new Xenko.Core.Shaders.Parser.ShaderMacro[0], log, false)?.Type;

            Assert.Equal(1, simple.Members.Count);

            var simple2 = shaderLoader.LoadClassSource(new ShaderClassSource("Simple"), new Xenko.Core.Shaders.Parser.ShaderMacro[0], log, false)?.Type;

            // Make sure that a class is not duplicated in memory
            Assert.True(ReferenceEquals(simple, simple2));
        }
Пример #3
0
        public void TestLoadAst()
        {
            var log = new LoggerResult();

            var shaderClassString = new ShaderClassString(ShaderSourceName, ShaderSourceCode, new Vector4(1, 1, 1, 1));

            var simple = shaderLoader.LoadClassSource(shaderClassString, new Xenko.Core.Shaders.Parser.ShaderMacro[0], log, false)?.Type;

            Assert.Single(simple.Members);

            var shaderClassString2 = new ShaderClassString(ShaderSourceName, ShaderSourceCode, new Vector4(1, 1, 1, 1));

            var simple2 = shaderLoader.LoadClassSource(shaderClassString2, new Xenko.Core.Shaders.Parser.ShaderMacro[0], log, false)?.Type;

            // Make sure that a class is not duplicated in memory
            Assert.True(ReferenceEquals(simple, simple2));
        }