perf: 在修改不透明度等属性时只需要更新父元素

This commit is contained in:
AncTe committed 2025-02-26 20:34:18 +08:00
1 parent d2b7a5d430
commit 310e597c58
1 file changed
+10 -5
+10 -5
View File
@@ -476,7 +476,8 @@ export abstract class RenderItem<E extends ERenderItemEvent = ERenderItemEvent>
*/
setFilter(filter: string) {
this.filter = filter;
this.update(this);
// 设置滤镜时,不需要更新自身的缓存,直接调用父元素的更新即可
this._parent?.update();
}
/**
@@ -485,7 +486,8 @@ export abstract class RenderItem<E extends ERenderItemEvent = ERenderItemEvent>
*/
setComposite(composite: GlobalCompositeOperation) {
this.composite = composite;
this.update();
// 设置混合模式时,不需要更新自身的缓存,直接调用父元素的更新即可
this._parent?.update();
}
/**
@@ -494,7 +496,8 @@ export abstract class RenderItem<E extends ERenderItemEvent = ERenderItemEvent>
*/
setAlpha(alpha: number) {
this.alpha = alpha;
this.update();
// 设置不透明度时,不需要更新自身的缓存,直接调用父元素的更新即可
this._parent?.update();
}
setHD(hd: boolean): void {
@@ -521,7 +524,8 @@ export abstract class RenderItem<E extends ERenderItemEvent = ERenderItemEvent>
setAnchor(x: number, y: number): void {
this.anchorX = x;
this.anchorY = y;
this.update();
// 设置锚点时,不需要更新自身的缓存,直接调用父元素的更新即可
this._parent?.update();
}
/**
@@ -609,7 +613,8 @@ export abstract class RenderItem<E extends ERenderItemEvent = ERenderItemEvent>
}
updateTransform() {
this.update();
// 更新变换矩阵时,不需要更新自身的缓存,直接调用父元素的更新即可
this._parent?.update();
this.emit('transform', this, this._transform);
}