Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(170)

Unified Diff: src/core/SkXfermode.cpp

Issue 751283002: Add XferProcessor factory in GrPaint and GrDrawState. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Update gyp Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/core/SkXfermode.cpp
diff --git a/src/core/SkXfermode.cpp b/src/core/SkXfermode.cpp
index 77c668457b9d4e4b524b94c4909607354ce883fc..5fae9f12564d959cf8b939b31aeb4d97ac4efb23 100644
--- a/src/core/SkXfermode.cpp
+++ b/src/core/SkXfermode.cpp
@@ -6,7 +6,7 @@
* found in the LICENSE file.
*/
-
+#include "GrXferProcessor.h"
#include "SkXfermode.h"
#include "SkXfermode_opts_SSE2.h"
#include "SkXfermode_proccoeff.h"
@@ -680,12 +680,21 @@ bool SkXfermode::asFragmentProcessor(GrFragmentProcessor**, GrTexture*) const {
return false;
}
-bool SkXfermode::asFragmentProcessorOrCoeff(SkXfermode* xfermode, GrFragmentProcessor** fp,
- Coeff* src, Coeff* dst, GrTexture* background) {
+bool SkXfermode::asXPFactory(GrXPFactory**) const {
+ return false;
+}
+
+bool SkXfermode::asFragmentProcessorOrXPFactoryOrCoeff(SkXfermode* xfermode,
+ GrFragmentProcessor** fp,
+ GrXPFactory** xpf,
+ Coeff* src, Coeff* dst,
+ GrTexture* background) {
if (NULL == xfermode) {
return ModeAsCoeff(kSrcOver_Mode, src, dst);
} else if (xfermode->asCoeff(src, dst)) {
return true;
+ } else if (NULL == background && xfermode->asXPFactory(xpf)) {
+ return true;
} else {
return xfermode->asFragmentProcessor(fp, background);
}

Powered by Google App Engine
This is Rietveld 408576698