[Bf-blender-cvs] [8c916a3aecc] master: Fix T79066: Entering Edit Mode when Viewport Display set as Wire or Bounds leads to crash

Jeroen Bakker noreply at git.blender.org
Tue Jul 21 11:50:27 CEST 2020


Commit: 8c916a3aecc49351dbbb0d22c8bc0e5712b9e9ac
Author: Jeroen Bakker
Date:   Tue Jul 21 11:47:53 2020 +0200
Branches: master
https://developer.blender.org/rB8c916a3aecc49351dbbb0d22c8bc0e5712b9e9ac

Fix T79066: Entering Edit Mode when Viewport Display set as Wire or Bounds leads to crash

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

M	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];



More information about the Bf-blender-cvs mailing list