2026-02-16

This commit is contained in:
2026-03-17 15:25:32 -06:00
parent d5dd373de0
commit 60100fbab2
560 changed files with 33397 additions and 20776 deletions
@@ -7,6 +7,7 @@ between Blender 4.2 LTS, 4.5 LTS, and 5.0.
import bpy
from bpy.utils import register_class, unregister_class
from . import version
from .. import config
def safe_register_class(cls):
@@ -116,7 +117,7 @@ def get_scene_compositor_node_tree(scene):
Get the compositor node tree from a scene, handling version differences.
In Blender 4.2/4.5: scene.node_tree
In Blender 5.0+: scene.compositing_node_tree
In Blender 5.0+: scene.compositing_node_group
Args:
scene: The scene object
@@ -124,14 +125,35 @@ def get_scene_compositor_node_tree(scene):
Returns:
NodeTree or None: The compositor node tree if available
"""
# Blender 5.0+ uses compositing_node_tree
# Blender 5.0+ uses compositing_node_group (not compositing_node_tree!)
if version.is_version_at_least(5, 0, 0):
if hasattr(scene, 'compositing_node_tree') and scene.compositing_node_tree:
return scene.compositing_node_tree
# Try compositing_node_group first (Blender 5.0+)
try:
node_tree = getattr(scene, 'compositing_node_group', None)
config.debug_print(f"[Atomic Debug] get_scene_compositor_node_tree: scene='{scene.name}', use_nodes={scene.use_nodes}, compositing_node_group={node_tree}")
if node_tree:
config.debug_print(f"[Atomic Debug] get_scene_compositor_node_tree: Found compositor node tree: {node_tree.name}")
return node_tree
except (AttributeError, TypeError) as e:
config.debug_print(f"[Atomic Debug] get_scene_compositor_node_tree: compositing_node_group access failed: {e}")
# Fallback: try compositing_node_tree (in case it exists in some versions)
try:
node_tree = getattr(scene, 'compositing_node_tree', None)
config.debug_print(f"[Atomic Debug] get_scene_compositor_node_tree: compositing_node_tree={node_tree}")
if node_tree:
config.debug_print(f"[Atomic Debug] get_scene_compositor_node_tree: Found via compositing_node_tree: {node_tree.name}")
return node_tree
except (AttributeError, TypeError) as e:
config.debug_print(f"[Atomic Debug] get_scene_compositor_node_tree: compositing_node_tree access failed: {e}")
else:
# Blender 4.2/4.5 uses node_tree
if hasattr(scene, 'node_tree') and scene.node_tree:
return scene.node_tree
try:
node_tree = getattr(scene, 'node_tree', None)
if node_tree:
return node_tree
except (AttributeError, TypeError):
pass
return None