ShaderTools.Hlsl.Symbols.TypeFacts.GetMatrixType C# (CSharp) Method

GetMatrixType() static private method

static private GetMatrixType ( SyntaxKind kind ) : Tuple
kind SyntaxKind
return Tuple
        internal static Tuple<ScalarType, int, int> GetMatrixType(SyntaxKind kind)
        {
            switch (kind)
            {
                case SyntaxKind.MatrixKeyword:
                    return Tuple.Create(ScalarType.Float, 4, 4);

                case SyntaxKind.Bool1x1Keyword:
                    return Tuple.Create(ScalarType.Bool, 1, 1);
                case SyntaxKind.Bool1x2Keyword:
                    return Tuple.Create(ScalarType.Bool, 1, 2);
                case SyntaxKind.Bool1x3Keyword:
                    return Tuple.Create(ScalarType.Bool, 1, 3);
                case SyntaxKind.Bool1x4Keyword:
                    return Tuple.Create(ScalarType.Bool, 1, 4);
                case SyntaxKind.Bool2x1Keyword:
                    return Tuple.Create(ScalarType.Bool, 2, 1);
                case SyntaxKind.Bool2x2Keyword:
                    return Tuple.Create(ScalarType.Bool, 2, 2);
                case SyntaxKind.Bool2x3Keyword:
                    return Tuple.Create(ScalarType.Bool, 2, 3);
                case SyntaxKind.Bool2x4Keyword:
                    return Tuple.Create(ScalarType.Bool, 2, 4);
                case SyntaxKind.Bool3x1Keyword:
                    return Tuple.Create(ScalarType.Bool, 3, 1);
                case SyntaxKind.Bool3x2Keyword:
                    return Tuple.Create(ScalarType.Bool, 3, 2);
                case SyntaxKind.Bool3x3Keyword:
                    return Tuple.Create(ScalarType.Bool, 3, 3);
                case SyntaxKind.Bool3x4Keyword:
                    return Tuple.Create(ScalarType.Bool, 3, 4);
                case SyntaxKind.Bool4x1Keyword:
                    return Tuple.Create(ScalarType.Bool, 4, 1);
                case SyntaxKind.Bool4x2Keyword:
                    return Tuple.Create(ScalarType.Bool, 4, 2);
                case SyntaxKind.Bool4x3Keyword:
                    return Tuple.Create(ScalarType.Bool, 4, 3);
                case SyntaxKind.Bool4x4Keyword:
                    return Tuple.Create(ScalarType.Bool, 4, 4);

                case SyntaxKind.Int1x1Keyword:
                    return Tuple.Create(ScalarType.Int, 1, 1);
                case SyntaxKind.Int1x2Keyword:
                    return Tuple.Create(ScalarType.Int, 1, 2);
                case SyntaxKind.Int1x3Keyword:
                    return Tuple.Create(ScalarType.Int, 1, 3);
                case SyntaxKind.Int1x4Keyword:
                    return Tuple.Create(ScalarType.Int, 1, 4);
                case SyntaxKind.Int2x1Keyword:
                    return Tuple.Create(ScalarType.Int, 2, 1);
                case SyntaxKind.Int2x2Keyword:
                    return Tuple.Create(ScalarType.Int, 2, 2);
                case SyntaxKind.Int2x3Keyword:
                    return Tuple.Create(ScalarType.Int, 2, 3);
                case SyntaxKind.Int2x4Keyword:
                    return Tuple.Create(ScalarType.Int, 2, 4);
                case SyntaxKind.Int3x1Keyword:
                    return Tuple.Create(ScalarType.Int, 3, 1);
                case SyntaxKind.Int3x2Keyword:
                    return Tuple.Create(ScalarType.Int, 3, 2);
                case SyntaxKind.Int3x3Keyword:
                    return Tuple.Create(ScalarType.Int, 3, 3);
                case SyntaxKind.Int3x4Keyword:
                    return Tuple.Create(ScalarType.Int, 3, 4);
                case SyntaxKind.Int4x1Keyword:
                    return Tuple.Create(ScalarType.Int, 4, 1);
                case SyntaxKind.Int4x2Keyword:
                    return Tuple.Create(ScalarType.Int, 4, 2);
                case SyntaxKind.Int4x3Keyword:
                    return Tuple.Create(ScalarType.Int, 4, 3);
                case SyntaxKind.Int4x4Keyword:
                    return Tuple.Create(ScalarType.Int, 4, 4);

                case SyntaxKind.Uint1x1Keyword:
                    return Tuple.Create(ScalarType.Uint, 1, 1);
                case SyntaxKind.Uint1x2Keyword:
                    return Tuple.Create(ScalarType.Uint, 1, 2);
                case SyntaxKind.Uint1x3Keyword:
                    return Tuple.Create(ScalarType.Uint, 1, 3);
                case SyntaxKind.Uint1x4Keyword:
                    return Tuple.Create(ScalarType.Uint, 1, 4);
                case SyntaxKind.Uint2x1Keyword:
                    return Tuple.Create(ScalarType.Uint, 2, 1);
                case SyntaxKind.Uint2x2Keyword:
                    return Tuple.Create(ScalarType.Uint, 2, 2);
                case SyntaxKind.Uint2x3Keyword:
                    return Tuple.Create(ScalarType.Uint, 2, 3);
                case SyntaxKind.Uint2x4Keyword:
                    return Tuple.Create(ScalarType.Uint, 2, 4);
                case SyntaxKind.Uint3x1Keyword:
                    return Tuple.Create(ScalarType.Uint, 3, 1);
                case SyntaxKind.Uint3x2Keyword:
                    return Tuple.Create(ScalarType.Uint, 3, 2);
                case SyntaxKind.Uint3x3Keyword:
                    return Tuple.Create(ScalarType.Uint, 3, 3);
                case SyntaxKind.Uint3x4Keyword:
                    return Tuple.Create(ScalarType.Uint, 3, 4);
                case SyntaxKind.Uint4x1Keyword:
                    return Tuple.Create(ScalarType.Uint, 4, 1);
                case SyntaxKind.Uint4x2Keyword:
                    return Tuple.Create(ScalarType.Uint, 4, 2);
                case SyntaxKind.Uint4x3Keyword:
                    return Tuple.Create(ScalarType.Uint, 4, 3);
                case SyntaxKind.Uint4x4Keyword:
                    return Tuple.Create(ScalarType.Uint, 4, 4);

                case SyntaxKind.Half1x1Keyword:
                    return Tuple.Create(ScalarType.Half, 1, 1);
                case SyntaxKind.Half1x2Keyword:
                    return Tuple.Create(ScalarType.Half, 1, 2);
                case SyntaxKind.Half1x3Keyword:
                    return Tuple.Create(ScalarType.Half, 1, 3);
                case SyntaxKind.Half1x4Keyword:
                    return Tuple.Create(ScalarType.Half, 1, 4);
                case SyntaxKind.Half2x1Keyword:
                    return Tuple.Create(ScalarType.Half, 2, 1);
                case SyntaxKind.Half2x2Keyword:
                    return Tuple.Create(ScalarType.Half, 2, 2);
                case SyntaxKind.Half2x3Keyword:
                    return Tuple.Create(ScalarType.Half, 2, 3);
                case SyntaxKind.Half2x4Keyword:
                    return Tuple.Create(ScalarType.Half, 2, 4);
                case SyntaxKind.Half3x1Keyword:
                    return Tuple.Create(ScalarType.Half, 3, 1);
                case SyntaxKind.Half3x2Keyword:
                    return Tuple.Create(ScalarType.Half, 3, 2);
                case SyntaxKind.Half3x3Keyword:
                    return Tuple.Create(ScalarType.Half, 3, 3);
                case SyntaxKind.Half3x4Keyword:
                    return Tuple.Create(ScalarType.Half, 3, 4);
                case SyntaxKind.Half4x1Keyword:
                    return Tuple.Create(ScalarType.Half, 4, 1);
                case SyntaxKind.Half4x2Keyword:
                    return Tuple.Create(ScalarType.Half, 4, 2);
                case SyntaxKind.Half4x3Keyword:
                    return Tuple.Create(ScalarType.Half, 4, 3);
                case SyntaxKind.Half4x4Keyword:
                    return Tuple.Create(ScalarType.Half, 4, 4);

                case SyntaxKind.Float1x1Keyword:
                    return Tuple.Create(ScalarType.Float, 1, 1);
                case SyntaxKind.Float1x2Keyword:
                    return Tuple.Create(ScalarType.Float, 1, 2);
                case SyntaxKind.Float1x3Keyword:
                    return Tuple.Create(ScalarType.Float, 1, 3);
                case SyntaxKind.Float1x4Keyword:
                    return Tuple.Create(ScalarType.Float, 1, 4);
                case SyntaxKind.Float2x1Keyword:
                    return Tuple.Create(ScalarType.Float, 2, 1);
                case SyntaxKind.Float2x2Keyword:
                    return Tuple.Create(ScalarType.Float, 2, 2);
                case SyntaxKind.Float2x3Keyword:
                    return Tuple.Create(ScalarType.Float, 2, 3);
                case SyntaxKind.Float2x4Keyword:
                    return Tuple.Create(ScalarType.Float, 2, 4);
                case SyntaxKind.Float3x1Keyword:
                    return Tuple.Create(ScalarType.Float, 3, 1);
                case SyntaxKind.Float3x2Keyword:
                    return Tuple.Create(ScalarType.Float, 3, 2);
                case SyntaxKind.Float3x3Keyword:
                    return Tuple.Create(ScalarType.Float, 3, 3);
                case SyntaxKind.Float3x4Keyword:
                    return Tuple.Create(ScalarType.Float, 3, 4);
                case SyntaxKind.Float4x1Keyword:
                    return Tuple.Create(ScalarType.Float, 4, 1);
                case SyntaxKind.Float4x2Keyword:
                    return Tuple.Create(ScalarType.Float, 4, 2);
                case SyntaxKind.Float4x3Keyword:
                    return Tuple.Create(ScalarType.Float, 4, 3);
                case SyntaxKind.Float4x4Keyword:
                    return Tuple.Create(ScalarType.Float, 4, 4);

                case SyntaxKind.Double1x1Keyword:
                    return Tuple.Create(ScalarType.Double, 1, 1);
                case SyntaxKind.Double1x2Keyword:
                    return Tuple.Create(ScalarType.Double, 1, 2);
                case SyntaxKind.Double1x3Keyword:
                    return Tuple.Create(ScalarType.Double, 1, 3);
                case SyntaxKind.Double1x4Keyword:
                    return Tuple.Create(ScalarType.Double, 1, 4);
                case SyntaxKind.Double2x1Keyword:
                    return Tuple.Create(ScalarType.Double, 2, 1);
                case SyntaxKind.Double2x2Keyword:
                    return Tuple.Create(ScalarType.Double, 2, 2);
                case SyntaxKind.Double2x3Keyword:
                    return Tuple.Create(ScalarType.Double, 2, 3);
                case SyntaxKind.Double2x4Keyword:
                    return Tuple.Create(ScalarType.Double, 2, 4);
                case SyntaxKind.Double3x1Keyword:
                    return Tuple.Create(ScalarType.Double, 3, 1);
                case SyntaxKind.Double3x2Keyword:
                    return Tuple.Create(ScalarType.Double, 3, 2);
                case SyntaxKind.Double3x3Keyword:
                    return Tuple.Create(ScalarType.Double, 3, 3);
                case SyntaxKind.Double3x4Keyword:
                    return Tuple.Create(ScalarType.Double, 3, 4);
                case SyntaxKind.Double4x1Keyword:
                    return Tuple.Create(ScalarType.Double, 4, 1);
                case SyntaxKind.Double4x2Keyword:
                    return Tuple.Create(ScalarType.Double, 4, 2);
                case SyntaxKind.Double4x3Keyword:
                    return Tuple.Create(ScalarType.Double, 4, 3);
                case SyntaxKind.Double4x4Keyword:
                    return Tuple.Create(ScalarType.Double, 4, 4);

                case SyntaxKind.Min16Float1x1Keyword:
                    return Tuple.Create(ScalarType.Min16Float, 1, 1);
                case SyntaxKind.Min16Float1x2Keyword:
                    return Tuple.Create(ScalarType.Min16Float, 1, 2);
                case SyntaxKind.Min16Float1x3Keyword:
                    return Tuple.Create(ScalarType.Min16Float, 1, 3);
                case SyntaxKind.Min16Float1x4Keyword:
                    return Tuple.Create(ScalarType.Min16Float, 1, 4);
                case SyntaxKind.Min16Float2x1Keyword:
                    return Tuple.Create(ScalarType.Min16Float, 2, 1);
                case SyntaxKind.Min16Float2x2Keyword:
                    return Tuple.Create(ScalarType.Min16Float, 2, 2);
                case SyntaxKind.Min16Float2x3Keyword:
                    return Tuple.Create(ScalarType.Min16Float, 2, 3);
                case SyntaxKind.Min16Float2x4Keyword:
                    return Tuple.Create(ScalarType.Min16Float, 2, 4);
                case SyntaxKind.Min16Float3x1Keyword:
                    return Tuple.Create(ScalarType.Min16Float, 3, 1);
                case SyntaxKind.Min16Float3x2Keyword:
                    return Tuple.Create(ScalarType.Min16Float, 3, 2);
                case SyntaxKind.Min16Float3x3Keyword:
                    return Tuple.Create(ScalarType.Min16Float, 3, 3);
                case SyntaxKind.Min16Float3x4Keyword:
                    return Tuple.Create(ScalarType.Min16Float, 3, 4);
                case SyntaxKind.Min16Float4x1Keyword:
                    return Tuple.Create(ScalarType.Min16Float, 4, 1);
                case SyntaxKind.Min16Float4x2Keyword:
                    return Tuple.Create(ScalarType.Min16Float, 4, 2);
                case SyntaxKind.Min16Float4x3Keyword:
                    return Tuple.Create(ScalarType.Min16Float, 4, 3);
                case SyntaxKind.Min16Float4x4Keyword:
                    return Tuple.Create(ScalarType.Min16Float, 4, 4);

                case SyntaxKind.Min10Float1x1Keyword:
                    return Tuple.Create(ScalarType.Min10Float, 1, 1);
                case SyntaxKind.Min10Float1x2Keyword:
                    return Tuple.Create(ScalarType.Min10Float, 1, 2);
                case SyntaxKind.Min10Float1x3Keyword:
                    return Tuple.Create(ScalarType.Min10Float, 1, 3);
                case SyntaxKind.Min10Float1x4Keyword:
                    return Tuple.Create(ScalarType.Min10Float, 1, 4);
                case SyntaxKind.Min10Float2x1Keyword:
                    return Tuple.Create(ScalarType.Min10Float, 2, 1);
                case SyntaxKind.Min10Float2x2Keyword:
                    return Tuple.Create(ScalarType.Min10Float, 2, 2);
                case SyntaxKind.Min10Float2x3Keyword:
                    return Tuple.Create(ScalarType.Min10Float, 2, 3);
                case SyntaxKind.Min10Float2x4Keyword:
                    return Tuple.Create(ScalarType.Min10Float, 2, 4);
                case SyntaxKind.Min10Float3x1Keyword:
                    return Tuple.Create(ScalarType.Min10Float, 3, 1);
                case SyntaxKind.Min10Float3x2Keyword:
                    return Tuple.Create(ScalarType.Min10Float, 3, 2);
                case SyntaxKind.Min10Float3x3Keyword:
                    return Tuple.Create(ScalarType.Min10Float, 3, 3);
                case SyntaxKind.Min10Float3x4Keyword:
                    return Tuple.Create(ScalarType.Min10Float, 3, 4);
                case SyntaxKind.Min10Float4x1Keyword:
                    return Tuple.Create(ScalarType.Min10Float, 4, 1);
                case SyntaxKind.Min10Float4x2Keyword:
                    return Tuple.Create(ScalarType.Min10Float, 4, 2);
                case SyntaxKind.Min10Float4x3Keyword:
                    return Tuple.Create(ScalarType.Min10Float, 4, 3);
                case SyntaxKind.Min10Float4x4Keyword:
                    return Tuple.Create(ScalarType.Min10Float, 4, 4);

                case SyntaxKind.Min16Int1x1Keyword:
                    return Tuple.Create(ScalarType.Min16Int, 1, 1);
                case SyntaxKind.Min16Int1x2Keyword:
                    return Tuple.Create(ScalarType.Min16Int, 1, 2);
                case SyntaxKind.Min16Int1x3Keyword:
                    return Tuple.Create(ScalarType.Min16Int, 1, 3);
                case SyntaxKind.Min16Int1x4Keyword:
                    return Tuple.Create(ScalarType.Min16Int, 1, 4);
                case SyntaxKind.Min16Int2x1Keyword:
                    return Tuple.Create(ScalarType.Min16Int, 2, 1);
                case SyntaxKind.Min16Int2x2Keyword:
                    return Tuple.Create(ScalarType.Min16Int, 2, 2);
                case SyntaxKind.Min16Int2x3Keyword:
                    return Tuple.Create(ScalarType.Min16Int, 2, 3);
                case SyntaxKind.Min16Int2x4Keyword:
                    return Tuple.Create(ScalarType.Min16Int, 2, 4);
                case SyntaxKind.Min16Int3x1Keyword:
                    return Tuple.Create(ScalarType.Min16Int, 3, 1);
                case SyntaxKind.Min16Int3x2Keyword:
                    return Tuple.Create(ScalarType.Min16Int, 3, 2);
                case SyntaxKind.Min16Int3x3Keyword:
                    return Tuple.Create(ScalarType.Min16Int, 3, 3);
                case SyntaxKind.Min16Int3x4Keyword:
                    return Tuple.Create(ScalarType.Min16Int, 3, 4);
                case SyntaxKind.Min16Int4x1Keyword:
                    return Tuple.Create(ScalarType.Min16Int, 4, 1);
                case SyntaxKind.Min16Int4x2Keyword:
                    return Tuple.Create(ScalarType.Min16Int, 4, 2);
                case SyntaxKind.Min16Int4x3Keyword:
                    return Tuple.Create(ScalarType.Min16Int, 4, 3);
                case SyntaxKind.Min16Int4x4Keyword:
                    return Tuple.Create(ScalarType.Min16Int, 4, 4);

                case SyntaxKind.Min12Int1x1Keyword:
                    return Tuple.Create(ScalarType.Min12Int, 1, 1);
                case SyntaxKind.Min12Int1x2Keyword:
                    return Tuple.Create(ScalarType.Min12Int, 1, 2);
                case SyntaxKind.Min12Int1x3Keyword:
                    return Tuple.Create(ScalarType.Min12Int, 1, 3);
                case SyntaxKind.Min12Int1x4Keyword:
                    return Tuple.Create(ScalarType.Min12Int, 1, 4);
                case SyntaxKind.Min12Int2x1Keyword:
                    return Tuple.Create(ScalarType.Min12Int, 2, 1);
                case SyntaxKind.Min12Int2x2Keyword:
                    return Tuple.Create(ScalarType.Min12Int, 2, 2);
                case SyntaxKind.Min12Int2x3Keyword:
                    return Tuple.Create(ScalarType.Min12Int, 2, 3);
                case SyntaxKind.Min12Int2x4Keyword:
                    return Tuple.Create(ScalarType.Min12Int, 2, 4);
                case SyntaxKind.Min12Int3x1Keyword:
                    return Tuple.Create(ScalarType.Min12Int, 3, 1);
                case SyntaxKind.Min12Int3x2Keyword:
                    return Tuple.Create(ScalarType.Min12Int, 3, 2);
                case SyntaxKind.Min12Int3x3Keyword:
                    return Tuple.Create(ScalarType.Min12Int, 3, 3);
                case SyntaxKind.Min12Int3x4Keyword:
                    return Tuple.Create(ScalarType.Min12Int, 3, 4);
                case SyntaxKind.Min12Int4x1Keyword:
                    return Tuple.Create(ScalarType.Min12Int, 4, 1);
                case SyntaxKind.Min12Int4x2Keyword:
                    return Tuple.Create(ScalarType.Min12Int, 4, 2);
                case SyntaxKind.Min12Int4x3Keyword:
                    return Tuple.Create(ScalarType.Min12Int, 4, 3);
                case SyntaxKind.Min12Int4x4Keyword:
                    return Tuple.Create(ScalarType.Min12Int, 4, 4);

                case SyntaxKind.Min16Uint1x1Keyword:
                    return Tuple.Create(ScalarType.Min16Uint, 1, 1);
                case SyntaxKind.Min16Uint1x2Keyword:
                    return Tuple.Create(ScalarType.Min16Uint, 1, 2);
                case SyntaxKind.Min16Uint1x3Keyword:
                    return Tuple.Create(ScalarType.Min16Uint, 1, 3);
                case SyntaxKind.Min16Uint1x4Keyword:
                    return Tuple.Create(ScalarType.Min16Uint, 1, 4);
                case SyntaxKind.Min16Uint2x1Keyword:
                    return Tuple.Create(ScalarType.Min16Uint, 2, 1);
                case SyntaxKind.Min16Uint2x2Keyword:
                    return Tuple.Create(ScalarType.Min16Uint, 2, 2);
                case SyntaxKind.Min16Uint2x3Keyword:
                    return Tuple.Create(ScalarType.Min16Uint, 2, 3);
                case SyntaxKind.Min16Uint2x4Keyword:
                    return Tuple.Create(ScalarType.Min16Uint, 2, 4);
                case SyntaxKind.Min16Uint3x1Keyword:
                    return Tuple.Create(ScalarType.Min16Uint, 3, 1);
                case SyntaxKind.Min16Uint3x2Keyword:
                    return Tuple.Create(ScalarType.Min16Uint, 3, 2);
                case SyntaxKind.Min16Uint3x3Keyword:
                    return Tuple.Create(ScalarType.Min16Uint, 3, 3);
                case SyntaxKind.Min16Uint3x4Keyword:
                    return Tuple.Create(ScalarType.Min16Uint, 3, 4);
                case SyntaxKind.Min16Uint4x1Keyword:
                    return Tuple.Create(ScalarType.Min16Uint, 4, 1);
                case SyntaxKind.Min16Uint4x2Keyword:
                    return Tuple.Create(ScalarType.Min16Uint, 4, 2);
                case SyntaxKind.Min16Uint4x3Keyword:
                    return Tuple.Create(ScalarType.Min16Uint, 4, 3);
                case SyntaxKind.Min16Uint4x4Keyword:
                    return Tuple.Create(ScalarType.Min16Uint, 4, 4);

                default:
                    throw new ArgumentOutOfRangeException();
            }
        }