aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Mike Reed <reed@google.com>2016-11-23 22:16:59 +0000
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2016-11-23 22:17:17 +0000
commit0e39f97cd7af16e57c7257770af8340750c9b3b0 (patch)
tree05fe33fe5d965a3a2d655b03f26c6f85322326c2
parente68872b030fdc376ebb1ab0f5757eddf85125982 (diff)
Revert "Revert "make it illegal to include SkXfermode.h""
This reverts commit e9d1b299ccbf8017ba57040986ded638f954684a. Reason for revert: <INSERT REASONING HERE> Original change's description: > Revert "make it illegal to include SkXfermode.h" > > This reverts commit 07764cefbb18041a77897df3453903b0a2016583. > > Reason for revert: breaking google3 > > Original change's description: > > make it illegal to include SkXfermode.h > > > > BUG=skia: > > > > GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=5133 > > > > Change-Id: I6e8596dcb17cd7e8efa67859bb682bf9bfcac4db > > Reviewed-on: https://skia-review.googlesource.com/5133 > > Reviewed-by: Mike Reed <reed@google.com> > > Commit-Queue: Mike Reed <reed@google.com> > > > > TBR=reed@google.com,reviews@skia.org > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > > Change-Id: I136f9e533eb60633c49dffa19b5747d50b6d98a8 > Reviewed-on: https://skia-review.googlesource.com/5196 > Commit-Queue: Greg Daniel <egdaniel@google.com> > Reviewed-by: Greg Daniel <egdaniel@google.com> > TBR=egdaniel@google.com,reviews@skia.org,reed@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: I0b767ce778a4ade83c2f07d5ece486bb46d7712c Reviewed-on: https://skia-review.googlesource.com/5223 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Mike Reed <reed@google.com>
-rw-r--r--bench/BlurRoundRectBench.cpp1
-rw-r--r--gm/aaxfermodes.cpp1
-rw-r--r--gm/blurroundrect.cpp1
-rw-r--r--gm/colortypexfermode.cpp1
-rw-r--r--gm/composeshader.cpp1
-rw-r--r--gm/dstreadshuffle.cpp1
-rw-r--r--gm/texteffects.cpp2
-rw-r--r--gm/xfermodes.cpp1
-rw-r--r--include/core/SkXfermode.h298
-rw-r--r--include/effects/SkArithmeticMode.h6
-rw-r--r--samplecode/ClockFaceView.cpp5
-rw-r--r--samplecode/SampleAll.cpp1
-rw-r--r--samplecode/SampleAnimatedText.cpp1
-rw-r--r--samplecode/SampleBitmapRect.cpp1
-rw-r--r--samplecode/SampleConcavePaths.cpp1
-rw-r--r--samplecode/SampleEmboss.cpp1
-rw-r--r--samplecode/SampleFilter2.cpp1
-rw-r--r--samplecode/SampleFuzz.cpp1
-rw-r--r--samplecode/SampleHairline.cpp2
-rw-r--r--samplecode/SampleLayers.cpp1
-rw-r--r--samplecode/SampleLines.cpp2
-rw-r--r--samplecode/SamplePatch.cpp1
-rw-r--r--samplecode/SamplePath.cpp1
-rw-r--r--samplecode/SamplePathClip.cpp1
-rw-r--r--samplecode/SamplePdfFileViewer.cpp2
-rw-r--r--samplecode/SamplePictFile.cpp2
-rw-r--r--samplecode/SamplePoints.cpp2
-rw-r--r--samplecode/SampleShaders.cpp1
-rw-r--r--samplecode/SampleText.cpp2
-rw-r--r--samplecode/SampleTextAlpha.cpp1
-rw-r--r--samplecode/SampleTextBox.cpp1
-rw-r--r--samplecode/SampleVertices.cpp1
-rw-r--r--samplecode/SampleXfermodesBlur.cpp1
-rw-r--r--src/animator/SkDrawPaint.h1
-rw-r--r--src/animator/SkPaintPart.h1
-rw-r--r--src/core/SkBitmapDevice.cpp1
-rw-r--r--src/core/SkBlitter.cpp1
-rw-r--r--src/core/SkComposeShader.cpp1
-rw-r--r--src/core/SkDraw.cpp1
-rw-r--r--src/core/SkGlobalInitialization_core.cpp1
-rw-r--r--src/core/SkGraphics.cpp1
-rw-r--r--src/core/SkModeColorFilter.h1
-rw-r--r--src/core/SkPaint.cpp1
-rw-r--r--src/core/SkPictureFlat.cpp1
-rw-r--r--src/core/SkPixmap.cpp1
-rw-r--r--src/core/SkRasterPipelineBlitter.cpp1
-rw-r--r--src/core/SkRecordOpts.cpp1
-rw-r--r--src/core/SkXfermode.cpp1
-rw-r--r--src/core/SkXfermodePriv.h6
-rw-r--r--src/core/SkXfermode_proccoeff.h1
-rw-r--r--src/effects/SkArithmeticModePriv.h3
-rw-r--r--src/effects/SkLayerRasterizer.cpp1
-rw-r--r--src/effects/SkXfermodeImageFilter.cpp1
-rw-r--r--src/effects/gradients/Sk4fLinearGradient.cpp1
-rw-r--r--src/gpu/GrRenderTargetOpList.h1
-rw-r--r--src/gpu/SkGpuDevice.cpp1
-rw-r--r--src/gpu/effects/GrCustomXfermode.cpp1
-rw-r--r--src/gpu/gl/GrGLProgram.cpp1
-rw-r--r--src/gpu/gl/GrGLProgram.h1
-rw-r--r--src/gpu/glsl/GrGLSLBlend.h2
-rw-r--r--src/utils/SkDumpCanvas.cpp1
-rw-r--r--src/utils/SkPatchGrid.h1
-rw-r--r--tests/BlendTest.cpp1
-rw-r--r--tests/ColorFilterTest.cpp1
-rw-r--r--tests/GrGetCoeffBlendKnownComponentsTest.cpp1
-rw-r--r--tests/GrPorterDuffTest.cpp1
-rw-r--r--tests/LayerDrawLooperTest.cpp1
-rw-r--r--tests/PaintTest.cpp1
-rw-r--r--tests/RecordOptsTest.cpp1
-rw-r--r--tests/SrcOverTest.cpp1
70 files changed, 6 insertions, 385 deletions
diff --git a/bench/BlurRoundRectBench.cpp b/bench/BlurRoundRectBench.cpp
index 6aaa11f9d4..6ebc641fd9 100644
--- a/bench/BlurRoundRectBench.cpp
+++ b/bench/BlurRoundRectBench.cpp
@@ -17,7 +17,6 @@
#include "SkRRect.h"
#include "SkRect.h"
#include "SkString.h"
-#include "SkXfermode.h"
// Large blurred RR appear frequently on web pages. This benchmark measures our
// performance in this case.
diff --git a/gm/aaxfermodes.cpp b/gm/aaxfermodes.cpp
index df09a0bc9d..dcb9cb7e1b 100644
--- a/gm/aaxfermodes.cpp
+++ b/gm/aaxfermodes.cpp
@@ -6,7 +6,6 @@
*/
#include "gm.h"
-#include "SkArithmeticMode.h"
#include "SkBlendModePriv.h"
#include "SkPath.h"
#include "SkShader.h"
diff --git a/gm/blurroundrect.cpp b/gm/blurroundrect.cpp
index 80bf6cce8a..608649ecfc 100644
--- a/gm/blurroundrect.cpp
+++ b/gm/blurroundrect.cpp
@@ -17,7 +17,6 @@
#include "SkRect.h"
#include "SkRRect.h"
#include "SkString.h"
-#include "SkXfermode.h"
// This GM mimics a blurred RR seen in the wild.
class BlurRoundRectGM : public skiagm::GM {
diff --git a/gm/colortypexfermode.cpp b/gm/colortypexfermode.cpp
index 9b715ef78c..9541e08258 100644
--- a/gm/colortypexfermode.cpp
+++ b/gm/colortypexfermode.cpp
@@ -8,7 +8,6 @@
#include "SkBitmap.h"
#include "SkGradientShader.h"
#include "SkShader.h"
-#include "SkXfermode.h"
#include "../src/fonts/SkGScalerContext.h"
namespace skiagm {
diff --git a/gm/composeshader.cpp b/gm/composeshader.cpp
index 785f2bf4a5..7a8540bc33 100644
--- a/gm/composeshader.cpp
+++ b/gm/composeshader.cpp
@@ -12,7 +12,6 @@
#include "SkGraphics.h"
#include "SkShader.h"
#include "SkString.h"
-#include "SkXfermode.h"
static sk_sp<SkShader> make_shader(SkBlendMode mode) {
SkPoint pts[2];
diff --git a/gm/dstreadshuffle.cpp b/gm/dstreadshuffle.cpp
index 2c3cbc87f9..b038fdb1f7 100644
--- a/gm/dstreadshuffle.cpp
+++ b/gm/dstreadshuffle.cpp
@@ -9,7 +9,6 @@
#include "SkPath.h"
#include "SkRandom.h"
#include "SkShader.h"
-#include "SkXfermode.h"
namespace skiagm {
diff --git a/gm/texteffects.cpp b/gm/texteffects.cpp
index 453a555a6f..c4c389a065 100644
--- a/gm/texteffects.cpp
+++ b/gm/texteffects.cpp
@@ -150,8 +150,6 @@ constexpr raster_proc gRastProcs[] = {
r0, r1, r2, r3, r4, r5, r6, r7, r8, r9
};
-#include "SkXfermode.h"
-
static void apply_shader(SkPaint* paint, int index) {
raster_proc proc = gRastProcs[index];
if (proc) {
diff --git a/gm/xfermodes.cpp b/gm/xfermodes.cpp
index 604a767a4f..fb318dd529 100644
--- a/gm/xfermodes.cpp
+++ b/gm/xfermodes.cpp
@@ -8,7 +8,6 @@
#include "gm.h"
#include "SkBitmap.h"
#include "SkShader.h"
-#include "SkXfermode.h"
#include "SkPM4f.h"
enum SrcType {
diff --git a/include/core/SkXfermode.h b/include/core/SkXfermode.h
index 59f205848a..199dff28f1 100644
--- a/include/core/SkXfermode.h
+++ b/include/core/SkXfermode.h
@@ -8,302 +8,6 @@
#ifndef SkXfermode_DEFINED
#define SkXfermode_DEFINED
-#include "SkBlendMode.h"
-#include "SkColor.h"
-#include "SkFlattenable.h"
-
-#ifdef SK_SUPPORT_LEGACY_XFERMODE_IS_PUBLIC
-
-class GrFragmentProcessor;
-class GrTexture;
-class GrXPFactory;
-class SkRasterPipeline;
-class SkString;
-
-struct SkArithmeticParams;
-
-struct SkPM4f;
-typedef SkPM4f (*SkXfermodeProc4f)(const SkPM4f& src, const SkPM4f& dst);
-
-/** \class SkXfermode
- *
- * SkXfermode is the base class for objects that are called to implement custom
- * "transfer-modes" in the drawing pipeline. The static function Create(Modes)
- * can be called to return an instance of any of the predefined subclasses as
- * specified in the Modes enum. When an SkXfermode is assigned to an SkPaint,
- * then objects drawn with that paint have the xfermode applied.
- *
- * All subclasses are required to be reentrant-safe : it must be legal to share
- * the same instance between several threads.
- */
-class SK_API SkXfermode : public SkFlattenable {
-public:
- virtual void xfer32(SkPMColor dst[], const SkPMColor src[], int count,
- const SkAlpha aa[]) const;
- virtual void xfer16(uint16_t dst[], const SkPMColor src[], int count,
- const SkAlpha aa[]) const;
- virtual void xferA8(SkAlpha dst[], const SkPMColor src[], int count,
- const SkAlpha aa[]) const;
-
- /** Enum of possible coefficients to describe some xfermodes
- */
- enum Coeff {
- kZero_Coeff, /** 0 */
- kOne_Coeff, /** 1 */
- kSC_Coeff, /** src color */
- kISC_Coeff, /** inverse src color (i.e. 1 - sc) */
- kDC_Coeff, /** dst color */
- kIDC_Coeff, /** inverse dst color (i.e. 1 - dc) */
- kSA_Coeff, /** src alpha */
- kISA_Coeff, /** inverse src alpha (i.e. 1 - sa) */
- kDA_Coeff, /** dst alpha */
- kIDA_Coeff, /** inverse dst alpha (i.e. 1 - da) */
-
- kCoeffCount
- };
-
- /** List of predefined xfermodes.
- The algebra for the modes uses the following symbols:
- Sa, Sc - source alpha and color
- Da, Dc - destination alpha and color (before compositing)
- [a, c] - Resulting (alpha, color) values
- For these equations, the colors are in premultiplied state.
- If no xfermode is specified, kSrcOver is assumed.
- The modes are ordered by those that can be expressed as a pair of Coeffs, followed by those
- that aren't Coeffs but have separable r,g,b computations, and finally
- those that are not separable.
- */
- enum Mode {
- kClear_Mode, //!< [0, 0]
- kSrc_Mode, //!< [Sa, Sc]
- kDst_Mode, //!< [Da, Dc]
- kSrcOver_Mode, //!< [Sa + Da * (1 - Sa), Sc + Dc * (1 - Sa)]
- kDstOver_Mode, //!< [Da + Sa * (1 - Da), Dc + Sc * (1 - Da)]
- kSrcIn_Mode, //!< [Sa * Da, Sc * Da]
- kDstIn_Mode, //!< [Da * Sa, Dc * Sa]
- kSrcOut_Mode, //!< [Sa * (1 - Da), Sc * (1 - Da)]
- kDstOut_Mode, //!< [Da * (1 - Sa), Dc * (1 - Sa)]
- kSrcATop_Mode, //!< [Da, Sc * Da + Dc * (1 - Sa)]
- kDstATop_Mode, //!< [Sa, Dc * Sa + Sc * (1 - Da)]
- kXor_Mode, //!< [Sa + Da - 2 * Sa * Da, Sc * (1 - Da) + Dc * (1 - Sa)]
- kPlus_Mode, //!< [Sa + Da, Sc + Dc]
- kModulate_Mode, // multiplies all components (= alpha and color)
-
- // Following blend modes are defined in the CSS Compositing standard:
- // https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#blending
- kScreen_Mode,
- kLastCoeffMode = kScreen_Mode,
-
- kOverlay_Mode,
- kDarken_Mode,
- kLighten_Mode,
- kColorDodge_Mode,
- kColorBurn_Mode,
- kHardLight_Mode,
- kSoftLight_Mode,
- kDifference_Mode,
- kExclusion_Mode,
- kMultiply_Mode,
- kLastSeparableMode = kMultiply_Mode,
-
- kHue_Mode,
- kSaturation_Mode,
- kColor_Mode,
- kLuminosity_Mode,
- kLastMode = kLuminosity_Mode
- };
-
- /**
- * Gets the name of the Mode as a string.
- */
- static const char* ModeName(Mode);
- static const char* ModeName(SkBlendMode mode) {
- return ModeName(Mode(mode));
- }
-
- /**
- * If the xfermode is one of the modes in the Mode enum, then asMode()
- * returns true and sets (if not null) mode accordingly. Otherwise it
- * returns false and ignores the mode parameter.
- */
- virtual bool asMode(Mode* mode) const;
-
- /**
- * The same as calling xfermode->asMode(mode), except that this also checks
- * if the xfermode is NULL, and if so, treats it as kSrcOver_Mode.
- */
- static bool AsMode(const SkXfermode*, Mode* mode);
- static bool AsMode(const sk_sp<SkXfermode>& xfer, Mode* mode) {
- return AsMode(xfer.get(), mode);
- }
-
- /**
- * Returns true if the xfermode claims to be the specified Mode. This works
- * correctly even if the xfermode is NULL (which equates to kSrcOver.) Thus
- * you can say this without checking for a null...
- *
- * If (SkXfermode::IsMode(paint.getXfermode(),
- * SkXfermode::kDstOver_Mode)) {
- * ...
- * }
- */
- static bool IsMode(const SkXfermode* xfer, Mode mode);
- static bool IsMode(const sk_sp<SkXfermode>& xfer, Mode mode) {
- return IsMode(xfer.get(), mode);
- }
-
- /** Return an SkXfermode object for the specified mode.
- */
- static sk_sp<SkXfermode> Make(SkBlendMode);
- static sk_sp<SkXfermode> Make(Mode m) { return Make((SkBlendMode)m); }
-
- /**
- * Skia maintains global xfermode objects corresponding to each BlendMode. This returns a
- * ptr to that global xfermode (or null if the mode is srcover). Thus the caller may use
- * the returned ptr, but it should leave its refcnt untouched.
- */
- static SkXfermode* Peek(SkBlendMode mode) {
- sk_sp<SkXfermode> xfer = Make(mode);
- if (!xfer) {
- SkASSERT(SkBlendMode::kSrcOver == mode);
- return nullptr;
- }
- SkASSERT(!xfer->unique());
- return xfer.get();
- }
-
- SkBlendMode blend() const {
- Mode mode;
- SkAssertResult(this->asMode(&mode));
- return (SkBlendMode)mode;
- }
-
- static SkXfermodeProc GetProc(SkBlendMode);
- static SkXfermodeProc4f GetProc4f(SkBlendMode);
-
- /**
- * If the specified mode can be represented by a pair of Coeff, then return
- * true and set (if not NULL) the corresponding coeffs. If the mode is
- * not representable as a pair of Coeffs, return false and ignore the
- * src and dst parameters.
- */
- static bool ModeAsCoeff(Mode mode, Coeff* src, Coeff* dst);
- static bool ModeAsCoeff(SkBlendMode mode, Coeff* src, Coeff* dst) {
- return ModeAsCoeff((Mode)mode, src, dst);
- }
-
- /**
- * Returns whether or not the xfer mode can support treating coverage as alpha
- */
- virtual bool supportsCoverageAsAlpha() const;
-
- /**
- * The same as calling xfermode->supportsCoverageAsAlpha(), except that this also checks if
- * the xfermode is NULL, and if so, treats it as kSrcOver_Mode.
- */
- static bool SupportsCoverageAsAlpha(const SkXfermode* xfer);
- static bool SupportsCoverageAsAlpha(const sk_sp<SkXfermode>& xfer) {
- return SupportsCoverageAsAlpha(xfer.get());
- }
-
- enum SrcColorOpacity {
- // The src color is known to be opaque (alpha == 255)
- kOpaque_SrcColorOpacity = 0,
- // The src color is known to be fully transparent (color == 0)
- kTransparentBlack_SrcColorOpacity = 1,
- // The src alpha is known to be fully transparent (alpha == 0)
- kTransparentAlpha_SrcColorOpacity = 2,
- // The src color opacity is unknown
- kUnknown_SrcColorOpacity = 3
- };
-
- /**
- * Returns whether or not the result of the draw with the xfer mode will be opaque or not. The
- * input to this call is an enum describing known information about the opacity of the src color
- * that will be given to the xfer mode.
- */
- virtual bool isOpaque(SrcColorOpacity opacityType) const;
-
- /**
- * The same as calling xfermode->isOpaque(...), except that this also checks if
- * the xfermode is NULL, and if so, treats it as kSrcOver_Mode.
- */
- static bool IsOpaque(const SkXfermode* xfer, SrcColorOpacity opacityType);
- static bool IsOpaque(const sk_sp<SkXfermode>& xfer, SrcColorOpacity opacityType) {
- return IsOpaque(xfer.get(), opacityType);
- }
- static bool IsOpaque(SkBlendMode, SrcColorOpacity);
-
-#if SK_SUPPORT_GPU
- /** Used by the SkXfermodeImageFilter to blend two colors via a GrFragmentProcessor.
- The input to the returned FP is the src color. The dst color is
- provided by the dst param which becomes a child FP of the returned FP.
- It is legal for the function to return a null output. This indicates that
- the output of the blend is simply the src color.
- */
- virtual sk_sp<GrFragmentProcessor> makeFragmentProcessorForImageFilter(
- sk_sp<GrFragmentProcessor> dst) const;
-
- /** A subclass must implement this factory function to work with the GPU backend.
- The xfermode will return a factory for which the caller will get a ref. It is up
- to the caller to install it. XferProcessors cannot use a background texture.
- */
- virtual sk_sp<GrXPFactory> asXPFactory() const;
-#endif
-
- SK_TO_STRING_PUREVIRT()
- SK_DECLARE_FLATTENABLE_REGISTRAR_GROUP()
- SK_DEFINE_FLATTENABLE_TYPE(SkXfermode)
-
- enum D32Flags {
- kSrcIsOpaque_D32Flag = 1 << 0,
- kSrcIsSingle_D32Flag = 1 << 1,
- kDstIsSRGB_D32Flag = 1 << 2,
- };
- typedef void (*D32Proc)(SkBlendMode, uint32_t dst[], const SkPM4f src[],
- int count, const SkAlpha coverage[]);
- static D32Proc GetD32Proc(SkBlendMode, uint32_t flags);
-
- enum F16Flags {
- kSrcIsOpaque_F16Flag = 1 << 0,
- kSrcIsSingle_F16Flag = 1 << 1,
- };
- typedef void (*F16Proc)(SkBlendMode, uint64_t dst[], const SkPM4f src[], int count,
- const SkAlpha coverage[]);
- static F16Proc GetF16Proc(SkBlendMode, uint32_t flags);
-
- enum LCDFlags {
- kSrcIsOpaque_LCDFlag = 1 << 0, // else src(s) may have alpha < 1
- kSrcIsSingle_LCDFlag = 1 << 1, // else src[count]
- kDstIsSRGB_LCDFlag = 1 << 2, // else l32 or f16
- };
- typedef void (*LCD32Proc)(uint32_t* dst, const SkPM4f* src, int count, const uint16_t lcd[]);
- typedef void (*LCDF16Proc)(uint64_t* dst, const SkPM4f* src, int count, const uint16_t lcd[]);
- static LCD32Proc GetLCD32Proc(uint32_t flags);
- static LCDF16Proc GetLCDF16Proc(uint32_t) { return nullptr; }
-
- virtual bool isArithmetic(SkArithmeticParams*) const { return false; }
-
-protected:
- SkXfermode() {}
- /** The default implementation of xfer32/xfer16/xferA8 in turn call this
- method, 1 color at a time (upscaled to a SkPMColor). The default
- implementation of this method just returns dst. If performance is
- important, your subclass should override xfer32/xfer16/xferA8 directly.
-
- This method will not be called directly by the client, so it need not
- be implemented if your subclass has overridden xfer32/xfer16/xferA8
- */
- virtual SkPMColor xferColor(SkPMColor src, SkPMColor dst) const;
-
-private:
- enum {
- kModeCount = kLastMode + 1
- };
-
- typedef SkFlattenable INHERITED;
-};
-
-#endif
+//#error "SkXfermode.h is deprecated"
#endif
diff --git a/include/effects/SkArithmeticMode.h b/include/effects/SkArithmeticMode.h
index 89cca92c55..e48d4ca2d5 100644
--- a/include/effects/SkArithmeticMode.h
+++ b/include/effects/SkArithmeticMode.h
@@ -8,10 +8,6 @@
#ifndef SkArithmeticMode_DEFINED
#define SkArithmeticMode_DEFINED
-#include "SkFlattenable.h"
-#include "SkScalar.h"
-#include "SkXfermode.h"
-
-// TODO : remove this header from public
+//#error "SkArithmeticMode.h is deprecated"
#endif
diff --git a/samplecode/ClockFaceView.cpp b/samplecode/ClockFaceView.cpp
index 9cee95b84c..2721a5bd18 100644
--- a/samplecode/ClockFaceView.cpp
+++ b/samplecode/ClockFaceView.cpp
@@ -164,10 +164,7 @@ static void r7(SkLayerRasterizer::Builder* rastBuilder, SkPaint& p, SkScalar int
typedef void (*raster_proc)(SkLayerRasterizer*, SkPaint&);
-#include "SkXfermode.h"
-
-static void apply_shader(SkPaint* paint, float scale)
-{
+static void apply_shader(SkPaint* paint, float scale) {
SkPaint p;
SkLayerRasterizer::Builder rastBuilder;
diff --git a/samplecode/SampleAll.cpp b/samplecode/SampleAll.cpp
index 94c12cd727..fc3a95ab88 100644
--- a/samplecode/SampleAll.cpp
+++ b/samplecode/SampleAll.cpp
@@ -32,7 +32,6 @@
#include "SkRandom.h"
#include "SkTypeface.h"
#include "SkUtils.h"
-#include "SkXfermode.h"
#include <math.h>
#include "DecodeFile.h"
diff --git a/samplecode/SampleAnimatedText.cpp b/samplecode/SampleAnimatedText.cpp
index 6bd6d82e8c..dec8f8f49d 100644
--- a/samplecode/SampleAnimatedText.cpp
+++ b/samplecode/SampleAnimatedText.cpp
@@ -15,7 +15,6 @@
#include "SkSystemEventTypes.h"
#include "SkTime.h"
#include "SkTypeface.h"
-#include "SkXfermode.h"
#include "Timer.h"
#if SK_SUPPORT_GPU
diff --git a/samplecode/SampleBitmapRect.cpp b/samplecode/SampleBitmapRect.cpp
index 24c3efff79..ebfe3bbc6d 100644
--- a/samplecode/SampleBitmapRect.cpp
+++ b/samplecode/SampleBitmapRect.cpp
@@ -15,7 +15,6 @@
#include "SkRegion.h"
#include "SkShader.h"
#include "SkUtils.h"
-#include "SkXfermode.h"
#include "SkColorPriv.h"
#include "SkColorFilter.h"
#include "SkTime.h"
diff --git a/samplecode/SampleConcavePaths.cpp b/samplecode/SampleConcavePaths.cpp
index d75ec4c4be..7ff6819ac4 100644
--- a/samplecode/SampleConcavePaths.cpp
+++ b/samplecode/SampleConcavePaths.cpp
@@ -14,7 +14,6 @@
#include "SkRegion.h"
#include "SkShader.h"
#include "SkUtils.h"
-#include "SkXfermode.h"
#include "SkColorPriv.h"
#include "SkColorFilter.h"
#include "SkParsePath.h"
diff --git a/samplecode/SampleEmboss.cpp b/samplecode/SampleEmboss.cpp
index f1ea1fe547..4aba6fd157 100644
--- a/samplecode/SampleEmboss.cpp
+++ b/samplecode/SampleEmboss.cpp
@@ -21,7 +21,6 @@
#include "SkColorFilter.h"
#include "SkTime.h"
#include "SkTypeface.h"
-#include "SkXfermode.h"
class EmbossView : public SampleView {
SkEmbossMaskFilter::Light fLight;
diff --git a/samplecode/SampleFilter2.cpp b/samplecode/SampleFilter2.cpp
index 8c93563c40..9b2298a0b4 100644
--- a/samplecode/SampleFilter2.cpp
+++ b/samplecode/SampleFilter2.cpp
@@ -15,7 +15,6 @@
#include "SkRegion.h"
#include "SkShader.h"
#include "SkUtils.h"
-#include "SkXfermode.h"
#include "SkColorPriv.h"
#include "SkColorFilter.h"
#include "SkTime.h"
diff --git a/samplecode/SampleFuzz.cpp b/samplecode/SampleFuzz.cpp
index c7d05782e3..a0cb0e02ba 100644
--- a/samplecode/SampleFuzz.cpp
+++ b/samplecode/SampleFuzz.cpp
@@ -10,7 +10,6 @@
#include "SkBlurMaskFilter.h"
#include "SkPaint.h"
#include "SkPath.h"
-#include "SkXfermode.h"
#include "SkMatrix.h"
#include "SkColor.h"
#include "SkRandom.h"
diff --git a/samplecode/SampleHairline.cpp b/samplecode/SampleHairline.cpp
index fef44f53ce..169804ddfa 100644
--- a/samplecode/SampleHairline.cpp
+++ b/samplecode/SampleHairline.cpp
@@ -21,8 +21,6 @@
#include "SkColorFilter.h"
#include "SkTime.h"
#include "SkTypeface.h"
-#include "SkXfermode.h"
-
#include "SkStream.h"
#include "SkColorPriv.h"
diff --git a/samplecode/SampleLayers.cpp b/samplecode/SampleLayers.cpp
index 71b2e8ba66..c086eb0480 100644
--- a/samplecode/SampleLayers.cpp
+++ b/samplecode/SampleLayers.cpp
@@ -23,7 +23,6 @@
#include "SkTypeface.h"
#include "SkUtils.h"
#include "SkKey.h"
-#include "SkXfermode.h"
#include "SkDrawFilter.h"
static void make_paint(SkPaint* paint, const SkMatrix& localMatrix) {
diff --git a/samplecode/SampleLines.cpp b/samplecode/SampleLines.cpp
index 08a9e86c4b..bf43e8b9c4 100644
--- a/samplecode/SampleLines.cpp
+++ b/samplecode/SampleLines.cpp
@@ -21,8 +21,6 @@
#include "SkColorFilter.h"
#include "SkTime.h"
#include "SkTypeface.h"
-#include "SkXfermode.h"
-
#include "SkStream.h"
#include "SkColorPriv.h"
diff --git a/samplecode/SamplePatch.cpp b/samplecode/SamplePatch.cpp
index 243d106784..b105090db2 100644
--- a/samplecode/SamplePatch.cpp
+++ b/samplecode/SamplePatch.cpp
@@ -17,7 +17,6 @@
#include "SkRegion.h"
#include "SkShader.h"
#include "SkUtils.h"
-#include "SkXfermode.h"
#include "SkColorPriv.h"
#include "SkColorFilter.h"
#include "SkTime.h"
diff --git a/samplecode/SamplePath.cpp b/samplecode/SamplePath.cpp
index f0bdf8d684..40c350fbd2 100644
--- a/samplecode/SamplePath.cpp
+++ b/samplecode/SamplePath.cpp
@@ -15,7 +15,6 @@
#include "SkRegion.h"
#include "SkShader.h"
#include "SkUtils.h"
-#include "SkXfermode.h"
#include "SkColorPriv.h"
#include "SkColorFilter.h"
#include "SkParsePath.h"
diff --git a/samplecode/SamplePathClip.cpp b/samplecode/SamplePathClip.cpp
index af9608f0eb..b425884ebe 100644
--- a/samplecode/SamplePathClip.cpp
+++ b/samplecode/SamplePathClip.cpp
@@ -13,7 +13,6 @@
#include "SkRegion.h"
#include "SkShader.h"
#include "SkUtils.h"
-#include "SkXfermode.h"
#include "SkColorPriv.h"
#include "SkColorFilter.h"
#include "SkTime.h"
diff --git a/samplecode/SamplePdfFileViewer.cpp b/samplecode/SamplePdfFileViewer.cpp
index 110aa5876c..ab5a73e824 100644
--- a/samplecode/SamplePdfFileViewer.cpp
+++ b/samplecode/SamplePdfFileViewer.cpp
@@ -26,8 +26,6 @@
#include "SkColorFilter.h"
#include "SkTime.h"
#include "SkTypeface.h"
-#include "SkXfermode.h"
-
#include "SkPdfRenderer.h"
class PdfFileViewer : public SampleView {
diff --git a/samplecode/SamplePictFile.cpp b/samplecode/SamplePictFile.cpp
index 83912a5e2f..32cc723d9d 100644
--- a/samplecode/SamplePictFile.cpp
+++ b/samplecode/SamplePictFile.cpp
@@ -25,8 +25,6 @@
#include "SkColorFilter.h"
#include "SkTime.h"
#include "SkTypeface.h"
-#include "SkXfermode.h"
-
#include "SkStream.h"
#include "SkSurface.h"
diff --git a/samplecode/SamplePoints.cpp b/samplecode/SamplePoints.cpp
index 0bfe28f850..13b98972d3 100644
--- a/samplecode/SamplePoints.cpp
+++ b/samplecode/SamplePoints.cpp
@@ -19,8 +19,6 @@
#include "SkColorFilter.h"
#include "SkTime.h"
#include "SkTypeface.h"
-#include "SkXfermode.h"
-
#include "SkStream.h"
class PointsView : public SampleView {
diff --git a/samplecode/SampleShaders.cpp b/samplecode/SampleShaders.cpp
index ba3b80d7f8..f9926ebf3f 100644
--- a/samplecode/SampleShaders.cpp
+++ b/samplecode/SampleShaders.cpp
@@ -15,7 +15,6 @@
#include "SkRegion.h"
#include "SkShader.h"
#include "SkUtils.h"
-#include "SkXfermode.h"
#include "SkColorPriv.h"
#include "SkColorFilter.h"
#include "SkTime.h"
diff --git a/samplecode/SampleText.cpp b/samplecode/SampleText.cpp
index 730c47ce98..8325cd7755 100644
--- a/samplecode/SampleText.cpp
+++ b/samplecode/SampleText.cpp
@@ -21,8 +21,6 @@
#include "SkColorFilter.h"
#include "SkTime.h"
#include "SkTypeface.h"
-#include "SkXfermode.h"
-
#include "SkStream.h"
static const struct {
diff --git a/samplecode/SampleTextAlpha.cpp b/samplecode/SampleTextAlpha.cpp
index 48625ad79a..8286177ae7 100644
--- a/samplecode/SampleTextAlpha.cpp
+++ b/samplecode/SampleTextAlpha.cpp
@@ -15,7 +15,6 @@
#include "SkRegion.h"
#include "SkShader.h"
#include "SkUtils.h"
-#include "SkXfermode.h"
#include "SkColorPriv.h"
#include "SkColorFilter.h"
#include "SkTime.h"
diff --git a/samplecode/SampleTextBox.cpp b/samplecode/SampleTextBox.cpp
index 8540ca456f..947ed8ec1e 100644
--- a/samplecode/SampleTextBox.cpp
+++ b/samplecode/SampleTextBox.cpp
@@ -16,7 +16,6 @@
#include "SkRegion.h"
#include "SkShader.h"
#include "SkUtils.h"
-#include "SkXfermode.h"
#include "SkColorPriv.h"
#include "SkColorFilter.h"
#include "SkTime.h"
diff --git a/samplecode/SampleVertices.cpp b/samplecode/SampleVertices.cpp
index 3ba98bb919..d08726c027 100644
--- a/samplecode/SampleVertices.cpp
+++ b/samplecode/SampleVertices.cpp
@@ -14,7 +14,6 @@
#include "SkRegion.h"
#include "SkShader.h"
#include "SkUtils.h"
-#include "SkXfermode.h"
#include "SkColorPriv.h"
#include "SkColorFilter.h"
#include "SkTime.h"
diff --git a/samplecode/SampleXfermodesBlur.cpp b/samplecode/SampleXfermodesBlur.cpp
index fe07c9b567..2169ffde53 100644
--- a/samplecode/SampleXfermodesBlur.cpp
+++ b/samplecode/SampleXfermodesBlur.cpp
@@ -21,7 +21,6 @@
#include "SkColorFilter.h"
#include "SkTime.h"
#include "SkTypeface.h"
-#include "SkXfermode.h"
#include "SkStream.h"
#include "SkColorPriv.h"
diff --git a/src/animator/SkDrawPaint.h b/src/animator/SkDrawPaint.h
index bef52527b1..b252a4d11a 100644
--- a/src/animator/SkDrawPaint.h
+++ b/src/animator/SkDrawPaint.h
@@ -14,7 +14,6 @@
#include "SkIntArray.h"
#include "SkMemberInfo.h"
#include "SkPaint.h"
-#include "SkXfermode.h"
class SkDrawMaskFilter;
class SkDrawPathEffect;
diff --git a/src/animator/SkPaintPart.h b/src/animator/SkPaintPart.h
index 5d94f049e8..14d24f5f55 100644
--- a/src/animator/SkPaintPart.h
+++ b/src/animator/SkPaintPart.h
@@ -13,7 +13,6 @@
#include "SkPaint.h"
#include "SkShader.h"
#include "SkTypeface.h"
-#include "SkXfermode.h"
class SkDrawPaint;
class SkDrawMatrix;
diff --git a/src/core/SkBitmapDevice.cpp b/src/core/SkBitmapDevice.cpp
index 1e618accb0..f5e2c3210a 100644
--- a/src/core/SkBitmapDevice.cpp
+++ b/src/core/SkBitmapDevice.cpp
@@ -20,7 +20,6 @@
#include "SkShader.h"
#include "SkSpecialImage.h"
#include "SkSurface.h"
-#include "SkXfermode.h"
class SkColorTable;
diff --git a/src/core/SkBlitter.cpp b/src/core/SkBlitter.cpp
index 731d0d3cb7..a05c176bcd 100644
--- a/src/core/SkBlitter.cpp
+++ b/src/core/SkBlitter.cpp
@@ -16,7 +16,6 @@
#include "SkString.h"
#include "SkTLazy.h"
#include "SkUtils.h"
-#include "SkXfermode.h"
#include "SkXfermodeInterpretation.h"
// define this for testing srgb blits
diff --git a/src/core/SkComposeShader.cpp b/src/core/SkComposeShader.cpp
index f04527b273..5cbd23eb08 100644
--- a/src/core/SkComposeShader.cpp
+++ b/src/core/SkComposeShader.cpp
@@ -11,7 +11,6 @@
#include "SkColorShader.h"
#include "SkReadBuffer.h"
#include "SkWriteBuffer.h"
-#include "SkXfermode.h"
#include "SkString.h"
sk_sp<SkShader> SkShader::MakeComposeShader(sk_sp<SkShader> dst, sk_sp<SkShader> src,
diff --git a/src/core/SkDraw.cpp b/src/core/SkDraw.cpp
index 856207da78..a2d7a51dff 100644
--- a/src/core/SkDraw.cpp
+++ b/src/core/SkDraw.cpp
@@ -33,7 +33,6 @@
#include "SkTLazy.h"
#include "SkUtils.h"
#include "SkVertState.h"
-#include "SkXfermode.h"
#include "SkBitmapProcShader.h"
#include "SkDrawProcs.h"
diff --git a/src/core/SkGlobalInitialization_core.cpp b/src/core/SkGlobalInitialization_core.cpp
index 21c4d16c4a..6f8f8d67b2 100644
--- a/src/core/SkGlobalInitialization_core.cpp
+++ b/src/core/SkGlobalInitialization_core.cpp
@@ -19,7 +19,6 @@
#include "SkPathEffect.h"
#include "SkPictureShader.h"
#include "SkRecordedDrawable.h"
-#include "SkXfermode.h"
/*
* Registers all of the required effects subclasses for picture deserialization.
diff --git a/src/core/SkGraphics.cpp b/src/core/SkGraphics.cpp
index 01b1432ef0..803b7435bb 100644
--- a/src/core/SkGraphics.cpp
+++ b/src/core/SkGraphics.cpp
@@ -28,7 +28,6 @@
#include "SkTSearch.h"
#include "SkTime.h"
#include "SkUtils.h"
-#include "SkXfermode.h"
#include <stdlib.h>
diff --git a/src/core/SkModeColorFilter.h b/src/core/SkModeColorFilter.h
index 2586c29d9f..8e0374495f 100644
--- a/src/core/SkModeColorFilter.h
+++ b/src/core/SkModeColorFilter.h
@@ -7,7 +7,6 @@
#include "SkColorFilter.h"
#include "SkPM4f.h"
-#include "SkXfermode.h"
#ifndef SkModeColorFilter_DEFINED
#define SkModeColorFilter_DEFINED
diff --git a/src/core/SkPaint.cpp b/src/core/SkPaint.cpp
index 82f1c827a7..a5df8dd145 100644
--- a/src/core/SkPaint.cpp
+++ b/src/core/SkPaint.cpp
@@ -35,7 +35,6 @@
#include "SkTextToPathIter.h"
#include "SkTLazy.h"
#include "SkTypeface.h"
-#include "SkXfermode.h"
static inline uint32_t set_clear_mask(uint32_t bits, bool cond, uint32_t mask) {
return cond ? bits | mask : bits & ~mask;
diff --git a/src/core/SkPictureFlat.cpp b/src/core/SkPictureFlat.cpp
index 013bc7f98e..6078cb6293 100644
--- a/src/core/SkPictureFlat.cpp
+++ b/src/core/SkPictureFlat.cpp
@@ -13,7 +13,6 @@
#include "SkRasterizer.h"
#include "SkShader.h"
#include "SkTypeface.h"
-#include "SkXfermode.h"
///////////////////////////////////////////////////////////////////////////////
diff --git a/src/core/SkPixmap.cpp b/src/core/SkPixmap.cpp
index 7f933a75d2..0a1a24f8bf 100644
--- a/src/core/SkPixmap.cpp
+++ b/src/core/SkPixmap.cpp
@@ -241,7 +241,6 @@ bool SkPixmap::erase(const SkColor4f& origColor, const SkIRect* subset) const {
#include "SkBitmap.h"
#include "SkCanvas.h"
#include "SkSurface.h"
-#include "SkXfermode.h"
bool SkPixmap::scalePixels(const SkPixmap& dst, SkFilterQuality quality) const {
// Can't do anthing with empty src or dst
diff --git a/src/core/SkRasterPipelineBlitter.cpp b/src/core/SkRasterPipelineBlitter.cpp
index 90910eaa92..ca6313eccd 100644
--- a/src/core/SkRasterPipelineBlitter.cpp
+++ b/src/core/SkRasterPipelineBlitter.cpp
@@ -15,7 +15,6 @@
#include "SkPM4fPriv.h"
#include "SkRasterPipeline.h"
#include "SkShader.h"
-#include "SkXfermode.h"
class SkRasterPipelineBlitter : public SkBlitter {
diff --git a/src/core/SkRecordOpts.cpp b/src/core/SkRecordOpts.cpp
index a7feec1fb3..605caa3b06 100644
--- a/src/core/SkRecordOpts.cpp
+++ b/src/core/SkRecordOpts.cpp
@@ -10,7 +10,6 @@
#include "SkRecordPattern.h"
#include "SkRecords.h"
#include "SkTDArray.h"
-#include "SkXfermode.h"
using namespace SkRecords;
diff --git a/src/core/SkXfermode.cpp b/src/core/SkXfermode.cpp
index 3f3927e742..eb27f69d26 100644
--- a/src/core/SkXfermode.cpp
+++ b/src/core/SkXfermode.cpp
@@ -5,7 +5,6 @@
* found in the LICENSE file.
*/
-#include "SkXfermode.h"
#include "SkXfermode_proccoeff.h"
#include "SkColorPriv.h"
#include "SkMathPriv.h"
diff --git a/src/core/SkXfermodePriv.h b/src/core/SkXfermodePriv.h
index b7d85ea98f..208925ed18 100644
--- a/src/core/SkXfermodePriv.h
+++ b/src/core/SkXfermodePriv.h
@@ -12,10 +12,6 @@
#include "SkColor.h"
#include "SkFlattenable.h"
-#ifdef SK_SUPPORT_LEGACY_XFERMODE_IS_PUBLIC
-#include "SkXfermode.h"
-#else
-
class GrFragmentProcessor;
class GrTexture;
class GrXPFactory;
@@ -307,5 +303,3 @@ private:
};
#endif
-
-#endif
diff --git a/src/core/SkXfermode_proccoeff.h b/src/core/SkXfermode_proccoeff.h
index 8d70957b94..8a7b62f0a2 100644
--- a/src/core/SkXfermode_proccoeff.h
+++ b/src/core/SkXfermode_proccoeff.h
@@ -8,7 +8,6 @@
#ifndef SkXfermode_proccoeff_DEFINED
#define SkXfermode_proccoeff_DEFINED
-#include "SkXfermode.h"
#include "SkReadBuffer.h"
#include "SkWriteBuffer.h"
diff --git a/src/effects/SkArithmeticModePriv.h b/src/effects/SkArithmeticModePriv.h
index 5cb1093434..ff7f357189 100644
--- a/src/effects/SkArithmeticModePriv.h
+++ b/src/effects/SkArithmeticModePriv.h
@@ -8,7 +8,8 @@
#ifndef SkArithmeticModePriv_DEFINED
#define SkArithmeticModePriv_DEFINED
-#include "SkArithmeticMode.h"
+#include "SkScalar.h"
+#include "SkXfermodePriv.h"
class SkXfermode;
diff --git a/src/effects/SkLayerRasterizer.cpp b/src/effects/SkLayerRasterizer.cpp
index 71d7fb63c5..b3e84593bd 100644
--- a/src/effects/SkLayerRasterizer.cpp
+++ b/src/effects/SkLayerRasterizer.cpp
@@ -17,7 +17,6 @@
#include "SkPathEffect.h"
#include "../core/SkRasterClip.h"
#include "../core/SkStrokeRec.h"
-#include "SkXfermode.h"
#include <new>
struct SkLayerRasterizer_Rec {
diff --git a/src/effects/SkXfermodeImageFilter.cpp b/src/effects/SkXfermodeImageFilter.cpp
index a396b3e690..0987266bbc 100644
--- a/src/effects/SkXfermodeImageFilter.cpp
+++ b/src/effects/SkXfermodeImageFilter.cpp
@@ -14,7 +14,6 @@
#include "SkSpecialImage.h"
#include "SkSpecialSurface.h"
#include "SkWriteBuffer.h"
-#include "SkXfermode.h"
#if SK_SUPPORT_GPU
#include "GrContext.h"
#include "GrRenderTargetContext.h"
diff --git a/src/effects/gradients/Sk4fLinearGradient.cpp b/src/effects/gradients/Sk4fLinearGradient.cpp
index 45083f725c..229bf8212f 100644
--- a/src/effects/gradients/Sk4fLinearGradient.cpp
+++ b/src/effects/gradients/Sk4fLinearGradient.cpp
@@ -7,7 +7,6 @@
#include "Sk4fLinearGradient.h"
#include "Sk4x4f.h"
-#include "SkXfermode.h"
#include <cmath>
diff --git a/src/gpu/GrRenderTargetOpList.h b/src/gpu/GrRenderTargetOpList.h
index 9f9a52a02d..d96f83d21a 100644
--- a/src/gpu/GrRenderTargetOpList.h
+++ b/src/gpu/GrRenderTargetOpList.h
@@ -26,7 +26,6 @@
#include "SkTArray.h"
#include "SkTLazy.h"
#include "SkTypes.h"
-#include "SkXfermode.h"
class GrAuditTrail;
class GrBatch;
diff --git a/src/gpu/SkGpuDevice.cpp b/src/gpu/SkGpuDevice.cpp
index cc2cd2fd50..04147f6870 100644
--- a/src/gpu/SkGpuDevice.cpp
+++ b/src/gpu/SkGpuDevice.cpp
@@ -39,7 +39,6 @@
#include "SkTLazy.h"
#include "SkUtils.h"
#include "SkVertState.h"
-#include "SkXfermode.h"
#include "batches/GrRectBatchFactory.h"
#include "effects/GrBicubicEffect.h"
#include "effects/GrDashingEffect.h"
diff --git a/src/gpu/effects/GrCustomXfermode.cpp b/src/gpu/effects/GrCustomXfermode.cpp
index 8d5c5008d2..7303fd49e5 100644
--- a/src/gpu/effects/GrCustomXfermode.cpp
+++ b/src/gpu/effects/GrCustomXfermode.cpp
@@ -14,7 +14,6 @@
#include "GrPipeline.h"
#include "GrProcessor.h"
#include "GrTexture.h"
-#include "SkXfermode.h"
#include "glsl/GrGLSLBlend.h"
#include "glsl/GrGLSLCaps.h"
#include "glsl/GrGLSLFragmentProcessor.h"
diff --git a/src/gpu/gl/GrGLProgram.cpp b/src/gpu/gl/GrGLProgram.cpp
index 1f2e1c8446..820b55c7fe 100644
--- a/src/gpu/gl/GrGLProgram.cpp
+++ b/src/gpu/gl/GrGLProgram.cpp
@@ -19,7 +19,6 @@
#include "glsl/GrGLSLFragmentProcessor.h"
#include "glsl/GrGLSLGeometryProcessor.h"
#include "glsl/GrGLSLXferProcessor.h"
-#include "SkXfermode.h"
#define GL_CALL(X) GR_GL_CALL(fGpu->glInterface(), X)
#define GL_CALL_RET(R, X) GR_GL_CALL_RET(fGpu->glInterface(), R, X)
diff --git a/src/gpu/gl/GrGLProgram.h b/src/gpu/gl/GrGLProgram.h
index 3b0940e0d2..d129ddaa3d 100644
--- a/src/gpu/gl/GrGLProgram.h
+++ b/src/gpu/gl/GrGLProgram.h
@@ -17,7 +17,6 @@
#include "glsl/GrGLSLUniformHandler.h"
#include "SkString.h"
-#include "SkXfermode.h"
#include "builders/GrGLProgramBuilder.h"
diff --git a/src/gpu/glsl/GrGLSLBlend.h b/src/gpu/glsl/GrGLSLBlend.h
index 63d6762444..fb0fb0b935 100644
--- a/src/gpu/glsl/GrGLSLBlend.h
+++ b/src/gpu/glsl/GrGLSLBlend.h
@@ -8,8 +8,8 @@
#ifndef GrGLBlend_DEFINED
#define GrGLBlend_DEFINED
+#include "SkBlendMode.h"
#include "SkRegion.h"
-#include "SkXfermode.h"
class GrGLSLFragmentBuilder;
diff --git a/src/utils/SkDumpCanvas.cpp b/src/utils/SkDumpCanvas.cpp
index efaca333af..9542c9e0ae 100644
--- a/src/utils/SkDumpCanvas.cpp
+++ b/src/utils/SkDumpCanvas.cpp
@@ -19,7 +19,6 @@
// needed just to know that these are all subclassed from SkFlattenable
#include "SkShader.h"
#include "SkPathEffect.h"
-#include "SkXfermode.h"
#include "SkColorFilter.h"
#include "SkPathEffect.h"
#include "SkMaskFilter.h"
diff --git a/src/utils/SkPatchGrid.h b/src/utils/SkPatchGrid.h
index dbb6138220..97a6cb3f01 100644
--- a/src/utils/SkPatchGrid.h
+++ b/src/utils/SkPatchGrid.h
@@ -10,7 +10,6 @@
#include "SkCanvas.h"
#include "SkPatchUtils.h"
-#include "SkXfermode.h"
/**
* Class that represents a grid of patches. Adjacent patches share their corners and a color is
diff --git a/tests/BlendTest.cpp b/tests/BlendTest.cpp
index cd5e8efba7..785acb8681 100644
--- a/tests/BlendTest.cpp
+++ b/tests/BlendTest.cpp
@@ -9,7 +9,6 @@
#include "SkColor.h"
#include "SkColorPriv.h"
#include "SkTaskGroup.h"
-#include "SkXfermode.h"
#include <functional>
struct Results { int diffs, diffs_0x00, diffs_0xff, diffs_by_1; };
diff --git a/tests/ColorFilterTest.cpp b/tests/ColorFilterTest.cpp
index ec34a151be..ad2dd0fc35 100644
--- a/tests/ColorFilterTest.cpp
+++ b/tests/ColorFilterTest.cpp
@@ -12,7 +12,6 @@
#include "SkReadBuffer.h"
#include "SkWriteBuffer.h"
#include "SkRandom.h"
-#include "SkXfermode.h"
#include "Test.h"
static sk_sp<SkColorFilter> reincarnate_colorfilter(SkFlattenable* obj) {
diff --git a/tests/GrGetCoeffBlendKnownComponentsTest.cpp b/tests/GrGetCoeffBlendKnownComponentsTest.cpp
index 38dfb30c56..31a41943d9 100644
--- a/tests/GrGetCoeffBlendKnownComponentsTest.cpp
+++ b/tests/GrGetCoeffBlendKnownComponentsTest.cpp
@@ -13,7 +13,6 @@
#include "SkGr.h"
#include "SkGrPriv.h"
#include "SkRandom.h"
-#include "SkXfermode.h"
static GrColor make_baseline_color(GrColor src, GrColor dst, const SkXfermode* xm) {
SkPMColor skSrc = GrColorToSkPMColor(src);
diff --git a/tests/GrPorterDuffTest.cpp b/tests/GrPorterDuffTest.cpp
index eb3c9bc186..53aeb9a1ca 100644
--- a/tests/GrPorterDuffTest.cpp
+++ b/tests/GrPorterDuffTest.cpp
@@ -5,7 +5,6 @@
* found in the LICENSE file.
*/
-#include "SkXfermode.h"
#include "Test.h"
#if SK_SUPPORT_GPU
diff --git a/tests/LayerDrawLooperTest.cpp b/tests/LayerDrawLooperTest.cpp
index 7b3aa29883..8fcbf1615c 100644
--- a/tests/LayerDrawLooperTest.cpp
+++ b/tests/LayerDrawLooperTest.cpp
@@ -16,7 +16,6 @@
#include "SkRefCnt.h"
#include "SkScalar.h"
#include "SkSmallAllocator.h"
-#include "SkXfermode.h"
#include "Test.h"
static SkBitmap make_bm(int w, int h) {
diff --git a/tests/PaintTest.cpp b/tests/PaintTest.cpp
index 9cd9cfc63c..76bfb02923 100644
--- a/tests/PaintTest.cpp
+++ b/tests/PaintTest.cpp
@@ -15,7 +15,6 @@
#include "SkTypeface.h"
#include "SkUtils.h"
#include "SkWriteBuffer.h"
-#include "SkXfermode.h"
#include "Test.h"
static size_t uni_to_utf8(const SkUnichar src[], void* dst, int count) {
diff --git a/tests/RecordOptsTest.cpp b/tests/RecordOptsTest.cpp
index b7c9ae96c6..f5f18f3b1c 100644
--- a/tests/RecordOptsTest.cpp
+++ b/tests/RecordOptsTest.cpp
@@ -13,7 +13,6 @@
#include "SkRecordOpts.h"
#include "SkRecorder.h"
#include "SkRecords.h"
-#include "SkXfermode.h"
#include "SkPictureRecorder.h"
#include "SkPictureImageFilter.h"
#include "SkSurface.h"
diff --git a/tests/SrcOverTest.cpp b/tests/SrcOverTest.cpp
index 7789fbdd50..df315983ea 100644
--- a/tests/SrcOverTest.cpp
+++ b/tests/SrcOverTest.cpp
@@ -6,7 +6,6 @@
*/
#include "SkColorPriv.h"
-#include "SkXfermode.h"
#include "Test.h"
// our std SkAlpha255To256