Update material handling to dispose of originals in model rendering and viewport host

This commit is contained in:
2026-04-04 19:06:57 +02:00
parent 6eef0142e2
commit fdc582a494
2 changed files with 16 additions and 4 deletions

View File

@@ -88,11 +88,17 @@ function applyWireframeMaterialPresentation(group: Group) {
}
if (Array.isArray(maybeMesh.material)) {
maybeMesh.material = maybeMesh.material.map((material) => createWireframeMaterial(material));
const originalMaterials = maybeMesh.material;
maybeMesh.material = originalMaterials.map((material) => createWireframeMaterial(material));
for (const material of originalMaterials) {
material.dispose();
}
return;
}
maybeMesh.material = createWireframeMaterial(maybeMesh.material);
const originalMaterial = maybeMesh.material;
maybeMesh.material = createWireframeMaterial(originalMaterial);
originalMaterial.dispose();
});
}

View File

@@ -719,11 +719,17 @@ export class ViewportHost {
}
if (Array.isArray(maybeMesh.material)) {
maybeMesh.material = maybeMesh.material.map((material) => this.createWireframeDisplayMaterial(material));
const originalMaterials = maybeMesh.material;
maybeMesh.material = originalMaterials.map((material) => this.createWireframeDisplayMaterial(material));
for (const material of originalMaterials) {
material.dispose();
}
return;
}
maybeMesh.material = this.createWireframeDisplayMaterial(maybeMesh.material);
const originalMaterial = maybeMesh.material;
maybeMesh.material = this.createWireframeDisplayMaterial(originalMaterial);
originalMaterial.dispose();
});
}