aboutsummaryrefslogtreecommitdiffhomepage
path: root/gm
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
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')
-rw-r--r--gm/imagefiltersbase.cpp46
-rw-r--r--gm/imagefiltersgraph.cpp23
2 files changed, 45 insertions, 24 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));
diff --git a/gm/imagefiltersgraph.cpp b/gm/imagefiltersgraph.cpp
index bd6af3ff20..37ed885dd7 100644
--- a/gm/imagefiltersgraph.cpp
+++ b/gm/imagefiltersgraph.cpp
@@ -25,6 +25,18 @@
// perform a draw and this one does.
class SimpleOffsetFilter : public SkImageFilter {
public:
+ class Registrar {
+ public:
+ Registrar() {
+ SkFlattenable::Register("SimpleOffsetFilter",
+#ifdef SK_SUPPORT_LEGACY_DEEPFLATTENING
+ SimpleOffsetFilter::DeepCreateProc,
+#else
+ SimpleOffsetFilter::CreateProc,
+#endif
+ SimpleOffsetFilter::GetFlattenableType());
+ }
+ };
static SkImageFilter* Create(SkScalar dx, SkScalar dy, SkImageFilter* input) {
return SkNEW_ARGS(SimpleOffsetFilter, (dx, dy, input));
}
@@ -73,20 +85,15 @@ protected:
private:
SimpleOffsetFilter(SkScalar dx, SkScalar dy, SkImageFilter* input)
- : SkImageFilter(1, &input), fDX(dx), fDY(dy) {
- static bool gOnce;
- if (!gOnce) {
- gOnce = true;
- SkFlattenable::Register("SimpleOffsetFilter", this->getFactory(),
- this->GetFlattenableType());
- }
- }
+ : SkImageFilter(1, &input), fDX(dx), fDY(dy) {}
SkScalar fDX, fDY;
typedef SkImageFilter INHERITED;
};
+static SimpleOffsetFilter::Registrar gReg;
+
SkFlattenable* SimpleOffsetFilter::CreateProc(SkReadBuffer& buffer) {
SK_IMAGEFILTER_UNFLATTEN_COMMON(common, 1);
SkScalar dx = buffer.readScalar();