Fix T70226 EEVEE: Crash/Assert entering edit mode with instanced meshes...
authorClément Foucault <foucault.clem@gmail.com>
Fri, 27 Sep 2019 22:19:30 +0000 (00:19 +0200)
committerClément Foucault <foucault.clem@gmail.com>
Fri, 27 Sep 2019 22:44:16 +0000 (00:44 +0200)
... and modifiers.

This was caused by wrong mesh being taken into account when in edit mode.

source/blender/draw/intern/draw_cache_impl_mesh.c

index 6dc2f514f3a403fbdcae5cf757cd91124e4af9ac..4a69aa3e008bd9433f0f5f90a84798647b9225c7 100644 (file)
@@ -1044,7 +1044,9 @@ void DRW_mesh_batch_cache_create_requested(
        MBC_EDITUV_FACES_STRETCH_ANGLE | MBC_EDITUV_FACES | MBC_EDITUV_EDGES | MBC_EDITUV_VERTS)) {
     /* Modifiers will only generate an orco layer if the mesh is deformed. */
     if (cache->cd_needed.orco != 0) {
-      if (CustomData_get_layer(&me->vdata, CD_ORCO) == NULL) {
+      /* Orco is always extracted from final mesh. */
+      Mesh *me_final = (me->edit_mesh) ? me->edit_mesh->mesh_eval_final : me;
+      if (CustomData_get_layer(&me_final->vdata, CD_ORCO) == NULL) {
         /* Skip orco calculation */
         cache->cd_needed.orco = 0;
       }