[Bf-blender-cvs] [8615ace7bf2] temp-lineart-contained: LineArt: Fix(unreported): Child object respect collection visibility.

YimingWu noreply at git.blender.org
Sat Jul 31 04:03:23 CEST 2021


Commit: 8615ace7bf2a44d86056c03d45f6af6027ad948d
Author: YimingWu
Date:   Sat Jul 31 09:39:27 2021 +0800
Branches: temp-lineart-contained
https://developer.blender.org/rB8615ace7bf2a44d86056c03d45f6af6027ad948d

LineArt: Fix(unreported): Child object respect collection visibility.

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

M	release/datafiles/locale
M	release/scripts/addons
M	release/scripts/addons_contrib
M	source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c
M	source/tools

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

diff --git a/release/datafiles/locale b/release/datafiles/locale
index 62e82958a76..4833954c0ac 160000
--- a/release/datafiles/locale
+++ b/release/datafiles/locale
@@ -1 +1 @@
-Subproject commit 62e82958a760dad775d9b3387d7fb535fd6de4c6
+Subproject commit 4833954c0ac85cc407e1d5a153aa11b1d1823ec0
diff --git a/release/scripts/addons b/release/scripts/addons
index 4475cbd11a6..f86f25e6221 160000
--- a/release/scripts/addons
+++ b/release/scripts/addons
@@ -1 +1 @@
-Subproject commit 4475cbd11a636382d57571e0f5dfeff1f90bd6b7
+Subproject commit f86f25e62217264495d05f116ccb09d575fe9841
diff --git a/release/scripts/addons_contrib b/release/scripts/addons_contrib
index 788441f2930..5a82baad9f9 160000
--- a/release/scripts/addons_contrib
+++ b/release/scripts/addons_contrib
@@ -1 +1 @@
-Subproject commit 788441f2930465bbfba8f0797b12dcef1d46694d
+Subproject commit 5a82baad9f986722104280e8354a4427d8e9eab1
diff --git a/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c b/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c
index 297a0f7ff16..ce53d347c91 100644
--- a/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c
+++ b/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c
@@ -2061,7 +2061,7 @@ static uchar lineart_intersection_mask_check(Collection *c, Object *ob)
  * See if this object in such collection is used for generating line art,
  * Disabling a collection for line art will doable all objects inside.
  */
-static int lineart_usage_check(Collection *c, Object *ob)
+static int lineart_usage_check(Collection *c, Object *ob, bool is_render)
 {
 
   if (!c) {
@@ -2074,8 +2074,12 @@ static int lineart_usage_check(Collection *c, Object *ob)
     return ob->lineart.usage;
   }
 
-  if (c->children.first == NULL) {
+  if (c->gobject.first) {
     if (BKE_collection_has_object(c, (Object *)(ob->id.orig_id))) {
+      if ((is_render && (c->flag & COLLECTION_RESTRICT_RENDER)) ||
+          ((!is_render) && (c->flag & COLLECTION_RESTRICT_VIEWPORT))) {
+        return OBJECT_LRT_EXCLUDE;
+      }
       if (ob->lineart.usage == OBJECT_LRT_INHERIT) {
         switch (c->lineart_usage) {
           case COLLECTION_LRT_OCCLUSION_ONLY:
@@ -2094,7 +2098,7 @@ static int lineart_usage_check(Collection *c, Object *ob)
   }
 
   LISTBASE_FOREACH (CollectionChild *, cc, &c->children) {
-    int result = lineart_usage_check(cc->collection, ob);
+    int result = lineart_usage_check(cc->collection, ob, is_render);
     if (result > OBJECT_LRT_INHERIT) {
       return result;
     }
@@ -2224,9 +2228,11 @@ static void lineart_main_load_geometries(
   LineartObjectLoadTaskInfo *olti = lineart_mem_acquire(
       &rb->render_data_pool, sizeof(LineartObjectLoadTaskInfo) * thread_count);
 
+  bool is_render = DEG_get_mode(depsgraph) == DAG_EVAL_RENDER;
+
   DEG_OBJECT_ITER_BEGIN (depsgraph, ob, flags) {
     LineartObjectInfo *obi = lineart_mem_acquire(&rb->render_data_pool, sizeof(LineartObjectInfo));
-    obi->usage = lineart_usage_check(scene->master_collection, ob);
+    obi->usage = lineart_usage_check(scene->master_collection, ob, is_render);
     obi->override_intersection_mask = lineart_intersection_mask_check(scene->master_collection,
                                                                       ob);
     Object *use_ob = DEG_get_evaluated_object(depsgraph, ob);
diff --git a/source/tools b/source/tools
index c8579c5cf43..01f51a0e551 160000
--- a/source/tools
+++ b/source/tools
@@ -1 +1 @@
-Subproject commit c8579c5cf43229843df505da9644b5b0b7201974
+Subproject commit 01f51a0e551ab730f0934dc6488613690ac4bf8f



More information about the Bf-blender-cvs mailing list