aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/shaders/SkImageShader.h
diff options
context:
space:
mode:
authorGravatar Mike Klein <mtklein@chromium.org>2018-02-09 18:57:54 +0000
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-02-09 18:58:02 +0000
commit47cf048abecb5064b9e851ea01f75b23797c1611 (patch)
tree3d838684c3c54ac61560c57972bff55d834ee04e /src/shaders/SkImageShader.h
parent96c572500a18d6f1ad1c179fc36323df64e7e16c (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.h30
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;
};