diff options
-rw-r--r-- | src/core/SkPaint.cpp | 17 | ||||
-rw-r--r-- | tests/PaintTest.cpp | 27 |
2 files changed, 1 insertions, 43 deletions
diff --git a/src/core/SkPaint.cpp b/src/core/SkPaint.cpp index 4ccfce235a..ebdc866d65 100644 --- a/src/core/SkPaint.cpp +++ b/src/core/SkPaint.cpp @@ -2377,18 +2377,6 @@ bool SkTextToPathIter::next(const SkPath** path, SkScalar* xpos) { /////////////////////////////////////////////////////////////////////////////// -// return true if the filter exists, and may affect alpha -static bool affects_alpha(const SkColorFilter* cf) { - return cf && !(cf->getFlags() & SkColorFilter::kAlphaUnchanged_Flag); -} - -// return true if the filter exists, and may affect alpha -static bool affects_alpha(const SkImageFilter* imf) { - // TODO: check if we should allow imagefilters to broadcast that they don't affect alpha - // ala colorfilters - return imf != NULL; -} - bool SkPaint::nothingToDraw() const { if (fLooper) { return false; @@ -2401,10 +2389,7 @@ bool SkPaint::nothingToDraw() const { case SkXfermode::kDstOut_Mode: case SkXfermode::kDstOver_Mode: case SkXfermode::kPlus_Mode: - if (0 == this->getAlpha()) { - return !affects_alpha(fColorFilter) && !affects_alpha(fImageFilter); - } - break; + return 0 == this->getAlpha(); case SkXfermode::kDst_Mode: return true; default: diff --git a/tests/PaintTest.cpp b/tests/PaintTest.cpp index c307aa94bc..4c45eed761 100644 --- a/tests/PaintTest.cpp +++ b/tests/PaintTest.cpp @@ -344,30 +344,3 @@ DEF_TEST(Paint_getHash, r) { paint.setHinting(SkPaint::kNormal_Hinting); REPORTER_ASSERT(r, paint.getHash() == defaultHash); } - -#include "SkColorMatrixFilter.h" - -DEF_TEST(Paint_nothingToDraw, r) { - SkPaint paint; - - REPORTER_ASSERT(r, !paint.nothingToDraw()); - paint.setAlpha(0); - REPORTER_ASSERT(r, paint.nothingToDraw()); - - paint.setAlpha(0xFF); - paint.setXfermodeMode(SkXfermode::kDst_Mode); - REPORTER_ASSERT(r, paint.nothingToDraw()); - - paint.setAlpha(0); - paint.setXfermodeMode(SkXfermode::kSrcOver_Mode); - - SkColorMatrix cm; - cm.setIdentity(); // does not change alpha - paint.setColorFilter(SkColorMatrixFilter::Create(cm))->unref(); - REPORTER_ASSERT(r, paint.nothingToDraw()); - - cm.postTranslate(0, 0, 0, 1); // wacks alpha - paint.setColorFilter(SkColorMatrixFilter::Create(cm))->unref(); - REPORTER_ASSERT(r, !paint.nothingToDraw()); -} - |