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