[Bf-blender-cvs] [656228945eb] master: Fix T69363 EEVEE: Blender crash when using Edit mode for Ocean

Clément Foucault noreply at git.blender.org
Tue Oct 8 18:46:06 CEST 2019


Commit: 656228945ebc8be2adbf70f6fbed230e3e7f8670
Author: Clément Foucault
Date:   Tue Oct 8 16:59:29 2019 +0200
Branches: master
https://developer.blender.org/rB656228945ebc8be2adbf70f6fbed230e3e7f8670

Fix T69363 EEVEE: Blender crash when using Edit mode for Ocean

Use same Mesh* as extraction. We always use the final mesh for shaded geom.

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

M	source/blender/draw/intern/draw_cache_impl_mesh.c

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

diff --git a/source/blender/draw/intern/draw_cache_impl_mesh.c b/source/blender/draw/intern/draw_cache_impl_mesh.c
index 422271dbf62..b4b6554f20d 100644
--- a/source/blender/draw/intern/draw_cache_impl_mesh.c
+++ b/source/blender/draw/intern/draw_cache_impl_mesh.c
@@ -124,7 +124,8 @@ static DRW_MeshCDMask mesh_cd_calc_used_gpu_layers(const Mesh *me,
                                                    struct GPUMaterial **gpumat_array,
                                                    int gpumat_array_len)
 {
-  const CustomData *cd_ldata = (me->edit_mesh) ? &me->edit_mesh->bm->ldata : &me->ldata;
+  const Mesh *me_final = (me->edit_mesh) ? me->edit_mesh->mesh_eval_final : me;
+  const CustomData *cd_ldata = &me_final->ldata;
 
   /* See: DM_vertex_attributes_from_gpu for similar logic */
   DRW_MeshCDMask cd_used;
@@ -227,7 +228,8 @@ static void mesh_cd_extract_auto_layers_names_and_srgb(Mesh *me,
                                                        int **r_auto_layers_srgb,
                                                        int *r_auto_layers_len)
 {
-  const CustomData *cd_ldata = (me->edit_mesh) ? &me->edit_mesh->bm->ldata : &me->ldata;
+  const Mesh *me_final = (me->edit_mesh) ? me->edit_mesh->mesh_eval_final : me;
+  const CustomData *cd_ldata = &me_final->ldata;
 
   int uv_len_used = count_bits_i(cd_used.uv);
   int vcol_len_used = count_bits_i(cd_used.vcol);



More information about the Bf-blender-cvs mailing list