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:
authorDalai Felinto <dfelinto@gmail.com>2017-02-18 00:24:08 +0300
committerDalai Felinto <dfelinto@gmail.com>2017-02-18 00:26:40 +0300
commitb30044d4af84f0ddc606eeb4d2860e2cffcf7834 (patch)
tree65252ff0733e24828ea8a9067f7f4bfc64690a28 /source/blender
parent39e212eb05bd2d0a9aeae7820c66834fbb2a393c (diff)
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.
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/blenkernel/BKE_layer.h4
-rw-r--r--source/blender/draw/engines/clay/clay.c3
2 files changed, 4 insertions, 3 deletions
diff --git a/source/blender/blenkernel/BKE_layer.h b/source/blender/blenkernel/BKE_layer.h
index c2752ec1d70..9e8865d7540 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 f121eb8600e..314e0c08f66 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: