[Bf-blender-cvs] [b30044d4af] blender2.8: Fix crash introduced in engine separation (50fb3ea3)

Dalai Felinto noreply at git.blender.org
Fri Feb 17 22:26:45 CET 2017


Commit: b30044d4af84f0ddc606eeb4d2860e2cffcf7834
Author: Dalai Felinto
Date:   Fri Feb 17 22:24:08 2017 +0100
Branches: blender2.8
https://developer.blender.org/rBb30044d4af84f0ddc606eeb4d2860e2cffcf7834

Fix crash introduced in engine separation (50fb3ea3)

Basically DEG_OBJECT_ITER (or rather,
BKE_scene_layer_engine_settings_update) wasn't creating
Object->collection_settings data for invisible objects.

Now I'm removing those objects from the loop entirely. If we are to
bring them back we need to either create CollectionEngineSettings dat
from them or to skip them in DRW_mode_cache_populate.

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

M	source/blender/blenkernel/BKE_layer.h
M	source/blender/draw/engines/clay/clay.c

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

diff --git a/source/blender/blenkernel/BKE_layer.h b/source/blender/blenkernel/BKE_layer.h
index c2752ec1d7..9e8865d754 100644
--- a/source/blender/blenkernel/BKE_layer.h
+++ b/source/blender/blenkernel/BKE_layer.h
@@ -215,6 +215,10 @@ void BKE_visible_bases_Iterator_end(Iterator *iter);
 	/* flush all the data to objects*/                                        \
 	Base *base_;                                                              \
 	for (base_ = (sl_)->object_bases.first; base_; base_ = base_->next) {     \
+	if ((base->flag & BASE_VISIBLED) == 0) {                              \
+		continue;                                                         \
+	}                                                                     \
+	                                                                          \
 	    instance_ = base_->object;			                                  \
 	    instance_->base_flag = base_->flag;
 
diff --git a/source/blender/draw/engines/clay/clay.c b/source/blender/draw/engines/clay/clay.c
index f121eb8600..314e0c08f6 100644
--- a/source/blender/draw/engines/clay/clay.c
+++ b/source/blender/draw/engines/clay/clay.c
@@ -639,9 +639,6 @@ static void CLAY_cache_populate(Object *ob)
 	bool do_cull = false;
 	CollectionEngineSettings *ces_mode_ed, *ces_mode_ob;
 
-	if ((ob->base_flag & BASE_VISIBLED) == 0)
-		return;
-
 	switch (mode) {
 		case CTX_MODE_EDIT_MESH:
 		case CTX_MODE_EDIT_CURVE:




More information about the Bf-blender-cvs mailing list