diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2019-10-08 17:59:29 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2019-10-08 19:37:38 +0300 |
commit | 656228945ebc8be2adbf70f6fbed230e3e7f8670 (patch) | |
tree | 768103d3c28a8fdd5147aa3ba624f98826b47a9c /source/blender/draw/intern/draw_cache_impl_mesh.c | |
parent | ed9f8bd9566f0657558ca27b9cb16288a7ead074 (diff) |
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.
Diffstat (limited to 'source/blender/draw/intern/draw_cache_impl_mesh.c')
-rw-r--r-- | source/blender/draw/intern/draw_cache_impl_mesh.c | 6 |
1 files changed, 4 insertions, 2 deletions
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); |