ShaderProgramInfo.cs 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. using System;
  2. using System.Collections.ObjectModel;
  3. namespace Ryujinx.Graphics.Shader
  4. {
  5. public class ShaderProgramInfo
  6. {
  7. public ReadOnlyCollection<BufferDescriptor> CBuffers { get; }
  8. public ReadOnlyCollection<BufferDescriptor> SBuffers { get; }
  9. public ReadOnlyCollection<TextureDescriptor> Textures { get; }
  10. public ReadOnlyCollection<TextureDescriptor> Images { get; }
  11. public ShaderStage Stage { get; }
  12. public int GeometryVerticesPerPrimitive { get; }
  13. public int GeometryMaxOutputVertices { get; }
  14. public int ThreadsPerInputPrimitive { get; }
  15. public bool UsesFragCoord { get; }
  16. public bool UsesInstanceId { get; }
  17. public bool UsesDrawParameters { get; }
  18. public bool UsesRtLayer { get; }
  19. public byte ClipDistancesWritten { get; }
  20. public int FragmentOutputMap { get; }
  21. public ShaderProgramInfo(
  22. BufferDescriptor[] cBuffers,
  23. BufferDescriptor[] sBuffers,
  24. TextureDescriptor[] textures,
  25. TextureDescriptor[] images,
  26. ShaderStage stage,
  27. int geometryVerticesPerPrimitive,
  28. int geometryMaxOutputVertices,
  29. int threadsPerInputPrimitive,
  30. bool usesFragCoord,
  31. bool usesInstanceId,
  32. bool usesDrawParameters,
  33. bool usesRtLayer,
  34. byte clipDistancesWritten,
  35. int fragmentOutputMap)
  36. {
  37. CBuffers = Array.AsReadOnly(cBuffers);
  38. SBuffers = Array.AsReadOnly(sBuffers);
  39. Textures = Array.AsReadOnly(textures);
  40. Images = Array.AsReadOnly(images);
  41. Stage = stage;
  42. GeometryVerticesPerPrimitive = geometryVerticesPerPrimitive;
  43. GeometryMaxOutputVertices = geometryMaxOutputVertices;
  44. ThreadsPerInputPrimitive = threadsPerInputPrimitive;
  45. UsesFragCoord = usesFragCoord;
  46. UsesInstanceId = usesInstanceId;
  47. UsesDrawParameters = usesDrawParameters;
  48. UsesRtLayer = usesRtLayer;
  49. ClipDistancesWritten = clipDistancesWritten;
  50. FragmentOutputMap = fragmentOutputMap;
  51. }
  52. }
  53. }