diff options
author | 2015-01-20 10:19:22 -0800 | |
---|---|---|
committer | 2015-01-20 10:19:22 -0800 | |
commit | 58136167fc596fb945b58b34f500cf370c0dec7c (patch) | |
tree | 2d3c62662c1b50157a3c6c54481f3da8d228f84e /src/core/SkXfermode.cpp | |
parent | 9264a95608c08623f2955823703e5c77558cafa8 (diff) |
Do more cleanup from xp changes
BUG=skia:
Review URL: https://codereview.chromium.org/811903004
Diffstat (limited to 'src/core/SkXfermode.cpp')
-rw-r--r-- | src/core/SkXfermode.cpp | 32 |
1 files changed, 14 insertions, 18 deletions
diff --git a/src/core/SkXfermode.cpp b/src/core/SkXfermode.cpp index 37dbd0d1e2..ac1ebcccb0 100644 --- a/src/core/SkXfermode.cpp +++ b/src/core/SkXfermode.cpp @@ -687,30 +687,18 @@ bool SkXfermode::asXPFactory(GrXPFactory**) const { #if SK_SUPPORT_GPU #include "effects/GrPorterDuffXferProcessor.h" -bool SkXfermode::AsFragmentProcessorOrXPFactory(SkXfermode* xfermode, - GrFragmentProcessor** fp, - GrXPFactory** xpf) { - Coeff src, dst; - Mode mode; +bool SkXfermode::AsXPFactory(SkXfermode* xfermode, GrXPFactory** xpf) { if (NULL == xfermode) { - *xpf = GrPorterDuffXPFactory::Create(kSrcOver_Mode); - return true; - } else if (xfermode->asMode(&mode) && mode <= kLastCoeffMode) { - *xpf = GrPorterDuffXPFactory::Create(mode); - return true; - } else if (xfermode->asCoeff(&src, &dst)) { - *xpf = GrPorterDuffXPFactory::Create(src, dst); - return true; - } else if (xfermode->asXPFactory(xpf)) { + if (xpf) { + *xpf = GrPorterDuffXPFactory::Create(kSrcOver_Mode); + } return true; } else { - return xfermode->asFragmentProcessor(fp, NULL); + return xfermode->asXPFactory(xpf); } } #else -bool SkXfermode::AsFragmentProcessorOrXPFactory(SkXfermode* xfermode, - GrFragmentProcessor** fp, - GrXPFactory** xpf) { +bool SkXfermode::AsXPFactory(SkXfermode* xfermode, GrXPFactory** xpf) { return false; } #endif @@ -934,6 +922,14 @@ bool SkProcCoeffXfermode::asFragmentProcessor(GrFragmentProcessor** fp, } bool SkProcCoeffXfermode::asXPFactory(GrXPFactory** xp) const { + if (CANNOT_USE_COEFF != fSrcCoeff) { + if (xp) { + *xp = GrPorterDuffXPFactory::Create(fMode); + SkASSERT(*xp); + } + return true; + } + if (GrCustomXfermode::IsSupportedMode(fMode)) { if (xp) { *xp = GrCustomXfermode::CreateXPFactory(fMode); |