Cycles: Un-pause render when switching to rendered viewport

Consider switching to rendered shading type as a request to start
rendering, without requiring to un-pause.

This minimizes amount of clicks needed to start rendering after
viewport was paused once, and then shading mode got changed.

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D14244
This commit is contained in:
Sergey Sharybin 2022-03-21 10:58:37 +01:00 committed by Sergey Sharybin
parent e4278b72bb
commit ae21729557
Notes: blender-bot 2023-10-24 21:43:49 +02:00
Referenced by issue #114065, Blender does not remember the state of the 'Pause Preview' button
1 changed files with 11 additions and 0 deletions

View File

@ -83,6 +83,17 @@ class CyclesRender(bpy.types.RenderEngine):
# viewport render
def view_update(self, context, depsgraph):
if not self.session:
# When starting a new render session in viewport (by switching
# viewport to Rendered shading) unpause the render. The way to think
# of it is: artist requests render, so we start to render.
# Do it for both original and evaluated scene so that Cycles
# immediately reacts to un-paused render.
cscene = context.scene.cycles
cscene_eval = depsgraph.scene_eval.cycles
if cscene.preview_pause or cscene_eval.preview_pause:
cscene.preview_pause = False
cscene_eval.preview_pause = False
engine.create(self, context.blend_data,
context.region, context.space_data, context.region_data)