More ctype cleanup in SkSL

- Remove ctypes that were entirely unused
- Remove explicit selection of default ctypes
- After that, only two ctype tokens are needed (SkPMColor4f and SkV4)
  ... remove all of the others from the parser

Change-Id: I2322aab73a19127b3b26850aefdad6140ea0f7e7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/410057
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
diff --git a/include/private/SkSLLayout.h b/include/private/SkSLLayout.h
index 61e2279..d7c764a 100644
--- a/include/private/SkSLLayout.h
+++ b/include/private/SkSLLayout.h
@@ -52,24 +52,18 @@
     };
 
     enum class CType {
-        kDefault,
-        kBool,
-        kFloat,
-        kFloat2,
-        kFloat3,
-        kFloat4,
-        kInt32,
-        kSkRect,
-        kSkIRect,
+        kDefault,      // Default for:
+        kFloat,        // float, half
+        kInt32,        // int, short
+        kSkRect,       // float4, half4
+        kSkIRect,      // int4, short4
         kSkPMColor4f,
-        kSkPMColor,
         kSkV4,
-        kSkPoint,
-        kSkIPoint,
-        kSkMatrix,
-        kSkM44,
-        kGrSurfaceProxyView,
-        kGrFragmentProcessor,
+        kSkPoint,      // float2, half2
+        kSkIPoint,     // int2, short2
+        kSkMatrix,     // float3x3, half3x3
+        kSkM44,        // float4x4, half4x4
+        kGrFragmentProcessor,  // fragmentProcessor
     };
 
     static const char* CTypeToStr(CType ctype) {
@@ -86,8 +80,6 @@
                 return "SkIRect";
             case CType::kSkPMColor4f:
                 return "SkPMColor4f";
-            case CType::kSkPMColor:
-                return "SkPMColor";
             case CType::kSkV4:
                 return "SkV4";
             case CType::kSkPoint:
@@ -98,8 +90,6 @@
                 return "SkMatrix";
             case CType::kSkM44:
                 return "SkM44";
-            case CType::kGrSurfaceProxyView:
-                return "GrSurfaceProxyView";
             case CType::kGrFragmentProcessor:
                 return "std::unique_ptr<GrFragmentProcessor>";
             default:
diff --git a/resources/sksl/errors/LayoutInFunctions.sksl b/resources/sksl/errors/LayoutInFunctions.sksl
index 2093df0..16dc822 100644
--- a/resources/sksl/errors/LayoutInFunctions.sksl
+++ b/resources/sksl/errors/LayoutInFunctions.sksl
@@ -14,7 +14,7 @@
     max_vertices = 1,
     invocations = 1,
     when = one,
-    ctype = int)
+    ctype = SkPMColor4f)
 void on_return() {}
 
 void on_param(
@@ -34,4 +34,4 @@
     max_vertices = 1,
     invocations = 1,
     when = one,
-    ctype = int) float x) {}
+    ctype = SkPMColor4f) float x) {}
diff --git a/resources/sksl/errors/LayoutRepeatedQualifiers.sksl b/resources/sksl/errors/LayoutRepeatedQualifiers.sksl
index 59020e0..6b0b715 100644
--- a/resources/sksl/errors/LayoutRepeatedQualifiers.sksl
+++ b/resources/sksl/errors/LayoutRepeatedQualifiers.sksl
@@ -14,7 +14,7 @@
     max_vertices = 1,
     invocations = 1,
     when = one,
-    ctype = int,
+    ctype = SkPMColor4f,
 
     origin_upper_left,
     push_constant,
@@ -31,5 +31,5 @@
     max_vertices = 2,
     invocations = 2,
     when = two,
-    ctype = float
+    ctype = SkV4
 ) float x;
diff --git a/src/gpu/effects/GrAARectEffect.fp b/src/gpu/effects/GrAARectEffect.fp
index 4c79cd3..5932a70 100644
--- a/src/gpu/effects/GrAARectEffect.fp
+++ b/src/gpu/effects/GrAARectEffect.fp
@@ -7,8 +7,8 @@
 
 in fragmentProcessor inputFP;
 layout(key) in GrClipEdgeType edgeType;
-layout(ctype=SkRect) in float4 rect;
-layout(ctype=SkRect) float4 prevRect = float4(-1);
+in float4 rect;
+float4 prevRect = float4(-1);
 uniform float4 rectUniform;
 
 @optimizationFlags {
diff --git a/src/gpu/effects/GrColorMatrixFragmentProcessor.fp b/src/gpu/effects/GrColorMatrixFragmentProcessor.fp
index baa2d0a..b80ad0c 100644
--- a/src/gpu/effects/GrColorMatrixFragmentProcessor.fp
+++ b/src/gpu/effects/GrColorMatrixFragmentProcessor.fp
@@ -6,7 +6,7 @@
  */
 
 in fragmentProcessor inputFP;
-layout(ctype=SkM44) in uniform half4x4 m;
+in uniform half4x4 m;
 layout(ctype=SkV4) in uniform half4 v;
 layout(key) in bool unpremulInput;
 layout(key) in bool clampRGBOutput;
diff --git a/src/gpu/effects/GrMagnifierEffect.fp b/src/gpu/effects/GrMagnifierEffect.fp
index d6c5979..1da67c1 100644
--- a/src/gpu/effects/GrMagnifierEffect.fp
+++ b/src/gpu/effects/GrMagnifierEffect.fp
@@ -6,9 +6,9 @@
  */
 
 in fragmentProcessor src;
-layout(ctype=SkIRect) in int4 bounds;
+in int4 bounds;
 uniform float4 boundsUniform;
-layout(ctype=SkRect) in float4 srcRect;
+in float4 srcRect;
 in uniform float xInvZoom;
 in uniform float yInvZoom;
 in uniform float xInvInset;
diff --git a/src/gpu/effects/GrRRectBlurEffect.fp b/src/gpu/effects/GrRRectBlurEffect.fp
index 06a2a37..a303fca 100644
--- a/src/gpu/effects/GrRRectBlurEffect.fp
+++ b/src/gpu/effects/GrRRectBlurEffect.fp
@@ -7,10 +7,10 @@
 
 in fragmentProcessor inputFP;
 in float sigma;
-layout(ctype=SkRect) in float4 rect;
+in float4 rect;
 in uniform half cornerRadius;
 in fragmentProcessor ninePatchFP;
-layout(ctype=SkRect) uniform float4 proxyRect;
+uniform float4 proxyRect;
 uniform half blurRadius;
 
 @header {
diff --git a/src/sksl/SkSLParser.cpp b/src/sksl/SkSLParser.cpp
index 140fd8e..004d625 100644
--- a/src/sksl/SkSLParser.cpp
+++ b/src/sksl/SkSLParser.cpp
@@ -111,13 +111,6 @@
     TOKEN(CTYPE,                        "ctype");
     TOKEN(SKPMCOLOR4F,                  "SkPMColor4f");
     TOKEN(SKV4,                         "SkV4");
-    TOKEN(SKRECT,                       "SkRect");
-    TOKEN(SKIRECT,                      "SkIRect");
-    TOKEN(SKPMCOLOR,                    "SkPMColor");
-    TOKEN(SKM44,                        "SkM44");
-    TOKEN(BOOL,                         "bool");
-    TOKEN(INT,                          "int");
-    TOKEN(FLOAT,                        "float");
     #undef TOKEN
 }
 
@@ -848,20 +841,6 @@
                     return Layout::CType::kSkPMColor4f;
                 case LayoutToken::SKV4:
                     return Layout::CType::kSkV4;
-                case LayoutToken::SKRECT:
-                    return Layout::CType::kSkRect;
-                case LayoutToken::SKIRECT:
-                    return Layout::CType::kSkIRect;
-                case LayoutToken::SKPMCOLOR:
-                    return Layout::CType::kSkPMColor;
-                case LayoutToken::BOOL:
-                    return Layout::CType::kBool;
-                case LayoutToken::INT:
-                    return Layout::CType::kInt32;
-                case LayoutToken::FLOAT:
-                    return Layout::CType::kFloat;
-                case LayoutToken::SKM44:
-                    return Layout::CType::kSkM44;
                 default:
                     break;
             }
diff --git a/src/sksl/SkSLParser.h b/src/sksl/SkSLParser.h
index ca70f4e..e7f22b2 100644
--- a/src/sksl/SkSLParser.h
+++ b/src/sksl/SkSLParser.h
@@ -54,13 +54,6 @@
         CTYPE,
         SKPMCOLOR4F,
         SKV4,
-        SKRECT,
-        SKIRECT,
-        SKPMCOLOR,
-        SKM44,
-        BOOL,
-        INT,
-        FLOAT,
     };
 
     Parser(const char* text, size_t length, SymbolTable& symbols, ErrorReporter& errors);
diff --git a/src/sksl/codegen/SkSLCPPCodeGenerator.cpp b/src/sksl/codegen/SkSLCPPCodeGenerator.cpp
index 4f7319d..f1c54bb 100644
--- a/src/sksl/codegen/SkSLCPPCodeGenerator.cpp
+++ b/src/sksl/codegen/SkSLCPPCodeGenerator.cpp
@@ -165,12 +165,6 @@
     }
     if (type == *fContext.fTypes.fFloat4 || type == *fContext.fTypes.fHalf4) {
         switch (layout.fCType) {
-            case Layout::CType::kSkPMColor:
-                formatArgs->push_back("SkGetPackedR32(" + cppCode + ") / 255.0");
-                formatArgs->push_back("SkGetPackedG32(" + cppCode + ") / 255.0");
-                formatArgs->push_back("SkGetPackedB32(" + cppCode + ") / 255.0");
-                formatArgs->push_back("SkGetPackedA32(" + cppCode + ") / 255.0");
-                break;
             case Layout::CType::kSkPMColor4f:
                 formatArgs->push_back(cppCode + ".fR");
                 formatArgs->push_back(cppCode + ".fG");
diff --git a/src/sksl/codegen/SkSLDSLCPPCodeGenerator.cpp b/src/sksl/codegen/SkSLDSLCPPCodeGenerator.cpp
index d8cd2af..512da72 100644
--- a/src/sksl/codegen/SkSLDSLCPPCodeGenerator.cpp
+++ b/src/sksl/codegen/SkSLDSLCPPCodeGenerator.cpp
@@ -156,12 +156,6 @@
     }
     if (type == *fContext.fTypes.fFloat4 || type == *fContext.fTypes.fHalf4) {
         switch (layout.fCType) {
-            case Layout::CType::kSkPMColor:
-                formatArgs->push_back("SkGetPackedR32(" + cppCode + ") / 255.0");
-                formatArgs->push_back("SkGetPackedG32(" + cppCode + ") / 255.0");
-                formatArgs->push_back("SkGetPackedB32(" + cppCode + ") / 255.0");
-                formatArgs->push_back("SkGetPackedA32(" + cppCode + ") / 255.0");
-                break;
             case Layout::CType::kSkPMColor4f:
                 formatArgs->push_back(cppCode + ".fR");
                 formatArgs->push_back(cppCode + ".fG");
diff --git a/src/sksl/codegen/SkSLHCodeGenerator.cpp b/src/sksl/codegen/SkSLHCodeGenerator.cpp
index e9d8499..d5aa841 100644
--- a/src/sksl/codegen/SkSLHCodeGenerator.cpp
+++ b/src/sksl/codegen/SkSLHCodeGenerator.cpp
@@ -52,16 +52,13 @@
     }
     if (type == *context.fTypes.fFloat || type == *context.fTypes.fHalf) {
         return Layout::CType::kFloat;
-    } else if (type == *context.fTypes.fInt ||
-               type == *context.fTypes.fShort) {
+    } else if (type == *context.fTypes.fInt || type == *context.fTypes.fShort) {
         return Layout::CType::kInt32;
     } else if (type == *context.fTypes.fFloat2 || type == *context.fTypes.fHalf2) {
         return Layout::CType::kSkPoint;
-    } else if (type == *context.fTypes.fInt2 ||
-               type == *context.fTypes.fShort2) {
+    } else if (type == *context.fTypes.fInt2 || type == *context.fTypes.fShort2) {
         return Layout::CType::kSkIPoint;
-    } else if (type == *context.fTypes.fInt4 ||
-               type == *context.fTypes.fShort4) {
+    } else if (type == *context.fTypes.fInt4 || type == *context.fTypes.fShort4) {
         return Layout::CType::kSkIRect;
     } else if (type == *context.fTypes.fFloat4 || type == *context.fTypes.fHalf4) {
         return Layout::CType::kSkRect;
@@ -69,8 +66,6 @@
         return Layout::CType::kSkMatrix;
     } else if (type == *context.fTypes.fFloat4x4 || type == *context.fTypes.fHalf4x4) {
         return Layout::CType::kSkM44;
-    } else if (type.typeKind() == Type::TypeKind::kSampler) {
-        return Layout::CType::kGrSurfaceProxyView;
     } else if (type.isFragmentProcessor()) {
         return Layout::CType::kGrFragmentProcessor;
     }