public override EffectContent Process(EffectContent input, string filename, ContentProcessorContext context) { try { //Passthrough and verification foreach (var technique in input.Techniques) { foreach (var pass in technique.Passes) { engenious.Graphics.EffectPass compiledPass = new engenious.Graphics.EffectPass(pass.Name); foreach (var shader in pass.Shaders) { try { var tmp = new Shader(shader.Key, System.IO.File.ReadAllText(shader.Value)); tmp.Compile(); compiledPass.AttachShader(tmp); } catch (Exception ex) { PreprocessMessage(context, shader.Value, ex.Message, BuildMessageEventArgs.BuildMessageType.Error); } } compiledPass.Link(); compiledPass.Apply(); foreach (var attr in pass.Attributes) { compiledPass.BindAttribute(attr.Key, attr.Value); } } } return(input); } catch (Exception ex) { PreprocessMessage(context, System.IO.Path.GetFileName(filename), ex.Message, BuildMessageEventArgs.BuildMessageType.Error); } return(null); }
internal EffectPassParameterCollection(EffectPass pass) { this.pass = pass; parameterList = new List <EffectPassParameter> (); parameters = new Dictionary <string, EffectPassParameter> (); }