[Bf-blender-cvs] [628ff9b3d6b] soc-2018-npr: make rendering into a loop to avoid callback stack overflow.

Yiming Wu noreply at git.blender.org
Sat Dec 29 06:04:29 CET 2018


Commit: 628ff9b3d6bce835e97c4616e9296df7043689a1
Author: Yiming Wu
Date:   Sat Dec 29 13:04:22 2018 +0800
Branches: soc-2018-npr
https://developer.blender.org/rB628ff9b3d6bce835e97c4616e9296df7043689a1

make rendering into a loop to avoid callback stack overflow.

===================================================================

M	release/scripts/startup/bl_operators/lanpr.py

===================================================================

diff --git a/release/scripts/startup/bl_operators/lanpr.py b/release/scripts/startup/bl_operators/lanpr.py
index 3d05bcac1dc..19df57af34b 100644
--- a/release/scripts/startup/bl_operators/lanpr.py
+++ b/release/scripts/startup/bl_operators/lanpr.py
@@ -155,25 +155,25 @@ def lanpr_render_next_frame(sc):
         bpy.context.scene.render.filepath = GLOBAL_OUTPUT_PATH
         return
     
-    bpy.app.handlers.render_cancel.append(lanpr_render_canceled)
-    bpy.app.handlers.render_complete.remove(lanpr_render_next_frame)
+    #bpy.app.handlers.render_cancel.append(lanpr_render_canceled)
+    #bpy.app.handlers.render_complete.remove(lanpr_render_next_frame)
     
-    lanpr_render_backdrop_first(sc)
+    #lanpr_render_backdrop_first(sc)
 
 def lanpr_render_this_scene_next(scene):
     
-    bpy.app.handlers.render_complete.remove(lanpr_render_this_scene_next)
-    bpy.app.handlers.render_cancel.remove(lanpr_render_canceled)
+    #bpy.app.handlers.render_complete.remove(lanpr_render_this_scene_next)
+    #bpy.app.handlers.render_cancel.remove(lanpr_render_canceled)
     
-    bpy.app.handlers.render_cancel.append(lanpr_render_canceled)
+    #bpy.app.handlers.render_cancel.append(lanpr_render_canceled)
     
-    sc = lanpr_get_composition_scene(scene)
+    sc = scene #lanpr_get_composition_scene(scene)
     write = sc.lanpr.composite_render_animation
     
     bpy.context.scene.render.filepath = GLOBAL_OUTPUT_PATH + '/%04d'%sc.frame_current + bpy.context.scene.render.file_extension
     
     if sc.lanpr.composite_render_animation:
-        bpy.app.handlers.render_complete.append(lanpr_render_next_frame)
+        #bpy.app.handlers.render_complete.append(lanpr_render_next_frame)
         global GC
         bpy.ops.render.render(scene=sc.name, write_still = write)
     else:
@@ -192,7 +192,7 @@ def lanpr_render_backdrop_first(this_scene):
     if not s: return
 
     s.frame_current = this_scene.frame_current
-    bpy.app.handlers.render_complete.append(lanpr_render_this_scene_next)
+    #bpy.app.handlers.render_complete.append(lanpr_render_this_scene_next)
     bpy.ops.render.render(scene=s.name)
             
 class LANPR_render_composited(bpy.types.Operator):
@@ -219,7 +219,16 @@ class LANPR_render_composited(bpy.types.Operator):
         global GC
         GC = bpy.context.copy()
         
-        lanpr_render_backdrop_first(bpy.context.scene)
+        while True :
+        
+            lanpr_render_backdrop_first(bpy.context.scene)
+            
+            lanpr_render_this_scene_next(bpy.context.scene)
+            
+            bpy.context.scene.frame_current = bpy.context.scene.frame_current+1
+            if not bpy.context.scene.lanpr.composite_render_animation or bpy.context.scene.frame_current>bpy.context.scene.frame_end: 
+                bpy.context.scene.render.filepath = GLOBAL_OUTPUT_PATH
+                return {'FINISHED'}
         
         return {'FINISHED'}



More information about the Bf-blender-cvs mailing list