diff options
author | reed <reed@google.com> | 2014-08-21 10:53:34 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-08-21 10:53:34 -0700 |
commit | 7daaaa4425ea083df437eea95ba6b38315ce98ad (patch) | |
tree | da951dda6eaccc9a345a49c1881318b98c2a76d5 /gm/imagefiltersbase.cpp | |
parent | a6cac4ce3896669e1b5935def0a84b4456ec9777 (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.cpp | 46 |
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)); |