Skip to content

Commit cb9e3bb

Browse files
authored
Early out of the child processing, improve performance of debug tiles plugin enable toggle (#1446)
1 parent ff585ff commit cb9e3bb

2 files changed

Lines changed: 10 additions & 4 deletions

File tree

src/core/renderer/tiles/TilesRendererBase.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -810,6 +810,12 @@ export class TilesRendererBase {
810810
ensureChildrenArePreprocessed( tile, immediate = false ) {
811811

812812
const children = tile.children;
813+
if ( tile.__childrenProcessed === children.length ) {
814+
815+
return;
816+
817+
}
818+
813819
for ( let i = 0, l = children.length; i < l; i ++ ) {
814820

815821
const child = children[ i ];

src/three/plugins/DebugTilesPlugin.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -911,21 +911,21 @@ export class DebugTilesPlugin {
911911
_onDisposeModel( tile ) {
912912

913913
const cached = tile.cached;
914-
if ( cached.boxHelperGroup ) {
914+
if ( cached?.boxHelperGroup ) {
915915

916916
cached.boxHelperGroup.children[ 0 ].geometry.dispose();
917917
delete cached.boxHelperGroup;
918918

919919
}
920920

921-
if ( cached.sphereHelper ) {
921+
if ( cached?.sphereHelper ) {
922922

923923
cached.sphereHelper.geometry.dispose();
924924
delete cached.sphereHelper;
925925

926926
}
927927

928-
if ( cached.regionHelper ) {
928+
if ( cached?.regionHelper ) {
929929

930930
cached.regionHelper.geometry.dispose();
931931
delete cached.regionHelper;
@@ -958,7 +958,7 @@ export class DebugTilesPlugin {
958958

959959
this._onDisposeModel( tile );
960960

961-
} );
961+
}, null, false );
962962

963963
this.boxGroup?.removeFromParent();
964964
this.sphereGroup?.removeFromParent();

0 commit comments

Comments
 (0)