[Bf-blender-cvs] [a1549065f24] temp-eeveelightcache: Eevee: LightCache: Fix crash when baking with render result window open

Clément Foucault noreply at git.blender.org
Thu Jun 28 15:55:12 CEST 2018


Commit: a1549065f24d262cc07eee665e927ca4d87e16b4
Author: Clément Foucault
Date:   Tue Jun 26 12:37:34 2018 +0200
Branches: temp-eeveelightcache
https://developer.blender.org/rBa1549065f24d262cc07eee665e927ca4d87e16b4

Eevee: LightCache: Fix crash when baking with render result window open

===================================================================

M	source/blender/editors/render/render_shading.c
M	source/blender/windowmanager/WM_api.h

===================================================================

diff --git a/source/blender/editors/render/render_shading.c b/source/blender/editors/render/render_shading.c
index 6b5e86ca709..0d36ddb0ead 100644
--- a/source/blender/editors/render/render_shading.c
+++ b/source/blender/editors/render/render_shading.c
@@ -738,6 +738,9 @@ static int light_cache_bake_invoke(bContext *C, wmOperator *op, const wmEvent *U
 	if (WM_jobs_test(wm, scene, WM_JOB_TYPE_RENDER))
 		return OPERATOR_CANCELLED;
 
+	if (WM_jobs_test(wm, scene, WM_JOB_TYPE_LIGHT_BAKE))
+		return OPERATOR_CANCELLED;
+
 	/* TODO abort if selected engine is not eevee. */
 	void *rj = EEVEE_lightbake_job_data_alloc(bmain, view_layer, scene, true);
 
@@ -747,7 +750,7 @@ static int light_cache_bake_invoke(bContext *C, wmOperator *op, const wmEvent *U
 	}
 
 	wmJob *wm_job = WM_jobs_get(wm, CTX_wm_window(C), scene, "Bake Lighting",
-	                            WM_JOB_EXCL_RENDER | WM_JOB_PRIORITY | WM_JOB_PROGRESS, WM_JOB_TYPE_RENDER);
+	                            WM_JOB_EXCL_RENDER | WM_JOB_PRIORITY | WM_JOB_PROGRESS, WM_JOB_TYPE_LIGHT_BAKE);
 	WM_jobs_customdata_set(wm_job, rj, EEVEE_lightbake_job_data_free);
 	WM_jobs_timer(wm_job, 0.4, NC_OBJECT | ND_DRAW, 0);
 	WM_jobs_callbacks(wm_job, EEVEE_lightbake_job, NULL, EEVEE_lightbake_update, NULL);
@@ -766,7 +769,6 @@ static int light_cache_bake_invoke(bContext *C, wmOperator *op, const wmEvent *U
 	WM_jobs_start(CTX_wm_manager(C), wm_job);
 
 	WM_cursor_wait(0);
-	WM_event_add_notifier(C, NC_SCENE | ND_RENDER_RESULT, scene);
 
 	return OPERATOR_RUNNING_MODAL;
 }
diff --git a/source/blender/windowmanager/WM_api.h b/source/blender/windowmanager/WM_api.h
index 6b1825edf3e..f73a1a1aeb2 100644
--- a/source/blender/windowmanager/WM_api.h
+++ b/source/blender/windowmanager/WM_api.h
@@ -521,6 +521,7 @@ enum {
 	WM_JOB_TYPE_ALEMBIC,
 	WM_JOB_TYPE_SHADER_COMPILATION,
 	WM_JOB_TYPE_STUDIOLIGHT,
+	WM_JOB_TYPE_LIGHT_BAKE,
 	/* add as needed, screencast, seq proxy build
 	 * if having hard coded values is a problem */
 };



More information about the Bf-blender-cvs mailing list