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..181320cbf5ddbdf4eb1c48596f2c4651cbf02ead |
--- /dev/null |
+++ b/src/core/SkGlobalInitialization_core.cpp |
@@ -0,0 +1,53 @@ |
+/* |
+ * 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" |
+ |
mtklein
2016/01/13 14:15:55
Might be nice to explain what belongs here too lik
reed1
2016/01/13 15:03:18
Done.
|
+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 effects (implemented in src/ports) |
+ InitEffects(); |
+}; |
+ |
+SK_DECLARE_STATIC_ONCE(once); |
+void SkFlattenable::InitializeFlattenablesIfNeeded() { |
+ SkOnce(&once, SkFlattenable::PrivateInitializer::InitCore); |
+} |