Remove (unused) YUV API from SkPixelRef

YUV conversion happens via SkImage now.

BUG=skia:

Change-Id: I6e1fa18effb72cbb00a173a346769b873e372c40
Reviewed-on: https://skia-review.googlesource.com/7034
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
diff --git a/include/core/SkPixelRef.h b/include/core/SkPixelRef.h
index 12a72f4..7545f3e 100644
--- a/include/core/SkPixelRef.h
+++ b/include/core/SkPixelRef.h
@@ -18,7 +18,6 @@
 #include "SkRefCnt.h"
 #include "SkSize.h"
 #include "SkString.h"
-#include "SkYUVSizeInfo.h"
 
 class SkColorTable;
 struct SkIRect;
@@ -193,31 +192,6 @@
 
     bool requestLock(const LockRequest&, LockResult*);
 
-    /**
-     *  If this can efficiently return YUV data, this should return true.
-     *  Otherwise this returns false and does not modify any of the parameters.
-     *
-     *  @param sizeInfo   Output parameter indicating the sizes and required
-     *                    allocation widths of the Y, U, and V planes.
-     *  @param colorSpace Output parameter.
-     */
-    bool queryYUV8(SkYUVSizeInfo* sizeInfo, SkYUVColorSpace* colorSpace) const {
-        return this->onQueryYUV8(sizeInfo, colorSpace);
-    }
-
-    /**
-     *  Returns true on success and false on failure.
-     *  Copies YUV data into the provided YUV planes.
-     *
-     *  @param sizeInfo   Needs to exactly match the values returned by the
-     *                    query, except the WidthBytes may be larger than the
-     *                    recommendation (but not smaller).
-     *  @param planes     Memory for each of the Y, U, and V planes.
-     */
-    bool getYUV8Planes(const SkYUVSizeInfo& sizeInfo, void* planes[3]) {
-        return this->onGetYUV8Planes(sizeInfo, planes);
-    }
-
     /** Populates dst with the pixels of this pixelRef, converting them to colorType. */
     bool readPixels(SkBitmap* dst, SkColorType colorType, const SkIRect* subset = NULL);
 
@@ -284,13 +258,6 @@
     // default impl does nothing.
     virtual void onNotifyPixelsChanged();
 
-    virtual bool onQueryYUV8(SkYUVSizeInfo*, SkYUVColorSpace*) const {
-        return false;
-    }
-    virtual bool onGetYUV8Planes(const SkYUVSizeInfo&, void*[3] /*planes*/) {
-        return false;
-    }
-
     /**
      *  Returns the size (in bytes) of the internally allocated memory.
      *  This should be implemented in all serializable SkPixelRef derived classes.
diff --git a/src/gpu/SkGr.cpp b/src/gpu/SkGr.cpp
index f3b9008..3cca52f 100644
--- a/src/gpu/SkGr.cpp
+++ b/src/gpu/SkGr.cpp
@@ -16,7 +16,6 @@
 #include "GrTexturePriv.h"
 #include "GrTypes.h"
 #include "GrXferProcessor.h"
-#include "GrYUVProvider.h"
 
 #include "SkAutoMalloc.h"
 #include "SkBlendModePriv.h"
@@ -31,13 +30,11 @@
 #include "SkPixelRef.h"
 #include "SkResourceCache.h"
 #include "SkTemplates.h"
-#include "SkYUVPlanesCache.h"
 #include "effects/GrBicubicEffect.h"
 #include "effects/GrConstColorProcessor.h"
 #include "effects/GrDitherEffect.h"
 #include "effects/GrPorterDuffXferProcessor.h"
 #include "effects/GrXfermodeFragmentProcessor.h"
-#include "effects/GrYUVEffect.h"
 
 #ifndef SK_IGNORE_ETC1_SUPPORT
 #  include "ktx.h"
@@ -111,48 +108,7 @@
 
 //////////////////////////////////////////////////////////////////////////////
 
-/**
- *  Once we have made SkImages handle all lazy/deferred/generated content, the YUV apis will
- *  be gone from SkPixelRef, and we can remove this subclass entirely.
- */
-class PixelRef_GrYUVProvider : public GrYUVProvider {
-    SkPixelRef* fPR;
-
-public:
-    PixelRef_GrYUVProvider(SkPixelRef* pr) : fPR(pr) {}
-
-    uint32_t onGetID() override { return fPR->getGenerationID(); }
-    bool onQueryYUV8(SkYUVSizeInfo* sizeInfo, SkYUVColorSpace* colorSpace) const override {
-        return fPR->queryYUV8(sizeInfo, colorSpace);
-    }
-    bool onGetYUV8Planes(const SkYUVSizeInfo& sizeInfo, void* planes[3]) override {
-        return fPR->getYUV8Planes(sizeInfo, planes);
-    }
-};
-
-static sk_sp<GrTexture> create_texture_from_yuv(GrContext* ctx, const SkBitmap& bm,
-                                                const GrSurfaceDesc& desc) {
-    // Subsets are not supported, the whole pixelRef is loaded when using YUV decoding
-    SkPixelRef* pixelRef = bm.pixelRef();
-    if ((nullptr == pixelRef) ||
-        (pixelRef->info().width() != bm.info().width()) ||
-        (pixelRef->info().height() != bm.info().height())) {
-        return nullptr;
-    }
-
-    PixelRef_GrYUVProvider provider(pixelRef);
-
-    return provider.refAsTexture(ctx, desc, !bm.isVolatile());
-}
-
 GrTexture* GrUploadBitmapToTexture(GrContext* ctx, const SkBitmap& bitmap) {
-    GrSurfaceDesc desc = GrImageInfoToSurfaceDesc(bitmap.info(), *ctx->caps());
-
-    sk_sp<GrTexture> texture(create_texture_from_yuv(ctx, bitmap, desc));
-    if (texture) {
-        return texture.release();
-    }
-
     SkAutoLockPixels alp(bitmap);
     if (!bitmap.readyToDraw()) {
         return nullptr;
@@ -244,10 +200,6 @@
         : SkDestinationSurfaceColorMode::kLegacy;
 
     GrSurfaceDesc desc = GrImageInfoToSurfaceDesc(bitmap.info(), *ctx->caps());
-    sk_sp<GrTexture> texture(create_texture_from_yuv(ctx, bitmap, desc));
-    if (texture) {
-        return texture.release();
-    }
 
     // We don't support Gray8 directly in the GL backend, so fail-over to GrUploadBitmapToTexture.
     // That will transform the Gray8 to 8888, then use the driver/GPU to build mipmaps. If we build