Refactor drawContext/RenderTarget creation
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1914883002

Committed: https://skia.googlesource.com/skia/+/2f1c42e8448bbbadeb3df1c626faa90aa33f8907

Review-Url: https://codereview.chromium.org/1914883002
diff --git a/src/effects/SkLightingImageFilter.cpp b/src/effects/SkLightingImageFilter.cpp
index 7223ae5..6efb0f6 100644
--- a/src/effects/SkLightingImageFilter.cpp
+++ b/src/effects/SkLightingImageFilter.cpp
@@ -407,18 +407,10 @@
     sk_sp<GrTexture> inputTexture(input->asTextureRef(context));
     SkASSERT(inputTexture);
 
-    GrSurfaceDesc desc;
-    desc.fFlags = kRenderTarget_GrSurfaceFlag,
-    desc.fWidth = offsetBounds.width();
-    desc.fHeight = offsetBounds.height();
-    desc.fConfig = kRGBA_8888_GrPixelConfig;
-
-    sk_sp<GrTexture> dst(context->textureProvider()->createApproxTexture(desc));
-    if (!dst) {
-        return nullptr;
-    }
-
-    sk_sp<GrDrawContext> drawContext(context->drawContext(sk_ref_sp(dst->asRenderTarget())));
+    sk_sp<GrDrawContext> drawContext(context->newDrawContext(GrContext::kLoose_BackingFit,
+                                                             offsetBounds.width(),
+                                                             offsetBounds.height(),
+                                                             kRGBA_8888_GrPixelConfig));
     if (!drawContext) {
         return nullptr;
     }
@@ -462,7 +454,7 @@
 
     return SkSpecialImage::MakeFromGpu(SkIRect::MakeWH(offsetBounds.width(), offsetBounds.height()),
                                        kNeedNewImageUniqueID_SpecialImage,
-                                       std::move(dst));
+                                       drawContext->asTexture());
 }
 #endif