Program.cs 1.3 KB

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