diff options
author | Philipp Oeser <info@graphics-engineer.com> | 2020-04-27 12:37:20 +0300 |
---|---|---|
committer | Philipp Oeser <info@graphics-engineer.com> | 2020-04-27 17:40:45 +0300 |
commit | 4fd005fefb014a8570747b1d043de7d610078b46 (patch) | |
tree | ed699df29fa0048707cb44a2d3e5ca7323caac88 /source/blender/draw/intern | |
parent | 8f289196cfd8c6f5ca8700576d9b5e011bdc8e5a (diff) |
Fix T76131: Crash combing Hair using Python
Caused by rBe82827bf6ed5.
DRW_draw_depth_object calls DRW_mesh_batch_cache_create_requested with
NULL scene, but that is accessed later on...
Scene is actually available, so pass that around.
Maniphest Tasks: T76131
Differential Revision: https://developer.blender.org/D7540
Diffstat (limited to 'source/blender/draw/intern')
-rw-r--r-- | source/blender/draw/intern/draw_cache_extract_mesh.c | 1 | ||||
-rw-r--r-- | source/blender/draw/intern/draw_manager.c | 4 |
2 files changed, 3 insertions, 2 deletions
diff --git a/source/blender/draw/intern/draw_cache_extract_mesh.c b/source/blender/draw/intern/draw_cache_extract_mesh.c index 4c51ed99f2c..40687306b4e 100644 --- a/source/blender/draw/intern/draw_cache_extract_mesh.c +++ b/source/blender/draw/intern/draw_cache_extract_mesh.c @@ -4540,6 +4540,7 @@ static void extract_task_create(TaskPool *task_pool, void *buf, int32_t *task_counter) { + BLI_assert(scene != NULL); const bool do_hq_normals = (scene->r.perf_flag & SCE_PERF_HQ_NORMALS) != 0; if (do_hq_normals && (extract == &extract_lnor)) { extract = &extract_lnor_hq; diff --git a/source/blender/draw/intern/draw_manager.c b/source/blender/draw/intern/draw_manager.c index 51222d833c2..7bc3dcfab81 100644 --- a/source/blender/draw/intern/draw_manager.c +++ b/source/blender/draw/intern/draw_manager.c @@ -2430,7 +2430,7 @@ static void draw_world_clip_planes_from_rv3d(GPUBatch *batch, const float world_ /** * Clears the Depth Buffer and draws only the specified object. */ -void DRW_draw_depth_object(ARegion *region, View3D *v3d, GPUViewport *viewport, Object *object) +void DRW_draw_depth_object(Scene *scene, ARegion *region, View3D *v3d, GPUViewport *viewport, Object *object) { RegionView3D *rv3d = region->regiondata; @@ -2468,7 +2468,7 @@ void DRW_draw_depth_object(ARegion *region, View3D *v3d, GPUViewport *viewport, batch = DRW_mesh_batch_cache_get_surface(me); } - DRW_mesh_batch_cache_create_requested(object, me, NULL, false, true); + DRW_mesh_batch_cache_create_requested(object, me, scene, false, true); const eGPUShaderConfig sh_cfg = world_clip_planes ? GPU_SHADER_CFG_CLIPPED : GPU_SHADER_CFG_DEFAULT; |