Add interface to SkXfermode to return a GrEffect and blend coeffs.
Review URL: https://codereview.chromium.org/13097006
git-svn-id: http://skia.googlecode.com/svn/trunk@8412 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/gpu/SkGpuDevice.cpp b/src/gpu/SkGpuDevice.cpp
index 77c4bd1..ad65d17 100644
--- a/src/gpu/SkGpuDevice.cpp
+++ b/src/gpu/SkGpuDevice.cpp
@@ -484,13 +484,15 @@
SkXfermode::Coeff dm = SkXfermode::kISA_Coeff;
SkXfermode* mode = skPaint.getXfermode();
- if (mode) {
- if (!mode->asCoeff(&sm, &dm)) {
- //SkDEBUGCODE(SkDebugf("Unsupported xfer mode.\n");)
+ GrEffectRef* xferEffect;
+ if (SkXfermode::AsNewEffect(mode, dev->context(), &xferEffect, &sm, &dm)) {
+ // We're not ready for xfermode effects yet
+ GrAssert(NULL == xferEffect);
+ } else {
+ //SkDEBUGCODE(SkDebugf("Unsupported xfer mode.\n");)
#if 0
- return false;
+ return false;
#endif
- }
}
grPaint->setBlendFunc(sk_blend_to_grblend(sm), sk_blend_to_grblend(dm));