[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [28104] branches/render25/source/blender/ editors/render/render_internal.c: Render Branch: attempt to fix crashes where scene updates would run while
Brecht Van Lommel
brecht at blender.org
Fri Apr 9 12:54:19 CEST 2010
Revision: 28104
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28104
Author: blendix
Date: 2010-04-09 12:54:19 +0200 (Fri, 09 Apr 2010)
Log Message:
-----------
Render Branch: attempt to fix crashes where scene updates would run while
rendering. G.rendering was set in the job thread, which is too late.
Modified Paths:
--------------
branches/render25/source/blender/editors/render/render_internal.c
Modified: branches/render25/source/blender/editors/render/render_internal.c
===================================================================
--- branches/render25/source/blender/editors/render/render_internal.c 2010-04-09 07:47:57 UTC (rev 28103)
+++ branches/render25/source/blender/editors/render/render_internal.c 2010-04-09 10:54:19 UTC (rev 28104)
@@ -558,8 +558,10 @@
static int screen_render_modal(bContext *C, wmOperator *op, wmEvent *event)
{
/* no running blender, remove handler and pass through */
- if(0==WM_jobs_test(CTX_wm_manager(C), CTX_data_scene(C)))
+ if(0==WM_jobs_test(CTX_wm_manager(C), CTX_data_scene(C))) {
+ G.rendering = 0;
return OPERATOR_FINISHED|OPERATOR_PASS_THROUGH;
+ }
/* running render */
switch (event->type) {
@@ -667,6 +669,11 @@
WM_cursor_wait(0);
WM_event_add_notifier(C, NC_SCENE|ND_RENDER_RESULT, scene);
+ /* we set G.rendering here already instead of only in the job, this ensure
+ main loop or other scene updates are disabled in time, since they may
+ have started before the job thread */
+ G.rendering = 1;
+
/* add modal handler for ESC */
WM_event_add_modal_handler(C, op);
More information about the Bf-blender-cvs
mailing list