Support compositor node trees in Blender 5.0
Since Blender 5.0 these use a different DNA field. BAT now supports this too, and supports linked node trees as well. See blender/blender@bd61e69be5
This commit is contained in:
@@ -90,7 +90,14 @@ def _expand_generic_mtex(block: blendfile.BlendFileBlock):
|
||||
|
||||
|
||||
def _expand_generic_nodetree(block: blendfile.BlendFileBlock):
|
||||
assert block.dna_type.dna_type_id == b"bNodeTree"
|
||||
if block.dna_type.dna_type_id == b"ID":
|
||||
# This is a placeholder for a linked node tree.
|
||||
yield block
|
||||
return
|
||||
|
||||
assert (
|
||||
block.dna_type.dna_type_id == b"bNodeTree"
|
||||
), f"Expected bNodeTree, got {block.dna_type.dna_type_id.decode()})"
|
||||
|
||||
nodes = block.get_pointer((b"nodes", b"first"))
|
||||
|
||||
@@ -145,7 +152,11 @@ def _expand_generic_idprops(block: blendfile.BlendFileBlock):
|
||||
|
||||
|
||||
def _expand_generic_nodetree_id(block: blendfile.BlendFileBlock):
|
||||
block_ntree = block.get_pointer(b"nodetree", None)
|
||||
if block.bfile.header.version >= 500 and block.bfile.file_subversion >= 4:
|
||||
# Introduced in Blender 5.0, commit bd61e69be5a7c96f1e5da1c86aafc17b839e049f
|
||||
block_ntree = block.get_pointer(b"compositing_node_group", None)
|
||||
else:
|
||||
block_ntree = block.get_pointer(b"nodetree", None)
|
||||
if block_ntree is not None:
|
||||
yield from _expand_generic_nodetree(block_ntree)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user