aboutsummaryrefslogtreecommitdiffhomepage
path: root/gm/imagefiltersbase.cpp
diff options
context:
space:
mode:
authorGravatar reed <reed@google.com>2014-08-21 10:53:34 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2014-08-21 10:53:34 -0700
commit7daaaa4425ea083df437eea95ba6b38315ce98ad (patch)
treeda951dda6eaccc9a345a49c1881318b98c2a76d5 /gm/imagefiltersbase.cpp
parenta6cac4ce3896669e1b5935def0a84b4456ec9777 (diff)
use globals to register custom effects
NOTREECHECKS=True NOTRY=True R=mtklein@google.com, caryclark@google.com, bungeman@google.com Author: reed@google.com Review URL: https://codereview.chromium.org/498453003
Diffstat (limited to 'gm/imagefiltersbase.cpp')
-rw-r--r--gm/imagefiltersbase.cpp46
1 files changed, 30 insertions, 16 deletions
diff --git a/gm/imagefiltersbase.cpp b/gm/imagefiltersbase.cpp
index 5472f2d98a..d1bd5a72df 100644
--- a/gm/imagefiltersbase.cpp
+++ b/gm/imagefiltersbase.cpp
@@ -18,6 +18,18 @@
class FailImageFilter : public SkImageFilter {
public:
+ class Registrar {
+ public:
+ Registrar() {
+ SkFlattenable::Register("FailImageFilter",
+#ifdef SK_SUPPORT_LEGACY_DEEPFLATTENING
+ FailImageFilter::DeepCreateProc,
+#else
+ FailImageFilter::CreateProc,
+#endif
+ FailImageFilter::GetFlattenableType());
+ }
+ };
static FailImageFilter* Create() {
return SkNEW(FailImageFilter);
}
@@ -25,14 +37,7 @@ public:
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(FailImageFilter)
protected:
- FailImageFilter() : INHERITED(0, NULL) {
- static bool gOnce;
- if (!gOnce) {
- gOnce = true;
- SkFlattenable::Register("FailImageFilter", this->getFactory(),
- this->GetFlattenableType());
- }
- }
+ FailImageFilter() : INHERITED(0, NULL) {}
virtual bool onFilterImage(Proxy*, const SkBitmap& src, const Context&,
SkBitmap* result, SkIPoint* offset) const SK_OVERRIDE {
@@ -47,6 +52,8 @@ private:
typedef SkImageFilter INHERITED;
};
+static FailImageFilter::Registrar gReg0;
+
SkFlattenable* FailImageFilter::CreateProc(SkReadBuffer& buffer) {
SK_IMAGEFILTER_UNFLATTEN_COMMON(common, 0);
return FailImageFilter::Create();
@@ -54,20 +61,25 @@ SkFlattenable* FailImageFilter::CreateProc(SkReadBuffer& buffer) {
class IdentityImageFilter : public SkImageFilter {
public:
+ class Registrar {
+ public:
+ Registrar() {
+ SkFlattenable::Register("IdentityImageFilter",
+#ifdef SK_SUPPORT_LEGACY_DEEPFLATTENING
+ IdentityImageFilter::DeepCreateProc,
+#else
+ IdentityImageFilter::CreateProc,
+#endif
+ IdentityImageFilter::GetFlattenableType());
+ }
+ };
static IdentityImageFilter* Create(SkImageFilter* input = NULL) {
return SkNEW_ARGS(IdentityImageFilter, (input));
}
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(IdentityImageFilter)
protected:
- IdentityImageFilter(SkImageFilter* input) : INHERITED(1, &input) {
- static bool gOnce;
- if (!gOnce) {
- gOnce = true;
- SkFlattenable::Register("IdentityImageFilter", this->getFactory(),
- this->GetFlattenableType());
- }
- }
+ IdentityImageFilter(SkImageFilter* input) : INHERITED(1, &input) {}
virtual bool onFilterImage(Proxy*, const SkBitmap& src, const Context&,
SkBitmap* result, SkIPoint* offset) const SK_OVERRIDE {
@@ -84,6 +96,8 @@ private:
typedef SkImageFilter INHERITED;
};
+static IdentityImageFilter::Registrar gReg1;
+
SkFlattenable* IdentityImageFilter::CreateProc(SkReadBuffer& buffer) {
SK_IMAGEFILTER_UNFLATTEN_COMMON(common, 1);
return IdentityImageFilter::Create(common.getInput(0));