ShaderCodeHolder.cs 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. using Ryujinx.Graphics.GAL;
  2. using Ryujinx.Graphics.Shader;
  3. namespace Ryujinx.Graphics.Gpu.Shader
  4. {
  5. /// <summary>
  6. /// Cached shader code for a single shader stage.
  7. /// </summary>
  8. class ShaderCodeHolder
  9. {
  10. /// <summary>
  11. /// Shader program containing translated code.
  12. /// </summary>
  13. public ShaderProgram Program { get; }
  14. /// <summary>
  15. /// Host shader object.
  16. /// </summary>
  17. public IShader HostShader { get; set; }
  18. /// <summary>
  19. /// Maxwell binary shader code.
  20. /// </summary>
  21. public byte[] Code { get; }
  22. /// <summary>
  23. /// Optional maxwell binary shader code for "Vertex A" shader.
  24. /// </summary>
  25. public byte[] Code2 { get; }
  26. /// <summary>
  27. /// Creates a new instace of the shader code holder.
  28. /// </summary>
  29. /// <param name="program">Shader program</param>
  30. /// <param name="code">Maxwell binary shader code</param>
  31. /// <param name="code2">Optional binary shader code of the "Vertex A" shader, when combined with "Vertex B"</param>
  32. public ShaderCodeHolder(ShaderProgram program, byte[] code, byte[] code2 = null)
  33. {
  34. Program = program;
  35. Code = code;
  36. Code2 = code2;
  37. }
  38. }
  39. }