ShaderIrBlock.cs 792 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. using System.Collections.Generic;
  2. namespace Ryujinx.Graphics.Gal.Shader
  3. {
  4. class ShaderIrBlock
  5. {
  6. private List<ShaderIrNode> Nodes;
  7. public ShaderIrBlock()
  8. {
  9. Nodes = new List<ShaderIrNode>();
  10. }
  11. public void AddNode(ShaderIrNode Node)
  12. {
  13. Nodes.Add(Node);
  14. }
  15. public void RunOptimizationPasses(GalShaderType ShaderType)
  16. {
  17. ShaderOptExprProp.Optimize(Nodes, ShaderType);
  18. }
  19. public ShaderIrNode[] GetNodes()
  20. {
  21. return Nodes.ToArray();
  22. }
  23. public ShaderIrNode GetLastNode()
  24. {
  25. if (Nodes.Count > 0)
  26. {
  27. return Nodes[Nodes.Count - 1];
  28. }
  29. return null;
  30. }
  31. }
  32. }