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

Unified Diff: gm/imagefiltersbase.cpp

Issue 498453003: use globals to register custom effects (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 6 years, 4 months 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
« no previous file with comments | « no previous file | gm/imagefiltersgraph.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: gm/imagefiltersbase.cpp
diff --git a/gm/imagefiltersbase.cpp b/gm/imagefiltersbase.cpp
index 5472f2d98a2c2fcd1ef01dc8ac65ec724f6c82c3..d1bd5a72df80c1cafdae882ba79f44c9815c91b9 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));
« no previous file with comments | « no previous file | gm/imagefiltersgraph.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698