diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2018-08-18 13:57:42 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2018-08-18 13:58:15 +0300 |
commit | 353e691ff96155bcab879a74663b04ff69a4c9b4 (patch) | |
tree | 80004245e5c026850b5ac36939fe464aedf95e4b /source/blender/draw/intern/draw_manager_shader.c | |
parent | 9f25b2f278c3c5609828d5ac780c9f8dbadd9be2 (diff) |
DRW: Fix crash in defered compilation
Diffstat (limited to 'source/blender/draw/intern/draw_manager_shader.c')
-rw-r--r-- | source/blender/draw/intern/draw_manager_shader.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/source/blender/draw/intern/draw_manager_shader.c b/source/blender/draw/intern/draw_manager_shader.c index 2730a9f518e..0c44acb3f9c 100644 --- a/source/blender/draw/intern/draw_manager_shader.c +++ b/source/blender/draw/intern/draw_manager_shader.c @@ -219,7 +219,6 @@ static void drw_deferred_shader_add(GPUMaterial *mat, bool deferred) void DRW_deferred_shader_remove(GPUMaterial *mat) { Scene *scene = GPU_material_scene(mat); - scene = (Scene *)DEG_get_original_id(&DST.draw_ctx.scene->id); for (wmWindowManager *wm = G_MAIN->wm.first; wm; wm = wm->id.next) { if (WM_jobs_test(wm, scene, WM_JOB_TYPE_SHADER_COMPILATION) == false) { @@ -354,6 +353,7 @@ GPUMaterial *DRW_shader_create_from_world( } if (mat == NULL) { + scene = (Scene *)DEG_get_original_id(&DST.draw_ctx.scene->id); mat = GPU_material_from_nodetree( scene, wo->nodetree, &wo->gpumaterial, engine_type, options, vert, geom, frag_lib, defines, wo->id.name); @@ -376,6 +376,7 @@ GPUMaterial *DRW_shader_create_from_material( } if (mat == NULL) { + scene = (Scene *)DEG_get_original_id(&DST.draw_ctx.scene->id); mat = GPU_material_from_nodetree( scene, ma->nodetree, &ma->gpumaterial, engine_type, options, vert, geom, frag_lib, defines, ma->id.name); |