Skip to content

Commit c8dfbcb

Browse files
Merge pull request #162 from BrendanParmer/Blender-v4.5
Blender v4.5
2 parents 4412ce9 + b2f1c2c commit c8dfbcb

File tree

5 files changed

+535
-273
lines changed

5 files changed

+535
-273
lines changed

NodeToPython/compositor/operator.py

Lines changed: 43 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -93,45 +93,46 @@ def _initialize_compositor_node_tree(self, ntp_nt, nt_name):
9393
self._write(f"{ntp_nt.var}.{bool_setting} = True")
9494

9595

96-
def _set_color_balance_settings(self, node: CompositorNodeColorBalance
97-
) -> None:
98-
"""
99-
Sets the color balance settings so we only set the active variables,
100-
preventing conflict
101-
102-
node (CompositorNodeColorBalance): the color balance node
103-
"""
104-
if node.correction_method == 'LIFT_GAMMA_GAIN':
105-
lst = [NTPNodeSetting("correction_method", ST.ENUM),
106-
NTPNodeSetting("gain", ST.VEC3, max_version_=(3, 5, 0)),
107-
NTPNodeSetting("gain", ST.COLOR, min_version_=(3, 5, 0)),
108-
NTPNodeSetting("gamma", ST.VEC3, max_version_=(3, 5, 0)),
109-
NTPNodeSetting("gamma", ST.COLOR, min_version_=(3, 5, 0)),
110-
NTPNodeSetting("lift", ST.VEC3, max_version_=(3, 5, 0)),
111-
NTPNodeSetting("lift", ST.COLOR, min_version_=(3, 5, 0))]
112-
elif node.correction_method == 'OFFSET_POWER_SLOPE':
113-
lst = [NTPNodeSetting("correction_method", ST.ENUM),
114-
NTPNodeSetting("offset", ST.VEC3, max_version_=(3, 5, 0)),
115-
NTPNodeSetting("offset", ST.COLOR, min_version_=(3, 5, 0)),
116-
NTPNodeSetting("offset_basis", ST.FLOAT),
117-
NTPNodeSetting("power", ST.VEC3, max_version_=(3, 5, 0)),
118-
NTPNodeSetting("power", ST.COLOR, min_version_=(3, 5, 0)),
119-
NTPNodeSetting("slope", ST.VEC3, max_version_=(3, 5, 0)),
120-
NTPNodeSetting("slope", ST.COLOR, min_version_=(3, 5, 0))]
121-
elif node.correction_method == 'WHITEPOINT':
122-
lst = [NTPNodeSetting("correction_method", ST.ENUM),
123-
NTPNodeSetting("input_temperature", ST.FLOAT),
124-
NTPNodeSetting("input_tint", ST.FLOAT),
125-
NTPNodeSetting("output_temperature", ST.FLOAT),
126-
NTPNodeSetting("output_tint", ST.FLOAT)]
127-
else:
128-
self.report({'ERROR'},
129-
f"Unknown color balance correction method "
130-
f"{enum_to_py_str(node.correction_method)}")
131-
return
132-
133-
color_balance_info = self._node_infos['CompositorNodeColorBalance']
134-
self._node_infos['CompositorNodeColorBalance'] = color_balance_info._replace(attributes_ = lst)
96+
if bpy.app.version < (4, 5, 0):
97+
def _set_color_balance_settings(self, node: CompositorNodeColorBalance
98+
) -> None:
99+
"""
100+
Sets the color balance settings so we only set the active variables,
101+
preventing conflict
102+
103+
node (CompositorNodeColorBalance): the color balance node
104+
"""
105+
if node.correction_method == 'LIFT_GAMMA_GAIN':
106+
lst = [NTPNodeSetting("correction_method", ST.ENUM),
107+
NTPNodeSetting("gain", ST.VEC3, max_version_=(3, 5, 0)),
108+
NTPNodeSetting("gain", ST.COLOR, min_version_=(3, 5, 0), max_version_=(4, 5, 0)),
109+
NTPNodeSetting("gamma", ST.VEC3, max_version_=(3, 5, 0)),
110+
NTPNodeSetting("gamma", ST.COLOR, min_version_=(3, 5, 0), max_version_=(4, 5, 0)),
111+
NTPNodeSetting("lift", ST.VEC3, max_version_=(3, 5, 0)),
112+
NTPNodeSetting("lift", ST.COLOR, min_version_=(3, 5, 0), max_version_=(4, 5, 0))]
113+
elif node.correction_method == 'OFFSET_POWER_SLOPE':
114+
lst = [NTPNodeSetting("correction_method", ST.ENUM),
115+
NTPNodeSetting("offset", ST.VEC3, max_version_=(3, 5, 0)),
116+
NTPNodeSetting("offset", ST.COLOR, min_version_=(3, 5, 0), max_version_=(4, 5, 0)),
117+
NTPNodeSetting("offset_basis", ST.FLOAT),
118+
NTPNodeSetting("power", ST.VEC3, max_version_=(3, 5, 0)),
119+
NTPNodeSetting("power", ST.COLOR, min_version_=(3, 5, 0), max_version_=(4, 5, 0)),
120+
NTPNodeSetting("slope", ST.VEC3, max_version_=(3, 5, 0)),
121+
NTPNodeSetting("slope", ST.COLOR, min_version_=(3, 5, 0), max_version_=(4, 5, 0))]
122+
elif node.correction_method == 'WHITEPOINT':
123+
lst = [NTPNodeSetting("correction_method", ST.ENUM, max_version_=(4, 5, 0)),
124+
NTPNodeSetting("input_temperature", ST.FLOAT, max_version_=(4, 5, 0)),
125+
NTPNodeSetting("input_tint", ST.FLOAT, max_version_=(4, 5, 0)),
126+
NTPNodeSetting("output_temperature", ST.FLOAT, max_version_=(4, 5, 0)),
127+
NTPNodeSetting("output_tint", ST.FLOAT, max_version_=(4, 5, 0))]
128+
else:
129+
self.report({'ERROR'},
130+
f"Unknown color balance correction method "
131+
f"{enum_to_py_str(node.correction_method)}")
132+
return
133+
134+
color_balance_info = self._node_infos['CompositorNodeColorBalance']
135+
self._node_infos['CompositorNodeColorBalance'] = color_balance_info._replace(attributes_ = lst)
135136

136137
def _process_node(self, node: Node, ntp_nt: NTP_NodeTree):
137138
"""
@@ -143,8 +144,9 @@ def _process_node(self, node: Node, ntp_nt: NTP_NodeTree):
143144
"""
144145
node_var: str = self._create_node(node, ntp_nt.var)
145146

146-
if node.bl_idname == 'CompositorNodeColorBalance':
147-
self._set_color_balance_settings(node)
147+
if bpy.app.version < (4, 5, 0):
148+
if node.bl_idname == 'CompositorNodeColorBalance':
149+
self._set_color_balance_settings(node)
148150

149151
self._set_settings_defaults(node)
150152
self._hide_hidden_sockets(node)

0 commit comments

Comments
 (0)