Skip to content

Commit

Permalink
Added support for new render to farm script and cleanup of node.
Browse files Browse the repository at this point in the history
  • Loading branch information
gillesvink committed Apr 13, 2021
1 parent c271eef commit 6006afa
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 95 deletions.
17 changes: 4 additions & 13 deletions gizmos/WriteTank.gizmo
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ Gizmo {
mapsize {0.15 0.15}
addUserKnob {
20 tank_tab
l "Shotgun Write"
l "NFA Shotgun Write"
}
addUserKnob {
4 tk_profile_list
Expand Down Expand Up @@ -253,10 +253,10 @@ Gizmo {
}

addUserKnob {
22 deadlinerender
22 submitOnFarm
l "Render on farm"
T "import DeadlineNukeClient\nDeadlineNukeClient.main()"
t "Use this button to render this nuke script on the renderfarm. Note: make sure you have no license dependent nodes like Neatvideo active in the script."
T "import deadlineSubmission\ndeadlineSubmission.main(nuke.thisNode().name())"
t "Render this node on farm."
-STARTLINE
}

Expand Down Expand Up @@ -412,15 +412,6 @@ Gizmo {
l Promoted
+INVISIBLE
}
addUserKnob {
20 Python
l "Python"
}
addUserKnob {1 tk_before_render l "before render"}
addUserKnob {41 beforeFrameRender l "before each frame" T Write1.beforeFrameRender}
addUserKnob {41 afterFrameRender l "after each frame" T Write1.afterFrameRender}
addUserKnob {1 tk_after_render l "after render"}
addUserKnob {41 renderProgress l "render progress" T Write1.renderProgress}

knobChanged "import nuke\nif hasattr(nuke, \"_shotgun_write_node_handler\"):\n nuke._shotgun_write_node_handler.on_knob_changed_gizmo_callback()"
onCreate "import nuke\nif hasattr(nuke, \"_shotgun_write_node_handler\"):\n nuke._shotgun_write_node_handler.on_node_created_gizmo_callback()"
Expand Down
82 changes: 0 additions & 82 deletions python/tk_nuke_writenode/handler.py
Original file line number Diff line number Diff line change
Expand Up @@ -436,8 +436,6 @@ def convert_sg_to_nuke_write_nodes(self):
"file_type",
"file",
"proxy",
"beforeRender",
"afterRender",
"name",
"xpos",
"ypos",
Expand Down Expand Up @@ -597,8 +595,6 @@ def convert_nuke_to_sg_write_nodes(self):
"file_type",
"file",
"proxy",
"beforeRender",
"afterRender",
"name",
"xpos",
"ypos",
Expand Down Expand Up @@ -776,84 +772,6 @@ def on_copy_path_to_clipboard_gizmo_callback(self):

QtGui.QApplication.clipboard().setText(render_path)

def on_before_render_gizmo_callback(self):
"""
Callback from nuke whenever a tank write node is about to be rendered.
"""
# the current node is the internal 'Write1' Write node:
node = nuke.thisNode()
if not node:
return

views = node.knob("views").value().split()

if len(views) < 2:
# check if proxy render or not
if nuke.root()["proxy"].value():
# proxy mode
out_file = node.knob("proxy").evaluate()
else:
out_file = node.knob("file").evaluate()

out_dir = os.path.dirname(out_file)
self._app.ensure_folder_exists(out_dir)

else:
# stereo or odd number of views...
for view in views:
if nuke.root()["proxy"].value():
# proxy mode
out_file = node.knob("proxy").evaluate(view=view)
else:
out_file = node.knob("file").evaluate(view=view)

out_dir = os.path.dirname(out_file)
self._app.ensure_folder_exists(out_dir)

# add group/parent to list of currently rendering nodes:
grp = nuke.thisGroup()
if grp:
self.__currently_rendering_nodes.add(grp)

# Run any beforeRender code that the user added in the node's Python
# tab manually.
cmd = grp.knob("tk_before_render").value()

if cmd:
try:
exec(cmd)
except Exception:
self._app.log_error(
"The Write node's beforeRender setting failed " "to execute!"
)
raise

def on_after_render_gizmo_callback(self):
"""
Callback from nuke whenever a tank write node has finished being rendered
"""
# the current node is the internal 'Write1' Write node:
node = nuke.thisNode()
if not node:
return

# remove parent/group from list of currently rendering nodes:
grp = nuke.thisGroup()
if grp and grp in self.__currently_rendering_nodes:
self.__currently_rendering_nodes.remove(grp)

# Run any afterRender code that the user added in the node's Python
# tab manually.
cmd = grp.knob("tk_after_render").value()

if cmd:
try:
exec(cmd)
except Exception:
self._app.log_error(
"The Write node's afterRender setting failed " "to execute!"
)
raise

################################################################################################
# Private methods
Expand Down

0 comments on commit 6006afa

Please sign in to comment.