private void convertShaderToolStripMenuItem_Click(object sender, EventArgs e)
{
string OldFileName = GetRegKey("LastShaderFilename", m_ApplicationPath);
openFileDialogShader.InitialDirectory = Path.GetDirectoryName(OldFileName);
openFileDialogShader.FileName = Path.GetFileName(OldFileName);
// if ( openFileDialogShader.ShowDialog( this ) != DialogResult.OK )
// return;
// SetRegKey( "LastShaderFilename", openFileDialogShader.FileName );
openFileDialogShader.FileName = @"E:\[Workspaces]\GodComplex\Resources\Shaders\GIRenderCubeMap.hlsl";
// Perform conversion
string CSharpCode = null;
try
{
// Load the shader code
string ShaderCode = null;
FileInfo ShaderFile = new FileInfo(openFileDialogShader.FileName);
using (StreamReader S = ShaderFile.OpenText())
ShaderCode = S.ReadToEnd();
// Perform conversion
CSharpCode = Converter.ConvertShader(ShaderFile, ShaderCode, "Test", "VS", "PS");
}
catch (Converter.ConverterException _e)
{
SourceErrorForm F = new SourceErrorForm("An error occurred while converting shader \"" + openFileDialogShader.FileName + "\" to C# class!\n\n", _e);
F.ShowDialog(this);
return;
}
catch (Exception _e)
{
MessageBox("An error occurred while converting shader to C# class!\n\n" + _e.Message);
return;
}
// Save the result
OldFileName = GetRegKey("LastCSharpFilename", m_ApplicationPath);
saveFileDialogShader.InitialDirectory = Path.GetDirectoryName(OldFileName);
saveFileDialogShader.FileName = Path.GetFileName(OldFileName);
if (saveFileDialogShader.ShowDialog(this) != DialogResult.OK)
{
return;
}
SetRegKey("LastCSharpFilename", saveFileDialogShader.FileName);
FileInfo CSharpFile = new FileInfo(saveFileDialogShader.FileName);
using (StreamWriter S = CSharpFile.CreateText())
{
S.Write(CSharpCode);
}
}