diff options
author | Mike Klein <mtklein@chromium.org> | 2018-02-09 18:57:54 +0000 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-02-09 18:58:02 +0000 |
commit | 47cf048abecb5064b9e851ea01f75b23797c1611 (patch) | |
tree | 3d838684c3c54ac61560c57972bff55d834ee04e /src/shaders/SkImageShader.h | |
parent | 96c572500a18d6f1ad1c179fc36323df64e7e16c (diff) |
Revert "alternate approach to unpremul scalePixels()"
This reverts commit c4616804bb407506c6ac1046c7e25e2016911449.
Reason for revert: screwed up the guard I think
Original change's description:
> alternate approach to unpremul scalePixels()
>
> We want to keep the clamps in SkImageShader, and keep unpremul
> scalePixels() happy too.
>
> So we extend SkImageShader's internal API to allow specifying an output
> alpha type, which controls whether we premul or unpremul and how we
> clamp. scalePixels() uses this to draw instead of a drawBitmap() call.
>
> Sort of backwards of usual, we opt our local builds into
> SK_LEGACY_HIGH_QUALITY_SCALING_CLAMP (and Google3 is already defining
> this). Then to rebase Chromium we will _define_ this in Chromium's user
> config, fold it through as if always defined in Skia, then finally
> remove the definition from Chromium's user config.
>
> Change-Id: I38035f0886f79700e7301c3c6042ce362c771d96
> Reviewed-on: https://skia-review.googlesource.com/90480
> Reviewed-by: Brian Osman <brianosman@google.com>
> Commit-Queue: Mike Klein <mtklein@chromium.org>
TBR=mtklein@chromium.org,mtklein@google.com,brianosman@google.com,reed@google.com
Change-Id: Ib53a7f29c25310b667f9a61f67f8638403ec9da3
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/106220
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Diffstat (limited to 'src/shaders/SkImageShader.h')
-rw-r--r-- | src/shaders/SkImageShader.h | 30 |
1 files changed, 12 insertions, 18 deletions
diff --git a/src/shaders/SkImageShader.h b/src/shaders/SkImageShader.h index 9ce615508d..a3cf3dbe7f 100644 --- a/src/shaders/SkImageShader.h +++ b/src/shaders/SkImageShader.h @@ -15,11 +15,8 @@ class SkImageShader : public SkShaderBase { public: - static sk_sp<SkShader> Make(sk_sp<SkImage>, - SkShader::TileMode tx, - SkShader::TileMode ty, - const SkMatrix* localMatrix, - SkAlphaType outputAlphaType = kPremul_SkAlphaType); + static sk_sp<SkShader> Make(sk_sp<SkImage>, TileMode tx, TileMode ty, + const SkMatrix* localMatrix); bool isOpaque() const override; @@ -30,23 +27,19 @@ public: std::unique_ptr<GrFragmentProcessor> asFragmentProcessor(const GrFPArgs&) const override; #endif + SkImageShader(sk_sp<SkImage>, TileMode tx, TileMode ty, const SkMatrix* localMatrix); + static bool IsRasterPipelineOnly(const SkMatrix& ctm, SkColorType, SkAlphaType, SkShader::TileMode tx, SkShader::TileMode ty, const SkMatrix& localM); -private: - SkImageShader(sk_sp<SkImage>, - SkShader::TileMode tx, - SkShader::TileMode ty, - const SkMatrix* localMatrix, - SkAlphaType outputAlphaType); - +protected: void flatten(SkWriteBuffer&) const override; Context* onMakeContext(const ContextRec&, SkArenaAlloc* storage) const override; #ifdef SK_SUPPORT_LEGACY_SHADER_ISABITMAP - bool onIsABitmap(SkBitmap*, SkMatrix*, SkShader::TileMode*) const override; + bool onIsABitmap(SkBitmap*, SkMatrix*, TileMode*) const override; #endif - SkImage* onIsAImage(SkMatrix*, SkShader::TileMode*) const override; + SkImage* onIsAImage(SkMatrix*, TileMode*) const override; bool onIsRasterPipelineOnly(const SkMatrix& ctm) const override; @@ -57,12 +50,13 @@ private: &this->getLocalMatrix()); } - sk_sp<SkImage> fImage; - const SkShader::TileMode fTileModeX; - const SkShader::TileMode fTileModeY; - const SkAlphaType fOutputAlphaType; + sk_sp<SkImage> fImage; + const TileMode fTileModeX; + const TileMode fTileModeY; +private: friend class SkShaderBase; + typedef SkShaderBase INHERITED; }; |