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 }