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