4 using System.Threading.Tasks;
5 using SiliconStudio.Assets.Compiler;
6 using SiliconStudio.BuildEngine;
7 using SiliconStudio.Core.IO;
8 using SiliconStudio.Paradox.Shaders.Parser;
9 using SiliconStudio.Paradox.Shaders.Parser.Mixins;
10 using SiliconStudio.Shaders.Utility;
12 namespace SiliconStudio.
Paradox.Assets.Effect
25 new EffectCompositorAssetCommand(urlInStorage, asset),
29 internal class EffectCompositorAssetCommand :
AssetCommand<EffectCompositorAsset>
31 private readonly
string sourceLocationOnDisk;
33 public EffectCompositorAssetCommand(
string url,
EffectCompositorAsset description) : base(url, description)
35 this.sourceLocationOnDisk = description.AbsoluteSourceLocation;
40 var logger = commandContext.Logger;
42 var status = ResultStatus.Successful;
45 var parsingResults = ParadoxShaderParser.TryPreProcessAndParse(asset.Text, sourceLocationOnDisk);
46 if (parsingResults.HasErrors)
48 foreach (var message
in parsingResults.Messages)
52 logger.Error(message.ToString());
55 return Task.FromResult(ResultStatus.Failed);
58 var shader = parsingResults.Shader;
63 shaderMixinCodeGen.Run();
67 commandContext.Logger.Error(
"Error while processing pdxfx [{0}]", ex, sourceLocationOnDisk);
68 status = ResultStatus.Failed;
71 return Task.FromResult(status);
Result of a compilation of assets when using IAssetCompiler.Compile
SiliconStudio.Core.Diagnostics.LoggerResult LoggerResult
A command processing an Asset.
The context used when compiling an asset in a Package.
override void Compile(AssetCompilerContext context, string urlInStorage, UFile assetAbsolutePath, EffectCompositorAsset asset, AssetCompilerResult result)
ReportMessageLevel
Level of a ReportMessage.
Describes a shader effect asset (pdxsl).
Entry point to compile an EffectCompositorAsset (pdxfx).
This class is responsible to generate associated C# code from an effect file (extension: pdxfx)...
Defines a normalized file path. See UPath for details. This class cannot be inherited.