| Index: src/image/SkImage_Gpu.cpp
|
| diff --git a/src/image/SkImage_Gpu.cpp b/src/image/SkImage_Gpu.cpp
|
| index 8e5ce4564c24afdfab2ebbc212a90748ef73632d..dd4bee311d0a864109af766e33d05eaf67dfd74f 100644
|
| --- a/src/image/SkImage_Gpu.cpp
|
| +++ b/src/image/SkImage_Gpu.cpp
|
| @@ -14,7 +14,7 @@
|
| #include "effects/GrYUVtoRGBEffect.h"
|
| #include "SkCanvas.h"
|
| #include "SkGpuDevice.h"
|
| -#include "SkGr.h"
|
| +#include "SkGrPriv.h"
|
| #include "SkPixelRef.h"
|
|
|
| SkImage_Gpu::SkImage_Gpu(int w, int h, uint32_t uniqueID, SkAlphaType at, GrTexture* tex,
|
| @@ -67,47 +67,31 @@ bool SkImage_Gpu::getROPixels(SkBitmap* dst) const {
|
| return true;
|
| }
|
|
|
| -static void make_raw_texture_stretched_key(uint32_t imageID,
|
| - const GrTextureParamsAdjuster::CopyParams& params,
|
| - GrUniqueKey* stretchedKey) {
|
| - static const GrUniqueKey::Domain kDomain = GrUniqueKey::GenerateDomain();
|
| - GrUniqueKey::Builder builder(stretchedKey, kDomain, 4);
|
| - builder[0] = imageID;
|
| - builder[1] = params.fFilter;
|
| - builder[2] = params.fWidth;
|
| - builder[3] = params.fHeight;
|
| -}
|
| -
|
| -class Texture_GrTextureParamsAdjuster : public GrTextureParamsAdjuster {
|
| +class GpuImage_GrTextureAdjuster : public GrTextureAdjuster {
|
| public:
|
| - Texture_GrTextureParamsAdjuster(const SkImage* image, GrTexture* unstretched)
|
| - : INHERITED(image->width(), image->height())
|
| + GpuImage_GrTextureAdjuster(const SkImage_Gpu* image)
|
| + : INHERITED(image->peekTexture())
|
| , fImage(image)
|
| - , fOriginal(unstretched)
|
| {}
|
|
|
| protected:
|
| - GrTexture* refOriginalTexture(GrContext* ctx) override {
|
| - return SkRef(fOriginal);
|
| + void makeCopyKey(const CopyParams& params, GrUniqueKey* copyKey) override {
|
| + GrUniqueKey baseKey;
|
| + GrMakeKeyFromImageID(&baseKey, fImage->uniqueID(),
|
| + SkIRect::MakeWH(fImage->width(), fImage->height()));
|
| + MakeCopyKeyFromOrigKey(baseKey, params, copyKey);
|
| }
|
|
|
| - void makeCopyKey(const CopyParams& copyParams, GrUniqueKey* copyKey) override {
|
| - make_raw_texture_stretched_key(fImage->uniqueID(), copyParams, copyKey);
|
| - }
|
| -
|
| - void didCacheCopy(const GrUniqueKey& copyKey) override {
|
| - as_IB(fImage)->notifyAddedToCache();
|
| - }
|
| + void didCacheCopy(const GrUniqueKey& copyKey) override { as_IB(fImage)->notifyAddedToCache(); }
|
|
|
| private:
|
| const SkImage* fImage;
|
| - GrTexture* fOriginal;
|
|
|
| - typedef GrTextureParamsAdjuster INHERITED;
|
| + typedef GrTextureAdjuster INHERITED;
|
| };
|
|
|
| GrTexture* SkImage_Gpu::asTextureRef(GrContext* ctx, const GrTextureParams& params) const {
|
| - return Texture_GrTextureParamsAdjuster(this, fTexture).refTextureForParams(ctx, params);
|
| + return GpuImage_GrTextureAdjuster(this).refTextureSafeForParams(params, nullptr);
|
| }
|
|
|
| bool SkImage_Gpu::isOpaque() const {
|
|
|