public static EffectCompilerBase GetOrCreateEffectCompiler(AssetCompilerContext context) { lock (context) { var compiler = context.Properties.Get(CompilerKey); if (compiler == null) { // Create compiler var effectCompiler = new Shaders.Compiler.EffectCompiler(); effectCompiler.SourceDirectories.Add(EffectSystem.DefaultSourceShaderFolder); compiler = new EffectCompilerCache(effectCompiler); context.Properties.Set(CompilerKey, compiler); var shaderLocations = context.Properties.Get(EffectShaderAssetCompiler.ShaderLocationsKey); // Temp copy URL to absolute file path to inform the compiler the absolute file location // of all pdxsl files. if (shaderLocations != null) { foreach (var shaderLocation in shaderLocations) { effectCompiler.UrlToFilePath[shaderLocation.Key] = shaderLocation.Value; } } } return(compiler); } }
public static IEffectCompiler CreateEffectCompiler(TaskSchedulerSelector taskSchedulerSelector = null) { // Create compiler #if SILICONSTUDIO_PARADOX_EFFECT_COMPILER var effectCompiler = new Shaders.Compiler.EffectCompiler(); effectCompiler.SourceDirectories.Add(EffectCompilerBase.DefaultSourceShaderFolder); #else var effectCompiler = new NullEffectCompiler(); #endif return(new EffectCompilerCache(effectCompiler, taskSchedulerSelector)); }
public override void Initialize() { base.Initialize(); // Create compiler #if SILICONSTUDIO_PLATFORM_WINDOWS_DESKTOP var effectCompiler = new Shaders.Compiler.EffectCompiler(); effectCompiler.SourceDirectories.Add(EffectCompilerBase.DefaultSourceShaderFolder); Enabled = true; directoryWatcher = new DirectoryWatcher("*.pdxsl"); directoryWatcher.Modified += FileModifiedEvent; // TODO: pdxfx too #else var effectCompiler = new NullEffectCompiler(); #endif compiler = new EffectCompilerCache(effectCompiler); }
private static EffectCompilerBase GetOrCreateEffectCompiler(AssetCompilerContext context) { lock (context) { var compiler = context.Properties.Get(CompilerKey); if (compiler == null) { // Create compiler var effectCompiler = new Shaders.Compiler.EffectCompiler(); effectCompiler.SourceDirectories.Add(EffectCompilerBase.DefaultSourceShaderFolder); compiler = new EffectCompilerCache(effectCompiler); context.Properties.Set(CompilerKey, compiler); var shaderLocations = context.Properties.Get(EffectShaderAssetCompiler.ShaderLocationsKey); // Temp copy URL to absolute file path to inform the compiler the absolute file location // of all pdxsl files. if (shaderLocations != null) { foreach (var shaderLocation in shaderLocations) { effectCompiler.UrlToFilePath[shaderLocation.Key] = shaderLocation.Value; } } } return compiler; } }