[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [34663] trunk/blender/release/scripts/io/ netrender: [#25693] Netrender "shadow" images with last frame always appear

Martin Poirier theeth at yahoo.com
Sat Feb 5 23:47:00 CET 2011


Revision: 34663
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=34663
Author:   theeth
Date:     2011-02-05 22:46:59 +0000 (Sat, 05 Feb 2011)
Log Message:
-----------
[#25693] Netrender "shadow" images with last frame always appear

More debugging info with -d

Also fix some conditions that didn't check the proper list in the ui.

Modified Paths:
--------------
    trunk/blender/release/scripts/io/netrender/operators.py
    trunk/blender/release/scripts/io/netrender/ui.py
    trunk/blender/release/scripts/io/netrender/utils.py

Modified: trunk/blender/release/scripts/io/netrender/operators.py
===================================================================
--- trunk/blender/release/scripts/io/netrender/operators.py	2011-02-05 19:07:54 UTC (rev 34662)
+++ trunk/blender/release/scripts/io/netrender/operators.py	2011-02-05 22:46:59 UTC (rev 34663)
@@ -401,7 +401,7 @@
     @classmethod
     def poll(cls, context):
         netsettings = context.scene.network_render
-        return netsettings.active_job_index >= 0 and len(netsettings.jobs) > 0
+        return netsettings.active_job_index >= 0 and len(netsettings.jobs) > netsettings.active_job_index
 
     def execute(self, context):
         netsettings = context.scene.network_render

Modified: trunk/blender/release/scripts/io/netrender/ui.py
===================================================================
--- trunk/blender/release/scripts/io/netrender/ui.py	2011-02-05 19:07:54 UTC (rev 34662)
+++ trunk/blender/release/scripts/io/netrender/ui.py	2011-02-05 22:46:59 UTC (rev 34663)
@@ -276,7 +276,7 @@
         sub.operator("render.netclientslaves", icon='FILE_REFRESH', text="")
         sub.operator("render.netclientblacklistslave", icon='ZOOMOUT', text="")
 
-        if netsettings.active_slave_index >= 0 and len(netsettings.slaves) > 0:
+        if len(netrender.slaves) > netsettings.active_slave_index >= 0:
             layout.separator()
 
             slave = netrender.slaves[netsettings.active_slave_index]
@@ -307,7 +307,7 @@
         sub = row.column(align=True)
         sub.operator("render.netclientwhitelistslave", icon='ZOOMOUT', text="")
 
-        if netsettings.active_blacklisted_slave_index >= 0 and len(netsettings.slaves_blacklist) > 0:
+        if len(netrender.blacklist) > netsettings.active_blacklisted_slave_index >= 0:
             layout.separator()
 
             slave = netrender.blacklist[netsettings.active_blacklisted_slave_index]
@@ -341,7 +341,7 @@
         sub.operator("render.netclientcancelall", icon='PANEL_CLOSE', text="")
         sub.operator("render.netclientdownload", icon='RENDER_ANIMATION', text="")
 
-        if netsettings.active_job_index >= 0 and len(netsettings.jobs) > 0:
+        if len(netrender.jobs) > netsettings.active_job_index >= 0:
             layout.separator()
 
             job = netrender.jobs[netsettings.active_job_index]

Modified: trunk/blender/release/scripts/io/netrender/utils.py
===================================================================
--- trunk/blender/release/scripts/io/netrender/utils.py	2011-02-05 19:07:54 UTC (rev 34662)
+++ trunk/blender/release/scripts/io/netrender/utils.py	2011-02-05 22:46:59 UTC (rev 34663)
@@ -28,7 +28,7 @@
 except:
   bpy = None
 
-VERSION = bytes("1.2", encoding='utf8')
+VERSION = bytes("1.3", encoding='utf8')
 
 # Jobs status
 JOB_WAITING = 0 # before all data has been entered
@@ -227,6 +227,10 @@
     return full_path
 
 def getResults(server_address, server_port, job_id, resolution_x, resolution_y, resolution_percentage, frame_ranges):
+    if bpy.app.debug:
+        print("=============================================")
+        print("============= FETCHING RESULTS ==============")
+
     frame_arguments = []
     for r in frame_ranges:
         if len(r) == 2:
@@ -236,14 +240,28 @@
             
     filepath = os.path.join(bpy.app.tempdir, "netrender_temp.blend")
     bpy.ops.wm.save_as_mainfile(filepath=filepath, copy=True, check_existing=False)
-            
-    process = subprocess.Popen([sys.argv[0], "-b", "-noaudio", filepath, "-P", __file__] + frame_arguments + ["--", "GetResults", server_address, str(server_port), job_id, str(resolution_x), str(resolution_y), str(resolution_percentage)], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
+
+    arguments = [sys.argv[0], "-b", "-noaudio", filepath, "-o", bpy.path.abspath(bpy.context.scene.render.filepath), "-P", __file__] + frame_arguments + ["--", "GetResults", server_address, str(server_port), job_id, str(resolution_x), str(resolution_y), str(resolution_percentage)]
+    if bpy.app.debug:
+        print("Starting subprocess:")
+        print(" ".join(arguments))
+
+    process = subprocess.Popen(arguments, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
     while process.poll() is None:
-        process.stdout.read(1024) # empty buffer to be sure
-    process.stdout.read()
+        stdout = process.stdout.read(1024)
+        if bpy.app.debug:
+            print(str(stdout, encoding='utf-8'), end="")
+        
+
+    # read leftovers if needed
+    stdout = process.stdout.read()
+    if bpy.app.debug:
+        print(str(stdout, encoding='utf-8'))
     
     os.remove(filepath)
     
+    if bpy.app.debug:
+        print("=============================================")
     return
 
 def _getResults(server_address, server_port, job_id, resolution_x, resolution_y, resolution_percentage):




More information about the Bf-blender-cvs mailing list