From: caryclark Date: Wed, 21 Oct 2015 18:39:06 +0000 (-0700) Subject: Revert of Remove SkDEPRECATED_InstallDiscardablePixelRef from SkPictureShader (patchs... X-Git-Tag: accepted/tizen/5.0/unified/20181102.025319~493 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b4a20767ee129ba47cee42e61252a9faec09c3a6;p=platform%2Fupstream%2FlibSkiaSharp.git Revert of Remove SkDEPRECATED_InstallDiscardablePixelRef from SkPictureShader (patchset #3 id:40001 of https://codereview.chromium.org/1405103003/ ) Reason for revert: Test to see if patch fixes Nexus 6. Original issue's description: > Remove SkDEPRECATED_InstallDiscardablePixelRef from SkPictureShader > > Use an SkImage generator/shader instead. > > R=reed@google.com > > Committed: https://skia.googlesource.com/skia/+/fa694ad067976a5b713eec0b6f92ba5efeb0aa9d TBR=reed@google.com,fmalita@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1407043008 --- diff --git a/src/core/SkPictureShader.cpp b/src/core/SkPictureShader.cpp index ab59932..92e6157 100644 --- a/src/core/SkPictureShader.cpp +++ b/src/core/SkPictureShader.cpp @@ -10,7 +10,6 @@ #include "SkBitmap.h" #include "SkBitmapProcShader.h" #include "SkCanvas.h" -#include "SkImage.h" #include "SkImageGenerator.h" #include "SkMatrixUtils.h" #include "SkPicture.h" @@ -218,28 +217,18 @@ SkShader* SkPictureShader::refBitmapShader(const SkMatrix& viewMatrix, const SkM if (!SkResourceCache::Find(key, BitmapShaderRec::Visitor, &tileShader)) { SkMatrix tileMatrix; tileMatrix.setRectToRect(fTile, SkRect::MakeIWH(tileSize.width(), tileSize.height()), - SkMatrix::kFill_ScaleToFit); - - SkAutoTDelete tileGenerator( - SkImageGenerator::NewFromPicture(tileSize, fPicture, &tileMatrix, nullptr)); - if (!tileGenerator) { - return nullptr; - } - - // Grab this before the generator goes poof! - const SkImageInfo tileInfo = tileGenerator->getInfo(); - - SkAutoTUnref tileImage(SkImage::NewFromGenerator(tileGenerator.detach())); - if (!tileImage) { + SkMatrix::kFill_ScaleToFit); + SkBitmap bm; + if (!SkDEPRECATED_InstallDiscardablePixelRef( + SkImageGenerator::NewFromPicture(tileSize, fPicture, &tileMatrix, nullptr), &bm)) { return nullptr; } SkMatrix shaderMatrix = this->getLocalMatrix(); shaderMatrix.preScale(1 / tileScale.width(), 1 / tileScale.height()); - tileShader.reset(tileImage->newShader(fTmx, fTmy, &shaderMatrix)); + tileShader.reset(CreateBitmapShader(bm, fTmx, fTmy, &shaderMatrix)); - SkResourceCache::Add(new BitmapShaderRec(key, tileShader.get(), - tileInfo.getSafeSize(tileInfo.minRowBytes()))); + SkResourceCache::Add(new BitmapShaderRec(key, tileShader.get(), bm.getSize())); } return tileShader.detach();