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:
authorSergey Sharybin <sergey.vfx@gmail.com>2019-09-09 11:25:04 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2019-09-11 11:43:27 +0300
commita650258158dd7ad8fa9b6cb1b7da749e30ae15c1 (patch)
tree840b324fbf9739dce8ac50da1acde80e2fb4f140 /source/blender/render
parent022de797f1773f512f21cf9038787dd77e0fd5de (diff)
Python handlers: Pass depsgraph to events where it makes sense
The goal is to make it possible to access evaluated datablocks at a corresponding context. For example, be able to check evaluated state if an object used for rendering. Allows to write scripts in a safe manner for T63548 and T60094. Reviewers: brecht Differential Revision: https://developer.blender.org/D5726
Diffstat (limited to 'source/blender/render')
-rw-r--r--source/blender/render/intern/source/pipeline.c32
1 files changed, 16 insertions, 16 deletions
diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c
index 9ba3e272e8c..2c379700c80 100644
--- a/source/blender/render/intern/source/pipeline.c
+++ b/source/blender/render/intern/source/pipeline.c
@@ -226,7 +226,7 @@ static void stats_background(void *UNUSED(arg), RenderStats *rs)
/* NOTE: using G_MAIN seems valid here???
* Not sure it's actually even used anyway, we could as well pass NULL? */
- BKE_callback_exec(G_MAIN, NULL, BKE_CB_EVT_RENDER_STATS);
+ BKE_callback_exec_null(G_MAIN, BKE_CB_EVT_RENDER_STATS);
fputc('\n', stdout);
fflush(stdout);
@@ -2090,7 +2090,7 @@ void RE_RenderFrame(Render *re,
int frame,
const bool write_still)
{
- BKE_callback_exec(re->main, (ID *)scene, BKE_CB_EVT_RENDER_INIT);
+ BKE_callback_exec_id(re->main, &scene->id, BKE_CB_EVT_RENDER_INIT);
/* Ugly global still...
* is to prevent preview events and signal subsurfs etc to make full resol. */
@@ -2103,9 +2103,9 @@ void RE_RenderFrame(Render *re,
const RenderData rd = scene->r;
MEM_reset_peak_memory();
- render_init_depsgraph(re);
+ BKE_callback_exec_id(re->main, &scene->id, BKE_CB_EVT_RENDER_PRE);
- BKE_callback_exec(re->main, (ID *)scene, BKE_CB_EVT_RENDER_PRE);
+ render_init_depsgraph(re);
do_render_all_options(re);
@@ -2131,14 +2131,14 @@ void RE_RenderFrame(Render *re,
}
/* keep after file save */
- BKE_callback_exec(re->main, (ID *)scene, BKE_CB_EVT_RENDER_POST);
+ BKE_callback_exec_id(re->main, &scene->id, BKE_CB_EVT_RENDER_POST);
if (write_still) {
- BKE_callback_exec(re->main, (ID *)scene, BKE_CB_EVT_RENDER_WRITE);
+ BKE_callback_exec_id(re->main, &scene->id, BKE_CB_EVT_RENDER_WRITE);
}
}
- BKE_callback_exec(
- re->main, (ID *)scene, G.is_break ? BKE_CB_EVT_RENDER_CANCEL : BKE_CB_EVT_RENDER_COMPLETE);
+ BKE_callback_exec_id(
+ re->main, &scene->id, G.is_break ? BKE_CB_EVT_RENDER_CANCEL : BKE_CB_EVT_RENDER_COMPLETE);
RE_CleanAfterRender(re);
@@ -2429,7 +2429,7 @@ static int do_write_image_or_movie(Render *re,
/* NOTE: using G_MAIN seems valid here???
* Not sure it's actually even used anyway, we could as well pass NULL? */
- BKE_callback_exec(G_MAIN, NULL, BKE_CB_EVT_RENDER_STATS);
+ BKE_callback_exec_null(G_MAIN, BKE_CB_EVT_RENDER_STATS);
BLI_timecode_string_from_time_simple(name, sizeof(name), re->i.lastframetime - render_time);
printf(" (Saving: %s)\n", name);
@@ -2495,7 +2495,7 @@ void RE_RenderAnim(Render *re,
const bool is_multiview_name = ((rd.scemode & R_MULTIVIEW) != 0 &&
(rd.im_format.views_format == R_IMF_VIEWS_INDIVIDUAL));
- BKE_callback_exec(re->main, (ID *)scene, BKE_CB_EVT_RENDER_INIT);
+ BKE_callback_exec_id(re->main, &scene->id, BKE_CB_EVT_RENDER_INIT);
/* do not fully call for each frame, it initializes & pops output window */
if (!render_initialize_from_main(re, &rd, bmain, scene, single_layer, camera_override, 0, 1)) {
@@ -2660,8 +2660,8 @@ void RE_RenderAnim(Render *re,
re->r.cfra = scene->r.cfra; /* weak.... */
- /* run callbacs before rendering, before the scene is updated */
- BKE_callback_exec(re->main, (ID *)scene, BKE_CB_EVT_RENDER_PRE);
+ /* run callbacks before rendering, before the scene is updated */
+ BKE_callback_exec_id(re->main, &scene->id, BKE_CB_EVT_RENDER_PRE);
do_render_all_options(re);
totrendered++;
@@ -2712,8 +2712,8 @@ void RE_RenderAnim(Render *re,
if (G.is_break == false) {
/* keep after file save */
- BKE_callback_exec(re->main, (ID *)scene, BKE_CB_EVT_RENDER_POST);
- BKE_callback_exec(re->main, (ID *)scene, BKE_CB_EVT_RENDER_WRITE);
+ BKE_callback_exec_id(re->main, &scene->id, BKE_CB_EVT_RENDER_POST);
+ BKE_callback_exec_id(re->main, &scene->id, BKE_CB_EVT_RENDER_WRITE);
}
}
}
@@ -2731,8 +2731,8 @@ void RE_RenderAnim(Render *re,
re->flag &= ~R_ANIMATION;
- BKE_callback_exec(
- re->main, (ID *)scene, G.is_break ? BKE_CB_EVT_RENDER_CANCEL : BKE_CB_EVT_RENDER_COMPLETE);
+ BKE_callback_exec_id(
+ re->main, &scene->id, G.is_break ? BKE_CB_EVT_RENDER_CANCEL : BKE_CB_EVT_RENDER_COMPLETE);
BKE_sound_reset_scene_specs(re->pipeline_scene_eval);
RE_CleanAfterRender(re);