diff options
Diffstat (limited to 'source/blender/editors/space_image/image_ops.c')
-rw-r--r-- | source/blender/editors/space_image/image_ops.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/source/blender/editors/space_image/image_ops.c b/source/blender/editors/space_image/image_ops.c index cc769f13b82..7c021cf6645 100644 --- a/source/blender/editors/space_image/image_ops.c +++ b/source/blender/editors/space_image/image_ops.c @@ -2997,3 +2997,35 @@ void IMAGE_OT_change_frame(wmOperatorType *ot) /* rna */ RNA_def_int(ot->srna, "frame", 0, MINAFRAME, MAXFRAME, "Frame", "", MINAFRAME, MAXFRAME); } + +/* Reload cached render results... */ +/* goes over all scenes, reads render layers */ +static int image_read_renderlayers_exec(bContext *C, wmOperator *UNUSED(op)) +{ + Scene *scene = CTX_data_scene(C); + SpaceImage *sima = CTX_wm_space_image(C); + Image *ima; + + ima = BKE_image_verify_viewer(IMA_TYPE_R_RESULT, "Render Result"); + if (sima->image == NULL) { + ED_space_image_set(sima, scene, NULL, ima); + } + + RE_ReadRenderResult(scene, scene); + + WM_event_add_notifier(C, NC_IMAGE | NA_EDITED, ima); + return OPERATOR_FINISHED; +} + +void IMAGE_OT_read_renderlayers(wmOperatorType *ot) +{ + ot->name = "Read Render Layers"; + ot->idname = "IMAGE_OT_read_renderlayers"; + ot->description = "Read all the current scene's render layers from cache, as needed"; + + ot->poll = space_image_main_area_poll; + ot->exec = image_read_renderlayers_exec; + + /* flags */ + ot->flag = 0; +} |