private void ExportShader() { MDL0MaterialNode mat = _resource as MDL0MaterialNode; ShaderGenerator.SetTarget(mat); ShaderGenerator.UsePixelLighting = MessageBox.Show(MainForm.Instance, "Use per-pixel lighting?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes; SaveFileDialog s = new SaveFileDialog(); s.Filter = "Text File (*.txt)|*.txt"; s.FileName = _resource.Name + " vertex shader"; s.Title = "Choose a place to save the vertex shader"; if (s.ShowDialog() == DialogResult.OK) { System.IO.File.WriteAllText(s.FileName, ShaderGenerator.GenVertexShader().Replace("\n", Environment.NewLine)); } s.Filter = "Text File (*.txt)|*.txt"; s.FileName = _resource.Name + " fragment shader"; s.Title = "Choose a place to save the fragment shader"; if (s.ShowDialog() == DialogResult.OK) { string m = ShaderGenerator.GenMaterialFragShader(); string[] t = ShaderGenerator.GenTEVFragShader(); System.IO.File.WriteAllText(s.FileName, ShaderGenerator.CombineFragShader(m, t, mat.ActiveShaderStages).Replace("\n", Environment.NewLine)); } ShaderGenerator.ClearTarget(); ShaderGenerator._forceRecompile = false; }