Cache last shading type to skip redundant material style restores

(cherry picked from commit c92a825a94)
This commit is contained in:
falken10vdl
2026-07-21 09:58:06 +02:00
committed by Dion Moult
parent 8face85629
commit 2d453492cc
+6
View File
@@ -1070,6 +1070,8 @@ class Style(bonsai.core.tool.Style):
objects = [tool.Ifc.get_object(e) for e in elements]
tool.Geometry.reload_representation(objects)
_last_shading_type: str | None = None
@classmethod
def restore_material_style_types(cls, shading_type: str) -> bool:
"""Set each IFC material's active_style_type to the richest available for the given viewport mode.
@@ -1080,6 +1082,10 @@ class Style(bonsai.core.tool.Style):
Returns True if any IFC material has IfcSurfaceStyleWithTextures (used to decide color_type).
"""
if cls._last_shading_type == shading_type:
return False
cls._last_shading_type = shading_type
has_any_textures = False
for material in bpy.data.materials:
if not tool.Blender.get_ifc_definition_id(material):