From 2b2fc7db4f8a4a4d4a51d7eb4df6aa62e309928d Mon Sep 17 00:00:00 2001 From: Mike Reed Date: Wed, 5 Oct 2016 14:03:43 -0400 Subject: Revert[6] "replace SkXfermode obj with SkBlendMode enum in paints" - perform version check in CreateProc for XfermodeImageFilter and ArithmeticImageFilter This reverts commit 3ed485f4249e17abb4b11f5018d03175fd1afb44. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2992 Change-Id: Ib4a154cdd5f5d1dcac921ef50d53b79a2d6a1be8 Reviewed-on: https://skia-review.googlesource.com/2992 Reviewed-by: Mike Reed Commit-Queue: Mike Reed --- include/core/SkPaint.h | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'include/core/SkPaint.h') diff --git a/include/core/SkPaint.h b/include/core/SkPaint.h index e28d2fc92d..ddc90ae19c 100644 --- a/include/core/SkPaint.h +++ b/include/core/SkPaint.h @@ -8,11 +8,14 @@ #ifndef SkPaint_DEFINED #define SkPaint_DEFINED +#include "SkBlendMode.h" #include "SkColor.h" #include "SkFilterQuality.h" #include "SkMatrix.h" #include "SkXfermode.h" +//#define SK_SUPPORT_LEGACY_XFERMODE_OBJECT + class SkAutoDescriptor; class SkAutoGlyphCache; class SkColorFilter; @@ -525,12 +528,13 @@ public: #endif void setColorFilter(sk_sp); +#ifdef SK_SUPPORT_LEGACY_XFERMODE_OBJECT /** Get the paint's xfermode object.

The xfermode's reference count is not affected. @return the paint's xfermode (or NULL) */ - SkXfermode* getXfermode() const { return fXfermode.get(); } + SkXfermode* getXfermode() const; /** Set or clear the xfermode object.

@@ -552,6 +556,11 @@ public: the paint's xfermode is set to null. */ SkXfermode* setXfermodeMode(SkXfermode::Mode); +#endif + + SkBlendMode getBlendMode() const { return (SkBlendMode)fBlendMode; } + bool isSrcOver() const { return (SkBlendMode)fBlendMode == SkBlendMode::kSrcOver; } + void setBlendMode(SkBlendMode mode) { fBlendMode = (unsigned)mode; } /** Get the paint's patheffect object.

@@ -1090,7 +1099,6 @@ private: sk_sp fTypeface; sk_sp fPathEffect; sk_sp fShader; - sk_sp fXfermode; sk_sp fMaskFilter; sk_sp fColorFilter; sk_sp fRasterizer; @@ -1103,6 +1111,7 @@ private: SkColor fColor; SkScalar fWidth; SkScalar fMiterLimit; + uint32_t fBlendMode; // just need 5-6 bits for SkXfermode::Mode union { struct { // all of these bitfields should add up to 32 -- cgit v1.2.3