From eae7524c59a030bec0fe365dd10c033a8de9d542 Mon Sep 17 00:00:00 2001 From: Robert Phillips Date: Fri, 17 Feb 2017 20:18:54 +0000 Subject: [PATCH] Revert "Expand use of GrMakeCachedBitmapProxy" This reverts commit 561d1f8153c591dac670148a574a7638f3fe8c2d. Reason for revert: ios-device-xcode-clang Original change's description: > Expand use of GrMakeCachedBitmapProxy > > Change-Id: Ic276b9d772763dc16ac6b15a0896578d2d02e06e > Reviewed-on: https://skia-review.googlesource.com/8666 > Reviewed-by: Brian Salomon > Commit-Queue: Robert Phillips > TBR=bsalomon@google.com,robertphillips@google.com,reviews@skia.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: I5349cfea983cb65c11b5c250e674a841b9691c40 Reviewed-on: https://skia-review.googlesource.com/8677 Reviewed-by: Robert Phillips Commit-Queue: Robert Phillips --- .../SkPerlinNoiseShader2/SkPerlinNoiseShader2.cpp | 40 +++++++++------------- src/core/SkSpecialImage.cpp | 4 ++- src/effects/SkPerlinNoiseShader.cpp | 39 +++++++++------------ src/effects/SkTableColorFilter.cpp | 18 +++------- 4 files changed, 41 insertions(+), 60 deletions(-) diff --git a/experimental/SkPerlinNoiseShader2/SkPerlinNoiseShader2.cpp b/experimental/SkPerlinNoiseShader2/SkPerlinNoiseShader2.cpp index 980593f..898f49b 100644 --- a/experimental/SkPerlinNoiseShader2/SkPerlinNoiseShader2.cpp +++ b/experimental/SkPerlinNoiseShader2/SkPerlinNoiseShader2.cpp @@ -20,7 +20,6 @@ #include "GrContext.h" #include "GrCoordTransform.h" #include "SkGr.h" -#include "SkGrPriv.h" #include "effects/GrConstColorProcessor.h" #include "glsl/GrGLSLFragmentProcessor.h" #include "glsl/GrGLSLFragmentShaderBuilder.h" @@ -622,16 +621,14 @@ private: class GrPerlinNoise2Effect : public GrFragmentProcessor { public: - static sk_sp Make(GrTextureProvider* textureProvider, - SkPerlinNoiseShader2::Type type, + static sk_sp Make(SkPerlinNoiseShader2::Type type, int numOctaves, bool stitchTiles, SkPerlinNoiseShader2::PaintingData* paintingData, - sk_sp permutationsProxy, - sk_sp noiseProxy, + GrTexture* permutationsTexture, GrTexture* noiseTexture, const SkMatrix& matrix) { return sk_sp( - new GrPerlinNoise2Effect(textureProvider, type, numOctaves, stitchTiles, paintingData, - std::move(permutationsProxy), std::move(noiseProxy), matrix)); + new GrPerlinNoise2Effect(type, numOctaves, stitchTiles, paintingData, + permutationsTexture, noiseTexture, matrix)); } virtual ~GrPerlinNoise2Effect() { delete fPaintingData; } @@ -665,18 +662,16 @@ private: fPaintingData->fStitchDataInit == s.fPaintingData->fStitchDataInit; } - GrPerlinNoise2Effect(GrTextureProvider* textureProvider, - SkPerlinNoiseShader2::Type type, int numOctaves, bool stitchTiles, + GrPerlinNoise2Effect(SkPerlinNoiseShader2::Type type, int numOctaves, bool stitchTiles, SkPerlinNoiseShader2::PaintingData* paintingData, - sk_sp permutationsProxy, - sk_sp noiseProxy, + GrTexture* permutationsTexture, GrTexture* noiseTexture, const SkMatrix& matrix) : INHERITED(kNone_OptimizationFlags) , fType(type) , fNumOctaves(numOctaves) , fStitchTiles(stitchTiles) - , fPermutationsSampler(textureProvider, std::move(permutationsProxy)) - , fNoiseSampler(textureProvider, std::move(noiseProxy)) + , fPermutationsSampler(permutationsTexture) + , fNoiseSampler(noiseTexture) , fPaintingData(paintingData) { this->initClassID(); this->addTextureSampler(&fPermutationsSampler); @@ -1339,21 +1334,20 @@ sk_sp SkPerlinNoiseShader2::asFragmentProcessor(const AsFPA GrConstColorProcessor::kIgnore_InputMode); } - sk_sp permutationsProxy = GrMakeCachedBitmapProxy( - args.fContext, - paintingData->getPermutationsBitmap()); - sk_sp noiseProxy = GrMakeCachedBitmapProxy(args.fContext, - paintingData->getNoiseBitmap()); + sk_sp permutationsTexture( + GrRefCachedBitmapTexture(args.fContext, paintingData->getPermutationsBitmap(), + GrSamplerParams::ClampNoFilter(), nullptr)); + sk_sp noiseTexture( + GrRefCachedBitmapTexture(args.fContext, paintingData->getNoiseBitmap(), + GrSamplerParams::ClampNoFilter(), nullptr)); - if (permutationsProxy && noiseProxy) { + if ((permutationsTexture) && (noiseTexture)) { sk_sp inner( - GrPerlinNoise2Effect::Make(args.fContext->textureProvider(), - fType, + GrPerlinNoise2Effect::Make(fType, fNumOctaves, fStitchTiles, paintingData, - std::move(permutationsProxy), - std::move(noiseProxy), + permutationsTexture.get(), noiseTexture.get(), m)); return GrFragmentProcessor::MulOutputByInputAlpha(std::move(inner)); } diff --git a/src/core/SkSpecialImage.cpp b/src/core/SkSpecialImage.cpp index 0ae84d3..cef87b7 100644 --- a/src/core/SkSpecialImage.cpp +++ b/src/core/SkSpecialImage.cpp @@ -261,7 +261,9 @@ public: sk_sp onAsTextureProxy(GrContext* context) const override { if (context) { - return GrMakeCachedBitmapProxy(context, fBitmap); + sk_sp tex(sk_ref_sp(GrRefCachedBitmapTexture( + context, fBitmap, GrSamplerParams::ClampNoFilter(), nullptr))); + return GrSurfaceProxy::MakeWrapped(std::move(tex)); } return nullptr; diff --git a/src/effects/SkPerlinNoiseShader.cpp b/src/effects/SkPerlinNoiseShader.cpp index 5f8fe32..b67fb34 100644 --- a/src/effects/SkPerlinNoiseShader.cpp +++ b/src/effects/SkPerlinNoiseShader.cpp @@ -19,7 +19,6 @@ #include "GrContext.h" #include "GrCoordTransform.h" #include "SkGr.h" -#include "SkGrPriv.h" #include "effects/GrConstColorProcessor.h" #include "glsl/GrGLSLFragmentProcessor.h" #include "glsl/GrGLSLFragmentShaderBuilder.h" @@ -486,16 +485,14 @@ private: class GrPerlinNoiseEffect : public GrFragmentProcessor { public: - static sk_sp Make(GrTextureProvider* textureProvider, - SkPerlinNoiseShader::Type type, + static sk_sp Make(SkPerlinNoiseShader::Type type, int numOctaves, bool stitchTiles, SkPerlinNoiseShader::PaintingData* paintingData, - sk_sp permutationsProxy, - sk_sp noiseProxy, + GrTexture* permutationsTexture, GrTexture* noiseTexture, const SkMatrix& matrix) { return sk_sp( - new GrPerlinNoiseEffect(textureProvider, type, numOctaves, stitchTiles, paintingData, - std::move(permutationsProxy), std::move(noiseProxy), matrix)); + new GrPerlinNoiseEffect(type, numOctaves, stitchTiles, paintingData, + permutationsTexture, noiseTexture, matrix)); } virtual ~GrPerlinNoiseEffect() { delete fPaintingData; } @@ -528,18 +525,17 @@ private: fPaintingData->fStitchDataInit == s.fPaintingData->fStitchDataInit; } - GrPerlinNoiseEffect(GrTextureProvider* textureProvider, - SkPerlinNoiseShader::Type type, int numOctaves, bool stitchTiles, + GrPerlinNoiseEffect(SkPerlinNoiseShader::Type type, int numOctaves, bool stitchTiles, SkPerlinNoiseShader::PaintingData* paintingData, - sk_sp permutationsProxy, sk_sp noiseProxy, + GrTexture* permutationsTexture, GrTexture* noiseTexture, const SkMatrix& matrix) : INHERITED(kNone_OptimizationFlags) , fType(type) , fCoordTransform(matrix) , fNumOctaves(numOctaves) , fStitchTiles(stitchTiles) - , fPermutationsSampler(textureProvider, std::move(permutationsProxy)) - , fNoiseSampler(textureProvider, std::move(noiseProxy)) + , fPermutationsSampler(permutationsTexture) + , fNoiseSampler(noiseTexture) , fPaintingData(paintingData) { this->initClassID(); this->addTextureSampler(&fPermutationsSampler); @@ -915,24 +911,23 @@ sk_sp SkPerlinNoiseShader::asFragmentProcessor(const AsFPAr SkPerlinNoiseShader::PaintingData* paintingData = new PaintingData(fTileSize, fSeed, fBaseFrequencyX, fBaseFrequencyY, matrix); - sk_sp permutationsProxy(GrMakeCachedBitmapProxy( - args.fContext, - paintingData->getPermutationsBitmap())); - sk_sp noiseProxy(GrMakeCachedBitmapProxy(args.fContext, - paintingData->getNoiseBitmap())); + sk_sp permutationsTexture( + GrRefCachedBitmapTexture(args.fContext, paintingData->getPermutationsBitmap(), + GrSamplerParams::ClampNoFilter(), nullptr)); + sk_sp noiseTexture( + GrRefCachedBitmapTexture(args.fContext, paintingData->getNoiseBitmap(), + GrSamplerParams::ClampNoFilter(), nullptr)); SkMatrix m = *args.fViewMatrix; m.setTranslateX(-localMatrix.getTranslateX() + SK_Scalar1); m.setTranslateY(-localMatrix.getTranslateY() + SK_Scalar1); - if (permutationsProxy && noiseProxy) { + if ((permutationsTexture) && (noiseTexture)) { sk_sp inner( - GrPerlinNoiseEffect::Make(args.fContext->textureProvider(), - fType, + GrPerlinNoiseEffect::Make(fType, fNumOctaves, fStitchTiles, paintingData, - std::move(permutationsProxy), - std::move(noiseProxy), + permutationsTexture.get(), noiseTexture.get(), m)); return GrFragmentProcessor::MulOutputByInputAlpha(std::move(inner)); } diff --git a/src/effects/SkTableColorFilter.cpp b/src/effects/SkTableColorFilter.cpp index 8e660f8..8960449 100644 --- a/src/effects/SkTableColorFilter.cpp +++ b/src/effects/SkTableColorFilter.cpp @@ -10,7 +10,6 @@ #include "SkArenaAlloc.h" #include "SkBitmap.h" #include "SkColorPriv.h" -#include "SkGrPriv.h" #include "SkRasterPipeline.h" #include "SkReadBuffer.h" #include "SkString.h" @@ -371,9 +370,7 @@ sk_sp SkTable_ColorFilter::makeComposed(sk_sp inne class ColorTableEffect : public GrFragmentProcessor { public: - static sk_sp Make(GrContext* context, - const SkBitmap& bitmap, - unsigned flags); + static sk_sp Make(GrContext* context, SkBitmap bitmap, unsigned flags); virtual ~ColorTableEffect(); @@ -483,7 +480,7 @@ void GLColorTableEffect::emitCode(EmitArgs& args) { } /////////////////////////////////////////////////////////////////////////////// -sk_sp ColorTableEffect::Make(GrContext* context, const SkBitmap& bitmap, +sk_sp ColorTableEffect::Make(GrContext* context, SkBitmap bitmap, unsigned flags) { GrTextureStripAtlas::Desc desc; @@ -497,19 +494,12 @@ sk_sp ColorTableEffect::Make(GrContext* context, const SkBi sk_sp texture; if (-1 == row) { atlas = nullptr; - - sk_sp proxy = GrMakeCachedBitmapProxy(context, bitmap); - if (proxy) { - texture.reset(proxy->instantiate(context->textureProvider())); - } + texture.reset( + GrRefCachedBitmapTexture(context, bitmap, GrSamplerParams::ClampNoFilter(), nullptr)); } else { texture.reset(SkRef(atlas->getTexture())); } - if (!texture) { - return nullptr; - } - return sk_sp(new ColorTableEffect(texture.get(), atlas, row, flags)); } -- 2.7.4