private static string GetConstantTypeName(ConstantDeclaration declaration) { switch (declaration.ParameterClass) { case ParameterClass.Scalar: return(declaration.ParameterType.ToString().ToLower()); case ParameterClass.Vector: if (declaration.ParameterType == ParameterType.Float) { return("float" + declaration.Columns); } else { throw new NotImplementedException(); } case ParameterClass.MatrixColumns: case ParameterClass.MatrixRows: if (declaration.ParameterType == ParameterType.Float) { return($"float{declaration.Rows}x{declaration.Columns}"); } else { throw new NotImplementedException(); } case ParameterClass.Object: switch (declaration.ParameterType) { case ParameterType.Sampler2D: case ParameterType.Sampler3D: return("sampler"); default: throw new NotImplementedException(); } } throw new NotImplementedException(); }