diff options
author | Romain Guy <romainguy@google.com> | 2010-09-09 15:02:53 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2010-09-09 15:02:53 -0700 |
commit | 7c189b7a15784526ef7ea085a791e4e7d9f7b438 (patch) | |
tree | 5d43bb59bdcf1f1e0ede55b738eff6e018076378 /src | |
parent | ae290f9053b28292fee88fb589ee349425d3c7e8 (diff) | |
parent | 064c4371c21a4205ed6acdb3c839e4e7805e346b (diff) | |
download | external_skia-7c189b7a15784526ef7ea085a791e4e7d9f7b438.zip external_skia-7c189b7a15784526ef7ea085a791e4e7d9f7b438.tar.gz external_skia-7c189b7a15784526ef7ea085a791e4e7d9f7b438.tar.bz2 |
Merge "Expose Xfermode's mode in the SkXfermode class."
Diffstat (limited to 'src')
-rw-r--r-- | src/core/SkXfermode.cpp | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/src/core/SkXfermode.cpp b/src/core/SkXfermode.cpp index 8d1531a..dece914 100644 --- a/src/core/SkXfermode.cpp +++ b/src/core/SkXfermode.cpp @@ -941,30 +941,36 @@ SkXfermode* SkXfermode::Create(Mode mode) { SkASSERT(SK_ARRAY_COUNT(gProcCoeffs) == kModeCount); SkASSERT((unsigned)mode < kModeCount); + SkXfermode* xferMode = NULL; switch (mode) { case kClear_Mode: - return SkNEW(SkClearXfermode); + xferMode = SkNEW(SkClearXfermode); + break; case kSrc_Mode: - return SkNEW(SkSrcXfermode); + xferMode = SkNEW(SkSrcXfermode); + break; case kSrcOver_Mode: return NULL; case kDstIn_Mode: - return SkNEW(SkDstInXfermode); + xferMode = SkNEW(SkDstInXfermode); + break; case kDstOut_Mode: - return SkNEW(SkDstOutXfermode); + xferMode = SkNEW(SkDstOutXfermode); + break; // use the table default: { const ProcCoeff& rec = gProcCoeffs[mode]; if ((unsigned)rec.fSC < SkXfermode::kCoeffCount && (unsigned)rec.fDC < SkXfermode::kCoeffCount) { - return SkNEW_ARGS(SkProcCoeffXfermode, (rec.fProc, - rec.fSC, - rec.fDC)); + xferMode = SkNEW_ARGS(SkProcCoeffXfermode, (rec.fProc, rec.fSC, rec.fDC)); } else { - return SkNEW_ARGS(SkProcXfermode, (rec.fProc)); + xferMode = SkNEW_ARGS(SkProcXfermode, (rec.fProc)); } + break; } } + xferMode->fMode = mode; + return xferMode; } bool SkXfermode::IsMode(SkXfermode* xfer, Mode* mode) { |