| Index: src/core/SkXfermode.cpp
|
| diff --git a/src/core/SkXfermode.cpp b/src/core/SkXfermode.cpp
|
| index 20d88162a43d2b0d3bafa005c1695113ef947cd4..728023449454e481408e913d5a80dbabdcd5f2d8 100644
|
| --- a/src/core/SkXfermode.cpp
|
| +++ b/src/core/SkXfermode.cpp
|
| @@ -1671,6 +1671,7 @@ void SkXfermode::Term() {
|
|
|
| extern SkProcCoeffXfermode* SkPlatformXfermodeFactory(const ProcCoeff& rec,
|
| SkXfermode::Mode mode);
|
| +extern SkXfermodeProc SkPlatformXfermodeProcFactory(SkXfermode::Mode mode);
|
|
|
| SkXfermode* SkXfermode::Create(Mode mode) {
|
| SkASSERT(SK_ARRAY_COUNT(gProcCoeffs) == kModeCount);
|
| @@ -1692,7 +1693,13 @@ SkXfermode* SkXfermode::Create(Mode mode) {
|
|
|
| SkXfermode* xfer = gCachedXfermodes[mode];
|
| if (NULL == xfer) {
|
| - const ProcCoeff& rec = gProcCoeffs[mode];
|
| + ProcCoeff rec = gProcCoeffs[mode];
|
| +
|
| + SkXfermodeProc pp = SkPlatformXfermodeProcFactory(mode);
|
| +
|
| + if (pp != NULL) {
|
| + rec.fProc = pp;
|
| + }
|
|
|
| // check if we have a platform optim for that
|
| SkProcCoeffXfermode* xfm = SkPlatformXfermodeFactory(rec, mode);
|
|
|