34 lines
920 B
C#
34 lines
920 B
C#
|
using System.Diagnostics;
|
||
|
|
||
|
namespace Nerfed.Builder;
|
||
|
|
||
|
public class ShaderImporter : IImporter
|
||
|
{
|
||
|
public void Import(string inFile, string outFile)
|
||
|
{
|
||
|
using (Process proc = new Process())
|
||
|
{
|
||
|
string glslc;
|
||
|
if (OperatingSystem.IsWindows())
|
||
|
{
|
||
|
glslc = "Win64/glslc.exe";
|
||
|
}
|
||
|
else if (OperatingSystem.IsLinux())
|
||
|
{
|
||
|
glslc = "Linux/glslc";
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
throw new PlatformNotSupportedException("No shader compiler found for current platform");
|
||
|
}
|
||
|
|
||
|
proc.StartInfo.FileName = glslc;
|
||
|
proc.StartInfo.Arguments = @$"""{inFile}"" -o ""{outFile}"" -c";
|
||
|
proc.StartInfo.CreateNoWindow = true;
|
||
|
proc.StartInfo.UseShellExecute = false;
|
||
|
proc.Start();
|
||
|
proc.WaitForExit();
|
||
|
}
|
||
|
}
|
||
|
}
|