Program.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. using Ryujinx.Graphics.Gal;
  2. using Ryujinx.Graphics.Gal.Shader;
  3. using System;
  4. using System.IO;
  5. namespace Ryujinx.ShaderTools
  6. {
  7. class Program
  8. {
  9. static void Main(string[] args)
  10. {
  11. if (args.Length == 2)
  12. {
  13. GlslDecompiler Decompiler = new GlslDecompiler();
  14. GalShaderType ShaderType = GalShaderType.Vertex;
  15. switch (args[0].ToLower())
  16. {
  17. case "v": ShaderType = GalShaderType.Vertex; break;
  18. case "tc": ShaderType = GalShaderType.TessControl; break;
  19. case "te": ShaderType = GalShaderType.TessEvaluation; break;
  20. case "g": ShaderType = GalShaderType.Geometry; break;
  21. case "f": ShaderType = GalShaderType.Fragment; break;
  22. }
  23. using (FileStream FS = new FileStream(args[1], FileMode.Open, FileAccess.Read))
  24. {
  25. Memory Mem = new Memory(FS);
  26. GlslProgram Program = Decompiler.Decompile(Mem, 0, ShaderType);
  27. Console.WriteLine(Program.Code);
  28. }
  29. }
  30. else
  31. {
  32. Console.WriteLine("Usage: Ryujinx.ShaderTools [v|tc|te|g|f] shader.bin");
  33. }
  34. }
  35. }
  36. }