diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2015-03-12 13:11:18 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2015-03-12 16:24:53 +0300 |
commit | 13d443496c303c268fe14a4770696b5b68af61eb (patch) | |
tree | 2af9e863d2bcd74dff42b245eae6e30d88dc4650 /intern | |
parent | cef379242bf2e30522f7b73dcc13c79f45b4e9ef (diff) |
Partial fix for T43967: Background is wrong in 2.74
Was missing do-versions code after rotation order change in Cycles.
This is a regression and to be ported to the final release branch.
Diffstat (limited to 'intern')
-rw-r--r-- | intern/cycles/blender/addon/version_update.py | 34 |
1 files changed, 30 insertions, 4 deletions
diff --git a/intern/cycles/blender/addon/version_update.py b/intern/cycles/blender/addon/version_update.py index 741c2010774..2fbb01ba5b8 100644 --- a/intern/cycles/blender/addon/version_update.py +++ b/intern/cycles/blender/addon/version_update.py @@ -21,10 +21,8 @@ import bpy from bpy.app.handlers import persistent -def check_is_new_shading_material(material): - if not material.node_tree: - return False - for node in material.node_tree.nodes: +def check_is_new_shading_ntree(node_tree): + for node in node_tree.nodes: # If material has any node with ONLY new shading system # compatibility then it's considered a Cycles material # and versioning code would need to perform on it. @@ -44,6 +42,24 @@ def check_is_new_shading_material(material): return False +def check_is_new_shading_material(material): + if not material.node_tree: + return False + return check_is_new_shading_ntree(material.node_tree) + + +def check_is_new_shading_world(world): + if not world.node_tree: + return False + return check_is_new_shading_ntree(world.node_tree) + + +def check_is_new_shading_lamp(lamp): + if not lamp.node_tree: + return False + return check_is_new_shading_ntree(lamp.node_tree) + + def foreach_notree_node(nodetree, callback, traversed): if nodetree in traversed: return @@ -61,6 +77,16 @@ def foreach_cycles_node(callback): foreach_notree_node(material.node_tree, callback, traversed) + for world in bpy.data.worlds: + if check_is_new_shading_world(world): + foreach_notree_node(world.node_tree, + callback, + traversed) + for lamp in bpy.data.lamps: + if check_is_new_shading_world(lamp): + foreach_notree_node(lamp.node_tree, + callback, + traversed) def mapping_node_order_flip(node): |