Add GrSurfaceFillContext

This is a new base class for GrSurfaceDrawContext. It allows any
alpha-type but is restricted to non-blending fills of irects using FPs,
clears,and discards.

Bug: skia:11019

Reviewed-on: https://skia-review.googlesource.com/c/skia/+/341680
Reviewed-by: Greg Daniel <egdaniel@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Change-Id: I696df3617719fcd8303faa73fb44b32b3fb4f71c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/344896
diff --git a/src/gpu/GrSurfaceProxy.cpp b/src/gpu/GrSurfaceProxy.cpp
index a588da3..7719dc9 100644
--- a/src/gpu/GrSurfaceProxy.cpp
+++ b/src/gpu/GrSurfaceProxy.cpp
@@ -291,19 +291,19 @@
         }
     }
     if (src->asTextureProxy()) {
-        auto dstContext = GrSurfaceDrawContext::Make(context,
+        auto dstContext = GrSurfaceFillContext::Make(context,
+                                                     kUnknown_SkAlphaType,
                                                      nullptr,
-                                                     fit,
                                                      {width, height},
+                                                     fit,
                                                      format,
-                                                     /* sample count*/ 1,
+                                                     1,
                                                      mipMapped,
                                                      src->isProtected(),
                                                      GrSwizzle::RGBA(),
                                                      GrSwizzle::RGBA(),
                                                      origin,
-                                                     budgeted,
-                                                     /*surface props*/ nullptr);
+                                                     budgeted);
         GrSurfaceProxyView view(sk_ref_sp(src), origin, GrSwizzle::RGBA());
         if (dstContext && dstContext->blitTexture(std::move(view), srcRect, dstPoint)) {
             return dstContext->asSurfaceProxyRef();