| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- using Ryujinx.Graphics.Shader.StructuredIr;
- using Ryujinx.Graphics.Shader.Translation;
- using System;
- namespace Ryujinx.Graphics.Shader
- {
- public enum AttributeType : byte
- {
- // Generic types.
- Float,
- Sint,
- Uint
- }
- static class AttributeTypeExtensions
- {
- public static string ToVec4Type(this AttributeType type)
- {
- return type switch
- {
- AttributeType.Float => "vec4",
- AttributeType.Sint => "ivec4",
- AttributeType.Uint => "uvec4",
- _ => throw new ArgumentException($"Invalid attribute type \"{type}\".")
- };
- }
- public static VariableType ToVariableType(this AttributeType type)
- {
- return type switch
- {
- AttributeType.Float => VariableType.F32,
- AttributeType.Sint => VariableType.S32,
- AttributeType.Uint => VariableType.U32,
- _ => throw new ArgumentException($"Invalid attribute type \"{type}\".")
- };
- }
- public static AggregateType ToAggregateType(this AttributeType type)
- {
- return type switch
- {
- AttributeType.Float => AggregateType.FP32,
- AttributeType.Sint => AggregateType.S32,
- AttributeType.Uint => AggregateType.U32,
- _ => throw new ArgumentException($"Invalid attribute type \"{type}\".")
- };
- }
- }
- }
|