[Bf-blender-cvs] [a3b17a6c71d] soc-2018-npr: Fix scripts from external editings.
Yiming Wu
noreply at git.blender.org
Fri Dec 28 14:49:59 CET 2018
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'}
- at persistent
-def lanpr_render_composited_still(scene):
- at 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":
More information about the Bf-blender-cvs
mailing list