From 8c916a3aecc49351dbbb0d22c8bc0e5712b9e9ac Mon Sep 17 00:00:00 2001 From: Jeroen Bakker Date: Tue, 21 Jul 2020 11:47:53 +0200 Subject: Fix T79066: Entering Edit Mode when Viewport Display set as Wire or Bounds leads to crash --- source/blender/draw/intern/draw_cache_extract_mesh.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'source/blender/draw/intern/draw_cache_extract_mesh.c') diff --git a/source/blender/draw/intern/draw_cache_extract_mesh.c b/source/blender/draw/intern/draw_cache_extract_mesh.c index 1737f8b2ff9..cca8ebcf2a8 100644 --- a/source/blender/draw/intern/draw_cache_extract_mesh.c +++ b/source/blender/draw/intern/draw_cache_extract_mesh.c @@ -890,7 +890,9 @@ static void extract_tris_finish(const MeshRenderData *mr, void *ibo, void *_data MeshExtract_Tri_Data *data = _data; GPU_indexbuf_build_in_place(&data->elb, ibo); /* HACK: Create ibo sub-ranges and assign them to each #GPUBatch. */ - if (mr->use_final_mesh) { + /* The `surface_per_mat` tests are there when object shading type is set to Wire or Bounds. In + * these cases there isn't a surface per material. */ + if (mr->use_final_mesh && mr->cache->surface_per_mat && mr->cache->surface_per_mat[0]) { for (int i = 0; i < mr->mat_len; i++) { /* Multiply by 3 because these are triangle indices. */ const int mat_start = data->tri_mat_start[i]; -- cgit v1.2.3