aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core
diff options
context:
space:
mode:
authorGravatar egdaniel <egdaniel@google.com>2015-01-16 06:29:47 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2015-01-16 06:29:47 -0800
commit54f0e9d784122cfd3f5968e0fea971d5b5a4805a (patch)
tree336f4634c1a1ed19c96390053c3220f2857f9035 /src/core
parent678c1b019ac98bc7d94841132c8105a77490bc64 (diff)
Add Xfer Processor for GrCustomXfermodes
Diffstat (limited to 'src/core')
-rw-r--r--src/core/SkXfermode.cpp11
-rw-r--r--src/core/SkXfermode_proccoeff.h2
2 files changed, 13 insertions, 0 deletions
diff --git a/src/core/SkXfermode.cpp b/src/core/SkXfermode.cpp
index 9d727f07f1..37dbd0d1e2 100644
--- a/src/core/SkXfermode.cpp
+++ b/src/core/SkXfermode.cpp
@@ -932,6 +932,17 @@ bool SkProcCoeffXfermode::asFragmentProcessor(GrFragmentProcessor** fp,
}
return false;
}
+
+bool SkProcCoeffXfermode::asXPFactory(GrXPFactory** xp) const {
+ if (GrCustomXfermode::IsSupportedMode(fMode)) {
+ if (xp) {
+ *xp = GrCustomXfermode::CreateXPFactory(fMode);
+ SkASSERT(*xp);
+ }
+ return true;
+ }
+ return false;
+}
#endif
const char* SkXfermode::ModeName(Mode mode) {
diff --git a/src/core/SkXfermode_proccoeff.h b/src/core/SkXfermode_proccoeff.h
index 504e64db68..88b4d34e63 100644
--- a/src/core/SkXfermode_proccoeff.h
+++ b/src/core/SkXfermode_proccoeff.h
@@ -37,6 +37,8 @@ public:
#if SK_SUPPORT_GPU
virtual bool asFragmentProcessor(GrFragmentProcessor**,
GrTexture* background) const SK_OVERRIDE;
+
+ virtual bool asXPFactory(GrXPFactory**) const SK_OVERRIDE;
#endif
SK_TO_STRING_OVERRIDE()