Update LazyProxy creation to allow for a non-textureable result

Change-Id: Ic284b4f4220afa714159e07f57798a94fd40d63a
Reviewed-on: https://skia-review.googlesource.com/102484
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
diff --git a/src/gpu/GrProxyProvider.h b/src/gpu/GrProxyProvider.h
index 91cd5f6..c5191a6 100644
--- a/src/gpu/GrProxyProvider.h
+++ b/src/gpu/GrProxyProvider.h
@@ -147,9 +147,14 @@
                                                          GrSurfaceOrigin origin,
                                                          int sampleCnt);
 
-    using LazyInstantiateCallback = std::function<sk_sp<GrTexture>(GrResourceProvider*,
+    using LazyInstantiateCallback = std::function<sk_sp<GrSurface>(GrResourceProvider*,
                                                                    GrSurfaceOrigin* outOrigin)>;
 
+    enum class Textureable : bool {
+        kNo = false,
+        kYes = true
+    };
+
     enum class Renderable : bool {
         kNo = false,
         kYes = true
@@ -171,6 +176,10 @@
     sk_sp<GrTextureProxy> createFullyLazyProxy(LazyInstantiateCallback&&,
                                                Renderable, GrPixelConfig);
 
+    sk_sp<GrRenderTargetProxy> createLazyRenderTargetProxy(LazyInstantiateCallback&&,
+                                                           const GrSurfaceDesc&, Textureable,
+                                                           GrMipMapped, SkBackingFit, SkBudgeted);
+
     // 'proxy' is about to be used as a texture src or drawn to. This query can be used to
     // determine if it is going to need a texture domain or a full clear.
     static bool IsFunctionallyExact(GrSurfaceProxy* proxy);