Memory usage optimizations when a node is cached. close #887

This commit is contained in:
Anton Lavrenov
2020-04-08 16:02:03 -05:00
parent 865d6c7618
commit d297cec70b
5 changed files with 49 additions and 12 deletions

View File

@@ -389,8 +389,8 @@ export abstract class Node<Config extends NodeConfig = NodeConfig> {
}),
cachedFilterCanvas = new SceneCanvas({
pixelRatio: pixelRatio,
width: width,
height: height
width: 0,
height: 0
}),
cachedHitCanvas = new HitCanvas({
pixelRatio: 1,
@@ -408,7 +408,6 @@ export abstract class Node<Config extends NodeConfig = NodeConfig> {
if (conf.imageSmoothingEnabled === false) {
cachedSceneCanvas.getContext()._context.imageSmoothingEnabled = false;
cachedFilterCanvas.getContext()._context.imageSmoothingEnabled = false;
cachedHitCanvas.getContext()._context.imageSmoothingEnabled = false;
}
sceneContext.save();
@@ -591,7 +590,10 @@ export abstract class Node<Config extends NodeConfig = NodeConfig> {
if (filters) {
if (!this._filterUpToDate) {
var ratio = sceneCanvas.pixelRatio;
filterCanvas.setSize(
sceneCanvas.width / sceneCanvas.pixelRatio,
sceneCanvas.height / sceneCanvas.pixelRatio
);
try {
len = filters.length;
filterContext.clear();