You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
2026-07-26 — Encapsulated _mat_utils.py's 15 loose module-level helpers onto a _MatUtilsInternal base (mirror of mayatk); closes a blendertk-vs-mayatk divergence.MatUtils and MatUpdater now inherit _MatUtilsInternal (the gold-standard _<Class>Internal pattern), so _is_gp_material / _abspath / _principled_node / _resolve_images / … are @staticmethods reached as _MatUtilsInternal._x(...) rather than loose module functions. The cross-module importers (mat_manifest, render_opacity, scene_exporter/task_manager) and the texture_path_editor test were updated to match; module constants (SHADER_TEMPLATES, _PBR_DIRECT, …) stay module-level. No behavior change — private helpers only, no public-surface change beyond the two class base annotations. Verified in fresh Blender 5.1: test_texture_path_editor (13/13), test_render_opacity (26/26), test_scene_exporter, test_mat_anim_utils — all PASS.