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 Stride.Core.Shaders.Utility.LoggerResult(); loader = new ShaderLoader(manager); }
public void TestLoadAst() { var log = new LoggerResult(); var simple = shaderLoader.LoadClassSource(new ShaderClassSource("Simple"), new Stride.Core.Shaders.Parser.ShaderMacro[0], log, false)?.Type; Assert.Single(simple.Members); var simple2 = shaderLoader.LoadClassSource(new ShaderClassSource("Simple"), new Stride.Core.Shaders.Parser.ShaderMacro[0], log, false)?.Type; // Make sure that a class is not duplicated in memory Assert.True(ReferenceEquals(simple, simple2)); }
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 Stride.Core.Shaders.Parser.ShaderMacro[0], log, false)?.Type; Assert.Equal(2, simple.Members.Count); var shaderClassString2 = new ShaderClassString(ShaderSourceName, ShaderSourceCode, new Vector4(1, 1, 1, 1)); var simple2 = shaderLoader.LoadClassSource(shaderClassString2, new Stride.Core.Shaders.Parser.ShaderMacro[0], log, false)?.Type; // Make sure that a class is not duplicated in memory Assert.True(ReferenceEquals(simple, simple2)); }