diff options
author | Mike Reed <reed@google.com> | 2016-10-03 18:02:50 +0000 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2016-10-03 18:03:29 +0000 |
commit | ce02e7175872abde3721df9e5d3ec0ab8384cd8e (patch) | |
tree | 620eec63e1082137df3111d09cd2bf1eb7ebd180 /src/core/SkSpriteBlitter_ARGB32.cpp | |
parent | 6fb592e6afb0061c9c0af15ddf599e2903f508f1 (diff) |
Revert "replace SkXfermode obj with SkBlendMode enum in paints"
This reverts commit I4fb489ba6b3f77b458f7e4a99f79c7ad10859135.
Reason for revert: <INSERT REASONING HERE>
Original change's description:
> replace SkXfermode obj with SkBlendMode enum in paints
>
> BUG=skia:5814
>
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2714
>
> Change-Id: I4fb489ba6b3f77b458f7e4a99f79c7ad10859135
> Reviewed-on: https://skia-review.googlesource.com/2714
> Reviewed-by: Florin Malita <fmalita@chromium.org>
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Mike Reed <reed@google.com>
>
TBR=bsalomon@google.com,fmalita@chromium.org,fmalita@google.com,reed@google.com,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Change-Id: I3e43f79ef5c1709929663fe63cc1f67cd78270b7
Reviewed-on: https://skia-review.googlesource.com/2871
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
Diffstat (limited to 'src/core/SkSpriteBlitter_ARGB32.cpp')
-rw-r--r-- | src/core/SkSpriteBlitter_ARGB32.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/core/SkSpriteBlitter_ARGB32.cpp b/src/core/SkSpriteBlitter_ARGB32.cpp index 1a76b1b2fe..93885996ea 100644 --- a/src/core/SkSpriteBlitter_ARGB32.cpp +++ b/src/core/SkSpriteBlitter_ARGB32.cpp @@ -63,7 +63,8 @@ public: fColorFilter = paint.getColorFilter(); SkSafeRef(fColorFilter); - fXfermode = SkXfermode::Peek(paint.getBlendMode()); + fXfermode = paint.getXfermode(); + SkSafeRef(fXfermode); fBufferSize = 0; fBuffer = nullptr; @@ -82,6 +83,7 @@ public: virtual ~Sprite_D32_XferFilter() { delete[] fBuffer; + SkSafeUnref(fXfermode); SkSafeUnref(fColorFilter); } @@ -261,7 +263,7 @@ SkSpriteBlitter* SkSpriteBlitter::ChooseL32(const SkPixmap& source, const SkPain } U8CPU alpha = paint.getAlpha(); - bool isSrcOver = paint.isSrcOver(); + SkXfermode* xfermode = paint.getXfermode(); SkColorFilter* filter = paint.getColorFilter(); SkSpriteBlitter* blitter = nullptr; @@ -270,7 +272,7 @@ SkSpriteBlitter* SkSpriteBlitter::ChooseL32(const SkPixmap& source, const SkPain if (alpha != 0xFF) { return nullptr; // we only have opaque sprites } - if (!isSrcOver || filter) { + if (xfermode || filter) { blitter = allocator->createT<Sprite_D32_S4444_XferFilter>(source, paint); } else if (source.isOpaque()) { blitter = allocator->createT<Sprite_D32_S4444_Opaque>(source); @@ -279,7 +281,7 @@ SkSpriteBlitter* SkSpriteBlitter::ChooseL32(const SkPixmap& source, const SkPain } break; case kN32_SkColorType: - if (!isSrcOver || filter) { + if (xfermode || filter) { if (255 == alpha) { // this can handle xfermode or filter, but not alpha blitter = allocator->createT<Sprite_D32_S32A_XferFilter>(source, paint); |