diff options
author | 2014-12-09 11:15:43 -0800 | |
---|---|---|
committer | 2014-12-09 11:15:44 -0800 | |
commit | 9513143efa734bef0c1a0c7f945022572dbc8518 (patch) | |
tree | 767babf49d28d878f8eb29900115bfc54dd54917 /src/gpu/SkGr.cpp | |
parent | 9f876a37d8b80ef04ccbc7755cf4572aecc33981 (diff) |
Make all blending up to GrOptDrawState be handled by the xp/xp factory.
In this cl the blending information is extracted for the xp and stored in the ODS
which is then used as it currently is. In the follow up cl, an XP backend will be added
and at that point all blending work will take place inside XP's.
BUG=skia:
Committed: https://skia.googlesource.com/skia/+/7c66342a399b529634bed0fabfaa562db2c0dbd4
Review URL: https://codereview.chromium.org/759713002
Diffstat (limited to 'src/gpu/SkGr.cpp')
-rw-r--r-- | src/gpu/SkGr.cpp | 11 |
1 files changed, 1 insertions, 10 deletions
diff --git a/src/gpu/SkGr.cpp b/src/gpu/SkGr.cpp index 9059f55c7a..82b1ce4b87 100644 --- a/src/gpu/SkGr.cpp +++ b/src/gpu/SkGr.cpp @@ -464,30 +464,21 @@ void SkPaint2GrPaintNoShader(GrContext* context, const SkPaint& skPaint, GrColor grPaint->setDither(skPaint.isDither()); grPaint->setAntiAlias(skPaint.isAntiAlias()); - SkXfermode::Coeff sm; - SkXfermode::Coeff dm; - SkXfermode* mode = skPaint.getXfermode(); GrFragmentProcessor* fragmentProcessor = NULL; GrXPFactory* xpFactory = NULL; - if (SkXfermode::AsFragmentProcessorOrXPFactory(mode, &fragmentProcessor, &xpFactory, - &sm, &dm)) { + if (SkXfermode::AsFragmentProcessorOrXPFactory(mode, &fragmentProcessor, &xpFactory)) { if (fragmentProcessor) { SkASSERT(NULL == xpFactory); grPaint->addColorProcessor(fragmentProcessor)->unref(); xpFactory = GrPorterDuffXPFactory::Create(SkXfermode::kSrc_Mode); - sm = SkXfermode::kOne_Coeff; - dm = SkXfermode::kZero_Coeff; } } else { // Fall back to src-over xpFactory = GrPorterDuffXPFactory::Create(SkXfermode::kSrcOver_Mode); - sm = SkXfermode::kOne_Coeff; - dm = SkXfermode::kISA_Coeff; } SkASSERT(xpFactory); grPaint->setXPFactory(xpFactory)->unref(); - grPaint->setBlendFunc(sk_blend_to_grblend(sm), sk_blend_to_grblend(dm)); //set the color of the paint to the one of the parameter grPaint->setColor(paintColor); |