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

This commit is contained in:
unanmed 2025-02-26 20:34:18 +08:00
parent d2b7a5d430
commit 310e597c58

View File

@ -476,7 +476,8 @@ export abstract class RenderItem<E extends ERenderItemEvent = ERenderItemEvent>
*/ */
setFilter(filter: string) { setFilter(filter: string) {
this.filter = filter; this.filter = filter;
this.update(this); // 设置滤镜时,不需要更新自身的缓存,直接调用父元素的更新即可
this._parent?.update();
} }
/** /**
@ -485,7 +486,8 @@ export abstract class RenderItem<E extends ERenderItemEvent = ERenderItemEvent>
*/ */
setComposite(composite: GlobalCompositeOperation) { setComposite(composite: GlobalCompositeOperation) {
this.composite = composite; this.composite = composite;
this.update(); // 设置混合模式时,不需要更新自身的缓存,直接调用父元素的更新即可
this._parent?.update();
} }
/** /**
@ -494,7 +496,8 @@ export abstract class RenderItem<E extends ERenderItemEvent = ERenderItemEvent>
*/ */
setAlpha(alpha: number) { setAlpha(alpha: number) {
this.alpha = alpha; this.alpha = alpha;
this.update(); // 设置不透明度时,不需要更新自身的缓存,直接调用父元素的更新即可
this._parent?.update();
} }
setHD(hd: boolean): void { setHD(hd: boolean): void {
@ -521,7 +524,8 @@ export abstract class RenderItem<E extends ERenderItemEvent = ERenderItemEvent>
setAnchor(x: number, y: number): void { setAnchor(x: number, y: number): void {
this.anchorX = x; this.anchorX = x;
this.anchorY = y; this.anchorY = y;
this.update(); // 设置锚点时,不需要更新自身的缓存,直接调用父元素的更新即可
this._parent?.update();
} }
/** /**
@ -609,7 +613,8 @@ export abstract class RenderItem<E extends ERenderItemEvent = ERenderItemEvent>
} }
updateTransform() { updateTransform() {
this.update(); // 更新变换矩阵时,不需要更新自身的缓存,直接调用父元素的更新即可
this._parent?.update();
this.emit('transform', this, this._transform); this.emit('transform', this, this._transform);
} }