Commit: a3b17a6c71d78cb7acf8e402c4a80446d48a2e28 Author: Yiming Wu Date: Fri Dec 28 21:49:50 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rBa3b17a6c71d78cb7acf8e402c4a80446d48a2e28
Fix scripts from external editings. =================================================================== M release/scripts/startup/bl_operators/lanpr.py M release/scripts/startup/bl_ui/properties_scene.py =================================================================== diff --git a/release/scripts/startup/bl_operators/lanpr.py b/release/scripts/startup/bl_operators/lanpr.py index 7cb896b4ae1..b4913bc1100 100644 --- a/release/scripts/startup/bl_operators/lanpr.py +++ b/release/scripts/startup/bl_operators/lanpr.py @@ -21,6 +21,8 @@ import bpy import string +GLOBAL_OUTPUT_PATH = '' + def lanpr_get_composition_scene(scene): n = scene.name+'_lanpr_comp' for s in bpy.data.scenes: @@ -96,12 +98,16 @@ class LANPR_remove_composition_scene(bpy.types.Operator): def lanpr_is_composition_scene(scene): return scene.name.endswith('_lanpr_comp') -def lanpr_goto_original_scene(scene): +def lanpr_get_original_scene(scene): name = scene.name[:-len('_lanpr_comp')] for s in bpy.data.scenes: - if s.name == name: - bpy.context.window.scene = s - break + if s.name == name: return s + return None + +def lanpr_goto_original_scene(scene): + s = lanpr_get_original_scene(scene) + if s: bpy.context.window.scene = s + class LANPR_goto_original_scene(bpy.types.Operator): """Goto Original Scene""" @@ -136,24 +142,83 @@ class LANPR_goto_composition_scene(bpy.types.Operator): lanpr_goto_composition_scene(context.scene) return {'FINISHED'} -@persistent -def lanpr_render_composited_still(scene): -@persistent -def lanpr_render_composited_still(scene): +#callbacks + +GC = None + +def lanpr_render_next_frame(sc): + global GLOBAL_OUTPUT_PATH + sc.frame_current = sc.frame_current+1 + if sc.frame_current>sc.frame_end: + bpy.app.handlers.render_complete.remove(lanpr_render_next_frame) + 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) + + 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_cancel.append(lanpr_render_canceled) + + sc = 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) + global GC + bpy.ops.render.render(scene=sc.name, write_still = write) + else: + bpy.ops.render.render(GC,'INVOKE_DEFAULT',scene=sc.name) + +def lanpr_render_canceled(scene): + + bpy.app.handlers.render_complete.remove(lanpr_render_this_scene_next) + + bpy.app.handlers.render_cancel.remove(lanpr_render_canceled) + +def lanpr_render_backdrop_first(this_scene): + s = lanpr_get_original_scene(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.ops.render.render(scene=s.name) -class LANPR_render_composited_still(bpy.types.Operator): - """Render Composited Still""" - bl_idname = "lanpr.goto_composition_scene" - bl_label = "Render Composited Still" +class LANPR_render_composited(bpy.types.Operator): + """Render Composited""" + bl_idname = "lanpr.render_composited" + bl_label = "Render Composited" @classmethod def poll(cls, context): - return lanpr_get_composition_scene(context.scene) is not None - + return True + def execute(self, context): - lanpr_goto_composition_scene(context.scene) + if bpy.context.scene.lanpr.composite_render_animation: + s = lanpr_get_original_scene(bpy.context.scene) + bpy.context.scene.frame_current = bpy.context.scene.frame_start + s.frame_current = bpy.context.scene.frame_start + bpy.context.scene.frame_end = s.frame_end + bpy.context.scene.render.filepath = s.render.filepath + + global GLOBAL_OUTPUT_PATH + GLOBAL_OUTPUT_PATH = bpy.context.scene.render.filepath + + bpy.app.handlers.render_cancel.append(lanpr_render_canceled) + global GC + GC = bpy.context.copy() + + lanpr_render_backdrop_first(bpy.context.scene) + return {'FINISHED'} classes=( @@ -161,4 +226,5 @@ classes=( LANPR_remove_composition_scene, LANPR_goto_original_scene, LANPR_goto_composition_scene, + LANPR_render_composited, ) \ No newline at end of file diff --git a/release/scripts/startup/bl_ui/properties_scene.py b/release/scripts/startup/bl_ui/properties_scene.py index 957c92eea29..7f20fd2e43e 100644 --- a/release/scripts/startup/bl_ui/properties_scene.py +++ b/release/scripts/startup/bl_ui/properties_scene.py @@ -668,7 +668,16 @@ class SCENE_PT_lanpr(SceneButtonsPanel, Panel): layout.operator("lanpr.make_composition_scene") return - + layout.label(text='LANPR Composition') + row = layout.row() + row.scale_y=1.5 + row.scale_x=4 + row.operator("lanpr.render_composited", icon = 'RENDER_STILL') + row.scale_x=1 + row.prop(lanpr,"composite_render_animation", toggle=True, icon = 'RENDER_ANIMATION') + + layout.label(text='Mode:') + layout.prop(lanpr, "master_mode", expand=True) if lanpr.master_mode == "DPIX" or lanpr.master_mode == "SOFTWARE": _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs