Reland "Reland "Separate compressed and uncompressed texture functions""

This is a reland of c0519233cdd2545a938848336c7d470bfe27fa96

Original change's description:
> Reland "Separate compressed and uncompressed texture functions"
> 
> This is a reland of 9acfb33ad8c6f5fc6097dff57c0de5e51ea590fd
> 
> Original change's description:
> > Separate compressed and uncompressed texture functions
> > 
> > Change-Id: Iccf31e1e4dbebde8aab4bb9b57cfb0341bb05912
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/223802
> > Reviewed-by: Greg Daniel <egdaniel@google.com>
> > Commit-Queue: Brian Salomon <bsalomon@google.com>
> 
> Change-Id: I9f212b7d34cf43216f7d2ec63b959b75fd6a71b3
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/223992
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Brian Salomon <bsalomon@google.com>

Change-Id: I0654a49dadfb56ad276051c8632b91da05bf24cd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/224181
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
diff --git a/src/gpu/GrGpu.h b/src/gpu/GrGpu.h
index 3fb9862..e52c476 100644
--- a/src/gpu/GrGpu.h
+++ b/src/gpu/GrGpu.h
@@ -103,6 +103,9 @@
      */
     sk_sp<GrTexture> createTexture(const GrSurfaceDesc& desc, SkBudgeted);
 
+    sk_sp<GrTexture> createCompressedTexture(int width, int height, SkImage::CompressionType,
+                                             SkBudgeted, const void* data, size_t dataSize);
+
     /**
      * Implements GrResourceProvider::wrapBackendTexture
      */
@@ -492,7 +495,9 @@
     // onCreateTexture is called.
     virtual sk_sp<GrTexture> onCreateTexture(const GrSurfaceDesc&, SkBudgeted,
                                              const GrMipLevel texels[], int mipLevelCount) = 0;
-
+    virtual sk_sp<GrTexture> onCreateCompressedTexture(int width, int height,
+                                                       SkImage::CompressionType, SkBudgeted,
+                                                       const void* data) = 0;
     virtual sk_sp<GrTexture> onWrapBackendTexture(const GrBackendTexture&, GrWrapOwnership,
                                                   GrWrapCacheable, GrIOType) = 0;
     virtual sk_sp<GrTexture> onWrapRenderableBackendTexture(const GrBackendTexture&, int sampleCnt,