add API for Op creation

Introduce three calls on GrOp: Make, MakeWithExtraMemory,
and MakeWithProcessorSet. Instead of returning
unique_ptr<GrOp>, they return a type of GrOp::OpOwner.
GrOp::OpOwner safely deletes the op when it goes out
of scope for either new/delete or GrOpMemoryPool
allocations.

In order to make the code easier to refactor, I
eliminated MakeArg from the helpers.

Change-Id: Icfd697906f3147a8734575d08bd7195e7517383a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/323778
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Herb Derby <herb@google.com>
diff --git a/src/gpu/ops/GrAtlasTextOp.cpp b/src/gpu/ops/GrAtlasTextOp.cpp
index 3d5b801..b89e6c2 100644
--- a/src/gpu/ops/GrAtlasTextOp.cpp
+++ b/src/gpu/ops/GrAtlasTextOp.cpp
@@ -456,13 +456,14 @@
 }
 
 #if GR_TEST_UTILS
-std::unique_ptr<GrDrawOp> GrAtlasTextOp::CreateOpTestingOnly(GrRenderTargetContext* rtc,
-                                                             const SkPaint& skPaint,
-                                                             const SkFont& font,
-                                                             const SkMatrixProvider& mtxProvider,
-                                                             const char* text,
-                                                             int x,
-                                                             int y) {
+
+GrOp::Owner GrAtlasTextOp::CreateOpTestingOnly(GrRenderTargetContext* rtc,
+                                               const SkPaint& skPaint,
+                                               const SkFont& font,
+                                               const SkMatrixProvider& mtxProvider,
+                                               const char* text,
+                                               int x,
+                                               int y) {
     size_t textLen = (int)strlen(text);
 
     const SkMatrix& drawMatrix(mtxProvider.localToDevice());
@@ -491,7 +492,7 @@
     }
 
     GrAtlasSubRun* subRun = static_cast<GrAtlasSubRun*>(blob->subRunList().head());
-    std::unique_ptr<GrDrawOp> op;
+    GrOp::Owner op;
     std::tie(std::ignore, op) = subRun->makeAtlasTextOp(nullptr, mtxProvider, glyphRunList, rtc);
     return op;
 }