Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2018-05-01 12:02:29 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2018-05-01 12:02:55 +0300
commit0be4b0f7a53b90603cc781a48a8b837ee775f87f (patch)
treea8ee2e8c8775264524172494e1ca518b3302939f /source/blender/editors/space_view3d/view3d_draw_legacy.c
parent98c767244d438bc4b62149b85af061e32d5a770a (diff)
Fix edit mesh selection with copy-on-write enabled
Diffstat (limited to 'source/blender/editors/space_view3d/view3d_draw_legacy.c')
-rw-r--r--source/blender/editors/space_view3d/view3d_draw_legacy.c14
1 files changed, 8 insertions, 6 deletions
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)