[Bf-blender-cvs] [f968256b42b] blender2.8: Fix T58027: Scene.ray_cast crash

Campbell Barton noreply at git.blender.org
Mon Nov 26 05:53:00 CET 2018


Commit: f968256b42bd816328f0510d5576246a564b15a6
Author: Campbell Barton
Date:   Mon Nov 26 15:50:59 2018 +1100
Branches: blender2.8
https://developer.blender.org/rBf968256b42bd816328f0510d5576246a564b15a6

Fix T58027: Scene.ray_cast crash

Reintroduce BASE_VISIBLE_BGMODE

D3987 by @Soundwave

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

M	source/blender/editors/transform/transform_snap_object.c
M	source/blender/makesdna/DNA_scene_types.h

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

diff --git a/source/blender/editors/transform/transform_snap_object.c b/source/blender/editors/transform/transform_snap_object.c
index 64ae9d4c018..0fdb9b54726 100644
--- a/source/blender/editors/transform/transform_snap_object.c
+++ b/source/blender/editors/transform/transform_snap_object.c
@@ -211,7 +211,7 @@ static void iter_snap_objects(
 
 	Base *base_act = view_layer->basact;
 	for (Base *base = view_layer->object_bases.first; base != NULL; base = base->next) {
-		if ((BASE_VISIBLE(v3d, base)) && (base->flag_legacy & BA_SNAP_FIX_DEPS_FIASCO) == 0 &&
+		if ((BASE_VISIBLE_BGMODE(v3d, base)) && (base->flag_legacy & BA_SNAP_FIX_DEPS_FIASCO) == 0 &&
 		    !((snap_select == SNAP_NOT_SELECTED && ((base->flag & BASE_SELECTED) || (base->flag_legacy & BA_WAS_SEL))) ||
 		      (snap_select == SNAP_NOT_ACTIVE && base == base_act)))
 		{
diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h
index 92a1d6309ea..7ab4187de1a 100644
--- a/source/blender/makesdna/DNA_scene_types.h
+++ b/source/blender/makesdna/DNA_scene_types.h
@@ -1836,6 +1836,10 @@ extern const char *RE_engine_id_CYCLES;
 	(((v3d)->localvd == NULL) || ((v3d)->local_view_uuid & (base)->local_view_bits)) && \
 	(((1 << (base)->object->type) & (v3d)->object_type_exclude_viewport) == 0) && \
 	(((base)->flag & BASE_VISIBLE) != 0))
+#define BASE_VISIBLE_BGMODE(v3d, base) ( \
+	((v3d == NULL) || ((v3d)->localvd == NULL) || ((v3d)->local_view_uuid & (base)->local_view_bits)) && \
+	((v3d == NULL) || (((1 << (base)->object->type) & (v3d)->object_type_exclude_viewport) == 0)) && \
+	(((base)->flag & BASE_VISIBLE) != 0))
 
 #define FIRSTBASE(_view_layer)  ((_view_layer)->object_bases.first)
 #define LASTBASE(_view_layer)   ((_view_layer)->object_bases.last)



More information about the Bf-blender-cvs mailing list