[Bf-blender-cvs] [0be4b0f7a53] blender2.8: Fix edit mesh selection with copy-on-write enabled

Sergey Sharybin noreply at git.blender.org
Tue May 1 11:02:57 CEST 2018


Commit: 0be4b0f7a53b90603cc781a48a8b837ee775f87f
Author: Sergey Sharybin
Date:   Tue May 1 11:02:29 2018 +0200
Branches: blender2.8
https://developer.blender.org/rB0be4b0f7a53b90603cc781a48a8b837ee775f87f

Fix edit mesh selection with copy-on-write enabled

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

M	source/blender/editors/space_view3d/view3d_draw_legacy.c

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

diff --git a/source/blender/editors/space_view3d/view3d_draw_legacy.c b/source/blender/editors/space_view3d/view3d_draw_legacy.c
index 15359dcd6d6..5b0f50b7a68 100644
--- a/source/blender/editors/space_view3d/view3d_draw_legacy.c
+++ b/source/blender/editors/space_view3d/view3d_draw_legacy.c
@@ -166,21 +166,23 @@ static void backdrawview3d(
         Object *obact, Object *obedit)
 {
 	RegionView3D *rv3d = ar->regiondata;
+	Scene *scene_eval = (Scene *)DEG_get_evaluated_id(depsgraph, &scene->id);
+	Object *obact_eval = DEG_get_evaluated_object(depsgraph, obact);
 
 	BLI_assert(ar->regiontype == RGN_TYPE_WINDOW);
 
-	if (obact && (obact->mode & (OB_MODE_VERTEX_PAINT | OB_MODE_WEIGHT_PAINT) ||
-	             BKE_paint_select_face_test(obact)))
+	if (obact_eval && (obact_eval->mode & (OB_MODE_VERTEX_PAINT | OB_MODE_WEIGHT_PAINT) ||
+	             BKE_paint_select_face_test(obact_eval)))
 	{
 		/* do nothing */
 	}
 	/* texture paint mode sampling */
-	else if (obact && (obact->mode & OB_MODE_TEXTURE_PAINT) &&
+	else if (obact_eval && (obact_eval->mode & OB_MODE_TEXTURE_PAINT) &&
 	         (v3d->drawtype > OB_WIRE))
 	{
 		/* do nothing */
 	}
-	else if ((obact && (obact->mode & OB_MODE_PARTICLE_EDIT)) &&
+	else if ((obact_eval && (obact_eval->mode & OB_MODE_PARTICLE_EDIT)) &&
 	         V3D_IS_ZBUF(v3d))
 	{
 		/* do nothing */
@@ -260,8 +262,8 @@ static void backdrawview3d(
 
 	G.f |= G_BACKBUFSEL;
 
-	if (obact && ((obact->base_flag & BASE_VISIBLED) != 0)) {
-		draw_object_backbufsel(depsgraph, scene, v3d, rv3d, obact);
+	if (obact_eval && ((obact_eval->base_flag & BASE_VISIBLED) != 0)) {
+		draw_object_backbufsel(depsgraph, scene_eval, v3d, rv3d, obact_eval);
 	}
 
 	if (rv3d->gpuoffscreen)



More information about the Bf-blender-cvs mailing list