diff options
author | Nicholas Bishop <nicholasbishop@gmail.com> | 2010-10-19 04:45:37 +0400 |
---|---|---|
committer | Nicholas Bishop <nicholasbishop@gmail.com> | 2010-10-19 04:45:37 +0400 |
commit | a377a7edf67869722c585086ac6ab1f295cbff87 (patch) | |
tree | 1736de08fe9174761607dce5d54a16af25eba049 /release/scripts/io/netrender/client.py | |
parent | 08232350d5797302e3638e69ec78657d853976aa (diff) | |
parent | b743454ce1c361e6161da8ae5f840c2befe3a081 (diff) |
svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r32300:32571soc-2010-nicolasbishop
Diffstat (limited to 'release/scripts/io/netrender/client.py')
-rw-r--r-- | release/scripts/io/netrender/client.py | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/release/scripts/io/netrender/client.py b/release/scripts/io/netrender/client.py index c17944725b0..128ae99ab1d 100644 --- a/release/scripts/io/netrender/client.py +++ b/release/scripts/io/netrender/client.py @@ -211,7 +211,7 @@ class NetworkRenderEngine(bpy.types.RenderEngine): address = "" if netsettings.server_address == "[default]" else netsettings.server_address - master.runMaster((address, netsettings.server_port), netsettings.use_master_broadcast, netsettings.use_master_clear, netsettings.path, self.update_stats, self.test_break) + master.runMaster((address, netsettings.server_port), netsettings.use_master_broadcast, netsettings.use_master_clear, bpy.path.abspath(netsettings.path), self.update_stats, self.test_break) def render_slave(self, scene): @@ -236,10 +236,11 @@ class NetworkRenderEngine(bpy.types.RenderEngine): # reading back result self.update_stats("", "Network render waiting for results") - + + requestResult(conn, job_id, scene.frame_current) response = conn.getresponse() - response.read() + buf = response.read() if response.status == http.client.NO_CONTENT: new_job = True @@ -248,13 +249,13 @@ class NetworkRenderEngine(bpy.types.RenderEngine): requestResult(conn, job_id, scene.frame_current) response = conn.getresponse() - response.read() - + buf = response.read() + while response.status == http.client.ACCEPTED and not self.test_break(): time.sleep(1) requestResult(conn, job_id, scene.frame_current) response = conn.getresponse() - response.read() + buf = response.read() # cancel new jobs (animate on network) on break if self.test_break() and new_job: @@ -271,18 +272,22 @@ class NetworkRenderEngine(bpy.types.RenderEngine): r = scene.render x= int(r.resolution_x*r.resolution_percentage*0.01) y= int(r.resolution_y*r.resolution_percentage*0.01) + + result_path = os.path.join(bpy.path.abspath(netsettings.path), "output.exr") + + folder = os.path.split(result_path)[0] + + if not os.path.exists(folder): + os.mkdir(folder) - f = open(os.path.join(netsettings.path, "output.exr"), "wb") - buf = response.read(1024) + f = open(result_path, "wb") - while buf: - f.write(buf) - buf = response.read(1024) + f.write(buf) f.close() result = self.begin_result(0, 0, x, y) - result.load_from_file(os.path.join(netsettings.path, "output.exr")) + result.load_from_file(result_path) self.end_result(result) conn.close() |