Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Montagne <montagne29@wanadoo.fr>2014-06-28 21:13:54 +0400
committerBastien Montagne <montagne29@wanadoo.fr>2014-06-28 21:23:34 +0400
commit78cdc707ab4d10017c70e5c860146f40ec8457a4 (patch)
treea4bcd6c40b0c60df11ec65fc1f2440ea4302d39a /source/blender/editors/space_image/image_ops.c
parent0caee7843e51c5c7a24e24a18de4f4aa6cbf6550 (diff)
Add render result caching.
Simply add an option to render settings to save an EXR cache, just when the render is finished. Also changed RE_ReadRenderResult() to read cache instead of temp sample files (those are fully volatile now anyway). Path to save cached render results is an UserPreferences setting. Also added 'Reload render' feature to the Image Editor (so one can now re-open a blend, and in an Image Editor hit ctrl-R to (try to) reload last render from cache). Reviewers: campbellbarton, sergey Differential Revision: https://developer.blender.org/D553
Diffstat (limited to 'source/blender/editors/space_image/image_ops.c')
-rw-r--r--source/blender/editors/space_image/image_ops.c32
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;
+}