[skottie] Reduce CompositionBuilder stack footprint
LayerBuilder has grown to be pretty chunky. Using inline storage
SkSTArray<64> in stack-allocated CompositionBuilders is excessive
(and unnecessary).
-fstack-usage before:
AnimationBuilder::attachPrecompLayer() 7536
-fstack-usage after:
AnimationBuilder::attachPrecompLayer() 368
Change-Id: Ia905d58e02519d9251620f3eeedbbdc434e3392d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/319342
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Florin Malita <fmalita@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
diff --git a/modules/skottie/src/Composition.h b/modules/skottie/src/Composition.h
index 740997c..a0356fd 100644
--- a/modules/skottie/src/Composition.h
+++ b/modules/skottie/src/Composition.h
@@ -10,10 +10,11 @@
#include "modules/skottie/src/SkottiePriv.h"
-#include "include/private/SkTArray.h"
#include "include/private/SkTHash.h"
#include "modules/skottie/src/Layer.h"
+#include <vector>
+
namespace skottie {
namespace internal {
@@ -31,16 +32,16 @@
friend class LayerBuilder;
- const SkSize fSize;
+ const SkSize fSize;
- SkSTArray<64, LayerBuilder> fLayerBuilders;
- SkTHashMap<int, size_t> fLayerIndexMap; // Maps layer "ind" to layer builder index.
+ std::vector<LayerBuilder> fLayerBuilders;
+ SkTHashMap<int, size_t> fLayerIndexMap; // Maps layer "ind" to layer builder index.
- sk_sp<sksg::Transform> fCameraTransform;
+ sk_sp<sksg::Transform> fCameraTransform;
- size_t fMotionBlurSamples = 1;
- float fMotionBlurAngle = 0,
- fMotionBlurPhase = 0;
+ size_t fMotionBlurSamples = 1;
+ float fMotionBlurAngle = 0,
+ fMotionBlurPhase = 0;
};
} // namespace internal