diff --git a/vendor/deadline/custom/plugins/HarmonyOpenPype/HarmonyOpenPype.ico b/vendor/deadline/custom/plugins/HarmonyOpenPype/HarmonyOpenPype.ico new file mode 100644 index 0000000000..cf6f6bfcfa Binary files /dev/null and b/vendor/deadline/custom/plugins/HarmonyOpenPype/HarmonyOpenPype.ico differ diff --git a/vendor/deadline/custom/plugins/HarmonyOpenPype/HarmonyOpenPype.options b/vendor/deadline/custom/plugins/HarmonyOpenPype/HarmonyOpenPype.options new file mode 100644 index 0000000000..efd44b4f94 --- /dev/null +++ b/vendor/deadline/custom/plugins/HarmonyOpenPype/HarmonyOpenPype.options @@ -0,0 +1,532 @@ +[SceneFile] +Type=filename +Label=Scene Filename +Category=Global Settings +CategoryOrder=0 +Index=0 +Description=The scene filename as it exists on the network. +Required=false +DisableIfBlank=true + +[Environment] +Type=filename +Label=Scene Environment +Category=Global Settings +CategoryOrder=0 +Index=1 +Description=The Environment for the scene. +Required=false +DisableIfBlank=true + +[Job] +Type=filename +Label=Scene Job +Category=Global Settings +CategoryOrder=0 +Index=2 +Description=The Job that the scene belongs to. +Required=false +DisableIfBlank=true + +[SceneName] +Type=filename +Label=Scene Name +Category=Global Settings +CategoryOrder=0 +Index=3 +Description=The name of the scene to render +Required=false +DisableIfBlank=true + +[SceneVersion] +Type=filename +Label=Scene Version +Category=Global Settings +CategoryOrder=0 +Index=4 +Description=The version of the scene to render. +Required=false +DisableIfBlank=true + +[Version] +Type=enum +Values=10;11;12 +Label=Harmony Version +Category=Global Settings +CategoryOrder=0 +Index=5 +Description=The version of Harmony to use. +Required=false +DisableIfBlank=true + +[IsDatabase] +Type=Boolean +Label=Is Database Scene +Category=Global Settings +CategoryOrder=0 +Index=6 +Description=Whether or not the scene is in the database or not +Required=false +DisableIfBlank=true + +[Camera] +Type=string +Label=Camera +Category=Render Settings +CategoryOrder=1 +Index=0 +Description=Specifies the camera to use for rendering images. If Blank, the scene will be rendered with the current Camera. +Required=false +DisableIfBlank=true + +[UsingResPreset] +Type=Boolean +Label=Use Resolution Preset +Category=Render Settings +CategoryOrder=1 +Index=1 +Description=Whether or not you are using a resolution preset. +Required=false +DisableIfBlank=true + +[ResolutionName] +Type=enum +Values=HDTV_1080p24;HDTV_1080p25;HDTV_720p24;4K_UHD;8K_UHD;DCI_2K;DCI_4K;film-2K;film-4K;film-1.33_H;film-1.66_H;film-1.66_V;Cineon;NTSC;PAL;2160p;1440p;1080p;720p;480p;360p;240p;low;Web_Video;Game_512;Game_512_Ortho;WebCC_Preview;Custom +Label=Resolution Preset +Category=Render Settings +CategoryOrder=1 +Index=2 +Description=The resolution preset to use. +Required=true +Default=HDTV_1080p24 + +[PresetName] +Type=string +Label=Preset Name +Category=Render Settings +CategoryOrder=1 +Index=3 +Description=Specify the custom resolution name. +Required=true +Default= + +[ResolutionX] +Type=integer +Label=Resolution X +Minimum=0 +Maximum=1000000 +Category=Render Settings +CategoryOrder=1 +Index=4 +Description=Specifies the width of the rendered images. If 0, then the current resolution and Field of view will be used. +Required=true +Default=1920 + +[ResolutionY] +Type=integer +Label=Resolution Y +Minimum=0 +Maximum=1000000 +Category=Render Settings +CategoryOrder=1 +Index=5 +Description=Specifies the height of the rendered images. If 0, then the current resolution and Field of view will be used. +Required=true +Default=1080 + +[FieldOfView] +Type=float +Label=Field Of View +Minimum=0 +Maximum=89 +DecimalPlaces=2 +Category=Render Settings +CategoryOrder=1 +Index=6 +Description=Specifies the field of view of the rendered images. If 0, then the current resolution and Field of view will be used. +Required=true +Default=41.11 + +[Output0Node] +Type=string +Label=Render Node 0 Name +Category=Output Settings +CategoryOrder=2 +Index=0 +Description=The name of the render node. +Required=false +DisableIfBlank=true + +[Output0Type] +Type=enum +Values=Image;Movie +Label=Render Node 0 Type +Category=Output Settings +CategoryOrder=2 +Index=1 +Description=The type of output that the render node is producing. +Required=false +DisableIfBlank=true + +[Output0Path] +Type=string +Label=Render Node 0 Path +Category=Output Settings +CategoryOrder=2 +Index=2 +Description=The output path and file name of the output files. +Required=false +DisableIfBlank=true + +[Output0LeadingZero] +Type=integer +Label=Render Node 0 Leading Zeroes +Category=Output Settings +CategoryOrder=2 +Minimum=0 +Maximum=5 +Index=3 +Description=The number of leading zeroes for a 1 digit frame number. (1 less then the full padded length) +Required=false +DisableIfBlank=true + +[Output0Format] +Type=string +Label=Render Node 0 Format +Category=Output Settings +CategoryOrder=2 +Index=4 +Description=The format for the rendered output images. +Required=false +DisableIfBlank=true + +[Output0StartFrame] +Type=integer +Label=Render Node 0 Start Frame +Category=Output Settings +CategoryOrder=2 +Minimum=1 +Index=5 +Description=The frame that will correspond to frame one when numbering. If this value is not 1 then the monitor's job output features will not work properly. +Required=false +DisableIfBlank=true + +[Output1Node] +Type=string +Label=Render Node 1 Name +Category=Output Settings +CategoryOrder=2 +Index=6 +Description=The name of the render node. +Required=false +DisableIfBlank=true + +[Output1Type] +Type=enum +Values=Image;Movie +Label=Render Node 1 Type +Category=Output Settings +CategoryOrder=2 +Index=7 +Description=The type of output that the render node is producing. +Required=false +DisableIfBlank=true + +[Output1Path] +Type=string +Label=Render Node 1 Path +Category=Output Settings +CategoryOrder=2 +Index=8 +Description=The output path and file name of the output files. +Required=false +DisableIfBlank=true + +[Output1LeadingZero] +Type=integer +Label=Render Node 1 Leading Zeroes +Category=Output Settings +CategoryOrder=2 +Minimum=0 +Maximum=5 +Index=9 +Description=The number of leading zeroes for a 1 digit frame number. (1 less then the full padded length) +Required=false +DisableIfBlank=true + +[Output1Format] +Type=string +Label=Render Node 1 Format +Category=Output Settings +CategoryOrder=2 +Index=10 +Description=The format for the rendered output images. +Required=false +DisableIfBlank=true + +[Output1StartFrame] +Type=integer +Label=Render Node 1 Start Frame +Category=Output Settings +CategoryOrder=2 +Minimum=1 +Index=11 +Description=The frame that will correspond to frame one when numbering. If this value is not 1 then the monitor's job output features will not work properly. +Required=false +DisableIfBlank=true + +[Output2Node] +Type=string +Label=Render Node 2 Name +Category=Output Settings +CategoryOrder=2 +Index=12 +Description=The name of the render node. +Required=false +DisableIfBlank=true + +[Output2Type] +Type=enum +Values=Image;Movie +Label=Render Node 2 Type +Category=Output Settings +CategoryOrder=2 +Index=13 +Description=The type of output that the render node is producing. +Required=false +DisableIfBlank=true + +[Output2Path] +Type=string +Label=Render Node 2 Path +Category=Output Settings +CategoryOrder=2 +Index=14 +Description=The output path and file name of the output files. +Required=false +DisableIfBlank=true + +[Output2LeadingZero] +Type=integer +Label=Render Node 2 Leading Zeroes +Category=Output Settings +CategoryOrder=2 +Minimum=0 +Maximum=5 +Index=15 +Description=The number of leading zeroes for a 1 digit frame number. (1 less then the full padded length) +Required=false +DisableIfBlank=true + +[Output2Format] +Type=string +Label=Render Node 2 Format +Category=Output Settings +CategoryOrder=2 +Index=16 +Description=The format for the rendered output images. +Required=false +DisableIfBlank=true + +[Output2StartFrame] +Type=integer +Label=Render Node 2 Start Frame +Category=Output Settings +CategoryOrder=2 +Minimum=1 +Index=17 +Description=The frame that will correspond to frame one when numbering. If this value is not 1 then the monitor's job output features will not work properly. +Required=false +DisableIfBlank=true + +[Output3Node] +Type=string +Label=Render Node 3 Name +Category=Output Settings +CategoryOrder=2 +Index=18 +Description=The name of the render node. +Required=false +DisableIfBlank=true + +[Output3Type] +Type=enum +Values=Image;Movie +Label=Render Node 3 Type +Category=Output Settings +CategoryOrder=2 +Index=19 +Description=The type of output that the render node is producing. +Required=false +DisableIfBlank=true + +[Output3Path] +Type=string +Label=Render Node 3 Path +Category=Output Settings +CategoryOrder=2 +Index=20 +Description=The output path and file name of the output files. +Required=false +DisableIfBlank=true + +[Output3LeadingZero] +Type=integer +Label=Render Node 3 Leading Zeroes +Category=Output Settings +CategoryOrder=2 +Minimum=0 +Maximum=5 +Index=21 +Description=The number of leading zeroes for a 1 digit frame number. (1 less then the full padded length) +Required=false +DisableIfBlank=true + +[Output3Format] +Type=string +Label=Render Node 3 Format +Category=Output Settings +CategoryOrder=2 +Index=22 +Description=The format for the rendered output images. +Required=false +DisableIfBlank=true + +[Output3StartFrame] +Type=integer +Label=Render Node 3 Start Frame +Category=Output Settings +CategoryOrder=2 +Minimum=1 +Index=23 +Description=The frame that will correspond to frame one when numbering. If this value is not 1 then the monitor's job output features will not work properly. +Required=false +DisableIfBlank=true + +[Output4Node] +Type=string +Label=Render Node 4 Name +Category=Output Settings +CategoryOrder=2 +Index=24 +Description=The name of the render node. +Required=false +DisableIfBlank=true + +[Output4Type] +Type=enum +Values=Image;Movie +Label=Render Node 4 Type +Category=Output Settings +CategoryOrder=2 +Index=25 +Description=The type of output that the render node is producing. +Required=false +DisableIfBlank=true + +[Output4Path] +Type=string +Label=Render Node 4 Path +Category=Output Settings +CategoryOrder=2 +Index=26 +Description=The output path and file name of the output files. +Required=false +DisableIfBlank=true + +[Output4LeadingZero] +Type=integer +Label=Render Node 4 Leading Zeroes +Category=Output Settings +CategoryOrder=2 +Minimum=0 +Maximum=5 +Index=27 +Description=The number of leading zeroes for a 1 digit frame number. (1 less then the full padded length) +Required=false +DisableIfBlank=true + +[Output4Format] +Type=string +Label=Render Node 4 Format +Category=Output Settings +CategoryOrder=2 +Index=28 +Description=The format for the rendered output images. +Required=false +DisableIfBlank=true + +[Output4StartFrame] +Type=integer +Label=Render Node 4 Start Frame +Category=Output Settings +CategoryOrder=2 +Minimum=1 +Index=29 +Description=The frame that will correspond to frame one when numbering. If this value is not 1 then the monitor's job output features will not work properly. +Required=false +DisableIfBlank=true + +[Output5Node] +Type=string +Label=Render Node 5 Name +Category=Output Settings +CategoryOrder=2 +Index=30 +Description=The name of the render node. +Required=false +DisableIfBlank=true + +[Output5Type] +Type=enum +Values=Image;Movie +Label=Render Node 5 Type +Category=Output Settings +CategoryOrder=2 +Index=31 +Description=The type of output that the render node is producing. +Required=false +DisableIfBlank=true + +[Output5Path] +Type=string +Label=Render Node 5 Path +Category=Output Settings +CategoryOrder=2 +Index=32 +Description=The output path and file name of the output files. +Required=false +DisableIfBlank=true + +[Output5LeadingZero] +Type=integer +Label=Render Node 5 Leading Zeroes +Category=Output Settings +CategoryOrder=2 +Minimum=0 +Maximum=5 +Index=33 +Description=The number of leading zeroes for a 1 digit frame number. (1 less then the full padded length) +Required=false +DisableIfBlank=true + +[Output5Format] +Type=string +Label=Render Node 5 Format +Category=Output Settings +CategoryOrder=2 +Index=34 +Description=The format for the rendered output images. +Required=false +DisableIfBlank=true + +[Output5StartFrame] +Type=integer +Label=Render Node 5 Start Frame +Category=Output Settings +CategoryOrder=2 +Minimum=1 +Index=35 +Description=The frame that will correspond to frame one when numbering. If this value is not 1 then the monitor's job output features will not work properly. +Required=false +DisableIfBlank=true \ No newline at end of file diff --git a/vendor/deadline/custom/plugins/HarmonyOpenPype/HarmonyOpenPype.param b/vendor/deadline/custom/plugins/HarmonyOpenPype/HarmonyOpenPype.param new file mode 100644 index 0000000000..ff2949766c --- /dev/null +++ b/vendor/deadline/custom/plugins/HarmonyOpenPype/HarmonyOpenPype.param @@ -0,0 +1,80 @@ +[About] +Type=label +Label=About +Category=About Plugin +CategoryOrder=-1 +Index=0 +Default=Harmony Render Plugin for Deadline +Description=Not configurable + +[ConcurrentTasks] +Type=label +Label=ConcurrentTasks +Category=About Plugin +CategoryOrder=-1 +Index=0 +Default=True +Description=Not configurable + +[Harmony_RenderExecutable_10] +Type=multilinemultifilename +Category=Render Executables +CategoryOrder=0 +Index=0 +Label=Harmony 10 Render Executable +Description=The path to the Harmony Render executable file used for rendering. Enter alternative paths on separate lines. +Default=C:\Program Files (x86)\Toon Boom Animation\Toon Boom Harmony 10.0\win64\bin\Stage.exe + +[Harmony_RenderExecutable_11] +Type=multilinemultifilename +Category=Render Executables +CategoryOrder=0 +Index=1 +Label=Harmony 11 Render Executable +Description=The path to the Harmony Render executable file used for rendering. Enter alternative paths on separate lines. +Default=C:\Program Files (x86)\Toon Boom Animation\Toon Boom Harmony 11.0\win64\bin\Stage.exe + +[Harmony_RenderExecutable_12] +Type=multilinemultifilename +Category=Render Executables +CategoryOrder=0 +Index=2 +Label=Harmony 12 Render Executable +Description=The path to the Harmony Render executable file used for rendering. Enter alternative paths on separate lines. +Default=C:\Program Files (x86)\Toon Boom Animation\Toon Boom Harmony 12.0 Premium\win64\bin\HarmonyPremium.exe;/Applications/Toon Boom Harmony 12.0 Premium/Harmony Premium.app/Contents/MacOS/Harmony Premium;/usr/local/ToonBoomAnimation/harmonyPremium_12/lnx86_64/bin/HarmonyPremium + +[Harmony_RenderExecutable_14] +Type=multilinemultifilename +Category=Render Executables +CategoryOrder=0 +Index=3 +Label=Harmony 14 Render Executable +Description=The path to the Harmony Render executable file used for rendering. Enter alternative paths on separate lines. +Default=C:\Program Files (x86)\Toon Boom Animation\Toon Boom Harmony 14.0 Premium\win64\bin\HarmonyPremium.exe;/Applications/Toon Boom Harmony 14.0 Premium/Harmony Premium.app/Contents/MacOS/Harmony Premium;/usr/local/ToonBoomAnimation/harmonyPremium_14/lnx86_64/bin/HarmonyPremium + +[Harmony_RenderExecutable_15] +Type=multilinemultifilename +Category=Render Executables +CategoryOrder=0 +Index=4 +Label=Harmony 15 Render Executable +Description=The path to the Harmony Render executable file used for rendering. Enter alternative paths on separate lines. +Default=C:\Program Files (x86)\Toon Boom Animation\Toon Boom Harmony 15.0 Premium\win64\bin\HarmonyPremium.exe;/Applications/Toon Boom Harmony 15.0 Premium/Harmony Premium.app/Contents/MacOS/Harmony Premium;/usr/local/ToonBoomAnimation/harmonyPremium_15.0/lnx86_64/bin/HarmonyPremium + +[Harmony_RenderExecutable_17] +Type=multilinemultifilename +Category=Render Executables +CategoryOrder=0 +Index=4 +Label=Harmony 17 Render Executable +Description=The path to the Harmony Render executable file used for rendering. Enter alternative paths on separate lines. +Default=c:\Program Files (x86)\Toon Boom Animation\Toon Boom Harmony 17 Premium\win64\bin\HarmonyPremium.exe;/Applications/Toon Boom Harmony 17 Premium/Harmony Premium.app/Contents/MacOS/Harmony Premium;/usr/local/ToonBoomAnimation/harmonyPremium_17/lnx86_64/bin/HarmonyPremium + +[Harmony_RenderExecutable_20] +Type=multilinemultifilename +Category=Render Executables +CategoryOrder=0 +Index=4 +Label=Harmony 20 Render Executable +Description=The path to the Harmony Render executable file used for rendering. Enter alternative paths on separate lines. +Default=c:\Program Files (x86)\Toon Boom Animation\Toon Boom Harmony 20 Premium\win64\bin\HarmonyPremium.exe;/Applications/Toon Boom Harmony 20 Premium/Harmony Premium.app/Contents/MacOS/Harmony Premium;/usr/local/ToonBoomAnimation/harmonyPremium_20/lnx86_64/bin/HarmonyPremium \ No newline at end of file diff --git a/vendor/deadline/custom/plugins/HarmonyOpenPype/HarmonyOpenPype.py b/vendor/deadline/custom/plugins/HarmonyOpenPype/HarmonyOpenPype.py new file mode 100644 index 0000000000..0615af95dd --- /dev/null +++ b/vendor/deadline/custom/plugins/HarmonyOpenPype/HarmonyOpenPype.py @@ -0,0 +1,149 @@ +from System import * +from System.Diagnostics import * +from System.IO import * +from System.Text import * + +from Deadline.Plugins import * +from Deadline.Scripting import * + +def GetDeadlinePlugin(): + return HarmonyOpenPypePlugin() + +def CleanupDeadlinePlugin( deadlinePlugin ): + deadlinePlugin.Cleanup() + +class HarmonyOpenPypePlugin( DeadlinePlugin ): + + def __init__( self ): + self.InitializeProcessCallback += self.InitializeProcess + self.RenderExecutableCallback += self.RenderExecutable + self.RenderArgumentCallback += self.RenderArgument + self.CheckExitCodeCallback += self.CheckExitCode + + def Cleanup( self ): + print("Cleanup") + for stdoutHandler in self.StdoutHandlers: + del stdoutHandler.HandleCallback + + del self.InitializeProcessCallback + del self.RenderExecutableCallback + del self.RenderArgumentCallback + + def CheckExitCode( self, exitCode ): + print("check code") + if exitCode != 0: + if exitCode == 100: + self.LogInfo( "Renderer reported an error with error code 100. This will be ignored, since the option to ignore it is specified in the Job Properties." ) + else: + self.FailRender( "Renderer returned non-zero error code %d. Check the renderer's output." % exitCode ) + + def InitializeProcess( self ): + self.PluginType = PluginType.Simple + self.StdoutHandling = True + self.PopupHandling = True + + self.AddStdoutHandlerCallback( "Rendered frame ([0-9]+)" ).HandleCallback += self.HandleStdoutProgress + + def HandleStdoutProgress( self ): + startFrame = self.GetStartFrame() + endFrame = self.GetEndFrame() + if( endFrame - startFrame + 1 != 0 ): + self.SetProgress( 100 * ( int(self.GetRegexMatch(1)) - startFrame + 1 ) / ( endFrame - startFrame + 1 ) ) + + def RenderExecutable( self ): + version = int( self.GetPluginInfoEntry( "Version" ) ) + exe = "" + exeList = self.GetConfigEntry( "Harmony_RenderExecutable_" + str(version) ) + exe = FileUtils.SearchFileList( exeList ) + if( exe == "" ): + self.FailRender( "Harmony render executable was not found in the configured separated list \"" + exeList + "\". The path to the render executable can be configured from the Plugin Configuration in the Deadline Monitor." ) + return exe + + def RenderArgument( self ): + renderArguments = "-batch" + + if self.GetBooleanPluginInfoEntryWithDefault( "UsingResPreset", False ): + resName = self.GetPluginInfoEntryWithDefault( "ResolutionName", "HDTV_1080p24" ) + if resName == "Custom": + renderArguments += " -res " + self.GetPluginInfoEntryWithDefault( "PresetName", "HDTV_1080p24" ) + else: + renderArguments += " -res " + resName + else: + resolutionX = self.GetIntegerPluginInfoEntryWithDefault( "ResolutionX", -1 ) + resolutionY = self.GetIntegerPluginInfoEntryWithDefault( "ResolutionY", -1 ) + fov = self.GetFloatPluginInfoEntryWithDefault( "FieldOfView", -1 ) + + if resolutionX > 0 and resolutionY > 0 and fov > 0: + renderArguments += " -res " + str( resolutionX ) + " " + str( resolutionY ) + " " + str( fov ) + + camera = self.GetPluginInfoEntryWithDefault( "Camera", "" ) + + if not camera == "": + renderArguments += " -camera " + camera + + startFrame = str( self.GetStartFrame() ) + endFrame = str( self.GetEndFrame() ) + + renderArguments += " -frames " + startFrame + " " + endFrame + + if not self.GetBooleanPluginInfoEntryWithDefault( "IsDatabase", False ): + sceneFilename = self.GetPluginInfoEntryWithDefault( "SceneFile", self.GetDataFilename() ) + sceneFilename = RepositoryUtils.CheckPathMapping( sceneFilename ) + renderArguments += " \"" + sceneFilename + "\"" + else: + environment = self.GetPluginInfoEntryWithDefault( "Environment", "" ) + renderArguments += " -env " + environment + job = self.GetPluginInfoEntryWithDefault( "Job", "" ) + renderArguments += " -job " + job + scene = self.GetPluginInfoEntryWithDefault( "SceneName", "" ) + renderArguments += " -scene " + scene + version = self.GetPluginInfoEntryWithDefault( "SceneVersion", "" ) + renderArguments += " -version " + version + + #tempSceneDirectory = self.CreateTempDirectory( "thread" + str(self.GetThreadNumber()) ) + #preRenderScript = + rendernodeNum = 0 + scriptBuilder = StringBuilder() + + while True: + nodeName = self.GetPluginInfoEntryWithDefault( "Output" + str( rendernodeNum ) + "Node", "" ) + if nodeName == "": + break + nodeType = self.GetPluginInfoEntryWithDefault( "Output" + str( rendernodeNum ) + "Type", "Image" ) + if nodeType == "Image": + nodePath = self.GetPluginInfoEntryWithDefault( "Output" + str( rendernodeNum ) + "Path", "" ) + nodeLeadingZero = self.GetPluginInfoEntryWithDefault( "Output" + str( rendernodeNum ) + "LeadingZero", "" ) + nodeFormat = self.GetPluginInfoEntryWithDefault( "Output" + str( rendernodeNum ) + "Format", "" ) + nodeStartFrame = self.GetPluginInfoEntryWithDefault( "Output" + str( rendernodeNum ) + "StartFrame", "" ) + + if not nodePath == "": + scriptBuilder.AppendLine("node.setTextAttr( \"" + nodeName + "\", \"drawingName\", 1, \"" + nodePath + "\" );") + + if not nodeLeadingZero == "": + scriptBuilder.AppendLine("node.setTextAttr( \"" + nodeName + "\", \"leadingZeros\", 1, \"" + nodeLeadingZero + "\" );") + + if not nodeFormat == "": + scriptBuilder.AppendLine("node.setTextAttr( \"" + nodeName + "\", \"drawingType\", 1, \"" + nodeFormat + "\" );") + + if not nodeStartFrame == "": + scriptBuilder.AppendLine("node.setTextAttr( \"" + nodeName + "\", \"start\", 1, \"" + nodeStartFrame + "\" );") + + if nodeType == "Movie": + nodePath = self.GetPluginInfoEntryWithDefault( "Output" + str( rendernodeNum ) + "Path", "" ) + if not nodePath == "": + scriptBuilder.AppendLine("node.setTextAttr( \"" + nodeName + "\", \"moviePath\", 1, \"" + nodePath + "\" );") + + rendernodeNum += 1 + + tempDirectory = self.CreateTempDirectory( "thread" + str(self.GetThreadNumber()) ) + preRenderScriptName = Path.Combine( tempDirectory, "preRenderScript.txt" ) + + File.WriteAllText( preRenderScriptName, scriptBuilder.ToString() ) + + preRenderInlineScript = self.GetPluginInfoEntryWithDefault( "PreRenderInlineScript", "" ) + if preRenderInlineScript: + renderArguments += " -preRenderInlineScript \"" + preRenderInlineScript +"\"" + + renderArguments += " -preRenderScript \"" + preRenderScriptName +"\"" + + return renderArguments