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

Unified Diff: src/core/SkGlobalInitialization_core.cpp

Issue 1580873002: reorg global initialization, separating core from optional (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: add dox to _core method Created 4 years, 11 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 | « include/core/SkFlattenable.h ('k') | src/ports/SkGlobalInitialization_chromium.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/core/SkGlobalInitialization_core.cpp
diff --git a/src/core/SkGlobalInitialization_core.cpp b/src/core/SkGlobalInitialization_core.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..ac37073eb3114fd1605e25e9171edb9148c47a75
--- /dev/null
+++ b/src/core/SkGlobalInitialization_core.cpp
@@ -0,0 +1,59 @@
+/*
+ * Copyright 2016 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#include "SkBitmapProcShader.h"
+#include "SkColorFilter.h"
+#include "SkColorFilterShader.h"
+#include "SkColorShader.h"
+#include "SkComposeShader.h"
+#include "SkEmptyShader.h"
+#include "SkFlattenable.h"
+#include "SkImageShader.h"
+#include "SkLocalMatrixShader.h"
+#include "SkOnce.h"
+#include "SkPathEffect.h"
+#include "SkPictureShader.h"
+#include "SkMatrixImageFilter.h"
+#include "SkXfermode.h"
+
+/*
+ * Registers all of the required effects subclasses for picture deserialization.
+ *
+ * Optional subclasses (e.g. Blur) should be registered in the ports/ version of this file,
+ * inside the InitEffects() method.
+ */
+void SkFlattenable::PrivateInitializer::InitCore() {
+ // Shader
+ SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkBitmapProcShader)
+ SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkColorFilterShader)
+ SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkColorShader)
+ SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkComposeShader)
+ SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkEmptyShader)
+ SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkImageShader)
+ SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLocalMatrixShader)
+ SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkPictureShader)
+
+ // PathEffect
+ SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkComposePathEffect)
+
+ // ImageFilter
+ SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkMatrixImageFilter)
+
+ // ColorFilter
+ SkColorFilter::InitializeFlattenables();
+
+ // Xfermode
+ SkXfermode::InitializeFlattenables();
+
+ // Now initialize any optional/additional effects (implemented in src/ports)
+ InitEffects();
+};
+
+SK_DECLARE_STATIC_ONCE(once);
+void SkFlattenable::InitializeFlattenablesIfNeeded() {
+ SkOnce(&once, SkFlattenable::PrivateInitializer::InitCore);
+}
« no previous file with comments | « include/core/SkFlattenable.h ('k') | src/ports/SkGlobalInitialization_chromium.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698