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
path: root/source
diff options
context:
space:
mode:
authorMatt Ebb <matt@mke3.net>2010-04-09 08:57:50 +0400
committerMatt Ebb <matt@mke3.net>2010-04-09 08:57:50 +0400
commitd776172cf783b659be79a91102349548953bbb76 (patch)
treed5109bd76a2529947a49040acbcc80d3883bffe0 /source
parente695dced729b99463fc6f902d1b55219277138a0 (diff)
Attempted fix for [#21491] rendering from the api does not work
Render was hanging on to old callbacks from interactive wmJob render when used as a blocking render from py API.
Diffstat (limited to 'source')
-rw-r--r--source/blender/editors/render/render_internal.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/source/blender/editors/render/render_internal.c b/source/blender/editors/render/render_internal.c
index 50e637f102b..5ca9f3a38dc 100644
--- a/source/blender/editors/render/render_internal.c
+++ b/source/blender/editors/render/render_internal.c
@@ -385,6 +385,10 @@ static void render_error_reports(void *reports, char *str)
BKE_report(reports, RPT_ERROR, str);
}
+static void result_nothing(void *unused, RenderResult *rr) {}
+static void result_rcti_nothing(void *unused, RenderResult *rr, volatile struct rcti *rect) {}
+static void stats_nothing(void *unused, RenderStats *rs) {}
+
/* executes blocking render */
static int screen_render_exec(bContext *C, wmOperator *op)
{
@@ -397,9 +401,17 @@ static int screen_render_exec(bContext *C, wmOperator *op)
if(re==NULL) {
re= RE_NewRender(scene->id.name);
}
+
+ G.afbreek= 0;
RE_test_break_cb(re, NULL, (int (*)(void *)) blender_test_break);
RE_error_cb(re, op->reports, render_error_reports);
+ /* clear other callbacks that may have previosuly been used by interactive render */
+ RE_display_init_cb(re, NULL, result_nothing);
+ RE_display_clear_cb(re, NULL, result_nothing);
+ RE_display_draw_cb(re, NULL, result_rcti_nothing);
+ RE_stats_draw_cb(re, NULL, stats_nothing);
+
ima= BKE_image_verify_viewer(IMA_TYPE_R_RESULT, "Render Result");
BKE_image_signal(ima, NULL, IMA_SIGNAL_FREE);
BKE_image_backup_render(scene, ima);